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

Roslyn Codelens MCP

MCP Server

一个基于Roslyn的MCP服务器,为AI代理提供对.NET代码库的深度语义理解,包括类型层次结构、调用图、依赖注入注册、诊断、重构等功能。

工具数

54

提示词数

0

GitHub Stars

9

资源数

0
代码分析.NET开发C#ClaudeClaude

安装说明

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

作者 / 组织

MarcelRoozekrans

提供方

MarcelRoozekrans

最后核验

2026/5/17 20:21

快速接入

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

详细介绍

Roslyn CodeLens MCP服务器

![NuGet](https://www.nuget.org/packages/RoslynCodeLens.Mcp) ](https://www.nuget.org/packages/RoslynCodeLens.Mcp) ![Build Status](https://github.com/MarcelRoozekrans/roslyn-codelens-mcp/actions) ![License](https://github.com/MarcelRoozekrans/roslyn-codelens-mcp/blob/main/LICENSE) ![Docs](https://marcelroozekrans.github.io/roslyn-codelens-mcp/) ](https://github.com/sponsors/MarcelRoozekrans)

基于Roslyn的MCP服务器,为AI代理提供深入的语义理解。NET代码库——类型层次结构、调用图、DI注册、诊断、重构等等。

______________________________________________________________________

托管部署

托管部署可在 Frontier AI.

特性

  • 查找实现 --查找实现接口或扩展类的所有类/结构
  • find_callers --查找方法、属性或构造函数的每个调用点
  • find_event_订阅者 --事件符号的每个+=/-=站点,具有已解析的处理程序和订阅/取消订阅标签
  • find_tests_for_symbol --列出执行生产符号的xUnit/NUnit/MSTest方法;选择可传递的遍历助手
  • get_test_summary --每个项目的测试方法清单,包括框架、属性类型、数据行数、位置和引用的生产符号
  • 查找未覆盖的符号 --没有测试可传递达到的公共方法和属性;按圈复杂度排序以确定优先级
  • 发电机测试骨架 --为方法或类型发出可编译的测试类骨架(作为文本)。自动检测xUnit/NUnit/MSTest;表面构造函数依赖关系为TodoNotes;返回建议的文件路径。使用以下命令关闭循环 find_uncovered_symbols
  • get_type层次结构 --遍历基类、接口和派生类型
  • get_d_注册 --扫描DI服务注册
  • get_项目依赖关系 --获取项目参考图
  • get_symbol_text --任何类型的一次性上下文转储
  • get_public_api_surface --枚举生产项目中的每个公共/受保护类型和成员;适用于API审查或突破变更基线的平面、确定排序列表。
  • 查找_破坏_更改 -将当前API与基线JSON或DLL进行比较;报告删除了具有中断/非中断严重性的成员、类型更改和可访问性更改。
  • find_reflection \_用法 --检测基于动态/反射的使用情况
  • 查找引用 --查找对任何符号(类型、方法、属性、字段、事件)的所有引用
  • go_to_定义 --找到定义符号的源文件和行
  • get_诊断学 --列出编译器错误、警告和Roslyn分析器诊断
  • get_code_fixes --通过结构化文本编辑获取任何诊断的可用代码修复
  • 搜索_符号 --按名称搜索模糊工作空间符号
  • get_nuget_依赖关系 --列出每个项目的NuGet包引用
  • 查找属性信息 --查找用特定属性装饰的类型和成员
  • find_obsolet_use --每一个 [Obsolete] 按弃用消息和严重性分组调用站点,错误优先;用于规划迁移
  • 查找循环依赖关系 --检测项目或命名空间依赖关系图中的周期
  • get_complexity_metrics --每种方法的圈复杂度分析
  • find_naming_违规 --检查一下。NET命名约定合规性
  • 查找_同步_违规 --异步同步, async void 误用、失踪等待、即发即弃任务;根据严重程度的违规报告
  • find_disposable_misuseIDisposable/IAsyncDisposable 未包装的实例 using/await using/返回/分配到现场;严重性错误/每次违规警告。
  • find_large_classes --按成员或行数查找超大字体
  • find_god_objects --结合高大小和高跨命名空间耦合的类型;SRP违规信号比原始大小更清晰
  • 查找未使用的符号 --通过参考分析进行死码检测
  • get_project_health --复合审计聚合了每个项目的7个质量维度(复杂性、大类、命名、未使用的符号、反射、异步违规、一次性误用),并内联了计数和前N个热点
  • get_source_generator --列出每个项目的源生成器及其输出
  • get_generated_code --检查源代码生成器生成的源代码
  • 检查外部组件 --从闭源NuGet包和引用的程序集中浏览类型、成员和XML文档
  • peek_il --将任何方法从闭源代码或生成的程序集中分解为ilasm风格的IL字节码
  • get_code_actions --在任何位置发现可用的重构和修复(提取方法、重命名、内联变量等)
  • 应用程序_代码_操作 --使用预览模式按标题执行任何Roslyn重构(在写入磁盘之前返回一个diff)
  • list_解决方案 --列出所有已加载的解决方案以及当前处于活动状态的解决方案
  • set_active_解决方案 --按部分名称切换活动解决方案(所有后续工具都对其进行操作)
  • load_解决方案 --在运行时加载额外的.sln/.slnx,并使其成为活动解决方案
  • unload_解决方案 --卸载已加载的解决方案以释放内存
  • 重建_解决方案 --强制完全重新加载分析的解决方案
  • analyze_data_flow --语句范围内的变量读/写/捕获分析(声明、读、写、始终分配、捕获、流入/流出)
  • 分析控制流 --语句范围内的分支/循环可达性分析(开始/结束可达性、返回语句、退出点)
  • 分析变更影响 --显示受更改符号影响的所有文件、项目和调用站点——结合了find_references和find_callers
  • get_type_overview --复合工具:在一次调用中实现类型上下文+层次结构+文件诊断
  • 分析方法 --复合工具:一次调用中的方法签名+调用者+传出调用
  • 过载 --在一次调用中,方法/构造函数(源+元数据)的每个重载都包含完整的参数和修饰符细节
  • get_operators --具有种类、签名、参数和源位置的类型(源+元数据)上的每个用户定义运算符和转换运算符。包括合成记录相等性和。NET 7+检查变量
  • get_call_graph --方法的传递调用方/被调用方图,具有循环检测的深度限制
  • 获取文件概览 --复合工具:在一个调用中定义文件类型+文件范围的诊断

外部组件

元数据源符号(来自NuGet包和引用的程序集)是一级公民:

  • 第1层——导航 (find_references, find_callers, find_implementations):接受闭源类型和成员名称。从程序集元数据中解析它们,并报告所有源代码级使用情况站点。
  • 第2级——检查 (inspect_external_assembly):从任何引用的程序集中浏览命名空间、类型、成员和XML文档注释,而无需反编译。
  • 第3级——IL (peek_il):使用ICSharpCode将特定方法分解为带注释的ilasm样式IL。反编译器——有助于理解NuGet库的内部。

位置返回结果包括 Origin 现场(sourcemetadata)和a IsGenerated 标志,用于区分手写代码和闭源代码或生成的输出。

安全性:信任模型

get_diagnosticsget_code_fixes 可以加载Roslyn分析器——在进程内执行的DLL。为了防止不受信任的分析器自动运行,此服务器使用VS/Rider风格的信任模型:

  • 解决方案在启动时通过CLI传递 对当前会话自动信任。
  • 其他解决方案 必须通过明确信任 trust_solution MCP工具。
  • 分析器DLL 必须来自用户的NuGet全局包文件夹、dotnetSDK安装目录或解决方案自己的 bin/obj。跳过其他路径。

使用 list_trusted_pathsrevoke_trust 用于检查和管理信任状态的工具。持久信任存储在 %APPDATA%\roslyn-codelens\trust.json.

安全.md 对于完整的威胁模型。

快速开始

VS代码/Visual Studio(通过dnx)

添加到MCP设置(.vscode/mcp.json 或VS设置):

{
  "servers": {
    "roslyn-codelens": {
      "type": "stdio",
      "command": "dnx",
      "args": ["RoslynCodeLens.Mcp", "--yes"]
    }
  }
}

Claude代码插件

claude install gh:MarcelRoozekrans/roslyn-codelens-mcp

.NET全局工具

dotnet tool install -g RoslynCodeLens.Mcp

然后添加到您的MCP客户端配置中:

{
  "mcpServers": {
    "roslyn-codelens": {
      "command": "roslyn-codelens-mcp",
      "args": [],
      "transport": "stdio"
    }
  }
}

用法

服务器自动发现 .sln 从当前目录向上移动文件。您还可以直接传递一个或多个解决方案路径:

# Single solution
roslyn-codelens-mcp /path/to/MySolution.sln

# Multiple solutions — switch between them with set_active_solution
roslyn-codelens-mcp /path/to/A.sln /path/to/B.sln

加载多个解决方案时,使用 list_solutions 看看有什么可用的 set_active_solution("B") 切换上下文。默认情况下,第一条路径处于活动状态。

演出

所有类型查找都使用预构建的反向继承映射、成员索引和属性索引进行O(1)访问。以i9-12900HK为基准。NET 10.0.7:

工具延迟内存
go_to_definition2.1µs576 B
find_implementations2.5µs720 B
get_project_dependencies2.8µs1.5 KB
get_type_hierarchy3.5µs1.3 KB
find_circular_dependencies3.7µs2.7 KB
get_symbol_context4.1µs1.0 KB
get_source_generators16µs23 KB
analyze_data_flow19µs1.6 KB
find_attribute_usages72µs904 B
get_generated_code78µs24 KB
analyze_control_flow115µs14 KB
inspect_external_assembly (摘要)159µs35 KB
find_large_classes265µs3.5 KB
get_di_registrations478µs16 KB
inspect_external_assembly (命名空间)564µs259 KB
find_reflection_usage705µs19 KB
get_complexity_metrics781µs25 KB
get_code_actions792µs54 KB
get_file_overview797µs101 KB
get_diagnostics822µs99 KB
get_nuget_dependencies849µs48 KB
get_public_api_surface885µs247 KB
get_type_overview1.1毫秒104 KB
peek_il1.1毫秒34 KB
find_disposable_misuse3.5毫秒286 KB
find_uncovered_symbols3.8毫秒224 KB
search_symbols3.9毫秒557 KB
analyze_method5.8毫秒333 KB
find_async_violations7.0毫秒335 KB
find_tests_for_symbol (直接)8.4毫秒396 KB
find_callers10毫秒337 KB
find_tests_for_symbol (可传递)12毫秒399 KB
find_naming_violations15毫秒788 KB
find_unused_symbols23毫秒1.0 MB
find_references28毫秒1013 KB
analyze_change_impact33毫秒1.3 MB
解决方案加载(一次性)~4.1秒16 MB

热重新加载

服务器监视 .cs, .csproj, .props,以及 .targets 更改文件。当检测到更改时,受影响的项目会在下一个工具查询中延迟重新编译——只有过时的项目及其下游依赖项会被重新编译,而不是完整的解决方案。

位置返回工具包括 IsGenerated 用于区分源代码生成器输出和手写代码的标志。

需求

  • .NET 10 SDK
  • A.NET解决方案,具有可编译项目

发展

dotnet build
dotnet test
dotnet run --project benchmarks/RoslynCodeLens.Benchmarks -c Release

第三方许可证

许可证

麻省理工学院

目录标签

目录标签

代码分析.NET开发C#Claude本地部署语义理解AI编程辅助代码重构

支持客户端

Claude

接入字段

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

未说明

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

none

部署方式(deploymentType,部署类型)

local-only

工具数量(toolCount,工具数)

54

资源数量(resourceCount,资源数)

0

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

0

权限和风险

未说明nonelocal-only

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

安装前确认

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

仍需确认:installCommand

来源信息

继续浏览同类 MCP