RoslynMCP
CSharpMCP is a read-only Model Context Protocol server that gives coding agents compiler-accurate C# solution intelligence through Roslyn and MSBuildWorkspace
Install / Use
claude mcp add taskscape -- npx -y github:taskscape/RoslynMCPIf the server publishes to npm under a different name, use that package instead — check the repo README.
MCP Server
Model Context Protocol server
Quality Score
Category
Development & EngineeringSupported Platforms
Tags
Our assessment of RoslynMCP
RoslynMCP scores 74/100 on our quality scale, 3756th of 4,658 Development & Engineering skills we index.
Its MCP Server is 55 KB long, well organised into 35 sections with 26 code examples: long enough that it reads more like full documentation than a focused instruction file, which agents can find harder to follow.
It has 3 GitHub stars, so there is little community track record yet; judge it on its content.
Maintenance, license and trust
- The repository was last updated 8 days ago, so RoslynMCP is actively maintained.
- No license is declared. By default that means all rights are reserved: you can read it, but reusing or redistributing it is not clearly permitted. Ask the author before building on it commercially.
- Its trust signals score 80/100, with 2 cautions from licensing, adoption, age or documentation. These come from repository metadata, not a code audit — read the skill file before letting an agent act on it.
RoslynMCP compared with similar skills
All 4 of these similar skills score higher than RoslynMCP; compare them before choosing.
| Skill | Score | Stars | Updated | Format |
|---|---|---|---|---|
| RoslynMCP (this skill)by taskscape | 74 | 3 | 8d ago | MCP Server |
| Agent-Reachby Panniantong | 100 | 106.6k | 5d ago | CLAUDE.md |
| taste-skillby Leonxlnx | 100 | 106.0k | today | CLAUDE.md |
| headroomby headroomlabs-ai | 100 | 78.3k | today | CLAUDE.md |
| ai-job-searchby ai-job-search-dev | 100 | 67.6k | 3d ago | CLAUDE.md |
Frequently asked questions
- How do I install RoslynMCP?
- Run
claude mcp add taskscape -- npx -y github:taskscape/RoslynMCP. The install tabs above show the steps for each supported agent. - Which AI agents does RoslynMCP work with?
- It is written for Claude Code and Claude Desktop, as a MCP Server file. Other agents that read the same format can often use it too.
- Is RoslynMCP safe to use?
- It declares no license and scores 80/100 on trust signals. Skills are instructions an agent will follow, so read the file before installing it and do not approve commands you do not understand.
- Is RoslynMCP still maintained?
- The repository was last updated 8 days ago, so RoslynMCP is actively maintained.
Skill content
View source on GitHubRoslynMCP
RoslynMCP (CSharpMCP) is a read-only Model Context Protocol server that gives coding agents compiler-accurate C# solution intelligence through Roslyn and MSBuildWorkspace.
The design deliberately separates responsibilities:
- Roslyn loads the real solution/project graph and answers compile-time semantic questions.
- MCP exposes small, bounded, structured results to Codex over standard input/output.
- Codex still edits files normally and runs the repository's authoritative builds and tests.
Text search is fast, universal, and often the right first move. It is not a semantic impact analysis. In a large codebase, the same name can identify unrelated symbols; an interface call may dispatch to many implementations; generated code may not exist in the repository; dependency injection can hide construction; conditional compilation can change declarations; reflection and configuration can bypass static references. An agent that sees matching lines may sound confident while missing the actual program.
Codex and Claude benefit from a layered code-intelligence service that returns compiler- or parser-backed facts with source locations, confidence, configuration, and freshness. The model should use those facts to reason—not pretend it derived them from raw text. This is preferable to embedding an entire solution or relying only on text search. It resolves overloads, namespaces, generic symbols, interface implementations, partial types, compiler diagnostics, and project references while keeping model context bounded. It does not claim to resolve runtime reflection, convention-only dependency injection, dynamically loaded assemblies, external configuration, database behavior, or distributed routing.
Projects
src\CSharpMcp.Server: .NET 10 stdio MCP server.tests\CSharpMcp.Server.Tests: realMSBuildWorkspacefixture tests for symbol resolution, references, and implementations..agents\skills: 34 canonical portable Agent Skills, one for every exposed MCP tool..claude\skills: thin Claude Code adapters that delegate to the canonical skill bodies.installer\CSharpMCP.iss: per-user Inno Setup package for the self-contained Windows server.scripts\Install-RoslynSkills.ps1: user- or project-scoped installer for Codex, Claude Code, or both.
Package roles are documented in Directory.Packages.props. The server uses the stable ModelContextProtocol 2.0.0 release, the compatible Microsoft Extensions 10.0.10 hosting line, and Roslyn 5.6.0.
Build and test
Run the complete verification process from PowerShell with one command:
powershell -NoProfile -ExecutionPolicy Bypass -File .\scripts\Test-CSharpMcp.ps1
The script first proves that every exposed MCP tool has a valid canonical skill, Claude adapter, and OpenAI MCP dependency manifest. It validates installer registration with isolated client fixtures, including the Windows PowerShell 5.1 host used by Setup when launched from PowerShell 7 on Windows. It then restores NuGet packages and the checked-in ApiCompat tool, verifies formatting and analyzer rules, builds the complete solution in Release with one worker, and runs every Roslyn behavior and MCP stdio protocol test. It stops immediately and returns a non-zero exit code when any stage fails.
The equivalent individual commands are:
cd C:\Projects\CSharpMCP
dotnet restore .\CSharpMCP.slnx
dotnet tool restore
dotnet build .\CSharpMCP.slnx --no-restore -m:1 /p:BuildInParallel=false /p:UseSharedCompilation=false
dotnet test .\CSharpMCP.slnx --no-build -m:1
Windows installer
The Inno Setup package is the recommended local-machine installation path for Windows. It publishes an untrimmed, self-contained win-x64 server, packages the complete MCP runtime, the optional ApiCompat manifest, configuration metadata, all 34 canonical skills, registration helpers, and this README.
Build and verify the installer with one command:
powershell -NoProfile -ExecutionPolicy Bypass -File .\scripts\Build-Installer.ps1
The build follows the established local Inno Setup pattern used by the other Taskscape desktop projects: it runs the authoritative repository tests, safely resets only installer\artifacts, publishes the server self-contained, dry-runs client discovery, locates ISCC.exe, compiles the setup definition, and performs an isolated install/uninstall smoke test with post-install registration disabled. Use -SkipTests only after the same source revision has already passed Test-CSharpMcp.ps1; use -SkipInstallerSmokeTest only when the package itself has already passed on the same artifact.
The generated installer is:
C:\Projects\CSharpMCP\installer\output\CSharpMCP-2.0.0-win-x64-Setup.exe
Normal CSharpMCP installation uses %LOCALAPPDATA%\Programs\CSharpMCP. The application payload and client configuration remain per-user. Before files are installed or either client is registered, Setup checks every common dotnet.exe location for an SDK compatible with global.json (currently 10.0.302 with latestPatch roll-forward). If no compatible SDK is found, Setup:
- Downloads the official Microsoft x64 SDK installer from
builds.dotnet.microsoft.comon an Inno Setup progress page. - Rejects the download unless its pinned SHA-256 matches the release artifact.
- Requests UAC elevation only for Microsoft's system-wide SDK installer.
- Runs that installer as
/install /quiet /norestart, accepting Microsoft's success code0and treating3010as a required restart. - Resolves
dotnet --versionagainst the sameglobal.jsonpolicy again and proceeds only after a compatible SDK is visible.
The Microsoft SDK installation itself is silent, but Windows still displays a UAC consent or credential prompt because the supported installer is system-wide. Declining UAC, losing network access, failing checksum validation, or failing post-install detection stops CSharpMCP before its registration helpers run. Machines that already have a global.json-compatible SDK do not download anything and do not request elevation.
After the prerequisite gate, Setup performs these operations:
- Installs the complete self-contained server under
server. - Creates the per-user runtime log directory under
%LOCALAPPDATA%\CSharpMCP\logs. - Writes the resolved stdio command and selected tool catalog to
config\installation.ini. - Deploys canonical skill packages inside the application directory.
- Copies every missing skill into both
%USERPROFILE%\.agents\skillsfor Codex and%USERPROFILE%\.claude\skillsfor Claude Code. A skill is considered installed only when itsSKILL.mdexists; complete existing skills are preserved byte-for-byte, while incomplete directories are populated without deleting unrelated files. - Looks for
codexandclaudeon the current user'sPATH. - Runs
mcp get csharp_roslynfirst and preserves an existing registration unchanged. - When no registration exists, adds a user-level stdio registration pointing directly to the installed self-contained executable.
- Writes exact outcomes to
config\registration-state.json. A missing client or failed registration is non-fatal and can be repaired later.
The optional setup task Enable optional API compatibility and architecture tools sets CSHARPMCP_TOOL_GROUPS=all for newly created registrations and attempts to restore Microsoft's ApiCompat tool through the installed manifest. The default installation exposes the focused 32-tool catalog and does not require the optional tool restore.
The server carries its own .NET runtime, but Roslyn still needs the compatible SDK/MSBuild toolset installed by the prerequisite gate to evaluate SDK-style solutions. Private feeds, workloads, proprietary references, analyzers, and source-generator prerequisites remain repository-specific.
For unattended installation:
.\installer\output\CSharpMCP-2.0.0-win-x64-Setup.exe /VERYSILENT /SUPPRESSMSGBOXES /NORESTART
Add /TASKS="alltools" to enable both optional tool groups. /SKIPPOSTINSTALL=1 is reserved for package verification and installs files without copying skills or changing client registrations. Unattended deployment still requires an already elevated process or an interactive UAC response when the SDK is absent; /VERYSILENT cannot and should not bypass Windows elevation policy.
Uninstall removes only client registrations that were originally created by the installer and still point to its installed executable. Pre-existing or subsequently changed registrations are preserved. User skill copies are also retained because they may have been customized after installation.
The packaging definition is installer/CSharpMCP.iss. Client behavior is implemented and independently testable in Register-CSharpMcpClients.ps1, Unregister-CSharpMcpClients.ps1, Test-InstallerAssets.ps1, and Test-InstallerPackage.ps1.
Automated GitHub releases
VERSION is the authoritative installer release version. Every push to main runs .github/workflows/publish-installer.yml. When the corresponding v<VERSION> release does not exist, the Windows runner executes the complete installer build and verification process, creates a SHA-256 manifest, and publishes both files on a GitHub Release. Subsequent pushes with the same version finish successfully without creating duplicates; a draft left by an interrupted run is resumed after its tag is verified against the pushed commit.
To publish a new version:
- Change
VERSIONto a new stable three-component value such as2.1.0. - Commit the version change together with the intended release source.
- Push that commit to
main. - Confirm that the
v2.1.0GitHub Release contains bothCSharpMCP-2.1.0-win-x64-Setup.exeand its.sha256manifest.
The workflow uses only the repository-provided GITHUB_TOKEN with contents: write; no release secret is required. Run the release contract locally with:
powershell -NoProfile -ExecutionPolicy Bypass -File .\scripts\Test-ReleaseWorkflow.ps1
Tool coverage
Every advertised tool must be named by a [ToolCoverage] behavioral test. McpCatalogContainsMergedReadOnlyPortfolioWithStructuredContent compares that coverage set with the catalog, so adding a tool without a test fails the suite. StdioClientNegotiatesMcp2AndReceivesStructuredTools separately verifies the default Release server over MCP stdio, including discovery, field-level schemas, catalog limits, feature-gate rejection, trust, progress, structured output, and text fallback. AllFeatureProfileAdvertisesAndExecutesOptionalTools starts another server with CSHARPMCP_TOOL_GROUPS=all, verifies the 34-tool catalog, and invokes both optional tools through MCP.
| MCP tool | Behavioral test |
| --- | --- |
| solution_overview | OrientationFlowUsageAndSearchToolsReturnCompilerResolvedEvidence |
| symbol_info | SymbolInfoResolvesDocumentationId |
| find_references | FindReferencesReturnsSourceLocation |
| call_hierarchy | OrientationFlowUsageAndSearchToolsReturnCompilerResolvedEvidence |
| implementation_map | ImplementationMapFindsConcreteType |
| type_usage | OrientationFlowUsageAndSearchToolsReturnCompilerResolvedEvidence |
| diagnostics | DependencyImpactAndDiagnosticsExposeExpandedSections |
| project_dependencies | DependencyImpactAndDiagnosticsExposeExpandedSections |
| semantic_search | OrientationFlowUsageAndSearchToolsReturnCompilerResolvedEvidence |
| unused_symbol_audit | UnusedSymbolAuditSeparatesUnusedAndTestOnlyMethods; UnusedSymbolAuditCoversTypesPropertiesFieldsAndEvents |
| affected_symbols | DependencyImpactAndDiagnosticsExposeExpandedSections |
| symbol_at_position | `PositionAndInvocationToolsUse
Truncated for display — read the full file on GitHub.
Related Skills
Agent-Reach
106.6kGive your AI agent eyes to see the entire internet. Read & search Twitter, Reddit, YouTube, GitHub, Bilibili, XiaoHongShu — one CLI, zero API fees.
taste-skill
106.0kAgent skills that give coding agents taste: art direction, reference images and a browser check instead of generic AI pages
headroom
78.3kCompress tool outputs, logs, files, and RAG chunks before they reach the LLM. 20% fewer tokens for coding agents, 60-95% fewer tokens for JSON, same answers. Library, proxy, MCP server.
ai-job-search
67.6kThe job search that runs on your machine. AI job application framework built on Claude Code: evaluate postings, tailor CVs, write cover letters, prep interviews. Fork it and own it.
Languages
Trust signals
From repository metadata: license, adoption, age and documentation. Not a code audit — see the Safety scan above for what the skill file itself contains.
