An MCP server that gives AI agents deep understanding of C# codebases via Roslyn — type search, dependency graphs, usage analysis, and architecture overviews, all from a live in-memory compilation.
dotnet tool install -g HoldMyCoolantMeatbag.AmazingMCPRequires .NET 10 SDK.
| Tool | Description |
|---|---|
query_symbol |
Find types, members (methods, properties, fields), extension methods, constants, and enum values across the solution and NuGet packages |
get_type_details |
Full type info: properties, methods, base types, nested types (including NuGet) |
query_usages |
Find all usages of a type across the solution: method calls, constructor calls, property/field read and write, generic arguments and constraints, return types, parameter types, inheritance, nameof, typeof, is/as. Supports predicate filtering and scan scope control |
read_cs_file_digest |
Token-efficient entry point for large .cs files (hundreds or thousands of lines): returns a structural outline — types and members with line numbers, no implementations. Use this first, then fetch only the members you need with read_large_cs_file |
read_large_cs_file |
Read specific member implementations from a .cs file by name filter — use after read_cs_file_digest to load only what's relevant instead of the entire file |
decompile_type |
Decompile any type from a NuGet assembly to C# source — no external tools required, ILSpy is built in |
code_lens |
Resolve fully-qualified types for any line range in a .cs file: local variables, field/property types, method call signatures, object creations, and declarations — all from the Roslyn semantic model |
get_project_design |
High-level architecture map: abstraction groups by namespace and inter-group dependencies |
get_project_design_details |
Detailed view of abstractions and implementations for specified namespaces (supports * wildcard) |
- One server, any number of solutions — start it once and point it at any project per call, no restart needed when switching between solutions.
- Live in-memory compilation — opens
.sln/.slnxvia MSBuild Workspaces and compiles all projects in memory. All tools run against a real Roslyn semantic model, not text search. - Incremental cache — workspace is cached with file watchers.
.cschanges trigger incremental recompilation;.csproj/.slnchanges invalidate the full cache. First call per solution is slow; subsequent calls are instant. - NuGet-aware — NuGet types are fully resolved and searchable alongside source types.
query_symbol,get_type_details, anddecompile_typework on any referenced package.
AmazingMCP <options>
# example:
AmazingMCP --urls=http://localhost:7777 --Symbol:QueryOutputLineLimit=50 --ReadCs:ReadOutputMaxLength=50000
# see all options:
AmazingMCP --helpThe server starts on http://localhost:7777 by default.
| Option | Default | Description |
|---|---|---|
--urls |
http://localhost:7777 |
Listening URL |
--Symbol:QueryOutputLineLimit |
100 |
Max output lines for query_symbol |
--ReadCs:ReadOutputMaxLength |
20000 |
Max output characters for read_large_cs_file |
--ProjectDesign:DetailsOutputMaxLength |
30000 |
Max output characters for get_project_design_details |
--ProjectDesign:DetailsXmlDocSummaryMaxLength |
2000 |
Max XML doc summary characters in get_project_design_details |
--QueryUsages:QueryMatchLimit |
200 |
Max usage matches for query_usages |
--Diagnostics:IncludeExceptionDetails |
false |
Include full exception details in tool error responses (for diagnostics) |
--DisabledTools |
(none) | Comma-separated list of tool names to disable (e.g. code_lens,get_project_design) |
Add to your MCP client config (Claude Desktop, JetBrains AI, Kiro, etc.):
{
"mcpServers": {
"AmazingMCP": {
"type": "http",
"url": "http://localhost:7777"
}
}
}Then start the server manually in your terminal:
AmazingMCP --urls=http://localhost:7777 <other options>Or add a launcher entry so the client starts the server automatically:
{
"mcpServers": {
"AmazingMCP": {
"type": "http",
"url": "http://localhost:7777"
},
"AmazingMCP Launcher": {
"command": "AmazingMCP",
"args": ["--urls=http://localhost:7777"]
}
}
}- QuerySymbol — type and member search
- QueryUsages — usage search
- CodeLens — type resolution for a code span
- FileStructure — token-efficient file reading
- DecompileType — NuGet assembly decompilation
- ProjectDesign — architecture overview tool
- DependencyMap — dependency map
PRs and issues are welcome. Please open an issue before submitting a large change.
git clone https://github.com/remleo/AmazingMCP
cd AmazingMCP
dotnet build
dotnet testMIT