Exposes Roslyn code analysis capabilities via Model Context Protocol, enabling semantic code analysis, dead code detection, symbol navigation, and validation for C# projects
The Roslyn MCP Extension provides 7 well-named tools with clear, actionable descriptions and documented input parameters. All tools follow verb_noun naming (find_*, get_*, search_*, validate_*) and descriptions explain both purpose and when to use each tool. Parameters have type definitions and descriptions. However, several critical gaps reduce the score: (1) Output schemas are NOT explicitly documented in the source code, the tools return results like SymbolListResult and ValidateFileResult without visible schema definitions, (2) Error handling and recovery guidance are absent, no evidence of categorized errors or actionable error messages, (3) No documentation of result limits or pagination strategies for potentially large datasets (e.g., find_dead_code, find_references), (4) Missing input validation guidance and constraint documentation. The tools are well-designed for code analysis use cases but lack production-grade error recovery and output schema transparency.
Finds potentially dead code (types, methods, fields with no source references) in the active workspace.
Finds all references to a symbol at a given position using Roslyn's semantic analysis. Returns the symbol and a list of reference locations across the entire solution.
Lists all symbols in a C# file as a tree (namespaces, types, members) with accessibility, modifiers, and line spans.
Gets detailed information for a symbol at a specific position, including a Roslyn display string and XML documentation.
Navigates to the definition of a symbol at a given position. Returns source locations or metadata assembly names.
Searches for symbol declarations across the entire solution by name or partial name.
Output schemas not documented. Tools return SymbolListResult, SymbolInfoResult, ValidateFileResult without visible field definitions. LLMs cannot reliably extract fields or chain tool calls without knowing response structure.
Error handling and recovery guidance completely absent. No evidence of categorized errors (retryable vs user-fixable vs fatal) or actionable error messages that guide the LLM on next steps. A tool returning a 500 error tells the agent nothing.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | D | 53 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 0 | - | v1 |
Validates a C# file and returns compiler errors, warnings, and optional analyzer diagnostics.
Result limits and pagination not documented or handled. Tools like find_dead_code (maxResults=200), find_references (maxResults=50), and search_symbols (maxResults=30) cap results but descriptions do not explain why or what happens when limits are exceeded. No indication of whether results are paginated or truncated.
Parameter constraints and validation rules not explicitly documented. Parameters like 'maxResults' have no min/max bounds stated in descriptions. File paths (filePath parameter) have no validation guidance (absolute vs relative? must exist?). Line/column numbers have no range or error handling guidance.
Transport mechanism is UNKNOWN. Source code shows C# attributes and RpcClient calls but does not reveal how the server communicates with MCP clients (STDIO, HTTP, WebSocket). Cannot verify remote accessibility or protocol compliance.