Token导航 LogoToken导航

MCP Server · 开发工具

Csharp Language Server

通过Roslyn编译器平台为AI编程代理提供C#代码智能导航、类型解析和NuGet包管理的服务。

未说明官方级别未说明来源级核验工具 21
代码导航C#ClaudeCline

快速开始

公开资料没有提供安装命令,按仓库或官方文档接入。
作者 / 组织
jgauffin
提供方
jgauffin

工具数量

21

来源目录标注

资源数量

0

来源目录标注

提示词数量

0

来源目录标注

GitHub Star

0

仓库热度

收录来源

1 个

MCP World

选型结论

Csharp Language Server 属于开发工具类 MCP Server,公开资料标注 21 个工具,通过传输方式未标注接入,适配 Claude、Cline,没有现成的安装命令;接入前要先准备 会话凭据。

分类

开发工具

传输方式

未说明

认证方式

会话凭据

部署方式

公开资料未说明

安装与配置

公开目录没有给出安装命令,需要按仓库 README安装;下面按同类条目的通用流程说明。

公开命令不是通用的启动方式,拼不出可靠配置示例;请在客户端 MCP 配置里按官方文档填写 command 和 args。

上手步骤

  1. 1

    先确认运行方式

    公开资料没有标注传输方式,先看仓库 README,确认是本地进程还是远程地址。

  2. 2

    获取服务

    公开目录没有给出安装命令,按仓库 README里的步骤安装或获取服务。

  3. 3

    写入客户端配置

    在客户端的 MCP 配置里填启动命令和参数,保存后完全退出客户端再打开,让新配置生效。

  4. 4

    验证是否可用

    连接成功后客户端会列出 21 个工具,随便调一个只读工具确认能返回结果。

接入前确认

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

公开资料仍需确认:安装命令

详细介绍

csharp语言mcp

通过MCP(模型上下文协议)为AI编码代理提供C#代码智能服务器,由Roslyn提供支持。

为什么使用这个?

使用C#的AI编码代理将代码视为文本——读取整个文件,查找模式,猜测类型。这对于动态语言来说还可以,但C#代码库会反击:深度类型层次结构、跨项目引用、泛型、隐式用法、分部类。一名武装特工 grep 正在盲目飞行。

csharp语言mcp 为代理提供了与IDE相同的智能——由Roslyn编译器平台提供支持:

C#导航

原始文件访问csharp语言mcp
读取整个文件以查找类直接跳到任何定义
查找方法名,忽略重载获取所有具有读/写分类的引用
从上下文猜测类型获取具有完整泛型解析的精确类型
缺少其他项目中的接口实现查找整个解决方案中的所有具体实现
希望重命名不会破坏东西在所有项目中预览和执行重命名
逐一读取文件以查找错误立即获得项目范围或解决方案范围的诊断

纽吉特

特工们正在合作。NET需要找到包,了解它们的API,并阅读文档。此服务器允许代理直接访问本地NuGet缓存中的真实程序集元数据和XML文档,该缓存以JSON形式构建,大小适合LLM上下文窗口。

任务没有此服务器使用csharp语言mcp
查找包裹抓取nuget.org搜索HTML或从训练数据中猜测nuget_search --缓存优先,结构化结果
列出缓存的包手动浏览文件系统nuget_packages --列出所有缓存的包或获取特定包的元数据
读取公共API表面下载中心 .nupkg,提取DLL,尝试反编译——大多数代理根本无法做到这一点nuget_explore --实类型/成员签名通过 System.Reflection.Metadata
阅读API文档报废文档网站(如果有的话),希望格式解析干净nuget_explore 随着 includeDocs --包中的XML文档,可按类型筛选
代币成本每页20-50k+标记的HTML/噪声,或0标记的幻觉答案每次调用约1-5k标记的专注、结构化输出

Roslyn与文本搜索有何不同?

罗瑟琳 编译 你的代码。它解析类型、绑定符号并理解整个解决方案图。当代理询问“谁执行”时 IRepositoryRoslyn给出了真正的答案,而不是一个错过其他项目中实现或包含注释和字符串错误匹配的正则表达式近似值。

这对C#来说最重要,因为:

  • 多项目解决方案 --引用、共享接口和NuGet包创建了文本搜索无法遵循的依赖关系图
  • 丰富型系统 --泛型、继承、隐式转换和扩展方法对grep不可见
  • 横切图案 --依赖注入、接口隔离和CQRS意味着符号的定义和使用很少在同一个文件中

需求

  • .NET 9 SDK(包括MSBuild)

快速开始

MCP客户端配置

克劳德代码:

# Analyze the current directory
claude mcp add csharp -- dotnet run --project /src/CsharpMcp

