dap-mcp 是一个针对管理调试适配器协议(DAP)会话而定制的 模型上下文协议(MCP) 实现。MCP 提供了一个标准化框架,用于优化和扩展大型语言模型的上下文窗口,在这个项目中,它被用来增强和简化调试工作流程。
安装 dap-mcp 及其依赖项:
pip install dap-mcp
python -m dap_mcp --config config.json
# 或者,如果你已安装 uv
uvx dap-mcp@latest --config config.json
该项目使用一个 JSON 配置文件(例如 .config.json)来指定调试器设置和源目录。示例配置如下:
{
"type": "debugpy",
"debuggerPath": "/path/to/python/with/debugpy",
"debuggerArgs": [
"-m",
"debugpy.adapter"
],
// 解析文件路径时使用的源目录
// 如果你总是使用绝对路径,可以省略此部分
"sourceDirs": [
"/path/to/source/code"
],
// 调试器特定设置从这里开始
// 关于 debugpy 的配置可以在
// https://github.com/microsoft/debugpy/wiki/Debug-configuration-settings 找到
// 你可以使用 "program" 而不是 "module" 来指定要调试的程序
"module": "pytest",
// 运行被调试程序所使用的 Python 可执行文件
"python": ["/path/to/python"],
"cwd": "/path/to/working/directory"
}
此配置向调试器提供了以下信息:
| 类型 | 示例路径 | 示例参数 |
|---|---|---|
| debugpy | /usr/bin/python3 | ["-m", "debugpy.adapter"] |
| lldb | /usr/bin/lldb-dap | [] |
该项目通过 MCP 框架暴露了多个工具,可以通过以下方式调用:
这些工具提供 XML 渲染的输出,以便与 MCP 客户端进行集成。
为了支持额外的 DAP 服务器,你只需在 dap_mcp/config.py 文件中添加一个新的 DAP 特定配置类。所有 DAP 配置都继承自基础 DAPConfig 类。每个新的子类应:
type 值(使用 Literal),作为区分符。例如,为了添加对假设的 DAP 服务器 "mydap" 的支持,你可能会添加:
class MyDAP(DAPConfig):
type: Literal["mydap"]
# 在此处添加 MyDAP 的任何附加设置
customSetting: Optional[str] = Field(
None, description="MyDAP 的自定义设置。"
)
创建新的配置类后,更新用于调试器特定配置的联合类型,包括你的新类。例如:
DebuggerSpecificConfig = Annotated[Union[DebugPy, MyDDAP], Field(..., discriminator="type")]
现在,当你提供一个包含 "type": "mydap" 的配置 JSON 时,它将使用你的新 MyDAP 类进行解析和验证,并且你的 DAP 服务器扩展将完全集成。
欢迎贡献!要贡献,请遵循以下步骤:
请遵守编码指南,并在更改中包含适当的测试。
本项目根据 AGPL-3.0 许可证发布。详情请参阅 LICENSE 文件。