关于 Amazingmcp — Mcp Server For .net / C# Codebases
Amazingmcp — Mcp Server For .net / C# Codebases 使用 Roslyn 语义模型分析 .NET 和 C# 代码库,并向 AI Agent 提供代码查询与架构工具。它支持实时内存编译和增量缓存,也能解析 NuGet 类型并反编译程序集中的类型。
主要功能
- 01搜索类型、成员及其用法
- 02读取大型 C# 文件的结构与指定实现
- 03通过 Roslyn 语义模型解析代码
- 04查看项目架构和依赖关系
- 05搜索并反编译 NuGet 类型
- 06文件变更后增量重新编译
适用场景
- 01在代码库中定位类型、成员和调用位置
- 02按需读取大型 C# 文件的相关实现
- 03梳理命名空间分组及项目依赖
- 04查看 NuGet 程序集类型的 C# 反编译结果
MCP 相关
该 MCP 服务向 MCP 客户端提供代码搜索、用法分析、文件读取、反编译和架构查询工具。客户端可通过 HTTP 连接默认运行于 http://localhost:7777 的服务。
配置
远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。
服务地址
http://localhost:7777一键复制安装命令
Claude CodeTerminal
claude mcp add --transport http AmazingMCP http://localhost:7777Cursor.cursor/mcp.json
{"mcpServers":{"AmazingMCP":{"type":"http","url":"http://localhost:7777"}}}在 Cursor 中打开VS Code.vscode/mcp.json
{"servers":{"AmazingMCP":{"type":"http","url":"http://localhost:7777"}}}在 VS Code 中打开Claude Desktopclaude_desktop_config.json
{"mcpServers":{"AmazingMCP":{"type":"http","url":"http://localhost:7777"}}}Windsurf~/.codeium/windsurf/mcp_config.json
{"mcpServers":{"AmazingMCP":{"serverUrl":"http://localhost:7777"}}}命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。
工具
详细介绍
AmazingMCP — 面向 .NET / C# 代码库的 MCP 服务
一个 MCP 服务,通过 Roslyn 为 AI Agent 提供对 C# 代码库的深入理解,包括类型搜索、依赖关系图、用法分析和架构概览,所有操作均基于实时内存编译。
安装
dotnet tool install -g HoldMyCoolantMeatbag.AmazingMCP
需要 .NET 10 SDK。
MCP 工具
| 工具 | 描述 |
|---|---|
query_symbol | 在解决方案和 NuGet 包中查找类型、成员(方法、属性、字段)、扩展方法、常量和枚举值 |
get_type_details | 完整的类型信息:属性、方法、基类型、嵌套类型(包括 NuGet 类型) |
query_usages | 查找解决方案中某个类型的所有用法:方法调用、构造函数调用、属性/字段读写、泛型参数和约束、返回类型、参数类型、继承、nameof、typeof、is/as。支持谓词筛选和扫描范围控制 |
read_cs_file_digest | 适用于大型 .cs 文件(数百或数千行)的高效令牌入口:返回结构大纲——包含行号的类型和成员,不包含实现。请先使用此工具,再通过 read_large_cs_file 获取所需成员 |
read_large_cs_file | 按名称筛选,从 .cs 文件中读取指定成员的实现——在 read_cs_file_digest 之后使用,只加载相关内容,无需读取整个文件 |
decompile_type | 将 NuGet 程序集中的任意类型反编译为 C# 源码——无需外部工具,内置 ILSpy |
code_lens | 解析 .cs 文件任意行范围内的完全限定类型:局部变量、字段/属性类型、方法调用签名、对象创建和声明——全部基于 Roslyn 语义模型 |
get_project_design | 高层架构图:按命名空间分组的抽象及组间依赖关系 |
get_project_design_details | 查看指定命名空间中抽象和实现的详细信息(支持 * 通配符) |
功能
- 一个服务,支持任意数量的解决方案 — 启动一次后,每次调用均可指定任意项目;切换解决方案时无需重启。
- 实时内存编译 — 通过 MSBuild Workspaces 打开
.sln/.slnx并在内存中编译所有项目。所有工具均基于真实的 Roslyn 语义模型运行,而非文本搜索。 - 增量缓存 — 使用文件监视器缓存工作区。
.cs文件变更会触发增量重新编译;.csproj/.sln变更会使完整缓存失效。每个解决方案的首次调用较慢,之后的调用则会立即完成。 - 支持 NuGet — NuGet 类型会与源代码类型一同完整解析并可供搜索。
query_symbol、get_type_details和decompile_type可用于任何已引用的包。
用法
AmazingMCP <options>
# example:
AmazingMCP --urls=http://localhost:7777 --Symbol:QueryOutputLineLimit=50 --ReadCs:ReadOutputMaxLength=50000
# see all options:
AmazingMCP --help
服务默认在 http://localhost:7777 启动。
命令行选项
| 选项 | 默认值 | 描述 |
|---|---|---|
--urls | http://localhost:7777 | 监听 URL |
--Symbol:QueryOutputLineLimit | 100 | query_symbol 的最大输出行数 |
--ReadCs:ReadOutputMaxLength | 20000 | read_large_cs_file 的最大输出字符数 |
--ProjectDesign:DetailsOutputMaxLength | 30000 | get_project_design_details 的最大输出字符数 |
--ProjectDesign:DetailsXmlDocSummaryMaxLength | 2000 | get_project_design_details 中 XML 文档摘要的最大字符数 |
--QueryUsages:QueryMatchLimit | 200 | query_usages 的最大用法匹配数 |
--Diagnostics:IncludeExceptionDetails | false | 在工具错误响应中包含完整异常详情(用于诊断) |
--HttpServerTransport:IdleTimeout | 7.00:00:00 | MCP 会话空闲超时时间——会话在无活动时保持活跃的时长(例如,7.00:00:00 表示 7 天,2:00:00 表示 2 小时) |
--DisabledTools | (无) | 要禁用的工具名称列表,以逗号分隔(例如,code_lens,get_project_design) |
MCP 客户端配置
添加到 MCP 客户端配置中(Claude Desktop、JetBrains AI、Kiro 等):
{
"mcpServers": {
"AmazingMCP": {
"type": "http",
"url": "http://localhost:7777"
}
}
}
然后在终端中手动启动服务:
AmazingMCP --urls=http://localhost:7777 <other options>
或者添加启动器条目,让客户端自动启动服务:
{
"mcpServers": {
"AmazingMCP": {
"type": "http",
"url": "http://localhost:7777"
},
"AmazingMCP Launcher": {
"command": "AmazingMCP",
"args": ["--urls=http://localhost:7777"]
}
}
}
文档
- 更新日志
- QuerySymbol — 类型和成员搜索
- QueryUsages — 用法搜索
- CodeLens — 代码片段的类型解析
- FileStructure — 高效读取文件
- DecompileType — NuGet 程序集反编译
- ProjectDesign — 架构概览工具
- DependencyMap — 依赖关系图
贡献
欢迎提交 PR 和问题。提交大型更改前,请先提出问题。
git clone https://github.com/remleo/AmazingMCP
cd AmazingMCP
dotnet build
dotnet test
许可证
MIT
评论
支持 Markdown
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。