关于 Go Delve Debugger MCP Server
Go Delve Debugger MCP 服务将 Delve 调试器暴露给 LLM,使 AI 助手能够启动、控制并检查 Go 程序的调试会话。适合需要让 AI 辅助调试 Go 应用的开发者,通过命令行启动并支持 SSE 方式连接。
主要功能
- 01启动、终止与列出调试会话
- 02设置断点并控制程序执行
- 03单步执行:next、step in、step out
- 04求值表达式并检查变量与调用栈
- 05同时管理多个调试会话
适用场景
- 01让 AI 助手逐步调试 Go 程序中的错误
- 02在调试会话中检查变量值与调用栈
MCP 相关
该服务以 MCP 服务形式向客户端提供 start_debug、set_breakpoint、continue、evaluate 等工具,并通过 SSE 端点连接。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
Go Delve 调试器 MCP 服务
一个允许大模型与 Delve Go 调试器交互的 MCP 服务。
描述
本项目实现了一个 Model Context Protocol (MCP) 服务,并将其与 Delve Go debugger 集成,使 AI 助手能够调试 Go 应用程序。该服务提供一组工具,允许大模型启动、控制和交互调试会话。
你可以在 EXAMPLE.md 中找到一个可运行的示例。
功能
- 启动 Go 程序的调试会话
- 在代码中设置断点
- 单步执行代码(下一步、步入、步出)
- 在调试会话上下文中求值表达式
- 检查变量和堆栈跟踪
- 管理多个调试会话
安装
前置条件
- Go 1.21 或更高版本
- 已安装 Delve 调试器(
go install github.com/go-delve/delve/cmd/dlv@latest)
安装
go install github.com/xhd2015/dlv-mcp/cmd/dlv-mcp@latest
使用方法
启动 MCP 服务:
dlv-mcp --listen :9097
然后在 Cursor 或任何 MCP 客户端中,将 MCP 服务配置为 http://localhost:9097/sse。
检查 MCP 服务
bunx @modelcontextprotocol/inspector dlv-mcp
可用工具
调试会话管理
-
start_debug:启动新的调试会话program:要调试的 Go 程序路径args:程序的命令行参数(可选)mode:调试模式(debug、test或exec,默认值:debug)
-
terminate_debug:终止调试会话session_id:要终止的调试会话 ID
-
list_debug_sessions:列出活动的调试会话
断点管理
set_breakpoint:在调试会话中设置断点session_id:调试会话 IDfile:要设置断点的源文件(绝对路径)line:要设置断点的行号
执行控制
-
continue:继续执行调试会话session_id:调试会话 ID
-
next:在调试会话中跳过当前行session_id:调试会话 ID
-
step_in:在调试会话中步入函数session_id:调试会话 ID
-
step_out:在调试会话中步出函数session_id:调试会话 ID
检查
evaluate:在调试会话中求值表达式session_id:调试会话 IDexpression:要进行求值的表达式frame_id:堆栈帧 ID(可选,默认值:0)
示例工作流
-
启动调试会话:
start_debug program=/path/to/program.go -
设置断点:
set_breakpoint session_id=session-123456 file=/path/to/program.go line=15 -
继续执行至断点:
continue session_id=session-123456 -
求值表达式:
evaluate session_id=session-123456 expression="myVariable" -
跳过一行:
next session_id=session-123456 -
终止会话:
terminate_debug session_id=session-123456
架构
该服务由以下组件构建:
- MCP 服务层:使用 mark3labs/mcp-go 实现 Model Context Protocol
- DAP 客户端层:与 Delve 的 DAP 服务通信
- 会话管理:维护和管理调试会话
检查 MCP 服务
bunx @modelcontextprotocol/inspector go run ./cmd/dlv-mcp
使用演示客户端
我们创建了一个演示客户端,展示如何通过编程方式使用 debugger-mcp 服务。该演示将:
- 启动 MCP 服务
- 为
./testdata/hello.go启动调试会话 - 尝试设置断点并执行调试命令
- 正确终止会话和服务
运行演示:
go run ./demo/main.go
演示客户端展示了如何:
- 使用 JSON-RPC 启动 MCP 服务并与之通信
- 使用正确的格式发送工具调用
- 解析和处理响应
- 妥善处理错误
有关实现的更多详情,请查看 demo/main.go 和 demo/README.md。
许可证
MIT License
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。