Token导航 LogoToken导航TokenDH.com
C Sharper MCP logo
开发工具未说明官方级别未说明来源级核验

C Sharper MCP

MCP Server

一个基于Roslyn和ILSpy的MCP服务器,为LLMs提供C#代码的语义理解功能,包括编译器诊断、符号导航、DLL反编译和代码操作。

工具数

2

提示词数

0

GitHub Stars

1

资源数

0
C#Claude开发工具ClaudeCursor

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

diskodan

提供方

diskodan

最后核验

2026/5/17 20:20

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

详细介绍

CSharperMcp

一个MCP(模型上下文协议)服务器,为C#代码提供类似LLMs IDE的语义理解。停止grepping文件和幻觉代码结构——使用Roslyn和ILSpy提供真正的编译器诊断、符号导航、查找引用、反编译DLL和代码操作。

为什么存在

目前的AI编码工具(Claude Code、Cursor)缺乏C#语言服务器集成。没有它,LLMs就会恢复文件和暴力反向工程代码结构。这很慢,缺少语义上下文,对于DLL中的代码来说完全失败。此服务器通过包装Roslyn API和ICSharpCode来修复这个问题。分解器。

特性

  • 工作空间管理:加载和分析C#解决方案和项目
  • 诊断:获取编译器错误、警告和分析器消息
  • 符号智能:导航定义、查找引用、检查类型
  • DLL反思:解压缩并探索第三方程序集和NuGet包
  • 代码操作:应用重构和快速修复

______________________________________________________________________

安装

服务器以分布式方式分发。NET全局工具。使用 dnx 无需显式安装即可运行它:

# Run directly via dnx (no installation needed)
dnx CSharperMcp

# Or install globally
dotnet tool install --global CSharperMcp

# Run after installing
csharper-mcp

需求

  • .NET 10.0 SDK或更高版本
  • MSBuild (通过Microsoft.Build.Locator自动定位)

______________________________________________________________________

配置

使用Claude代码

添加到您的项目 .mcp.json 或您的全局MCP配置:

{
  "mcpServers": {
    "csharp-er-mcp": {
      "type": "stdio",
      "command": "dnx",
      "args": ["--yes", "CSharperMcp", "--workspace-from-cwd"]
    }
  }
}

推荐: 使用 --workspace-from-cwd 它自动使用当前工作目录。这允许该工具全局安装,并在所有C#项目中工作,而无需对每个项目进行配置。

备选方案: 如果需要指定显式的工作区路径,请使用 --workspace /some/folder:

{
  "mcpServers": {
    "csharp-er-mcp": {
      "type": "stdio",
      "command": "dnx",
      "args": ["--yes", "CSharperMcp", "--workspace", "/path/to/your/csharp/project"]
    }
  }
}

注: 可变膨胀,如 "${workspaceFolder}" 与Claude Code的全局工具安装不可靠,这就是为什么 --workspace-from-cwd 是推荐的。

与光标一起使用

推荐: 使用 --workspace-from-cwd 适用于所有项目的全局安装:

{
  "mcpServers": {
    "csharp-er-mcp": {
      "command": "dnx",
      "args": ["--yes", "CSharperMcp", "--workspace-from-cwd"]
    }
  }
}

备选方案: 如果需要指定显式的工作区路径,可以使用 ${workspaceFolder} 变量扩展(这在Cursor中工作):

{
  "mcpServers": {
    "csharp-er-mcp": {
      "command": "dnx",
      "args": ["--yes", "CSharperMcp", "--workspace", "${workspaceFolder}"]
    }
  }
}

其他MCP客户端

dnx --yes CSharperMcp --workspace /path/to/your/project

工作区自动初始化

服务器支持两种在启动时自动初始化工作区的方法:

--workspace -指定要初始化的显式路径:

dnx --yes CSharperMcp --workspace /path/to/your/project

--workspace-from-cwd -使用当前工作目录:

dnx --yes CSharperMcp --workspace-from-cwd

这两个选项都将:

  1. 寻找 .sln 文件(首选一个匹配的目录名,否则为最大)
  2. 退回到 .csproj 如果找不到解决方案,则返回文件
  3. 加载工作区并立即提供工具
  4. 禁用 initialize_workspace 工具(重新启动服务器以更改工作区)

没有任何参数:你必须打电话给 initialize_workspace 连接后手动工具。

使用YAML进行高级配置

您可以使用YAML配置文件自定义服务器行为和工具描述。服务器支持分层配置合并:

配置文件位置 (后面的文件会覆盖前面的文件):

  1. ~/.config/csharp-er-mcp.yml -用户全局首选项(可选)
  2. /.config/csharp-er-mcp.yml -项目特定配置(可选)

配置示例:

# Server configuration (optional - has defaults)
mcp:
  serverInstructions: "Custom instructions for the MCP server..."

# Tool descriptions (optional)
tools:
  initialize_workspace:
    description: "Custom description here..."
  get_diagnostics:
  some_tool_to_hide:
    isEnabled: false # Tool will be filtered out from MCP client

特征:

  • 覆盖发送给MCP客户端的服务器指令
  • 自定义单个工具描述
  • 通过以下方式禁用特定工具 isEnabled: false
  • 配置合并:用户配置→ 项目配置→ 命令行覆盖

