Token导航 LogoToken导航

MCP Server · 开发工具

C Sharp Refactor MCP

一个通过模型上下文协议(MCP)提供安全、编译器感知的多语言代码重构服务的语义桥梁,支持C#、VB.NET、TypeScript、Python、Go、C++、Java和Rust等多种编程语言。

未说明官方级别未说明来源级核验工具 0
PythonClaude开发工具

快速开始

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

工具数量

0

来源目录标注

资源数量

0

来源目录标注

提示词数量

0

来源目录标注

GitHub Star

0

仓库热度

收录来源

1 个

MCP World

选型结论

C Sharp Refactor MCP 属于开发工具类 MCP Server,公开资料标注 0 个工具,通过传输方式未标注接入,适配 Claude,没有现成的安装命令;接入前先确认权限范围。

分类

开发工具

传输方式

未说明

认证方式

无需认证

部署方式

公开资料未说明

安装与配置

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

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

上手步骤

  1. 1

    先确认运行方式

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

  2. 2

    获取服务

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

  3. 3

    写入客户端配置

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

  4. 4

    验证是否可用

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

接入前确认

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

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

详细介绍

多语言重构MCP服务器

AI代理和代码之间的语义桥梁,提供 安全、编译器感知的重构 通过模型上下文协议(MCP)跨多种编程语言。

概述

该服务器通过将语义分析引擎与人工智能代理相结合,改变了人工智能驱动的开发。这种架构允许代理生成重构代码,而不是让人工智能生成重构代码(这很容易出错) 请求 由特定语言的语义引擎执行的重构:

  • C:Roslyn(.NET编译器平台)
  • VB.NET语言:Roslyn(.NET编译器平台)
  • TypeScript:TypeScript语言服务器
  • python:Pyright(Python类型检查器和语言服务器)
  • 去:gopls
  • C: clangd
  • Java:Eclipse JDT语言服务器
  • 锈:锈蚀分析仪

主要特点

  • 多语言支持:C#、VB.NET、TypeScript、Python、Go、C++、Java和Rust
  • 语义安全:所有重构都使用特定于语言的语义模型,而不是文本操作
  • 自动语言检测:从项目文件中检测语言
  • 统一API:相同的MCP工具适用于所有语言
  • 混合式结构:罗斯林。NET语言,其他语言的LSP
  • 项目范围内的运营:重构工作贯穿整个项目和所有引用
  • 路径安全:根据配置的允许目录验证所有文件访问权限
  • MCP协议:Claude、GitHub Copilot和其他AI工具支持的标准协议

建筑

核心组件

  1. 语言提供者抽象 (ILanguageProvider)

- 所有语言特定操作的统一界面 - 可扩展性插件架构 - 支持基于Roslyn和LSP的提供商

  1. 语言提供者

- CSharp语言提供商:使用Roslyn进行语义分析 - TypeScript语言提供程序:通过LSP使用打字语言服务器 - GoLanguageProvider:通过LSP使用gopls - Cpp语言提供程序:通过LSP使用cland - Java语言提供程序:通过LSP使用Eclipse JDT - RustLanguage提供商:通过LSP使用锈蚀分析仪

  1. 语言检测服务

- 自动检测项目文件中的语言 - 将文件扩展名映射到语言提供商 - 支持特征文件检测(go.mod、Cargo.toml等)

  1. LspClient

- 通用LSP(语言服务器协议)客户端 - 管理与语言服务器的通信 - 处理初始化、请求和通知

  1. 路径安全服务

- 根据允许的目录验证所有文件路径 - 防止路径遍历攻击 - 可通过以下方式配置 appsettings.json

  1. 统一的重构工具

- 与语言无关的MCP工具 - 自动委派给适当的语言提供者 - 所有语言的API一致

为什么是这种架构?

操作不安全(正则表达式/文本)安全(语义分析)
重命名符号不同作用域中同名符号的断点正确处理作用域、重载、跨文件引用
查找引用查找文本匹配项(包括注释、字符串)仅查找真正的语义引用
提取方法无法确定正确的签名使用数据流分析进行正确的签名

多语言支持:

  • C:Roslyn与MSBuild工作区支持完全集成
  • VB.NET语言:Roslyn与MSBuild工作区支持完全集成
  • Types/JavaScript:基于LSP,支持TypeScript编译器API
  • python:基于LSP的Pyright类型检查器和语义分析
  • 去:基于LSP的gopls语义分析
  • C:基于LSP的cland(LLVM)语义分析
  • Java:基于LSP的Eclipse JDT编译器
  • 锈:基于LSP的锈蚀分析器语义分析

