dotnet-claude-kit Roslyn MCP 服务器实现
使用说明(简要概览)
-
项目简介
- 该仓库实现了一个基于 Model Context Protocol (MCP) 的 Roslyn MCP 服务器,整合 Roslyn 分析能力、MCP 工具曝光,以及 Claude Code 等客户端的上下文服务能力,便于 LLM 客户端在对 .NET 项目进行理解、分析和交互时获得结构化的代码信息和外部功能调用支持。
- 服务器核心通过 .mcp.json 配置在启动时注册,并在启动后自动加载 Roslyn 工作区,暴露多组工具(如查 symbol、获取依赖、代码病害检测、公共 API、类型层级、依赖图等)给 MCP 客户端使用。
-
主要功能点
- Roslyn MCP 服务端:基于 Roslyn 实现的符号查找、类型层级、引用跟踪、依赖图、项目结构等查询能力。
- MCP 工具集合:超过若干工具,如 get_symbol_detail、find_symbol、get_type_hierarchy、get_project_graph、find_dead_code、find_implementations、find_overrides、find_callers、find_references、get_public_api、get_diagnostics、get_dependency_graph 等,全部以 MCP 工具形式暴露。
- 安全与治理:包含若干检测器(异步 void、同步等待、直接创建 HttpClient、DateTime 使用、日志插值、取消令牌缺失等),可在代码库级别进行静态分析。
- 支持多传输协议:使用标准输入输出(stdio)作为 MCP 传输,便于与 Claude Code 客户端进行 JSON-RPC 通信。
-
安装步骤
- 环境要求:请使用支持 .NET 10 的开发环境,确保安装了所需的 .NET 运行时和开发工具链。
- 构建与运行(概览性步骤,实际路径以本地环境为准):
- 获取并编译本仓库中的 Roslyn MCP 服务器代码,生成可执行的服务器组件。
- 启动服务器,使其通过标准输入输出(stdio)与 MCP 客户端进行通信。服务器在启动时会根据 .mcp.json 完成注册和暴露工具。
- 与 Claude Code 集成:
- 通过 Claude Code 插件市场安装 dotnet-claude-kit 插件,或在本地开发时按照插件目录加载本 MCP 服务器实现。
- 在 Claude Code 中将服务器通过 MCP 的连接方式接入(标准输入输出模式)。
- 运行时注意事项:
- 服务器在启动后会自动尝试加载解决方案并对外暴露工具接口,若需要自动加载解决方案,请确保提供正确的解决方案路径(或通过 MCP roots 发现机制)。
- 通过 MCP 客户端可对服务器发起读取资源、执行工具、获取提示等请求,并接收结构化的 JSON 响应。
-
基本使用方法
- 连接方式:通过 MCP 客户端以 JSON-RPC 的形式与服务器进行通信,发送请求并接收响应。
- 常用操作(概览):
- 请求获取符号信息(Get Symbol Detail、Find Symbol 等)。
- 请求获取类型层级、引用、依赖关系、项目结构等。
- 使用 Get Public API、Get Diagnostics 等工具进行静态分析与质量检查。
- 通过 GetTestCoverageMap、FindDeadCode 等辅助工具评估代码覆盖率与死代码。
- 注意:具体的请求格式和响应结构遵循 MCP 工具定义与 ToolResponses,以简化的 JSON 对象传输。