Roslyn MCP服务器
  
一个模型上下文协议(MCP)stdio服务器,将Microsoft Roslyn SDK功能暴露给Claude Code等AI编码助手。为提供语义代码分析、导航、重构和诊断。NET/C#代码库。
18+强大的工具 包括影响分析、安全重构、死代码检测、自动代码修复、批处理操作和依赖关系可视化!
特性
- 语义分析:100%编译器准确的代码理解
- 跨解决方案导航:查找引用、实现、调用者和类型层次结构
- 影响分析:在重构之前,查看哪些代码调用了您的方法
- 安全重构:在预览模式下跨解决方案重命名符号
- 死码检测:查找未使用的类型、方法和字段
- 实时诊断:获取编译错误和警告
- 符号搜索:在整个解决方案中搜索类型、方法、属性
- 界面提取:从类生成DI/可测试性接口
- 依赖关系可视化:绘制项目依赖关系图并检测周期
- 代码组织:组织使用、获取方法重载等
安装
先决条件
- .NET 8.0 SDK或运行时
构建和安装
# Build the project
dotnet build -c Release
# Pack as global tool
dotnet pack -c Release
# Install globally
dotnet tool install --global --add-source ./src/bin/Release dotnet-roslyn-mcp
# Verify installation
dotnet-roslyn-mcp --version配置
使用Claude Code命令行界面(推荐)
安装全局工具后,使用CLI将其添加到Claude Code中:
claude mcp add --transport stdio roslyn \
--env DOTNET_SOLUTION_PATH="/path/to/your/solution.sln" \
-- dotnet-roslyn-mcp或者使用其他环境变量:
claude mcp add --transport stdio roslyn \
--env DOTNET_SOLUTION_PATH="/path/to/your/solution.sln" \
--env ROSLYN_LOG_LEVEL="Information" \
--env ROSLYN_MAX_DIAGNOSTICS="100" \
-- dotnet-roslyn-mcp窗户:
claude mcp add --transport stdio roslyn ^
--env DOTNET_SOLUTION_PATH="C:\path\to\your\solution.sln" ^
--env ROSLYN_LOG_LEVEL="Information" ^
--env ROSLYN_MAX_DIAGNOSTICS="100" ^
-- dotnet-roslyn-mcp源代码运行(开发)
如果您想直接从源代码运行MCP服务器,而无需全局安装:
Linux/macOS:
claude mcp add --transport stdio roslyn \
--env DOTNET_SOLUTION_PATH="/path/to/your/solution.sln" \
-- dotnet run --project /path/to/vs-ide-mcp/src/RoslynMcp.csproj窗户:
claude mcp add --transport stdio roslyn ^
--env DOTNET_SOLUTION_PATH="C:\path\to\your\solution.sln" ^
-- cmd /c dotnet run --project C:\path\to\vs-ide-mcp\src\RoslynMcp.csproj手动配置
或者,创建一个 .claude/mcp-spec.json 解决方案根目录中的文件:
{
"mcpServers": {
"roslyn": {
"command": "dotnet-roslyn-mcp",
"env": {
"DOTNET_SOLUTION_PATH": "${workspaceFolder}/YourSolution.sln"
}
}
}
}环境变量
| 变量 | 默认值 | 描述 |
|---|---|---|
DOTNET_SOLUTION_PATH | (必需) | .sln文件或包含它的目录的路径 |
ROSLYN_LOG_LEVEL | 信息 | 日志记录级别(调试、信息、警告、错误) |
ROSLYN_ENABLE_SEMANTIC_CACHE | true | 启用文档缓存 |
ROSLYN_MAX_DIAGNOSTICS | 100 | 返回的最大诊断数 |
ROSLYN_INCLUDE_HIDDEN_DIAGNOSTICS | false | 包括隐藏的严重性诊断 |
ROSLYN_PARALLEL_ANALYSIS | true | 启用并行项目分析 |
ROSLYN_TIMEOUT_SECONDS | 30 | 操作超时(大型解决方案增加) |
可用工具(共18个)
核心与健康
- 罗斯林:健康检查 -检查服务器运行状况和工作区状态
- roslyn:加载解决方案 -加载a。NET分析解决方案
- 罗斯林:获取符号信息 -获取符号的详细语义信息
导航
- 罗斯林:查找引用 -查找对某个符号的所有引用
- 罗斯林:查找实现 -查找接口/抽象类的所有实现
- \**罗斯林:寻找来电者* -查找调用特定方法的所有方法(影响分析)
分析与发现
- roslyn:类型层次结构 -获取类型的继承层次结构
- 罗斯林:搜索_符号 -在解决方案中按名称搜索符号
- 罗斯林:不可知论 -获取编译器错误和警告
- 罗斯林:查找未使用代码 -查找死代码(未使用的类型、方法、字段)
- 罗斯林:依赖图 -可视化项目依赖关系并检测周期
重构
- 罗斯林:重命名符号 -通过预览跨解决方案安全重命名符号
- 罗斯林:提取接口 -从类生成DI/可测试性接口
- 罗斯林:组织起来 -使用指令对未使用的内容进行排序和删除
代码修复和结构
- 罗斯林:get_code_fixes -获取可用的诊断代码修复
- 罗斯林:工程结构 -获取解决方案/项目结构
- roslyn:获取方法过载 -获取方法的所有重载
- 罗斯林:娱乐会员 -获取包含方法/属性/类信息
示例提示
以下是配置MCP服务器后,您可以使用Claude Code的一些示例提示:
影响分析:
"Find all callers of the ProcessPayment method"
"What code will break if I change this method signature?"
"Who uses the CustomerRepository?"安全重构:
"Preview renaming ICustomerRepository to IUserRepository"
"Safely rename ProcessPayment to HandlePayment across the solution"死码检测:
"Find all unused code in the Application project"
"What private methods are never called?"
"Show me unused classes in the Domain layer"界面提取:
"Extract an interface from PaymentService class"
"Generate IPaymentService interface with ProcessPayment and RefundPayment methods"依赖关系可视化:
"Show me the project dependency graph"
"Are there any circular dependencies?"
"Generate a Mermaid diagram of project dependencies"查找参考文献:
"Find all references to the ProcessPayment method"
"Where is CustomerService being used?"探索类型层次结构:
"What classes implement ICustomerRepository?"
"Show me the type hierarchy for CustomerService"
"What interfaces does PaymentProcessor implement?"代码导航:
"Show me all the overloads of ProcessOrder"
"What's the containing class for this method?"
"Search for all methods containing 'Customer'"诊断:
"Get all compilation errors in the solution"
"Show me warnings in CustomerService.cs"
"What errors are in the Payment project?"建筑
┌─────────────────────────────────────┐
│ Claude Code (MCP Client) │
└───────────────┬─────────────────────┘
│ stdin/stdout (JSON-RPC 2.0)
┌───────────────▼─────────────────────┐
│ McpServer.cs │
│ - Protocol handling │
│ - Tool registration │
│ - Request routing │
└───────────────┬─────────────────────┘
│
┌───────────────▼─────────────────────┐
│ RoslynService.cs │
│ - Solution management │
│ - Semantic analysis │
│ - Symbol resolution │
└───────────────┬─────────────────────┘
│
┌───────────────▼─────────────────────┐
│ Microsoft.CodeAnalysis (Roslyn) │
│ - MSBuildWorkspace │
│ - SemanticModel │
│ - SymbolFinder │
└─────────────────────────────────────┘许可证
麻省理工学院许可证-版权所有(c)2025 Brendan Kowitz
看 许可证 文件以获取详细信息。
