基本能力
产品定位
dlv-mcp 是一个调试工具,专门用于 Go 应用程序的调试,通过与 Delve 调试器的集成,提供强大的调试功能。
核心功能
- 启动 Go 程序的调试会话
- 在代码中设置断点
- 单步执行代码(下一步、步入、步出)
- 在调试会话上下文中评估表达式
- 检查变量和堆栈跟踪
- 管理多个调试会话
适用场景
- Go 开发者在开发过程中需要调试应用程序
- AI 助手需要与调试器交互以帮助开发者解决问题
- 需要自动化调试流程的场景
工具列表
Debug Session Management
start_debug
: 启动一个新的调试会话terminate_debug
: 终止一个调试会话list_debug_sessions
: 列出活动的调试会话
Breakpoint Management
set_breakpoint
: 在调试会话中设置断点
Execution Control
continue
: 继续执行调试会话next
: 单步执行当前行step_in
: 步入函数step_out
: 步出函数
Inspection
evaluate
: 在调试会话中评估表达式
常见问题解答
无明确常见问题解答内容。
使用教程
使用依赖
- Go 1.21 或更高版本
- 安装 Delve 调试器
sh
go install github.com/go-delve/delve/cmd/dlv@latest
安装教程
sh
go install github.com/xhd2015/dlv-mcp/cmd/dlv-mcp@latest
调试方式
启动 MCP 服务器:
sh
dlv-mcp --listen :9097
然后配置 MCP 服务器地址为 http://localhost:9097/sse
,在 Cursor 或任何 MCP 客户端中使用。
检查 MCP 服务器:
sh
bunx @modelcontextprotocol/inspector dlv-mcp
示例工作流程
-
启动调试会话:
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 Server Layer: 使用 mark3labs/mcp-go 实现 Model Context Protocol
- DAP Client Layer: 与 Delve 的 DAP 服务器通信
- Session Management: 维护和管理调试会话
使用演示客户端
运行演示:
sh
go run ./demo/main.go
演示客户端展示了如何:
- 使用 JSON-RPC 启动并与 MCP 服务器通信
- 使用正确的格式发送工具调用
- 解析和处理响应
- 优雅地处理错误
查看 demo/main.go
和 demo/README.md
获取更多实现细节。