Go Delve Debugger MCP Server

Go Delve Debugger MCP Server

site icon
2025.03.10 6
Go调试工具Go 开发开发效率
dlv-mcp 是一个基于 Model Context Protocol (MCP) 的服务器,用于与 Delve Go 调试器集成,使 AI 助手能够调试 Go 应用程序。该服务器提供了一系列工具,允许 LLMs 启动、控制和交互调试会话。
View on GitHub

Overview

基本能力

产品定位

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 调试器
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

然后配置 MCP 服务器地址为 http://localhost:9097/sse,在 Cursor 或任何 MCP 客户端中使用。

检查 MCP 服务器:

bunx @modelcontextprotocol/inspector dlv-mcp

示例工作流程

  1. 启动调试会话: start_debug program=/path/to/program.go

  2. 设置断点: set_breakpoint session_id=session-123456 file=/path/to/program.go line=15

  3. 继续到断点: continue session_id=session-123456

  4. 评估表达式: evaluate session_id=session-123456 expression="myVariable"

  5. 单步执行一行: next session_id=session-123456

  6. 终止会话: terminate_debug session_id=session-123456

架构

服务器由以下组件构建:

  • MCP Server Layer: 使用 mark3labs/mcp-go 实现 Model Context Protocol
  • DAP Client Layer: 与 Delve 的 DAP 服务器通信
  • Session Management: 维护和管理调试会话

使用演示客户端

运行演示:

go run ./demo/main.go

演示客户端展示了如何: - 使用 JSON-RPC 启动并与 MCP 服务器通信 - 使用正确的格式发送工具调用 - 解析和处理响应 - 优雅地处理错误

查看 demo/main.godemo/README.md 获取更多实现细节。

许可证

该项目遵循 MIT 开源许可条款,请参阅 MIT 了解完整条款。