可用工具

1. load_project

将项目加载到内存中。 必须先打电话 在任何其他操作之前。自动检测语言。

支持的项目文件:

  • C .sln, .csproj
  • VB.NET: .sln, .vbproj
  • TypeScript: tsconfig.json, package.json
  • python pyproject.toml, setup.py, requirements.txt
  • 去: go.mod
  • C CMakeLists.txt, compile_commands.json
  • Java pom.xml, build.gradle
  • 锈蚀: Cargo.toml

参数:

  • projectPath (string):项目文件的绝对路径

例子:

{
  "name": "load_project",
  "arguments": {
    "projectPath": "/home/user/projects/MyProject/MyProject.sln"
  }
}
{
  "name": "load_project",
  "arguments": {
    "projectPath": "/home/user/projects/my-app/tsconfig.json"
  }
}

2. get_diagnostics

获取编译诊断(错误、警告)。 关键安全检查 在重构之前。

参数:

  • solutionPath (string):解决方案路径
  • severityFilter (字符串):“错误”、“警告”、“信息”或“全部”(默认值:“警告”)

退货:

  • isSafeToRefactor (bool):如果存在编译错误,则为false
  • diagnostics (array):位置和消息问题列表

3. find_all_references

查找整个解决方案中对符号的所有语义引用。

参数:

  • solutionPath (string):解决方案路径
  • documentPath (string):.cs文件的路径
  • line (int):行号(从1开始)
  • column (int):列号(从1开始)

4. rename_symbol

使用Roslyn的重命名器API在整个解决方案中安全地重命名符号。

参数:

  • solutionPath (string):解决方案路径
  • documentPath (string):.cs文件的路径
  • line (int):符号的行号
  • column (int):符号列号
  • newName (string):符号的新名称

安全特性:

  • 正确处理作用域(不会重命名同名的无关符号)
  • 解决过载冲突
  • 更新所有项目和参考文献
  • 验证命名约定

5. get_symbol_info

获取有关符号的详细信息(类型、命名空间、可访问性等)。

参数:

  • solutionPath, documentPath, line, column

6. extract_method

将所选代码提取到具有正确签名的新方法中。

参数:

  • solutionPath (字符串)
  • documentPath (字符串)
  • startLine, startColumn (int):开始选择
  • endLine, endColumn (int):选择结束
  • newMethodName (string):提取方法的名称

工作原理:

  1. 对所选代码执行数据流分析
  2. 标识输入变量(DataFlowsIn)→ 方法参数
  3. 标识输出变量(DataFlowsOut)→ 返回值
  4. 生成具有正确签名的方法
  5. 用方法调用替换选择

7. encapsulate_field

通过创建属性并更新所有引用来封装字段。

参数:

  • solutionPath, documentPath, line, column

流程:

  1. 使用get/set访问器创建公共属性
  2. 将字段设置为私有
  3. 查找对该字段的所有引用
  4. 更新引用以使用属性

安装和设置

先决条件

