Roslyn-based MCP server giving AI agents deep semantic understanding of .NET/C# codebases — 67 tools for navigation, call graphs, diagnostics & code fixes, safe refactoring, code-quality auditing, test intelligence, DI graphs, and IL/external-assembly inspection.
- ✓Open-source license (MIT)
- ✓Actively maintained (<30d)
- ✓Clear description
- ✓Topics declared
- ✓Documented (README)
git clone https://github.com/MarcelRoozekrans/roslyn-codelens-mcpMCP Servers overview
# Roslyn CodeLens MCP Server [](https://mcptoplist.com/server/io.github.MarcelRoozekrans%2Froslyn-codelens) [](https://www.nuget.org/packages/RoslynCodeLens.Mcp) [](https://www.nuget.org/packages/RoslynCodeLens.Mcp) [](https://www.npmjs.com/package/roslyn-codelens-mcp) [](https://github.com/MarcelRoozekrans/roslyn-codelens-mcp/actions) [](https://github.com/MarcelRoozekrans/roslyn-codelens-mcp/blob/main/LICENSE) [](https://marcelroozekrans.github.io/roslyn-codelens-mcp/) [](https://github.com/sponsors/MarcelRoozekrans) A Roslyn-based MCP server that gives AI agents deep semantic understanding of .NET codebases — type hierarchies, call graphs, DI registrations, diagnostics, refactoring, and more. <a href="https://glama.ai/mcp/servers/MarcelRoozekrans/roslyn-codelens-mcp"> <img width="380" height="200" src="https://glama.ai/mcp/servers/MarcelRoozekrans/roslyn-codelens-mcp/badge" alt="roslyn-codelens-mcp MCP server" /> </a> <!-- mcp-name: io.github.MarcelRoozekrans/roslyn-codelens --> --- ## Hosted deployment A hosted deployment is available on [Fronteir AI](https://fronteir.ai/mcp/marcelroozekrans-roslyn-codelens-mcp). ## Features - **find_implementations** — Find all classes/structs implementing an interface or extending a class - **find_callers** — Find every call site for a method, property, or constructor - **find_event_subscribers** — Every += / -= site for an event symbol, with resolved handler and subscribe/unsubscribe tag - **find_tests_for_symbol** — List xUnit/NUnit/MSTest methods that exercise a production symbol; opt-in transitive walk through helpers - **get_test_summary** — Per-project inventory of test methods with framework, attribute kind, data-row count, location, and production symbols referenced - **find_uncovered_symbols** — Public methods and properties no test transitively reaches; sorted by cyclomatic complexity for prioritization - **generate_test_skeleton** — Emit a compilable test-class skeleton (as text) for a method or type. Auto-detects xUnit/NUnit/MSTest; surfaces constructor dependencies as TodoNotes; returns a suggested file path. Closes the loop with `find_uncovered_symbols` - **get_type_hierarchy** — Walk base classes, interfaces, and derived types - **get_di_registrations** — Scan for DI service registrations. Reads generic (`AddSingleton<IFoo, Foo>()`), single-generic, `typeof` pair and factory-lambda forms - **get_instantiation_options** — "How do I construct this type?" in one call: constructors with full parameter detail, static factory methods declared anywhere in the solution (including on a separate factory type), DI registrations, and `required` members. Pass `fromProject` to learn whether *that* project can actually reach each option — it honours `InternalsVisibleTo`, so it answers "can my test project call this internal constructor?" - **get_project_dependencies** — Get the project reference graph - **get_symbol_context** — One-shot context dump for any type - **get_public_api_surface** — Enumerate every public/protected type and member in production projects; flat, deterministically-sorted list suitable for API review or breaking-change baselines. - **find_breaking_changes** — Diff the current API against a baseline JSON or DLL; report removed members, kind changes, and accessibility changes with Breaking/NonBreaking severity. - **find_reflection_usage** — Detect dynamic/reflection-based usage - **get_exception_flow** — What exceptions can escape a method: walks callees depth-bounded, propagates each throw up through every enclosing try/catch, and reports what still escapes with its propagation path; metadata callees contribute their documented exceptions - **find_throw_sites** — Every place an exception type is thrown, optionally including derived types; rethrows flagged - **find_catch_blocks** — Every catch for a type, optionally via base clauses; flags filtered, rethrowing, and empty (swallowing) handlers - **find_references** — Find all references to any symbol (types, methods, properties, fields, events), each tagged with a kind (`read`, `write`, `readwrite`, `invocation`, `method_group`, `object_creation`, `cast`, `type_check`, `typeof`, `base_type`, `type_constraint`, `type_argument`, `declaration`, `attribute`, `nameof`, `xml_doc`) and reported per occurrence with a column; filter server-side with `kinds` (e.g. `["write","readwrite"]` for mutation sites) - **go_to_definition** — Find the source file and line where a symbol is defined - **get_method_source** — Full declaration source (XML docs, attributes, signature, body — original formatting) for one or many members by name in a single call: methods (all overloads), constructors, properties, indexers, fields, events; per-item statuses (`ok`/`notFound`/`ambiguous`/`metadata`/`unsupportedKind`) so a batch never fails wholesale - **resolve_stack_trace** — Map a pasted .NET stack trace to file/line/symbol, undoing compiler name mangling (async/iterator state machines, lambdas, local functions, generic arity); handles inner-exception chains, log-prefixed lines, and Demystifier traces - **get_diagnostics** — List compiler errors, warnings, and Roslyn analyzer diagnostics - **get_code_fixes** — Get available code fixes with structured text edits for any diagnostic - **search_symbols** — Fuzzy workspace symbol search by name - **get_nuget_dependencies** — List NuGet package references per project - **find_attribute_usages** — Find types and members decorated with a specific attribute - **find_obsolete_usage** — Every `[Obsolete]` call site grouped by deprecation message and severity, errors first; for planning migrations - **find_circular_dependencies** — Detect cycles in project or namespace dependency graphs - **check_architecture** — Enforce layering rules you supply (`forbid` and `allowOnly`) against the real semantic type graph rather than `using` directives; violations are grouped per boundary with a reference count and example sites - **get_complexity_metrics** — Cyclomatic complexity, cognitive complexity and max nesting depth per member (methods, constructors, properties, indexers, operators). Cyclomatic counts paths and starts at 1; cognitive measures how hard the code is to follow and starts at 0. `metric` picks which one the threshold and sort use — cognitive is the better refactoring-priority signal, cyclomatic the better test-budget one - **find_naming_violations** — Check .NET naming convention compliance - **find_async_violations** — Sync-over-async, `async void` misuse, missing awaits, fire-and-forget tasks; per-violation report with severity - **find_disposable_misuse** — `IDisposable`/`IAsyncDisposable` instances not wrapped in `using`/`await using`/returned/assigned to field; severity error/warning per violation. - **find_large_classes** — Find oversized types by member or line count - **find_god_objects** — Types combining high size with high cross-namespace coupling; sharper signal than raw size for SRP violations - **find_unused_symbols** — Dead code detection via reference analysis. Auto-filters test methods (xUnit/NUnit/MSTest), MCP tool entry points, source-generator output, MEF-composed services, and interop-laid-out fields; filter counts surface in `summary.filteredOut` - **get_project_health** — Composite audit aggregating 7 quality dimensions per project (complexity, large classes, naming, unused symbols, reflection, async violations, disposable misuse) with counts and top-N hotspots inline - **get_source_generators** — List source generators and their output per project - **get_generated_code** — Inspect generated source code from source generators - **inspect_external_assembly** — Browse types, members, and XML docs from closed-source NuGet packages and referenced assemblies - **peek_il** — Decompile any method to ilasm-style IL bytecode from closed-source or generated assemblies - **get_code_actions** — Discover available refactorings and fixes at any position (extract method, rename, inline variable, and more) - **apply_code_action** — Execute any Roslyn refactoring by title, with preview mode (returns a diff before writing to disk) - **rename_symbol** — Solution-wide safe rename of a type or member via Roslyn's Renamer, with preview mode, conflict reporting, and a freshness check against on-disk edits - **change_signature** — Add, remove, and reorder a method's parameters and rewrite every call site; handles named/optional arguments, `params` and extension methods, and reports the overrides and interface implementations it cascaded to - **list_solutions** — List all loaded solutions and which one is currently active - **set_active_solution** — Switch the active solution by partial name (all subsequent tools operate on it) - **load_solution** — Load an additional .sln/.slnx at runtime and make it the active solution - **unload_solution** — Unload a loaded solution to free memory - **rebuild_solution** — Force a full reload of the analyzed solution - **start_background_task** — Queue a long-running tool (currently `rebuild_solution`) to run in the background; returns a `taskId` to poll - **get_task_status** — Get the current
What people ask about roslyn-codelens-mcp
What is MarcelRoozekrans/roslyn-codelens-mcp?
+
MarcelRoozekrans/roslyn-codelens-mcp is mcp servers for the Claude AI ecosystem. Roslyn-based MCP server giving AI agents deep semantic understanding of .NET/C# codebases — 67 tools for navigation, call graphs, diagnostics & code fixes, safe refactoring, code-quality auditing, test intelligence, DI graphs, and IL/external-assembly inspection. It has 48 GitHub stars and its last recorded update is dated 2026-08-22.
How do I install roslyn-codelens-mcp?
+
You can install roslyn-codelens-mcp by cloning the repository (https://github.com/MarcelRoozekrans/roslyn-codelens-mcp) or following the README instructions on GitHub. ClaudeWave also provides quick install blocks on this page.
Is MarcelRoozekrans/roslyn-codelens-mcp safe to use?
+
Our security agent has analyzed MarcelRoozekrans/roslyn-codelens-mcp and assigned a Trust Score of 95/100 (tier: Verified). See the full breakdown of passed checks and flags on this page.
Who maintains MarcelRoozekrans/roslyn-codelens-mcp?
+
MarcelRoozekrans/roslyn-codelens-mcp is maintained by MarcelRoozekrans. The last recorded GitHub activity is dated 2026-08-22, with 1 open issues.
Are there alternatives to roslyn-codelens-mcp?
+
Yes. On ClaudeWave you can browse similar mcp servers at /categories/mcp, sorted by popularity or recent activity.
Deploy roslyn-codelens-mcp to your cloud
Ship this repo to production in minutes. Each platform spins up its own environment with editable env vars.
Maintain this repo? Add a badge to your README
Drop the badge into your GitHub README to show it's tracked on ClaudeWave. Each badge links back to this page and reflects the live Trust Score.
[](https://claudewave.com/repo/marcelroozekrans-roslyn-codelens-mcp)<a href="https://claudewave.com/repo/marcelroozekrans-roslyn-codelens-mcp"><img src="https://claudewave.com/api/badge/marcelroozekrans-roslyn-codelens-mcp" alt="Featured on ClaudeWave: MarcelRoozekrans/roslyn-codelens-mcp" width="320" height="64" /></a>More MCP Servers
Fair-code workflow automation platform with native AI capabilities. Combine visual building with custom code, self-host or cloud, 400+ integrations.
User-friendly AI Interface (Supports Ollama, OpenAI API, ...)
An open-source AI agent that brings the power of Gemini directly into your terminal.
Real-time global intelligence dashboard. AI-powered news aggregation, geopolitical monitoring, and infrastructure tracking in a unified situational awareness interface
The fastest path to AI-powered full stack observability, even for lean teams.
🕷️ An adaptive Web Scraping framework that handles everything from a single request to a full-scale crawl!