dap-mcp

dap-mcp

site icon
2025.04.02 5
Python调试工具开发效率开发效率
dap-mcp 是一个基于 Model Context Protocol (MCP) 的实现,专门用于管理 Debug Adapter Protocol (DAP) 会话。该项目通过 MCP 框架优化和扩展大型语言模型的上下文窗口,从而增强和简化调试工作流。
View on GitHub

Overview

基本能力

产品定位

dap-mcp 是一个专为调试工作流优化的工具,通过集成 Debug Adapter Protocol (DAP) 和 Model Context Protocol (MCP),提供高效的调试功能。

核心功能

  • Debug Adapter Protocol 集成:使用标准化协议与调试器交互。
  • MCP 框架:利用 MCP 优化上下文并增强调试工作流。
  • 丰富的调试工具:设置、列出和移除断点;控制执行(继续、步入/出/下一步);评估表达式;切换堆栈帧;查看源代码。
  • 灵活的配置:通过 JSON 配置文件自定义调试器设置、源代码目录等参数。

适用场景

  • 开发者在调试复杂代码时需要高效的断点管理和执行控制。
  • 团队需要标准化调试流程以提升协作效率。
  • 项目需要扩展支持多种调试器(如 debugpy、lldb)。

工具列表

  • launch:启动调试程序。
  • set_breakpoint:在指定文件和行设置断点(可带条件)。
  • remove_breakpoint:移除指定文件和行的断点。
  • list_all_breakpoints:列出所有当前设置的断点。
  • continue_execution:在命中断点后继续执行程序。
  • step_in:步入函数调用。
  • step_out:步出当前函数。
  • next:执行到下一行代码。
  • evaluate:在当前调试上下文中评估表达式。
  • change_frame:切换到不同的堆栈帧。
  • view_file_around_line:查看指定行附近的源代码(如未指定文件则使用最后提供的文件)。
  • terminate:终止调试会话。

常见问题解答

  • 如何扩展支持其他 DAP 服务器?dap_mcp/config.py 中添加新的 DAP 配置类,定义唯一的 type 值并包含特定字段,然后更新联合类型以包含新类。
  • 如何贡献代码?
  • Fork 仓库;2. 创建新分支;3. 编写测试并确保通过;4. 提交 Pull Request。

使用教程

使用依赖

  • Python 3.10 或更高版本
  • uv(可选,用于运行服务器)

安装教程

安装 dap-mcp 及其依赖:

pip install dap-mcp
python -m dap_mcp --config config.json

# 如果已安装 uv
uvx dap-mcp@latest --config config.json

调试方式

运行服务器后,使用提供的工具(如 set_breakpointcontinue_execution)通过 MCP 客户端进行调试。示例命令:

python -m dap_mcp --config config.json

许可证

该项目遵循 AGPL-3.0 开源许可条款,请参阅 AGPL-3.0 了解完整条款。