一个允许大型语言模型(LLMs)与 Delve Go 调试器交互的 MCP 服务器。
该项目实现了一个 Model Context Protocol (MCP) 服务器,该服务器与 Delve Go 调试器集成,使AI助手能够调试Go应用程序。该服务器提供了一组工具,允许LLMs启动、控制和与调试会话进行交互。
您可以在EXAMPLE.md中找到一个工作示例。
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
然后在http://localhost:9097/sse配置MCP服务器,例如在Cursor或其他MCP客户端中。
bunx @modelcontextprotocol/inspector dlv-mcp
start_debug: 启动一个新的调试会话
program: 要调试的Go程序路径args: 程序的命令行参数(可选)mode: 调试模式(debug、test 或 exec,默认:debug)terminate_debug: 终止一个调试会话
session_id: 要终止的调试会话IDlist_debug_sessions: 列出活动的调试会话
set_breakpoint: 在调试会话中设置断点
session_id: 调试会话IDfile: 设置断点的源文件(绝对路径)line: 设置断点的行号continue: 在调试会话中继续执行
session_id: 调试会话IDnext: 在调试会话中跳过当前行
session_id: 调试会话ID
step_in: 在调试会话中步入函数
session_id: 调试会话IDstep_out: 在调试会话中跳出函数
session_id: 调试会话IDevaluate: 在调试会话中评估表达式
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
服务器使用以下组件构建:
bunx @modelcontextprotocol/inspector go run ./cmd/dlv-mcp
我们创建了一个演示客户端,展示了如何编程地使用调试器-MCP服务器。演示包括:
./testdata/hello.go的调试会话要运行演示:
go run ./demo/main.go
演示客户端展示了如何:
查看demo/main.go和demo/README.md以获取更多关于实现的详细信息。
MIT 许可证