核心:

  • .NET 8.0 SDK或更高版本(必需)
  • MSBuild(与.NET SDK一起安装,需要C#支持)

语言服务器(仅安装您需要的内容):

  • TypeScript: npm install -g typescript-language-server typescript
  • python npm install -g pyright
  • 去: go install golang.org/x/tools/gopls@latest
  • C apt-get install clangd 或 brew install llvm
  • Java:Eclipse JDT语言服务器
  • 锈蚀: rustup component add rust-analyzer

看 安装.md 了解详细的安装说明。

构建服务器

# Clone the repository
cd /path/to/multi-language-refactor-server

# Restore dependencies
dotnet restore

# Build the project
dotnet build

# Optional: Publish as self-contained executable
dotnet publish -c Release -o ./publish

配置安全

编辑 appsettings.json 设置允许的根目录:

{
  "Security": {
    "AllowedRootPaths": [
      "/home/user/projects",
      "/workspace",
      "C:\\dev",
      "C:\\Users\\YourName\\source"
    ]
  }
}

重要提示: 服务器将只访问这些目录中的文件。这可以防止路径遍历攻击。

客户端配置

克劳德桌面(Anthropic)

增添 ~/Library/Application Support/Claude/claude_desktop_config.json (macOS)或 %APPDATA%\Claude\claude_desktop_config.json (Windows):

{
  "mcpServers": {
    "multi-language-refactor": {
      "command": "dotnet",
      "args": [
        "run",
        "--project",
        "/absolute/path/to/RoslynRefactorServer.csproj"
      ]
    }
  }
}

或者,如果使用已发布的可执行文件:

{
  "mcpServers": {
    "multi-language-refactor": {
      "command": "/absolute/path/to/publish/RoslynRefactorServer"
    }
  }
}

对于VS代码/GitHub副本

创建 .vscode/mcp.json 在您的工作空间中:

{
  "servers": {
    "multi-language-refactor": {
      "type": "stdio",
      "command": "dotnet",
      "args": [
        "run",
        "--project",
        "/absolute/path/to/RoslynRefactorServer.csproj"
      ]
    }
  }
}

使用示例

AI代理工作流

安全重构的推荐工作流程(适用于所有语言):

1. AI: load_project("/path/to/project-file")
   → Server detects language and loads project
   → Examples: MyProject.sln, tsconfig.json, go.mod, Cargo.toml

2. AI: get_diagnostics("/path/to/project-file", "Error")
   → Server checks for compilation/lint errors
   → If errors found, AI should ask user to fix them first

3. AI: find_all_references("/path/to/project-file", "/path/to/source-file", 10, 15)
   → AI understands impact of changes

4. AI: rename_symbol(..., newName: "BetterName")
   → Server performs safe rename across project
   → All files updated semantically

5. AI: get_diagnostics(...) [Optional verification]
   → Confirms refactoring didn't break compilation

不同语言提示示例

C

I have a C# solution at /home/user/projects/MyApp/MyApp.sln

Please use the multi-language-refactor tools to:
1. Load the solution
2. Check for compilation errors
3. Find all references to the "ProcessData" method in MyService.cs (line 45)
4. If safe, rename it to "ProcessDataAsync"
5. Verify no errors were introduced

TypeScript:

I have a TypeScript project at /home/user/projects/my-app/tsconfig.json

Please refactor my code:
1. Load the project
2. Find all references to the "getUserData" function in user.service.ts (line 23)
3. Rename it to "fetchUserData"

去:

I have a Go project at /home/user/projects/my-service/go.mod

Please help me refactor:
1. Load the project
2. Find all references to the "ProcessRequest" function in handler.go (line 56)
3. Rename it to "HandleRequest"

锈蚀:

I have a Rust project at /home/user/projects/my-crate/Cargo.toml

Please refactor:
1. Load the project
2. Find all references to the "compute_value" function in lib.rs (line 34)
3. Rename it to "calculate_value"

性能注意事项

初始加载时间

  • 第一 load_solution 呼叫:大型解决方案可能需要5-30秒
  • 后续操作:快速(使用缓存工作区)
  • 缓存失效:外部文件更改时自动执行

内存使用

  • 加载的解决方案保留在内存中(大型企业解决方案为1-3GB)
  • 作为持久进程运行,而不是按请求运行
  • 在所有AI工具调用中共享缓存

并发

  • 多个 读 操作(诊断、查找参考):并行运行
  • 多个 写 操作(重命名、提取):按解决方案序列化
  • 多种解决方案:可以同时处理

代码质量和结构

结构线

该项目使用 结构线 执行项目结构和组织标准。这确保了一致的命名约定、目录组织,并防止了提交的构建工件或秘密等常见问题。

本地运行:

structurelint .

看 docs/STRUCTURELINT.md 了解详细的配置和使用方法。

持续集成

该项目包括一个GitHub Actions工作流,该工作流:

  • ✅ 使用structureline验证项目结构
  • ✅ 构建项目
  • ✅ 运行所有测试
  • ✅ 将输出捕获到 build-test.log
  • ✅ 根据您的提交修改日志 (推送时自动提交)

查看CI结果

推到您的分支后:

# Pull the amended commit (force required)
git pull --force

# View the CI log
cat build-test.log

或查看 build-test.log 直接在GitHub上提交。

为什么是这种模式?

传统的CI日志存在于GitHub Actions UI中并过期。此工作流存储日志 在承诺本身:

  • ✅ 永久记录(不会过期)
  • ✅ 离线访问(克隆仓库,获取日志)
  • ✅ 版本控制(与特定提交绑定)
  • ✅ 无需仪表板(只需 cat build-test.log)

在本地运行测试

# Run all tests
dotnet test

# Run tests with detailed output
dotnet test --verbosity detailed

# Run tests with coverage (requires additional tools)
dotnet test /p:CollectCoverage=true

📖 完整的CI文档:参见 docs/CI-WORKFLOW.md 有关修改过程、故障排除和最佳实践的详细信息。

故障排除

“注册MSBuild失败”

解决方案: 安装。NET SDK。MSBuild是必需的。

“路径验证失败”

解决方案: 将解决方案的目录添加到 AllowedRootPaths 在 appsettings.json.

“在指定位置找不到符号”

解决方案:

  • 确保行号/列号从1开始(而不是从0开始)
  • 将光标直接放置在符号名称上
  • 跑 get_diagnostics 确保代码能够编译

过期缓存/“更改不可见”

服务器会自动检测文件更改。如果问题仍然存在:

  1. 重新加载解决方案:调用 load_solution 再次
  2. 如果时间戳更改,缓存将刷新

性能问题

  • 首次加载缓慢(预期)
  • 如果后续操作缓慢,请检查溶液大小
  • 考虑拆分非常大的解决方案

技术细节

协议

  • 运输: 标准输入/输出
  • 格式: JSON-RPC 2.0
  • 登录中: 仅限stderr(stdout保留用于协议)

使用的Roslyn API

  • MSBuildWorkspace:溶液加载
  • SemanticModel:符号解析和语义分析
  • SymbolFinder:交叉解决方案参考查找
  • Renamer:安全符号重命名
  • DataFlow Analysis:提取方法签名生成
  • SyntaxRewriter:自定义AST转换
  • SyntaxGenerator:代码生成

线程安全

  • 单例 RoslynWorkspaceService 随着 ConcurrentDictionary 缓存
  • 根据解决方案 SemaphoreSlim 用于写操作的锁
  • Roslyn的不可变数据结构实现了无锁读取

体系结构决策

为什么选择MSBuildWorkspace?

  • 只有Roslyn工作区类型可以理解.sln和.csproj文件
  • 解析项目引用和NuGet包
  • 完整语义模型所需

为什么是国家服务?

  • 加载解决方案非常昂贵(对于大型代码库,10-30秒)
  • 重构产生新的 Solution 对象(不可变)
  • 必须在整个运营过程中保持“领先地位”

为什么选择MCP协议?

  • 行业标准(Anthropic、微软)
  • 与Claude、GitHub Copilot和其他工具配合使用
  • AI(建议者)和编译器(执行者)之间的清晰分离

未来的增强功能

工具套件的潜在补充:

  1. 代码分析器:公开Roslyn分析器进行代码质量检查
  2. 代码修复:自动应用编译器建议的修复程序
  3. Roslynator集成:从Roslynator库中公开500多个重构
  4. 内联函数:提取方法相反
  5. 将类型移动到文件:将类移动到其自己的文件中
  6. 生成构造函数:从所选字段
  7. 添加参数:使用参考更新的方法

贡献

该服务器实现了“人工智能驱动开发的新架构:Roslyn MCP服务器”中描述的架构。

添加新工具

  1. 添加方法 RefactoringTools 或 AdvancedRefactoringTools
  2. 标记 [McpTool] 属性
  3. 添加 [Description] 方法和所有参数
  4. 注入 RoslynWorkspaceService 和 PathSecurityService
  5. 遵循以下模式:验证→ load → 分析→ 变换→ 提交

参考文献

许可证

MIT许可证-请参阅 许可证 了解详情。

支持

对于问题、疑问或贡献,请\[创建问题\]或联系维护人员。

工具与能力

工具数量

0

资源数量

0

提示词数量

0

能力标签

代码重构Python本地部署多语言支持语义分析编译器集成AI开发工具

支持客户端

Claude

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

典型使用场景

让助手直接读代码

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

在对话里跑命令

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

接进开发流程

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

选择建议

值得选的地方

  • 只提供 0 个工具,职责集中,接入后不容易误操作。
  • 公开说明写得比较完整,接入前能看清能力边界。

先想清楚的地方

  • 公开资料没有可直接复制的安装命令,第一次接入要自己找入口。
  • 第三方目录整理,版本更新和行为细节以官方仓库为准。

更适合

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

不太适合

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

同类对比

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

MCP World · 本页

0未说明未标注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 条

C Sharp Refactor MCP 怎么安装?

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

C Sharp Refactor MCP 怎么在 Claude Desktop、Cursor 里配置?

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

C Sharp Refactor MCP 收费吗?

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

C Sharp Refactor MCP 需要 API Key 吗?

公开资料标注为无需认证,装好就能连;如果实际调用时报鉴权错误,按官方文档补上凭据。

C Sharp Refactor MCP 支持哪些客户端?

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

来源信息

继续浏览同类 MCP