Twelve tools
All take a project (name, directory, or .csproj path); a symbol is a simple or fully-qualified name — add a parameter list to pick an overload. Wire names are snake_case. Full request/response shapes live indocs/API.md.
Read-only by default. The six navigation tools and the diagnostics/patch tools never touch disk. The three write-capable tools (edit_member, rename_symbol, apply_fixes) default topreviewOnly: true — they return a diff and write nothing unless you passpreviewOnly: false, and even then they ask your client to confirmvia MCP elicitation before writing (declining downgrades the call to a preview).
Response envelope
v1.4.0Every tool returns a typed ToolResult<T>. The returns shown on each card below is the shape of data — the payload — not the whole envelope.
{ "ok": true, "data": { … } }{ "ok": false, "error": { "type", "message", "correlationId" } }Tools set UseStructuredContent, sodata is also delivered as MCP structuredContent alongside an advertisedoutputSchema. Long-running tools emit progress notifications; failures carry a correlationId to the client’s log stream.
Code navigation
Return precise structure instead of source — the token-saving surface.Find symbols by wildcard/substring name pattern, or outline a single file.
- params
- project, query?, file?, kinds?, max?
- returns
- symbols[] (name, fullName, kind, signature, accessibility, file, line), totalFound, truncated
A symbol’s kind, modifiers, signature, base types, interfaces, docs, and definition — the compact go-to-definition.
- params
- project, symbol, includeSource?
- returns
- name, fullName, kind, accessibility, modifiers[], signature, baseTypes[], interfaces[], documentation, definitionFile/Line, source?
Every reference (use site) of a symbol across the solution, as location + one-line snippet.
- params
- project, symbol, includeDefinition?, max?
- returns
- references[] (file, line, column, snippet), totalReferences, truncated
Implementations of an interface/member, overrides, or derived types of a class.
- params
- project, symbol, max?
- returns
- implementations[] (symbol summaries), totalFound, truncated
A depth-bounded caller and/or callee graph for a method, with cycle detection.
- params
- project, method, direction?, depth?, max?
- returns
- callers?/callees? trees (fullName, signature, file, line, truncated, children)
A type’s base-class chain, implemented interfaces, and/or derived types.
- params
- project, type, direction?, max?
- returns
- baseTypes?, interfaces?, derivedTypes? (summaries), derivedTypesTruncated
Code editing
Emit a member-level diff, never a whole-file rewrite. Preview by default.Replace, add, or delete a single type member; returns a unified diff. Preview by default.
- params
- project, symbol, operation, newSource?, previewOnly?
- returns
- operation, target, changedFiles[], patch, previewOnly, applied, notes[]
Rename a symbol and update every reference across the solution (Roslyn rename). Preview by default.
- params
- project, symbol, newName, previewOnly?
- returns
- symbol, newName, changedFiles[], patch, previewOnly, applied, notes[]
Diagnostics & fixes
The original surface: analyze a solution and apply automated fixes.Analyze an entire C# solution for diagnostics, with filtering. Also accepts an http(s) Git URL (the one open-world tool).
- params
- pathOrGit, branch?, include?, exclude?, severity?, maxDiagnostics?
- returns
- solution, projects, diagnosticSummary, topDiagnostics[]
Detailed diagnostics for a project, with statistics and suggested fixable IDs.
- params
- project, ids?, files?, max?
- returns
- project, totalDiagnostics, diagnostics[], stats, suggestedFixableIds[]
Apply automated code fixes for diagnostic IDs. Preview by default.
- params
- project, ids, previewOnly?
- returns
- project, fixedCount, fixersApplied[], changedFiles[], patch, notes[], previewOnly
Generate a unified diff between two text versions. Pure text, no filesystem.
- params
- before, after, fileName?, ignoreWhitespace?, ignoreCase?
- returns
- patch, hasChanges, linesAdded, linesRemoved, fileName, summary
How much do they save?
The read tools exist to spend fewer tokens than reading source. See themeasured, honest benchmark →