# Analyze a specific project
claude mcp add csharp -- dotnet run --project /src/CsharpMcp -- 

替换 `` 带有此仓库克隆的路径。

其他MCP客户端(Cline等):

{
  "mcpServers": {
    "csharp": {
      "command": "dotnet",
      "args": ["run", "--project", "/src/CsharpMcp", "--", "[your-csharp-repo]"]
    }
  }
}

或者使用已发布的二进制文件:

{
  "mcpServers": {
    "csharp": {
      "command": "/CsharpMcp",
      "args": ["[your-csharp-repo]"]
    }
  }
}

选项

选项描述默认值
[directory]C#项目根目录的路径当前工作目录
--name 自定义服务器名称(用于多实例设置)csharp-language-mcp
--description 附加到内置服务器描述的额外上下文_(无)_
--no-quality禁用质量/度量工具(保存2个工具)_(已启用)_
--no-nuget禁用NuGet工具(保存3个工具)_(已启用)_

多个实例 --使用 --name 和 --description 在每个repo运行一个服务器时区分服务器:

{
  "mcpServers": {
    "csharp-api": {
      "command": "/CsharpMcp",
      "args": ["--name", "csharp-api", "--description", "API layer", ""]
    },
    "csharp-core": {
      "command": "/CsharpMcp",
      "args": ["--name", "csharp-core", "--description", "Core domain", ""]
    }
  }
}

服务器发现所有 .csproj 根路径下的文件,并将它们加载到单个Roslyn工作区中。所有职位均为 1-索引 (第1行第1列=第一个字符)。

工具(共21个)

类别工具描述
导航get_definition从使用跳转到声明
get_references查找具有读/写分类的所有用法
get_implementations查找接口的具体实现
get_call_hierarchy追踪呼叫者/被呼叫者;使用 maxDepth 用于深度使用跟踪
get_type_hierarchy导航基本类型、接口和派生类型
类型智能get_hover在某个位置键入信息、XML文档和参数签名
代码结构get_outline分层文件结构(使用 flat=true 用于平面符号列表)
get_imports列出所有使用指令
搜索find按名称模式、种类、项目搜索符号
补全get_completions在某个位置完成代码(成员、方法、类型、关键字)
诊断get_diagnostics文件或整个工作区的错误/警告
重构rename在所有项目中预览或执行重命名(preview=true 默认情况下)
format_document使用Roslyn格式化程序进行格式化
get_code_actions诊断的快速修复(添加使用、实施界面等)
效率analyze_position在一次调用中组合悬停+诊断+符号
batch_analyze同时分析多个职位
质量quality_hotspots综合质量评分——通过加权MI、重复、间接性来找到最差的代码
generate_iso5055_reportISO 5055质量报告(安全性、可靠性、性能、可维护性)
纽吉特nuget_search缓存优先搜索,回退到远程
nuget_packages列出缓存的包,或获取特定包的元数据/deps
nuget_explore浏览缓存包中的程序集、类型和XML文档

质量热点

这 quality_hotspots 该工具通过加权三个质量维度来识别需要重构的代码:

  • 可维护性 --MI、圈复杂度、LOC、耦合
  • 重复 --精确、重命名和语义代码克隆
  • 间接 --通过深层调用链实现隐藏耦合

默认权重大致相等(每个≈0.33)。覆盖权重以关注特定问题。

跟踪之前/之后:

  1. 呼叫 quality_hotspots(snapshotLabel: "before") 在会话开始时
  2. 进行更改
  3. 呼叫 quality_hotspots(compareToSnapshot: "before") --显示每种类型的增量

ISO 5055支持(部分)

这 generate_iso5055_report 该工具提供了对 ISO/IEC 5055 自动化源代码质量标准。它根据四个ISO 5055质量特征分析您的解决方案:

  • 安全 --检测CWE映射的漏洞(例如SQL注入、路径遍历)
  • 可靠性 --检测易出现缺陷的模式(例如空解引用、空捕获块)
  • 性能效率 --检测资源浪费模式
  • 可维护性 --检测过于复杂或不透明的代码(例如深度嵌套、幻数)

该报告包括违规计数、每个KLOC的违规、每个类别的通过/失败、覆盖的CWE ID以及每个违规文件路径,并附有修复建议。

类别和当前覆盖范围:

类别焦点覆盖范围
安全可利用漏洞仅低模式匹配规则(不安全代码,CWE-242)。无污染分析。
可靠性崩溃/损坏风险中等——处置模式、堆栈跟踪破坏、事件泄漏、弱身份锁、构造函数中的虚拟调用
性能效率资源浪费低--异步检测同步(CWE-1049)
可维护性结构衰退良好——圈复杂度、深度嵌套、大型类/方法、参数过多、缺乏内聚性、类不稳定、goto语句