______________________________________________________________________

可用的MCP工具

基础工具

initialize_workspace

从路径加载C#解决方案或项目。

输入:

{
  "path": "/absolute/path/to/solution/or/project/or/directory"
}

退货: 项目计数、解决方案路径、任何加载错误。

注: 禁用时 --workspace--workspace-from-cwd 提供。

______________________________________________________________________

get_diagnostics

获取编译器错误、警告和分析器消息。

输入:

{
  "file": "/path/to/file.cs", // Optional: filter by file
  "startLine": 10, // Optional: filter by line range
  "endLine": 50, // Optional: filter by line range
  "severity": "Error" // Optional: Error|Warning|Info|Hidden
}

退货: 诊断阵列,包括:

  • 诊断ID(例如。, CS0103)
  • 严重性(错误、警告、信息、隐藏)
  • 消息
  • 文件路径、行、列、结束行、结束列
  • hasFix boolean(代码操作是否可以修复此问题)

没有争论:返回整个工作区的诊断结果。

______________________________________________________________________

符号智能工具(即将推出)

get_symbol_info

在某个位置或通过完全限定名获取类型信息。

find_symbol_usages

在工作空间中查找对符号的所有引用。

get_definition_location

导航到符号的定义(在工作区或DLL元数据中)。

get_type_members

获取所有成员的完整类型定义(针对DLL类型进行反编译)。

______________________________________________________________________

代码操作工具(即将推出)

get_code_actions

在某个位置获取可用的重构和快速修复。

apply_code_action

执行代码操作(应用前可选择预览)。

______________________________________________________________________

搜索和导航工具(即将推出)

search_symbols

按名称模式查找符号(支持camelCase匹配)。

get_document_symbols

获取文件符号的层次轮廓。

______________________________________________________________________

扩展方法(特别功能,即将推出)

get_extension_methods

查找给定类型的所有可用扩展方法(扫描所有引用的程序集)。

______________________________________________________________________

使用示例

CLAUDE.md 有关如何执行以下操作的综合示例:

  • 初始化工作区并修复编译器错误
  • 浏览符号并查找用法
  • 内省NuGet包代码(反编译的DLL)
  • 使用预览应用重构
  • 发现扩展方法

______________________________________________________________________

发展

先决条件

  • .NET 10.0 SDK
  • MSBuild(自动定位)

构建命令

# Restore dependencies
dotnet restore

# Build everything
dotnet build

# Run the server locally
dotnet run --project src/CSharperMcp.Server

# Run all tests
dotnet test

# Run only unit tests (fast)
dotnet test tests/CSharperMcp.Server.UnitTests

# Run only integration tests (slower, multi-process)
dotnet test tests/CSharperMcp.Server.IntegrationTests

构建NuGet包

# Build the package
dotnet pack src/CSharperMcp.Server/CSharperMcp.Server.csproj -c Release -o ./artifacts

# Test locally before publishing
dotnet tool install --global --add-source ./artifacts CSharperMcp

NUGET-PUBLISH.md 用于发布说明。

______________________________________________________________________

项目结构

csharp-er-mcp/
├── Directory.Build.props              # Shared build configuration
├── Directory.Packages.props           # Central package version management
├── CSharperMcp.sln                    # Solution file
├── src/
│   └── CSharperMcp.Server/            # Main MCP server console app
│       ├── Program.cs                 # Entry point (MSBuildLocator.RegisterDefaults())
│       ├── Server/Tools/              # MCP tool implementations
│       ├── Workspace/                 # Solution/project loading & management
│       ├── Services/                  # Roslyn & Decompiler service wrappers
│       └── Models/                    # DTOs for tool responses
└── tests/
    ├── CSharperMcp.Server.UnitTests/           # Fast unit tests
    └── CSharperMcp.Server.IntegrationTests/    # Slower integration tests

______________________________________________________________________

技术栈

  • .NET 10 -C#语言的最新特性
  • 模型上下文协议0.6.0 -MCP C#官方SDK
  • 微软。代码分析。工作区。MSBuild 5.0.0 -Roslyn API
  • 微软。建造。定位器1.11.2 -动态查找MSBuild
  • ICSharpCode。反编译器9.1.0 -用于DLL自检的ILSpy引擎
  • NUnit 4 -测试框架
  • 最小起订量 -模拟框架
  • 流畅的演讲 -流畅的断言库

______________________________________________________________________

开发指南

CLAUDE.md 获取全面的开发说明,包括:

  • 代码样式和访问修饰符(默认为 internal)
  • 中央包管理要求
  • 测试原理(单元与集成)
  • 架构模式
  • MCP工具实施细节

______________________________________________________________________

支持

______________________________________________________________________

许可证

许可证 文件以获取详细信息。

目录标签

目录标签

C#Claude开发工具C#开发本地部署语义分析IDE扩展代码理解语言服务器

支持客户端

ClaudeCursor

接入字段

传输方式(transport,传输协议)

未说明

鉴权方式(authType,认证方式)

none

工具数量(toolCount,工具数)

2

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

未说明none部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

仍需确认:installCommand

来源信息

继续浏览同类 MCP