此代码是100%AI生成的
- VS Code Github复制品代理Gemini 2.5 Pro(预览版)
- 它实际上似乎正在发挥作用。...
CDB MCP服务器
此项目实现了一个模型上下文协议(MCP)服务器,该服务器充当Windows调试器(CDB)的桥梁。它允许MCP兼容的客户端(例如VS代码扩展)与调试器交互,以执行打开崩溃转储、执行调试器命令和附加到进程等操作。
此服务器使用TypeScript构建,并利用 @modelcontextprotocol/sdk.
特性
- 打开崩溃转储文件(
.dmp)在CDB。 - 执行任意CDB命令。
- 将CDB附加到正在运行的进程。
- 与MCP客户端进行基于STDIO的通信。
先决条件
- (包括npm)-建议使用18.x或更高版本。
- 独立的CDB安装。确保
cdb.exe可以访问,最好在系统的PATH中访问,或者在需要时在服务器中配置(当前未实现,假定为PATH)。
安装
- 克隆存储库(如果您还没有):
git clone
cd CDB-MCP- 安装依赖项:
npm install建筑
要将TypeScript源代码编译为JavaScript,请运行:
npm run build这将把编译后的文件输出到 build 目录。
运行服务器
有多种方法可以运行MCP服务器:
- 使用npm(推荐用于开发):
npm run start此命令执行 node ./build/index.js 如所定义 package.json.
- 直接使用Node.js:
node ./build/index.js- 使用批处理脚本(主要用于VS Code MCP集成):
.\run_mcp_server.bat此脚本将更改到项目目录,然后运行 node ./build/index.js 使用Node.js的绝对路径(在脚本中可配置)。
配置
用于VS代码MCP集成(.vscode/mcp.json)
如果您将此服务器与支持MCP的VS Code扩展一起使用,您通常会在 .vscode/mcp.json 您工作区中的文件。示例配置:
{
"servers": {
"cdb-mcp": {
"type": "stdio",
"command": "${workspaceFolder}/run_mcp_server.bat",
"env": {}
}
}
}type: "stdio":表示服务器通过标准输入/输出进行通信。command:指定启动服务器的命令。使用${workspaceFolder}使路径相对于VS Code工作区根。
run_mcp_server.bat
此批处理文件是启动服务器的助手。它确保了正确的工作目录,并且可以配置特定的路径 node.exe 如果它不在系统PATH中,或者你需要使用特定的Node.js版本。
使用MCP客户端
服务器运行后,MCP客户端可以连接到它。服务器在stdin上监听JSON-RPC消息,并向stdout发送响应/通知。
可用的MCP方法
服务器公开以下自定义MCP方法(请求):
cdb/openCrashDump:打开崩溃转储文件。
- 参数: { path: string } - 例子: {"jsonrpc": "2.0", "method": "cdb/openCrashDump", "params": {"path": "C:\path\to\your\dump.dmp"}, "id": 1}
cdb/executeCommand:执行CDB命令。
- 参数: { command: string } - 例子: {"jsonrpc": "2.0", "method": "cdb/executeCommand", "params": {"command": "!analyze -v"}, "id": 2}
cdb/attachToProcess:将调试器附加到正在运行的进程。
- 参数: { processId?: string, processName?: string } (必须至少提供一个) - 示例(按ID): {"jsonrpc": "2.0", "method": "cdb/attachToProcess", "params": {"processId": "1234"}, "id": 3} - 示例(按名称): {"jsonrpc": "2.0", "method": "cdb/attachToProcess", "params": {"processName": "notepad.exe"}, "id": 4}
(注意:实际方法名称如下 f1e.cdb/open-crash-dump 如果遵循不同的约定,则某些客户端使用的MCP方法名称可能特定于该客户端的映射,而不是此服务器公开的直接MCP方法名称。服务器端处理程序当前已命名 f1e_cdb_open_crash_dump, f1e_cdb_execute_cdb_command这意味着客户端可能正在发送以下请求 f1e/cdb/openCrashDump。如果服务器严格遵守其MCP方法的不同命名约定,则应更新本节。)
可用 package.json 脚本
npm run build:从编译TypeScript代码src向build.npm run start:通过运行编译后的命令启动MCP服务器build/index.js.npm test:当前显示错误消息(“错误:未指定测试”)。
项目结构
src/:包含服务器的TypeScript源代码。
- index.ts:应用程序的主要入口点。
build/:包含编译的JavaScript代码(输出npm run build).node_modules/:包含项目依赖关系。.vscode/:包含VS代码特定的设置。
- mcp.json:MCP客户端集成的示例配置。
package.json:定义项目元数据、依赖关系和脚本。tsconfig.json:TypeScript编译器配置。run_mcp_server.bat:运行服务器的实用程序脚本。README.md:这个文件。
故障排除
- 客户端日志中的“解析消息失败”: 此服务器使用
console.error用于自己的日志记录。如果MCP客户端严格要求stdout/stderr上只有JSON-RPC,则这些服务器日志可能会在客户端显示为解析错误。这些通常用于服务器端诊断。 - 未找到CDB: 确保
cdb.exe位于系统的PATH中,或者修改服务器逻辑/脚本以指向其显式位置。 - 找不到Node.js/npm: 确保Node.js安装正确
bin目录在您的系统PATH中。
许可证
该项目根据ISC许可证获得许可。请参阅 package.json 了解更多详情。