限制: 这不是SAST的替代品。依赖于Taint分析的CWE(SQL注入、XSS、命令注入)需要专用工具,如CodeQL或Semgrep。报告包括 CoveredCweIds 因此消费者确切地知道哪些CWE在范围内。

配置CLAUDE.md

为了充分利用此服务器,请将以下说明添加到您的项目中 CLAUDE.md 文件:

## C# Code Intelligence

Always prefer csharp MCP tools over grep/bash/find for C# code:
- Use `get_definition` instead of grepping for class/method definitions
- Use `get_references` instead of grepping for usages
- Use `find` instead of find/grep for locating symbols
- Use `get_diagnostics` instead of running `dotnet build` to check errors
- Use `get_outline` instead of reading entire files to understand structure
- Use `get_hover` to check types instead of guessing from context

## Code Quality Tracking
- At the START of each coding session, call `quality_hotspots(snapshotLabel: "before")` to capture a baseline
- At the END of each session (before committing), call `quality_hotspots(compareToSnapshot: "before")` to review quality impact
- If quality_hotspots shows degraded types, address them before finishing
为什么需要这个? AI代理默认使用熟悉的工具,如 grep, find,以及 cat如果没有明确的指令,即使MCP工具可用,他们也会忽略它们——浪费令牌读取整个文件并产生不太准确的结果。这 CLAUDE.md 指令会覆盖此默认行为。

构建

dotnet build src/CsharpMcp.sln

测试

dotnet test src/CsharpMcp.sln

许可证

麻省理工学院

工具与能力

工具数量

21

资源数量

0

提示词数量

0

能力标签

代码导航C#本地部署类型解析NuGet管理AI辅助编程Roslyn编译器

支持客户端

ClaudeCline

数量来自来源目录的标注,具体工具清单以官方文档为准。

典型使用场景

让助手直接读代码

把仓库、提交记录和 issue 交给模型检索,补全和重构时不用来回复制文件。

在对话里跑命令

触发构建、测试和脚本,执行结果直接回到上下文,省去切终端。

接进开发流程

把 PR、CI 状态和代码审查接进助手,减少在几个工具之间跳。

选择建议

值得选的地方

  • 工具数量 21 个,一次接入能覆盖的操作比单点工具更全。
  • 已经适配 Claude、Cline,换客户端不用重新研究配置。
  • 公开说明写得比较完整,接入前能看清能力边界。

先想清楚的地方

  • 公开资料没有可直接复制的安装命令,第一次接入要自己找入口。
  • 需要自备会话凭据,没有凭据没法直接试。
  • 公开摘要偏短,具体能力和限制要回到仓库确认。

更适合

  • 需要在开发工具场景里让模型直接调用外部能力的人。
  • 已经在用 Claude 的用户,接入路径最短。
  • 愿意照着官方文档一步步配环境的人。

不太适合

  • 暂时拿不到会话凭据的人。
  • 希望一条命令就装好、不想看文档的人。
  • 需要厂商级 SLA 和技术支持的生产环境。

同类对比

5 个同类
MCP Server工具数传输方式安装命令收录来源最后核验
Csharp Language Server

MCP World · 本页

21未说明未标注1 个2026-05-17
Git 838e2ec1

MCP World

12stdio有2 个2026-05-17
Markitdown MCP 2c653a5f

MCP World

1stdio有1 个2026-05-17
Context7 MCP C671e75a

MCP World

0stdio有1 个2026-05-17
Context7 831acf40

MCP World

0stdio有1 个2026-05-17

按同分类和工具数量挑出最接近的几条,字段以各自详情页为准。

常见问题

5 条

Csharp Language Server 怎么安装?

公开目录没有给出可以直接复制的安装命令,需要按仓库 README里的步骤安装;装好后写进客户端的 MCP 配置再重启。

Csharp Language Server 怎么在 Claude Desktop、Cursor 里配置?

它是传输方式未标注,客户端配置里要写启动命令和参数,运行环境是 未标注;保存后完全退出客户端再打开,配置才会生效。

Csharp Language Server 收费吗?

本站只整理公开资料,不代收费用,也没有标注具体价格。是否收费取决于服务本身和背后的接口额度,正式使用前按官方说明确认。

Csharp Language Server 需要 API Key 吗?

公开资料标注的认证方式是会话凭据,也就是要先拿到凭据才能连上;凭据只填在自己本地的配置里,不要写进公开仓库。

Csharp Language Server 支持哪些客户端?

公开资料标注支持 Claude、Cline;其他客户端只要能配置 MCP Server,也能用同样的命令或地址接入。

来源信息

继续浏览同类 MCP