Skip to content

Why another one

Steven Blom edited this page Sep 12, 2026 · 1 revision

Why another Roslyn MCP server

Three failures are common to the Roslyn MCP servers I tried, and each one is a design decision here rather than a bug fix.

Stale answers. The agent edits files with its own tools, the workspace never learns, and the next diagnostic comes from a snapshot several edits old. In RoseMCP every read is ordered behind every pending mutation and behind a disk-reconciliation barrier, so a result can never describe a world older than the files on disk. There is no refresh step to forget.

Source generators silently producing nothing. Microsoft.CodeAnalysis.Workspaces.MSBuild runs a design-time build and reads CscCommandLineArgs, so analyzers and generators arrive exactly as the real compiler sees them — but only if restore has run and any in-solution generator project's output DLL already exists on disk. Miss that and you get an empty generator list and no error. RoseMCP checks for it and reports a degraded load with the dotnet build that would fix it.

Reloading the solution on every operation. One warm worker process per solution. The first call pays the load; every call after it is fast.

Clone this wiki locally