Roslyn MCP服务器
C#MCP(模型上下文协议)服务器,与微软的Roslyn编译器平台集成,为Claude Desktop提供C#代码库的代码分析和导航功能。
特性
- 通配符符号搜索 -使用模式匹配查找类、方法和属性(
*Service,Get*User等等) - 参考跟踪 -查找整个解决方案中符号的所有用法
- 符号信息 -获取有关类型、方法、属性等的详细信息
- 相关性分析 -分析项目依赖关系和命名空间使用模式
- 代码复杂性分析 -使用圈复杂度度量识别高复杂度方法
- 性能优化 -大型代码库的多级缓存和增量分析
- 安全 -输入验证和路径净化
先决条件
- .NET 8.0 SDK或更高版本
- Visual Studio 2022或VS Code(建议用于开发)
- Claude桌面应用程序
安装
- 克隆或下载项目
git clone https://github.com/carquiza/RoslynMCP.git
cd RoslynMCP/RoslynMcpServer- 还原NuGet包
dotnet restore- 构建项目
dotnet build- 测试服务器 (可选)
dotnet run快速设置
视窗
运行PowerShell安装脚本:
.\setup.ps1Linux/macOS
运行安装测试:
./test-installation.shClaude桌面配置
要将此MCP服务器连接到Claude Desktop,您需要修改Claude Desktop配置文件:
配置文件位置
- 视窗:
%APPDATA%\Claude\claude_desktop_config.json - macOS:
~/Library/Application Support/Claude/claude_desktop_config.json
配置内容
将以下内容添加到您的 claude_desktop_config.json 文件:
{
"mcpServers": {
"roslyn-code-navigator": {
"command": "dotnet",
"args": [
"run",
"--project",
"/path/to/RoslynMCP/RoslynMcpServer"
],
"env": {
"DOTNET_ENVIRONMENT": "Production",
"LOG_LEVEL": "Information"
}
}
}
}重要:替换 /path/to/RoslynMCP/RoslynMcpServer 使用项目目录的实际绝对路径。
用法
配置后,重新启动Claude Desktop。您应该看到Roslyn MCP服务器出现在可用的工具中。以下是一些示例查询:
搜索符号
Search for all classes ending with 'Service' in my solution at C:\MyProject\MyProject.sln查找引用
Find all references to the UserRepository class in C:\MyProject\MyProject.sln获取符号信息
Get information about the CalculateTotal method in C:\MyProject\MyProject.sln分析依赖关系
Analyze dependencies for the solution at C:\MyProject\MyProject.sln代码复杂性分析
Find methods with complexity higher than 7 in C:\MyProject\MyProject.sln可用工具
- 搜索符号 -使用通配符模式搜索符号
- 查找引用 -查找特定符号的所有引用
- GetSymbolInfo -获取有关符号的详细信息
- 分析依赖关系 -分析项目依赖关系和使用模式
- 分析代码复杂性 -识别高复杂度的方法
开发和测试
使用MCP检查器
对于开发和测试,您可以使用MCP检查器:
# Install the inspector
npm install -g @modelcontextprotocol/inspector
# Test your server
npx @modelcontextprotocol/inspector dotnet run --project ./RoslynMcpServer建筑
该服务器采用模块化架构,具有:
- MCP服务器层:处理与Claude Desktop的通信
- Roslyn集成层:管理工作区和编译
- 搜索引擎层:实现符号搜索和分析
- 多级缓存:大型代码库的性能优化
- 安全层:输入验证和净化
许可证
此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。
作者
克里斯托弗·阿尔奎扎
贡献
欢迎投稿!请随时提交拉取请求。
