关于 dsh2vs — VS C++ bridge (unofficial)
dsh2vs 是独立运行的桥接服务,让 AI 助手通过 MSBuild 和 cdb 操作 Visual Studio C++ 工程,无需启动 Visual Studio。它从解决方案推断构建与调试目标,并提供崩溃转储和诊断信息,面向无人值守的自动化流程。
主要功能
- 01通过 MSBuild 加载并编译 C++ 工程
- 02使用 cdb 进行断点调试
- 03从解决方案推断工程配置
- 04崩溃转储与诊断报告
- 05独立于 Visual Studio 图形界面运行
适用场景
- 01在远程或无人值守机器上构建 C++ 项目
- 02自动执行编译、修改、再编译循环
- 03排查程序启动失败和崩溃
- 04从调用栈和变量信息调试程序
MCP 相关
MCP 客户端通过插件连接常驻桥接服务,并调用 40 多项工具。服务通过 HTTP 接收请求,使用 MSBuild 编译、启动 cdb 调试并生成崩溃诊断。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
来自项目 READMEdsh2vs
让你的 AI 助手(DSH 或任何 MCP 客户端)真正"动手"操作 Visual Studio 的 C++ 工程:加载项目、编译、断点调试、崩溃取证。
不装 VS 插件,不需要 Visual Studio 开着,不会弹出「项目已过期,是否重新生成」这种没人点的对话框。
⚠️ 非官方、独立第三方项目
dsh2vs 是独立开发者 aaalzk 的个人项目,与 DeepSeek AI、Microsoft 以及 Model Context Protocol 项目均无隶属关系,也未获其认可或背书。 名字里的 "dsh" 指 DeepSeek Harness(它对接的工具)、"vs" 指 Visual Studio(它驱动的对象)—— 两者都只是被本项目从外部调用的第三方产品。本项目不发行、不代表、不打包其中任何一个。
安装:两步,先起桥,再接 DSH
dsh2vs 由两个独立部分组成,只装一半会连上一个不存在的地址:
| 部分 | 是什么 | 怎么装 |
|---|---|---|
| ① 桥 | 一个 .NET 程序,真正调 MSBuild 编译、起 cdb 调试、分析崩溃 | 下载绿色版解压即用,或自己 dotnet build |
| ② DSH 插件 | 一个纯配置包,只负责告诉 DSH「桥在 127.0.0.1:8790」 | dsh plugin --profile web add dsh2vs |
DSH ──MCP──▶ ② 插件(6 行 YAML:告诉 DSH 打哪个号码)
│
▼ HTTP
① 桥(真正干活儿的 .NET 程序)
├─▶ MSBuild.exe 编译
├─▶ cdb.exe 调试
└─▶ 崩溃 dump + 报告
第 1 步:起桥
A. 绿色版(推荐:不用装 .NET SDK、不用 git、不用编译)
去 Releases 下载 dsh2vs-win-x64.zip,解压后运行:
.\Dsh2Vs.Server.exe --Dsh2Vs:WorkspaceRoot=D:\Projects\你的C++工程
B. 源码构建(要改代码才需要)
git clone https://github.com/aaalzk/dsh2vs.git
cd dsh2vs; dotnet build
.\scripts\start.ps1 -Workspace D:\Projects\你的C++工程
C. MCPB 单文件包(给 Claude Desktop 等支持 MCPB 的客户端)
从 Releases 下载 dsh2vs-0.1.0.mcpb(自带 .NET 9 运行时,约 43 MB),
直接用 Claude Desktop 打开即可;或解压后手动以 stdio 模式启动:
.\Dsh2Vs.Server.exe --stdio
stdio 模式下 stdout 只走 MCP 协议,日志全部写 stderr,不会污染通信。
第 2 步:接到 DSH
dsh plugin --profile web add dsh2vs
(npm 不通时用源码安装:dsh plugin --profile web add github:aaalzk/dsh2vs)
重启 DSH 会话(MCP 连接只在会话启动时加载),mcp__vs__* 那 40+ 个工具就会出现。
⚠️ 只装插件、桥没起 → DSH 会明确报错(
failOnStartupError: true),不会静默丢工具。 顺序一定是:先确认healthz返回ok,再装插件。
确认桥活着
(Invoke-WebRequest http://127.0.0.1:8790/healthz -UseBasicParsing).Content
{"status":"ok","name":"dsh2vs","version":"0.1.0","msbuild":"...MSBuild.exe"}
status是degraded说明没找到 MSBuild —— 见常见问题。
这是什么(30 秒版)
- 一个常驻后台的小服务,把「VS 能干的那三件 C++ 的事」变成 HTTP 接口:加载工程 / 编译 / 调试。
- AI 助手通过 MCP 调用它,就能自己改代码、编译、下断点、看调用栈和变量,不需要你在电脑前点按钮。
- 它不是 VS 插件、不是在 VS 里聊天的机器人、也不替代 VS —— 你想看界面时随时自己打开 VS。
适合谁:让 AI 在无人值守/远程机器上跑 C++ 项目;需要「编译报错 → 改代码 → 再编译」自动循环;想摆脱「一弹窗就卡住、还得人工点」。
不适合谁:只想在 VS 里跟 AI 聊天(用 Claude Code / cv4vs 那类插件更合适);需要 VS 调试器图形界面;需要调试托管 .NET。
为什么不用现成的 VS MCP 插件
Unofficial-VS-MCP、VS-MCPServer、cv4vs-agents 都是进程内方案:工具调用最终要回到 VS 的 UI 线程。于是 VS 一弹模态框,调用就阻塞,只能等人点;RDP 断开、锁屏、VS 重启都会让连接挂掉。
| 场景 | 进程内插件 | dsh2vs |
|---|---|---|
| VS 弹「项目已过期」对话框 | 调用卡住,等人点 | 不经过 VS,没有这个弹窗 |
| RDP 断开 / 锁屏 | UI 自动化失效 | 无影响 |
| VS 崩溃或重启 | 连接断开,要人工恢复 | 服务独立,重连即用 |
| 客户端重启 | 要重新拉起 stdio 代理进程 | 固定一个 URL,一直在 |
结论:C++ 的加载、编译、调试,没有一样必须由 VS 进程提供。桥就做桥。
与现有 MCP 的关系(不重复造轮子)
生态里已有同类,我们不装作没有。完整对照见下,边界一句话:如果你只想要"会跑 cdb 的 MCP",那别用本项目 —— mcp-windbg 更成熟(1700+ star、支持内核与 TTD)。
| 项目 | 关系 |
|---|---|
| mcp-windbg | 调试原语重叠,它比我们深 |
| 微软官方 WinDbg MCP(WinDbg 内置) | 要 GUI 交互,无人值守用不了 ← 我们的位置 |
| VS-MCPServer / VS IDE Bridge | 进程内,VS 必须运行 |
| msbuild-mcp-server | 构建原语重叠,但没有"编译完接着调试" |
| dsh2vs | 从 .sln 出发的无人值守闭环 + 诊断层 |
三条只有我们做的:
- 不依赖任何 GUI —— 整条链路都不碰 VS:构建走 MSBuild CLI,调试走 cdb 子进程。
- 工程感知 —— 别人给你 debugger,你得自己告诉它 exe 在哪;我们从解决方案和配置推出来。
- 诊断层 —— 启动失败直接给
0xC0000135+ 缺哪个 DLL;卡在弹窗直接判定"CRT 断言,不是死锁";崩溃自动 dump + 报告。
文档
| 想看 | 去看 |
|---|---|
| 全部 40+ 个工具怎么用 | docs/tools.md |
| 配置项、多工作区、让它常驻 | docs/configuration.md |
| 常见问题(12 条)、已知限制、源码构建细节 | docs/faq.md |
| 目录结构、路线图、给 agent 的 Skill | docs/development.md |
| 架构决策记录(ADR-001…009) | docs/design.md |
| 面向 AI agent 的完整操作流程 | skills/dsh2vs/SKILL.md |
反馈与许可
- 开 issue:bug 请附上
healthz输出、VS 版本、artifacts/下的构建日志片段。 - MIT © 2026 aaalzk
GitHub 直连不通?
作者搭建了一个加速服务:https://gh.223456.xyz/
服务本身只是部署:跑的是第三方开源的 GitHub 代理镜像程序,Docker 镜像来自该上游项目, 非本项目开发或构建,作者只提供部署与带宽,不对其实现与安全性背书。
git clone https://gh.223456.xyz/github.com/aaalzk/dsh2vs.git
git clone https://gh.223456.xyz/github.com/<任意仓库>.git
支持 git clone / git ls-remote / raw 文件下载;网页浏览不支持(会返回 400),看网页请走原站。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。