AmazingMCP — MCP Server for .NET / C# Codebases

Một máy chủ MCP cung cấp cho các tác nhân AI khả năng hiểu sâu về mã nguồn C# thông qua Roslyn — tìm kiếm kiểu, biểu đồ phụ thuộc, phân tích cách sử dụng và tổng quan kiến trúc, tất cả từ một bản biên dịch trực tiếp trong bộ nhớ.

Tài liệu

AmazingMCP — MCP Server for .NET / C# Codebases

NuGet License: MIT .NET 10

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.

Installation

dotnet tool install -g HoldMyCoolantMeatbag.AmazingMCP

Requires .NET 10 SDK.

MCP Tools

ToolDescription
query_symbolFind types, members (methods, properties, fields), extension methods, constants, and enum values across the solution and NuGet packages
get_type_detailsFull type info: properties, methods, base types, nested types (including NuGet)
query_usagesFind 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_digestToken-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_fileRead 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_typeDecompile any type from a NuGet assembly to C# source — no external tools required, ILSpy is built in
code_lensResolve 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_designHigh-level architecture map: abstraction groups by namespace and inter-group dependencies
get_project_design_detailsDetailed view of abstractions and implementations for specified namespaces (supports * wildcard)

Features

  • 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/.slnx via 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. .cs changes trigger incremental recompilation; .csproj/.sln changes 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, and decompile_type work on any referenced package.

Usage

AmazingMCP <options>

# example:
AmazingMCP --urls=http://localhost:7777 --Symbol:QueryOutputLineLimit=50 --ReadCs:ReadOutputMaxLength=50000

# see all options:
AmazingMCP --help

The server starts on http://localhost:7777 by default.

Command-line options

OptionDefaultDescription
--urlshttp://localhost:7777Listening URL
--Symbol:QueryOutputLineLimit100Max output lines for query_symbol
--ReadCs:ReadOutputMaxLength20000Max output characters for read_large_cs_file
--ProjectDesign:DetailsOutputMaxLength30000Max output characters for get_project_design_details
--ProjectDesign:DetailsXmlDocSummaryMaxLength2000Max XML doc summary characters in get_project_design_details
--QueryUsages:QueryMatchLimit200Max usage matches for query_usages
--Diagnostics:IncludeExceptionDetailsfalseInclude full exception details in tool error responses (for diagnostics)
--HttpServerTransport:IdleTimeout7.00:00:00MCP session idle timeout — how long a session is kept alive without activity (e.g. 7.00:00:00 for 7 days, 2:00:00 for 2 hours)
--DisabledTools(none)Comma-separated list of tool names to disable (e.g. code_lens,get_project_design)

MCP Client Configuration

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"]
    }
  }
}

Documentation

Contributing

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 test

License

MIT