dap-mcp
dap-mcp是模型上下文协议 (MCP)的实现,专为管理调试适配器协议 (DAP) 会话而定制。MCP 提供了一个标准化框架来优化和扩展大型语言模型的上下文窗口,在本项目中,它用于增强和简化调试工作流程。
特征
- **调试适配器协议集成:**使用标准化协议与调试器交互。
- **MCP 框架:**利用 MCP 优化上下文并增强调试工作流程。
- **丰富的调试工具:**设置、列出和删除断点;控制执行(继续、步入/步出/下一步);评估表达式;更改堆栈框架;以及查看源代码。
- **灵活的配置:**通过 JSON 配置文件自定义调试器设置、源目录和其他参数。
安装
先决条件
- Python 3.10 或更高版本
- uv (可选,用于运行服务器)
安装并运行服务器
安装dap-mcp及其依赖项:
配置
该项目使用 JSON 配置文件(例如.config.json
)来指定调试器设置和源码目录。以下是示例配置:
此配置告知调试器:
- 调试器可执行文件及其参数的路径。
- 断点操作期间解析文件路径的源目录。
- 启动调试器所需的其他设置(例如模块、工作目录和解释器路径)。
可用的调试器类型
类型 | 示例路径 | 示例参数 |
---|---|---|
调试 | /usr/bin/python3 | ["-m", "debugpy.adapter"] |
lldb | /usr/bin/lldb-dap | [] |
可用工具
该项目公开了几个可以通过 MCP 框架调用的工具:
- **启动:**启动被调试程序。
- **set_breakpoint:**在指定的文件和行设置断点(可选条件)。
- **remove_breakpoint:**从指定文件和行中删除断点。
- **list_all_breakpoints:**列出调试器中当前设置的所有断点。
- **continue_execution:**到达断点后继续程序执行。
- **step_in:**进入函数调用。
- **step_out:**跳出当前函数。
- **next:**跳到下一行代码。
- **评估:**在当前调试上下文中评估表达式。
- **change_frame:**切换到不同的堆栈帧。
- **view_file_around_line:**查看指定行周围的源代码(如果未指定,则使用最后提供的文件)。
- **终止:**终止调试会话。
这些工具提供 XML 呈现的输出以便与 MCP 客户端集成。
使用其他 DAP 服务器进行扩展
要支持其他 DAP 服务器,您只需在dap_mcp/config.py
文件中添加一个新的 DAP 专用配置类即可。所有 DAP 配置均从基类DAPConfig
扩展而来。每个新的子类都应该:
- 定义一个唯一
type
值(使用Literal
)作为鉴别器。 - 包括特定于该调试器的任何其他字段或设置。
例如,要添加对名为“mydap”的假设 DAP 服务器的支持,您可以添加:
创建新的配置类后,通过添加新类来更新用于调试器特定配置的联合类型。例如:
现在,当您提供带有"type": "mydap"
的配置 JSON 时,它将使用新的MyDAP
类进行解析和验证,并且您的 DAP 服务器扩展将完全集成。
贡献
欢迎贡献!贡献方式:
- 分叉存储库。
- 为您的功能或错误修复创建一个新的分支。
- 编写测试并确保所有检查都通过。
- 提交拉取请求。
请遵循编码指南并在更改中包含适当的测试。
执照
本项目采用 AGPL-3.0 许可证。详情请参阅许可证文件。
Related MCP Servers
- AsecurityAlicenseAqualityA distributable Model Context Protocol (MCP) server that exposes Dart SDK commands for AI-powered development. This server bridges the gap between AI coding assistants and Dart/Flutter development workflows by implementing the Model Context Protocol (MCP).Last updated -10112TypeScriptMIT License
- AsecurityAlicenseAqualityA Model Context Protocol (MCP) server that provides code analysis capabilities using tree-sitter, designed to give Claude intelligent access to codebases with appropriate context management.Last updated -2633PythonMIT License
- -securityAlicense-qualityA tool that helps easily register Anthropic's Model Context Protocol (MCP) in Claude Desktop and Cursor, providing RAG functionality, Dify integration, and web search capabilities.Last updated -36PythonMIT License
- AsecurityAlicenseAqualityA specialized MCP server that helps analyze and debug Model Context Protocol logs by providing Claude with direct access to log files across multiple platforms.Last updated -19TypeScriptMIT License