C#语言智能服务器

一个基于MCP协议的C#和XAML语言智能服务器,为AI助手提供代码分析、诊断和智能感知功能,连接LLM与.NET开发。

  • by HYMMA
  • C#
  • 本地部署
  • 23 星标
  • 更新于
在 GitHub 查看 HYMMA/csharp-lsp-mcp

使用说明

csharp lsp-mcp

MCP(模型上下文协议)服务器,为Claude等AI助手提供C#和XAML语言智能。它弥合了LLM和之间的差距。NET开发,通过标准化的MCP协议公开IntelliSense、诊断和代码分析。

特性

C#语言智能(通过csharp-ls)

  • 诊断 -实时获取编译器错误和警告
  • 悬停信息 -查看类型信息和文档
  • 智能感知完成 -获取上下文感知代码建议
  • 转到定义 -导航到符号定义
  • 查找引用 -查找符号的所有用法
  • 文件符号 -列出文件中的所有符号
  • 代码操作 -访问快速修复和重构
  • 重命名预览 -预览符号在整个工作区重命名
  • 停止/重新启动 -在重建之前,停止LSP服务器以释放文件锁

XAML分析(内置)

  • 验证 -检查XAML是否存在错误和问题
  • 绑定分析 -提取和分析数据绑定
  • 资源检查 -列出并验证资源引用
  • 名称发现 -查找所有x:Name声明
  • 结构可视化 -查看元素树层次结构
  • 绑定错误检测 -识别绑定问题
  • ViewModel生成 -从绑定生成ViewModel

先决条件

  1. .NET 8.0 SDK 或以后
  2. 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许可证获得许可-请参阅 许可证 文件以获取详细信息。

致谢

相关项目