.NET 类型信息 MCP 服务器
项目简介
.NET 类型信息 MCP 服务器是一个基于 Model Context Protocol (MCP) 构建的后端服务,旨在帮助 AI 编码助手理解和操作 .NET 代码库。它通过反射技术提取 .NET 项目中程序集、命名空间和类型的详细信息,并以结构化的方式提供给 AI 助手,从而辅助代码生成和智能提示。此外,服务器还集成了 NuGet 包搜索功能,方便 AI 助手查找和探索 NuGet 包的 API。
主要功能点
- 程序集浏览: 列出指定 .NET 项目引用的所有程序集名称。
- 命名空间浏览: 发现指定程序集中的所有命名空间。
- 类型浏览: 获取指定命名空间中类型的详细信息,包括类型名称、实现的接口、构造函数、方法、属性、字段和事件等。
- NuGet 包搜索: 在 nuget.org 上搜索 NuGet 包,支持关键词搜索、预发布版本和分页浏览。
- NuGet 包版本信息: 获取指定 NuGet 包的版本历史和每个版本的依赖信息。
- 结果过滤与分页: 所有浏览和搜索功能都支持使用通配符进行结果过滤和分页查看,方便处理大型项目和海量数据。
安装步骤
- 克隆仓库:
git clone https://github.com/V0v1kkk/DotNetMetadataMcpServer.git cd DotNetMetadataMcpServer - 构建项目:
dotnet build -c Release - 发布项目:
将 '<runtime-identifier>' 替换为你的目标操作系统标识符,例如 'win-x64' (Windows 64位), 'linux-x64' (Linux 64位) 或 'osx-x64' (macOS 64位)。dotnet publish -c Release -r <runtime-identifier> --self-contained false
服务器配置
要将 .NET 类型信息 MCP 服务器配置到 MCP 客户端(如 AI 编码助手)中,需要在 MCP 客户端的配置文件中添加 server 配置。以下是一个配置示例,你需要根据实际情况修改 'command' 和 'args' 字段:
{ "mcpServers": { "dotnet-types-explorer": { // 服务器名称,可以自定义,用于在客户端中引用 "command": "/path/to/DotNetMetadataMcpServer", // **[请替换为实际路径]** DotNetMetadataMcpServer 可执行文件的绝对路径 "args": [ "--homeEnvVariable", "/home/user" ], // **[请替换为实际路径]** 你的用户 Home 目录的路径,服务器需要访问该目录下的 .NET 项目 "disabled": false, // 设置为 true 禁用此服务器,设置为 false 启用 "alwaysAllow": [], "timeout": 300 // 请求超时时间,单位秒 } } }
基本使用方法
配置完成后,MCP 客户端即可通过以下工具 (Tools) 与服务器交互,获取 .NET 项目的元数据:
- ReferencedAssembliesExplorer: 输入参数为 '.NET 项目文件绝对路径',返回项目引用的程序集名称列表。
- NamespacesExplorer: 输入参数为 '.NET 项目文件绝对路径' 和 '程序集名称列表 (可选)',返回指定程序集或所有程序集中的命名空间列表。
- NamespaceTypes: 输入参数为 '.NET 项目文件绝对路径' 和 '命名空间列表 (可选)',返回指定命名空间或所有命名空间中的类型详细信息。
- NuGetPackageSearch: 输入参数为 '搜索关键词',返回 NuGet 包搜索结果。
- NuGetPackageVersions: 输入参数为 'NuGet 包 ID',返回指定 NuGet 包的版本信息。
AI 编码助手可以通过调用这些工具,并根据工具的输入参数描述构造 JSON 请求,发送给 MCP 服务器,从而获取所需的 .NET 代码库信息。
使用限制
- 构建项目: 使用类型信息浏览工具前,请务必先构建你的 .NET 项目,确保服务器能够访问到已编译的程序集文件。
- 单项目分析: 服务器仅分析指定的单个 .NET 项目及其 NuGet 依赖,不会自动分析解决方案中的多个项目之间的引用关系。
信息
分类
开发者工具