mcpField
A
Amazingmcp — Mcp Server For .net / C# Codebases

Amazingmcp — Mcp Server For .net / C# Codebases

远程服务
github.com/remleo开发工具119 周前更新
代码仓库

关于 Amazingmcp — Mcp Server For .net / C# Codebases

Amazingmcp — Mcp Server For .net / C# Codebases 使用 Roslyn 语义模型分析 .NET 和 C# 代码库,并向 AI Agent 提供代码查询与架构工具。它支持实时内存编译和增量缓存,也能解析 NuGet 类型并反编译程序集中的类型。

主要功能

  1. 01搜索类型、成员及其用法
  2. 02读取大型 C# 文件的结构与指定实现
  3. 03通过 Roslyn 语义模型解析代码
  4. 04查看项目架构和依赖关系
  5. 05搜索并反编译 NuGet 类型
  6. 06文件变更后增量重新编译

适用场景

  1. 01在代码库中定位类型、成员和调用位置
  2. 02按需读取大型 C# 文件的相关实现
  3. 03梳理命名空间分组及项目依赖
  4. 04查看 NuGet 程序集类型的 C# 反编译结果

MCP 相关

该 MCP 服务向 MCP 客户端提供代码搜索、用法分析、文件读取、反编译和架构查询工具。客户端可通过 HTTP 连接默认运行于 http://localhost:7777 的服务。

配置

远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。

服务地址http://localhost:7777
一键复制安装命令
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。

工具

详细介绍

AmazingMCP — 面向 .NET / C# 代码库的 MCP 服务

NuGet License: MIT .NET 10

一个 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 启动。

命令行选项
选项默认值描述
--urlshttp://localhost:7777监听 URL
--Symbol:QueryOutputLineLimit100query_symbol 的最大输出行数
--ReadCs:ReadOutputMaxLength20000read_large_cs_file 的最大输出字符数
--ProjectDesign:DetailsOutputMaxLength30000get_project_design_details 的最大输出字符数
--ProjectDesign:DetailsXmlDocSummaryMaxLength2000get_project_design_details 中 XML 文档摘要的最大字符数
--QueryUsages:QueryMatchLimit200query_usages 的最大用法匹配数
--Diagnostics:IncludeExceptionDetailsfalse在工具错误响应中包含完整异常详情(用于诊断)
--HttpServerTransport:IdleTimeout7.00:00:00MCP 会话空闲超时时间——会话在无活动时保持活跃的时长(例如,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"]
    }
  }
}

文档

贡献

欢迎提交 PR 和问题。提交大型更改前,请先提出问题。

git clone https://github.com/remleo/AmazingMCP
cd AmazingMCP
dotnet build
dotnet test

许可证

MIT

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。