RoselineMCP
Reference

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.0

Every 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{ "ok": true, "data": { … } }
err{ "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.
Search Symbols

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
Get Symbol Info

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?
Find References

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
Find Implementations

Implementations of an interface/member, overrides, or derived types of a class.

params
project, symbol, max?
returns
implementations[] (symbol summaries), totalFound, truncated
Get Call Graph

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)
Get Type Hierarchy

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.
edit_memberwrite · previewconfirms
Edit Member

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_symbolwrite · previewprogressconfirms
Rename Symbol

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_solutionread-onlyprogress
Analyze Solution

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[]
List Diagnostics

Detailed diagnostics for a project, with statistics and suggested fixable IDs.

params
project, ids?, files?, max?
returns
project, totalDiagnostics, diagnostics[], stats, suggestedFixableIds[]
apply_fixeswrite · previewprogressconfirms
Apply Fixes

Apply automated code fixes for diagnostic IDs. Preview by default.

params
project, ids, previewOnly?
returns
project, fixedCount, fixersApplied[], changedFiles[], patch, notes[], previewOnly
create_patchread-only
Create Patch

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
Proof

How much do they save?

The read tools exist to spend fewer tokens than reading source. See themeasured, honest benchmark →