项目简介
dap_mcp 是一个实现了 Model Context Protocol (MCP) 的服务器,专门用于增强大型语言模型(LLM)在调试代码时的上下文感知能力。它通过集成了 Debug Adapter Protocol (DAP),使得 LLM 客户端能够利用各种调试器(如 debugpy, lldb)的功能,从而实现更智能、更高效的代码调试工作流。
主要功能点
- DAP 协议集成: 能够与支持 DAP 协议的调试器(如 Python debugpy, LLDB)进行通信。
- MCP 框架: 利用 MCP 协议,为 LLM 客户端提供标准化的接口来访问调试功能。
- 丰富的调试工具: 支持设置/移除断点、单步执行、继续执行、表达式求值、查看堆栈帧、查看源代码等调试操作。
- 灵活的配置: 通过 JSON 配置文件自定义调试器类型、路径、源代码目录等参数。
- 可扩展性: 易于扩展支持新的 DAP 调试器。
安装步骤
-
环境准备:
- 确保已安装 Python 3.10 或更高版本。
- (可选)安装 'uv' 以获得更快的服务器运行速度 ('pip install uv')。
-
安装 dap_mcp: 打开终端,运行以下命令安装 'dap_mcp' 及其依赖:
pip install dap-mcp
服务器配置
MCP 客户端需要配置连接 dap_mcp 服务器的命令和参数。dap_mcp 服务器通过 JSON 配置文件进行配置,客户端需要指定启动服务器的命令,并确保配置文件路径正确。
以下是 dap_mcp 服务器的 MCP 客户端 服务器配置 (server config) 示例 (JSON 格式):
{ "serverName": "dap_mcp_debugpy", "command": "python", "args": [ "-m", "dap_mcp", "--config", "path/to/your/config.json" // 将 "path/to/your/config.json" 替换为实际的配置文件路径 ] }
参数注释:
- 'serverName': 服务器名称,可以自定义,用于在客户端标识不同的 MCP 服务器连接。例如 '"dap_mcp_debugpy"' 或 '"my_debugger"'。
- 'command': 启动服务器的可执行命令。这里使用 'python',假设您的 Python 环境已配置好。
- 'args': 传递给 'command' 的参数列表。
- '"-m", "dap_mcp"': 以模块方式运行 'dap_mcp' 服务器程序。
- '"--config", "path/to/your/config.json"': 指定配置文件的路径。请务必将 '"path/to/your/config.json"' 替换为您实际创建的 JSON 配置文件的路径。 配置文件需要根据您要调试的程序和使用的调试器进行创建。
配置文件 (config.json) 示例:
您需要根据您的调试需求创建一个 JSON 配置文件 (例如 'config.json'),并将其路径配置到上述 'args' 中。以下是一个 'debugpy' 调试器的配置文件示例:
{ "type": "debugpy", "debuggerPath": "/path/to/python/with/debugpy", // Python 解释器路径,该解释器需要安装了 debugpy 库 "debuggerArgs": [ "-m", "debugpy.adapter" ], "sourceDirs": [ "/path/to/source/code" // 源代码根目录,用于解析文件路径,如果使用绝对路径可省略 ], "module": "your_module_name", // 要调试的 Python 模块名,例如 "pytest" "python": ["/path/to/python"], // 运行被调试程序的 Python 解释器路径 "cwd": "/path/to/working/directory" // 工作目录 }
请根据您实际的调试环境修改上述配置文件示例中的路径和参数。 您可以参考仓库 README.md 文件中 "Configuration" 和 "Available Debugger Types" 部分获取更详细的配置说明。
基本使用方法
-
启动 dap_mcp 服务器: 在终端中,导航到您保存配置文件的目录,并运行 MCP 客户端 服务器配置 (server config) 中定义的 'command' 和 'args' 命令,例如:
python -m dap_mcp --config config.json或者,如果您安装了 'uv':
uvx dap-mcp@latest --config config.json服务器成功启动后,将监听 MCP 客户端的请求。
-
配置 MCP 客户端: 在您的 MCP 客户端中,添加上述 服务器配置 (server config) 信息,并确保客户端能够连接到 dap_mcp 服务器。
-
使用 LLM 客户端进行调试: 通过 LLM 客户端,您可以调用 dap_mcp 服务器提供的工具 (Tools) 来执行调试操作。可用的工具包括:
- 'launch': 启动调试会话。
- 'set_breakpoint': 设置断点。
- 'remove_breakpoint': 移除断点。
- 'list_all_breakpoints': 列出所有断点。
- 'continue_execution': 继续执行。
- 'step_in': 单步进入。
- 'step_out': 单步跳出。
- 'next': 单步跳过。
- 'evaluate': 求值表达式。
- 'change_frame': 切换堆栈帧。
- 'view_file_around_line': 查看源代码。
- 'terminate': 终止调试会话。
具体工具的使用方法和参数,请参考仓库代码 'dap_mcp/server.py' 中 '@app.call_tool()' 和 '@app.list_tools()' 装饰器部分,以及仓库的 README.md 文档。
注意: dap_mcp 服务器主要通过工具 (Tools) 的方式向 MCP 客户端提供调试能力,客户端需要根据自身能力和 dap_mcp 提供的工具进行交互,以实现代码调试功能。
信息
分类
开发者工具