使用说明
DAP MCP 服务器
通过统一的MCP接口,使AI代理能够跨多种语言程序化地调试应用程序。
这是什么?
基于Rust的 MCP(模型上下文协议)服务器 该功能通过与(Claude、Gemini CLI 等)AI 助手建立连接,向其暴露调试能力 调试适配器协议 (DAP)。
简而言之: AI代理能够在Python、Ruby、Node.js、Go和Rust等语言中自主设置断点、逐行执行代码、检查变量以及排查错误。
快速入门
1. 安装
Docker(推荐):
# Choose image for your language
docker build -f Dockerfile.python -t debugger-mcp:python .
docker run -i debugger-mcp:python
本地的:
cargo build --release
./target/release/debugger_mcp serve
2. 配置Claude桌面版
{
"mcpServers": {
"debugger": {
"command": "/path/to/debugger_mcp",
"args": ["serve"]
}
}
}
3. 调试
从克劳德开始调试!
详细设置: 入门指南
状态
🎉 生产就绪 - 多语言支持
支持的语言: Python、Ruby、Node.js、Go、Rust(全部功能齐全)
持续集成
| 工作流程 | 目的 | 最新状态 |
|---|---|---|
| CI(企业识别系统/品牌标识) | 代码质量、安全性、单元测试(193个测试) | |
| 集成测试 端到端的AI调试:5种语言×2个AI客户端(Claude Code + Codex) |
集成测试的作用: 真正的AI代理(Claude Code和Codex)通过MCP自主调试程序,在所有语言中每次测试验证8项调试操作。
最新测试结果(10/10 测试通过):
| 语言 | Claude 代码 | Codex | 操作 |
|---|---|---|---|
| (无对应中文翻译,原表头内容) | (无对应中文翻译,原表头内容) | (无对应中文翻译,原表头内容) | (无对应中文翻译,原表头内容) |
| Python | ✅ 通过 | ✅ 通过 | SBCTED |
| Ruby | ✅ 通过 | ✅ 通过 | SBCTED |
| Node.js | ✅ 通过 | ✅ 通过 | SBCTED(可能是一个特定的测试或标准名称,直接保留原样) |
| Go | ✅ 通过 | ✅ 通过 | SBCTED |
| Rust | ✅ 通过 | ✅ 通过 | SBCTED | 图例:
S=会话开始,B=断点,C=继续,T=跟踪,E=评估,D=断开连接 理解持续集成(CI): 看见
CI 工作流文档
特点/特性
支持的语言
| 语言 | 调试器 | Docker 镜像 |
|----------|----------|--------------| Dockerfile.python | Python | debugpy |
| Dockerfile.ruby | Ruby | rdbg |
| Dockerfile.nodejs | Node.js | vscode-js-debug |
| Dockerfile.go | Go(语言) | delve(深入探索) |
| Dockerfile.rust | Rust | CodeLLDB |
|
调试功能 ✅
- 电流:
- 开始/停止调试会话
- 设置源代码断点
- 执行控制(继续、单步跳过/进入/退出、暂停)
- 表达式求值
- 堆栈跟踪检查
可变检查 ⏳(时钟)
- 计划中的:
- 条件断点和日志点
- 异常断点
- 多线程调试
- 远程调试
数据断点
AI Agent (Claude, Gemini, etc.)
↕ MCP Protocol (JSON-RPC)
┌──────────────────────────────────┐
│ DAP MCP Server (Rust/Tokio) │
│ ┌─────────────────────────────┐ │
│ │ MCP Layer (Tools/Resources)│ │
│ └──────────┬──────────────────┘ │
│ ┌──────────┴──────────────────┐ │
│ │ Language-Agnostic Core │ │
│ └──────────┬──────────────────┘ │
│ ┌──────────┴──────────────────┐ │
│ │ DAP Protocol Client │ │
│ └─────────────────────────────┘ │
└──────────┼───────────────────────┘
↕ Debug Adapter Protocol
┌──────┴──────┐
debugpy rdbg delve CodeLLDB
(Python)(Ruby) (Go) (Rust/C++)
建筑 深入探讨:
建筑提案
User: "My Python script crashes. Can you debug it?"
Claude:
→ debugger_start(language="python", program="/workspace/script.py")
→ debugger_set_breakpoint(sourcePath="/workspace/script.py", line=42)
→ debugger_continue()
→ debugger_wait_for_stop()
[Program stops at breakpoint]
→ stack = debugger_stack_trace()
→ debugger_evaluate(expression="user_data")
"The crash occurs because 'user_data' is None when fetch_user() fails.
The code doesn't check for None before accessing user_data.name..."
使用示例 按语言划分的表达式语法:
表达指南
常见问题
❓ 断点未验证? -g → 确保调试符号: debugpy 为 rustc/gcc 设置标志,
适用于Python
→ 检查源路径是否完全匹配
❓ 会话超时? pip install debugpy→ 验证调试器是否已安装: gem install debug,
等。
→ 检查路径中的调试器
❓ Docker 路径问题? /workspace/... → 使用容器路径: /home/user/...(不是主机路径,如
)
→ 确保音量设置正确 完整指南:
故障排除文档
文档
按用例划分 🚀 准备开始了吗? →
入门指南 🐳 使用 Docker 部署吗? →
Docker 部署指南 🏗️ 了解建筑学吗? →
建筑提案 ➕ 添加一种新语言? →
新语言指南 ✅ 了解CI/CD吗? →
CI 工作流 🐛 遇到问题需要排查解决吗? →
故障排除指南 🧪 编写测试吗? →
测试指南
- 文档结构 建筑/
- - 系统设计、组件、技术决策 贡献/
- - 开发者指南、测试、设置 使用/
- - 部署、Docker、表达式、故障排除 过程/流程
- 持续集成/持续交付(CI/CD)、版本发布、跨平台构建 完整索引:
docs/README.md(文件说明/读我文件)
发展
- 先决条件
rustup updateRust 1.70+( - )
- Docker(用于集成测试)
- 针对特定语言的调试器(用于测试):
pip install debugpy - python
gem install debug - Ruby:
npm install -g node-debug2
- 针对特定语言的调试器(用于测试):
Node.js:
# Clone
git clone https://github.com/Govinda-Fichtner/debugger-mcp.git
cd debugger-mcp
# Install pre-commit hooks (recommended)
pre-commit install --install-hooks
pre-commit install --hook-type commit-msg
pre-commit install --hook-type pre-push
# Build
cargo build --release
# Run unit tests
cargo test
# Run integration tests (requires debuggers)
cargo test --test '*integration*' -- --ignored
构建与测试
预提交钩子(Pre-commit Hooks)
- 在提交/推送前运行自动化质量检查:
cargo fmt格式化( - )
cargo clippyLinting(代码检查) - )
- 单元测试
gitleaks安全扫描(cargo-audit, - )
代码覆盖率(最低60%) 设置:
预提交指南
贡献 我们欢迎投稿!请参阅 入门指南
- for:对于;为了;因为
- 开发环境设置
- 架构概述
- 测试指南
代码风格
- 贡献工作流程:
- 克隆仓库
- 创建特性分支
- 通过测试进行更改
pre-commit run --all-files - 跑步
提交拉取请求
路线图
- ✅ 已完成阶段 阶段0:
- 研究与建筑(或架构设计) 第一阶段:
- MVP - Python 支持 第二阶段:
- Ruby 验证 第三阶段:
多语言支持(Python、Ruby、Node.js、Go、Rust)
🚧 当前阶段
- 第四阶段:生产特性
- 条件断点
- 异常处理
- 安全加固
性能优化
📅 未来阶段
- 第五阶段:社区
- 开源发布
- 插件API
- VS Code 扩展
其他语言(Java、C#、PHP)
技术栈
| 组件 | 技术 | 理由 |
|---|---|---|
| 语言 | Rust | 内存安全、性能、异步 |
| CLI | Clap | 行业标准,派生宏 |
| 异步运行时 | Tokio | 经实战检验,功能全面 |
| 序列化 | serde + serde_json | 实际标准 |
| 错误处理 | anyhow + thiserror | 符合人体工程学,信息清晰 |
| 日志记录 | 跟踪 | 结构化,异步感知 |
许可证
待定(可能为MIT或Apache 2.0)
用 Rust 语言,带着爱与螃蟹精神打造
