csharp lsp-mcp
  ](https://www.nuget.org/packages/CSharpLspMcp)    ](https://github.com/HYMMA/csharp-lsp-mcp/releases)
MCP(模型上下文协议)服务器,为Claude等AI助手提供C#和XAML语言智能。它弥合了LLM和之间的差距。NET开发,通过标准化的MCP协议公开IntelliSense、诊断和代码分析。
特性
C#语言智能(通过csharp-ls)
- 诊断 -实时获取编译器错误和警告
- 悬停信息 -查看类型信息和文档
- 智能感知完成 -获取上下文感知代码建议
- 转到定义 -导航到符号定义
- 查找引用 -查找符号的所有用法
- 文件符号 -列出文件中的所有符号
- 代码操作 -访问快速修复和重构
- 重命名预览 -预览符号在整个工作区重命名
- 停止/重新启动 -在重建之前,停止LSP服务器以释放文件锁
XAML分析(内置)
- 验证 -检查XAML是否存在错误和问题
- 绑定分析 -提取和分析数据绑定
- 资源检查 -列出并验证资源引用
- 名称发现 -查找所有x:Name声明
- 结构可视化 -查看元素树层次结构
- 绑定错误检测 -识别绑定问题
- ViewModel生成 -从绑定生成ViewModel
先决条件
- .NET 8.0 SDK 或以后
- csharp ls -C#语言服务器
全局安装csharp ls:
dotnet tool install --global csharp-ls安装
来源
git clone https://github.com/HYMMA/csharp-lsp-mcp.git
cd csharp-lsp-mcp/csharp-lsp-mcp/src/CSharpLspMcp
dotnet build -c Release来自NuGet(即将推出)
dotnet tool install --global CSharpLspMcp配置
克劳德代码
添加到您的 ~/.claude.json:
{
"mcpServers": {
"csharp": {
"command": "path/to/csharp-lsp-mcp.exe"
}
}
}或者,如果作为全局工具安装:
{
"mcpServers": {
"csharp": {
"command": "csharp-lsp-mcp"
}
}
}克劳德桌面版
添加到您的Claude Desktop配置中:
{
"mcpServers": {
"csharp": {
"command": "csharp-lsp-mcp",
"args": []
}
}
}用法
配置后,MCP服务器为您的AI助手提供以下工具:
设置工作区
在使用C#工具之前,请设置工作区目录:
Use csharp_set_workspace with path: "C:/path/to/your/solution"停止LSP以进行重建
LSP服务器保存项目DLL上的文件锁。要重建项目,请先停止服务器:
Stop the C# LSP server so I can rebuild重建后,致电 csharp_set_workspace 再次重新启动它。通过切换工作区 csharp_set_workspace 自动重启服务器。
交互示例
获取文件的诊断信息:
Check for errors in Program.cs获取类型信息:
What type is the variable at line 15, column 10 in MyClass.cs?查找所有参考文献:
Find all usages of the GetCustomer method分析XAML绑定:
Show me all data bindings in MainWindow.xaml可用工具
| 工具 | 说明 |
|---|---|
csharp_set_workspace | 设置解决方案/项目目录(如果工作区更改,则重新启动LSP) |
csharp_stop | 停止LSP服务器以释放文件锁以进行重建 |
csharp_diagnostics | 获取编译器错误和警告 |
csharp_hover | 获取某个职位的类型信息 |
csharp_completions | 获取智能感知完成 |
csharp_definition | 转到定义 |
csharp_references | 查找所有参考文献 |
csharp_symbols | 获取文档符号 |
csharp_code_actions | 获取可用的代码操作 |
csharp_rename | 预览符号重命名 |
xaml_validate | 验证XAML是否存在错误 |
xaml_bindings | 提取数据绑定 |
xaml_resources | 列出资源引用 |
xaml_names | 列表x:名称声明 |
xaml_structure | 显示元素树 |
xaml_find_binding_errors | 查找绑定错误 |
xaml_extract_viewmodel | 从绑定生成ViewModel |
命令行选项
csharp-lsp-mcp [OPTIONS]
OPTIONS:
-h, --help Show help message
-v, --version Show version information
-V, --verbose Enable verbose logging (to stderr)
ENVIRONMENT VARIABLES:
MCP_DEBUG=1 Enable trace-level logging建筑
┌─────────────────┐ MCP Protocol ┌──────────────────┐
│ Claude / LLM │◄────────────────────►│ csharp-lsp-mcp │
└─────────────────┘ └────────┬─────────┘
│
┌──────────────┴──────────────┐
│ │
┌─────▼─────┐ ┌───────▼───────┐
│ csharp-ls │ │ XAML Parser │
│ (LSP) │ │ (built-in) │
└─────┬─────┘ └───────────────┘
│
┌─────▼─────┐
│ Roslyn │
│ Compiler │
└───────────┘从源头构建
# Clone the repository
git clone https://github.com/HYMMA/csharp-lsp-mcp.git
cd csharp-lsp-mcp
# Build
cd csharp-lsp-mcp/src/CSharpLspMcp
dotnet build -c Release
# Run tests (if available)
dotnet test
# Create a release build
dotnet publish -c Release -o ./publish贡献
我们欢迎捐款!请参阅 贡献.md 作为指导方针。
更新日志
看 更改日志.md 对于一段变化的历史。
许可证
此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。
致谢
- 模型上下文协议 -协议规范
- csharp ls -C#语言服务器
- 微软MCP C#SDK -MCP官方C#SDK
