Roslyn-powered C# code navigation, blast-radius analysis, and verified edits for coding agents.
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent — or use 1-click editor setup below.
One-click editor setup isn’t available for this listing yet — we don’t have a confirmed install command, and we’d rather show nothing than point your editor at the wrong package or host. Follow the project’s own setup instructions, linked above.
Inspect callable tools, capabilities, and parameters exposed to AI agents by Roz MCP.
find_symbolFind a symbol by name, FQN, or arity-disambiguated name (e.g. `Processor<,>`).
get_symbols_overviewList a type's members.
go_to_definitionResolve a cursor to its definition.
find_overloadsList all overloads of a method (batchable by name or location).
analyze_methodMethod signature plus inbound callers and outbound in-solution callees grouped by target.
find_referencesFind usages with `referenceKinds=all\
roz is an MCP server that gives C# coding agents the compiler's view of a solution. It finds every real reference to a symbol, including the edges text search misses: overrides, interface dispatch, DI registrations. It renames a symbol across the whole solution in one call, previews the blast radius of a proposed change, and makes edits that verify themselves against the compiler in the same round trip. roz runs as a .NET global tool over stdio; one roz-mcp setup command configures Claude Code, Cursor, VS Code Copilot Chat, or Codex CLI.
roz was developed for and dogfooded on large legacy financial codebases, and it is for that sort of work that it shines. It is most probably not worth the (inherent to the MCP protocol) token overhead for clean greenfield work; When it helps (and when it doesn't) has the measurements.
roz requires the .NET 10 SDK.
Restart the AI client, then ask it something that needs the compiler:
"Find all implementations of
IRepositoryin this solution and show me each class'sSavemethod."
setup auto-detects which AI clients the project uses (via the .claude/, .cursor/, .vscode/, and .codex/ marker directories), writes the matching MCP config file(s), and appends a short usage snippet to the corresponding project rules file. If several markers are present, choose explicitly with --client=claude,cursor. Setup is idempotent: re-running it updates roz's entries without disturbing sibling MCP servers or user-added environment variables, and it refreshes the # roz-mcp rules section in place without touching the rest of the file.
| Client | Config file(s) written | Rules file |
|---|---|---|
| Claude Code | .mcp.json, .claude/settings.local.json | CLAUDE.md |
| Cursor | .cursor/mcp.json | AGENTS.md |
| VS Code Copilot Chat | .vscode/mcp.json | AGENTS.md |
| Codex CLI | .codex/config.toml | AGENTS.md |
VS Code and Cursor users can also add the server in one click, once the tool is installed:
The badges wire the server into the client config only. roz-mcp setup is the fuller path: it also writes the project rules snippet and, for Claude Code, the permission defaults that route write tools through a confirmation prompt.
Two defaults are worth knowing before your first session:
.sln/.slnx with ROZ_SOLUTION_PATH in the MCP config's env block.roz-mcp setup --tools=all (everything) or --tools=read (read-only), and see Configuration for finer control.roz installs as roz-mcp on your PATH.
Claude Code users can skip the global tool install: this repository doubles as a single-plugin marketplace, and one install delivers the server with its tools, prompts, and guide resources, plus a skill carrying the usage rules that roz-mcp setup would otherwise write into CLAUDE.md:
The plugin starts the server with dotnet dnx, which fetches Zphil.Roz from nuget.org on first use. You still need the .NET 10 SDK. The plugin's launch command is global, so per-project settings go in a .roz.json file (see Configuration); the bundled skill includes a recommended permission block that keeps the write tools behind a confirmation prompt (SKILL.md).
Enable the plugin per project rather than globally: roz is measured overhead on work that never needs the compiler's view (see When it helps). A team can check the marketplace and plugin enablement into the project's .claude/settings.json, which prompts teammates to install on their next session:
The server should be registered once per project. With the plugin enabled, roz-mcp setup detects it and configures around it: permission rules under the plugin's tool-name prefix, --tools written to .roz.json, no .mcp.json entry, and a warning if a leftover classic entry would register the server twice. --plugin and --no-plugin force either mode.
roz ships 20 tools across 7 categories. Read tools are forgiving: a cursor near a declaration snaps to the nearest enclosing symbol, and the worst case is information about the wrong symbol. Write tools are conservative: symbol names are authoritative, and an ambiguous target fails with a disambiguation error.
Read tools accept includeDocs=true and (where applicable) includeBody=true; locations are either cursors (path:line:col, or path:line for member-on-line snap) or symbol names (with optional FQN, containingType, kind, or project substring filter).
| Tool | Category | Description |
|---|---|---|
find_symbol | navigation | Find a symbol by name, FQN, or arity-disambiguated name (e.g. Processor<,>). |
get_symbols_overview | navigation | List a type's members. |
go_to_definition | navigation | Resolve a cursor to its definition. |
find_overloads | navigation | List all overloads of a method (batchable by name or location). |
analyze_method | navigation | Method signature plus inbound callers and outbound in-solution callees grouped by target. |
find_references | references | Find usages with referenceKinds=all|invocations|reads|writes, plus contextLines, base-call filtering, and a DI-registration fallback for constructors. |
find_implementations | references | Interface/abstract members → overrides; classes/interfaces → derived/implementing types. |
analyze_change_impact | references | Blast radius of a proposed change (TypeChange/RemoveSymbol/AccessibilityNarrow/SignatureChange); each site tagged compatible/requires-update/unsafe; newSignature upgrades SignatureChange to per-argument classification via overload resolution. |
get_type_hierarchy | types | Base types, derived types, implemented interfaces (batchable). |
get_diagnostics | diagnostics | Compiler + analyzer diagnostics with code-fix hints. incremental=true surfaces only new issues vs a captured baseline. |
get_workspace_info | workspace | Solution and project metadata; reload=true refreshes from disk. |
get_unused_references | workspace | Detect unused ProjectReference (confident) or PackageReference (weak signal). |
rename_symbol | editing | Solution-wide semantic rename that keeps overrides and references coherent. |
edit_symbol | editing | Batched insert/replace/remove of members; targets resolved by location or name. |
replace_content | editing | Batched literal or regex text replacement; multi-line literal mode supported. |
apply_code_fix | editing | Apply a registered analyzer-pack code fix (FixAll) for one diagnostic ID across a scope (held out of the default set). |
change_signature | editing | Add-optional / remove-unused / reorder a method's parameters across its declaration family and all call sites; analysis-gated (held out of the default set). |
move_symbol | editing | Move a type to its own file, a static member to another type, or a type to another namespace; usings and namespaces fixed at both ends; analysis-gated (held out of the default set). |
add_usings | usings | Add using directives, sorted and deduplicated. |
remove_unused_usings | usings | Remove unused using directives. |
The default set is 13 tools. The write tools (edit_symbol, replace_content, apply_code_fix, change_signature, move_symbol, add_usings, remove_unused_usings) are opt-in via ROZ_TOOLS (see Configuration).
Factual signals from GitHub, npm, and our automated checks — not a rating.
No reviews yet — be the first to share how this listing worked for you.
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/roz-mcp)<a href="https://allmcps.com/mcp/roz-mcp"><img src="https://allmcps.com/api/badge/roz-mcp?style=directory" alt="Roz MCP on AllMCPs" /></a>