Local-first MCP server for semantic C# analysis & refactoring via Roslyn & MSBuildWorkspace.
Connect Runs on your machine
claude mcp add roslyn-mcp -e ROSLYNMCP_SANCTIONED_ROOTS=<ROSLYNMCP_SANCTIONED_ROOTS> -- dnx Darylmcd.RoslynMcp --yes
{
"mcpServers": {
"roslyn-mcp": {
"command": "dnx",
"args": [
"Darylmcd.RoslynMcp",
"--yes"
],
"env": {
"ROSLYNMCP_SANCTIONED_ROOTS": "<ROSLYNMCP_SANCTIONED_ROOTS>"
}
}
}
}
{
"mcpServers": {
"roslyn-mcp": {
"command": "dnx",
"args": [
"Darylmcd.RoslynMcp",
"--yes"
],
"env": {
"ROSLYNMCP_SANCTIONED_ROOTS": "<ROSLYNMCP_SANCTIONED_ROOTS>"
}
}
}
}
{
"servers": {
"roslyn-mcp": {
"type": "stdio",
"command": "dnx",
"args": [
"Darylmcd.RoslynMcp",
"--yes"
],
"env": {
"ROSLYNMCP_SANCTIONED_ROOTS": "<ROSLYNMCP_SANCTIONED_ROOTS>"
}
}
}
}
Replace the values in angle brackets with your own. Keys stay on your machine; we never see them.
Tools
This server runs locally, so its tools are listed by your MCP client once it starts.
Environment variables
| Name | Description |
|---|---|
ROSLYNMCP_SANCTIONED_ROOTSOptional | Server-owned filesystem boundary for path validation and solution discovery. Path-separator-delimited (';' on Windows, ':' on macOS/Linux). '.' scopes the server to its working directory. An empty value fails closed: every path-taking tool rejects its input. |
Details
| Package | [email protected] (NUGET, stdio) |
| First published | 7 Nov 2026 |
| Last updated | 7 Nov 2026 |
| Registry name | io.github.darylmcd/roslyn-mcp |
More other servers See all
Listing data from the official MCP registry. Status and tools from NestDaddy's daily check. Browse all MCP servers.
