roslyn-mcp-server
v1.1.0
Published
An unconditionally robust MCP server for Microsoft Roslyn Language Server (C#)
Maintainers
Readme
Roslyn MCP Server
A robust, TypeScript-based Model Context Protocol (MCP) server integration for the official Microsoft Roslyn Language Server (C#).
This standalone tool connects the Model Context Protocol with the C# Language Server Protocol (LSP), allowing AI agents—such as Claude Desktop, Cursor, and other MCP-compatible clients—to semantically understand, navigate, and analyze your C# and .NET codebases just like a native IDE.
Features
- Full C# LSP Coverage: Exposes core semantic tools including advanced hover documentation, definition seeking, project-wide references, and diagnostic build errors.
- High Stability: Internally manages
didOpendocument synchronization and handles LSP buffer states automatically, preventing theNullReferenceExceptionbugs occasionally seen in other LSP wrappers. - Zero Configuration: Installs seamlessly and falls back to tracking your Current Working Directory dynamically if you don't enforce an absolute project path.
Global Installation
npm install -g roslyn-mcp-serverPre-requisites
You must have the .NET 8 SDK (or above) installed along with the official roslyn-language-server dotnet tool.
dotnet tool install -g Microsoft.CodeAnalysis.LanguageServerHow to Configure in MCP Clients
Add the following to your MCP Host configurations (e.g., claude_desktop_config.json, mcp_config.json, etc.):
{
"mcpServers": {
"csharp-lsp": {
"command": "roslyn-mcp-server",
"args": ["<OPTIONAL_ABSOLUTE_PATH_TO_CSHARP_PROJECT>"]
}
}
}Tip: If you do not provide
<OPTIONAL_ABSOLUTE_PATH_TO_CSHARP_PROJECT>inargs, the server will gracefully fallback and index the Current Working Directory (CWD).
Exposed MCP Tools
csharp_hover: Fetches the semantic type or variable definitions in markdown formatting precisely at line/column boundaries.csharp_definition: Retrieves the concrete origination URI of the symbol.csharp_references: Locates all occurrences or assignments of methods/properties across the entire initialized workspace.csharp_diagnostics: Summarizes the active syntax errors and build warnings on a targeted component.csharp_workspace_symbol: Queries fuzzy name references broadly across large infrastructures without needing to know exact paths.
Local Development
- Run
npm installto gather dependencies. - Run
npm run buildto compile the TypeScript payload intodist/. - Use
npm startto execute the production payload, or use the providedsrc/test.tsto perform end-to-end local debugging simulating an MCP client.
