一个通过调试适配器协议(DAP)提供调试功能的模型上下文协议(MCP)服务器。此服务器使AI助手和其他MCP客户端能够与各种编程语言的调试器进行交互。
MCP DAP 服务器作为MCP客户端和兼容DAP的调试器之间的桥梁,允许对调试会话进行程序控制。它提供了一整套调试工具,可以用于:
git clone https://github.com/go-delve/mcp-dap-server
cd mcp-dap-server
go build -o bin/mcp-dap-server
服务器默认监听8080端口:
./bin/mcp-dap-server
配置您的MCP客户端以使用SSE(服务器发送事件)传输连接到服务器http://localhost:8080。
此配置应适用于(如Gemini CLI)[https://developers.google.com/gemini-code-assist/docs/use-agentic-chat-pair-programmer#configure-mcp-servers]。
{
"mcpServers": {
"dap-debugger": {
"command": "mcp-dap-server",
"args": [],
"env": {}
}
}
}
claude mcp add --transport sse mcp-dap-server http://localhost:8080
start_debugger启动一个新的调试会话。
port (数字):DAP服务器的端口号stop_debugger停止当前的调试会话。
restart_debugger重启当前的调试会话。
terminate_debugger终止调试器和被调试进程。
debug_program以调试模式启动程序。
path (字符串):要调试的程序路径exec_program不带调试地执行程序。
path (字符串):要执行的程序路径attach_debugger连接到正在运行的进程。
mode (字符串):连接模式processId (数字,可选):要连接的进程IDset_breakpoints在文件中设置行断点。
file (字符串):源文件路径lines (数组):断点所在的行号set_function_breakpoints设置函数断点。
functions (数组):函数名称continue继续程序执行。
threadId (数字,可选):要继续的线程IDnext跳过当前行。
threadId (数字):线程IDstep_in进入函数调用。
threadId (数字):线程IDstep_out跳出当前函数。
threadId (数字):线程IDpause暂停程序执行。
threadId (数字):线程IDthreads列出被调试进程中的所有线程。
stack_trace获取线程的堆栈跟踪。
threadId (数字):线程IDstartFrame (数字,可选):起始帧索引levels (数字,可选):要检索的帧数scopes获取堆栈帧的变量作用域,并自动获取每个作用域内的所有变量。
frameId (数字):堆栈帧IDvariables获取作用域内的变量。
variablesReference (数字):变量引用evaluate计算表达式。
expression (字符串):要计算的表达式frameId (数字,可选):帧上下文context (字符串,可选):计算上下文set_variable设置变量值。
variablesReference (数字):变量引用name (字符串):变量名称value (字符串):新值loaded_sources列出所有已加载的源文件。
modules列出已加载的模块。
disassemble反汇编内存位置的代码。
memoryReference (字符串):内存地址instructionOffset (数字,可选):指令偏移量instructionCount (数字):指令数量exception_info获取异常信息。
threadId (数字):线程IDdisconnect从调试器断开连接。
terminateDebuggee (布尔值,可选):是否终止被调试进程configuration_done信号配置完成。
欢迎贡献!请随意提交Pull Request。
MIT