dlv-mcp
MCP Server that exposes Golang's Delve Debugger, enable AI to self-debug
Documentation
Go Delve Debugger MCP Server
An MCP server that allows LLMs to interact with the Delve Go debugger.
Description
This project implements a Model Context Protocol (MCP) server that integrates with the Delve Go debugger to enable AI assistants to debug Go applications. The server exposes a set of tools that allow LLMs to start, control, and interact with debug sessions.
You can find a working example at EXAMPLE.md.
Features
- Start debug sessions for Go programs
- Set breakpoints in code
- Step through code (next, step in, step out)
- Evaluate expressions in the context of a debug session
- Inspect variables and stack traces
- Manage multiple debug sessions
Installation
Prerequisites
- Go 1.21 or higher
- Delve debugger installed (`go install github.com/go-delve/delve/cmd/dlv@latest`)
Install
go install github.com/xhd2015/dlv-mcp/cmd/dlv-mcp@latestUsage
Start the MCP server:
dlv-mcp --listen :9097Then configure MCP Server at `http://localhost:9097/sse`, in Cursor or any MCP client.
Inspect the MCP Server
bunx @modelcontextprotocol/inspector dlv-mcpAvailable Tools
Debug Session Management
- `start_debug`: Start a new debug session
- `program`: Path to Go program to debug
- `args`: Command line arguments for the program (optional)
- `mode`: Debug mode (`debug`, `test`, or `exec`, default: `debug`)
- `terminate_debug`: Terminate a debug session
- `session_id`: ID of the debug session to terminate
- `list_debug_sessions`: List active debug sessions
Breakpoint Management
- `set_breakpoint`: Set a breakpoint in a debug session
- `session_id`: ID of the debug session
- `file`: Source file to set breakpoint in (absolute path)
- `line`: Line number to set breakpoint at
Execution Control
- `continue`: Continue execution in a debug session
- `session_id`: ID of the debug session
- `next`: Step over current line in a debug session
- `session_id`: ID of the debug session
- `step_in`: Step into function in a debug session
- `session_id`: ID of the debug session
- `step_out`: Step out of function in a debug session
- `session_id`: ID of the debug session
Inspection
- `evaluate`: Evaluate an expression in a debug session
- `session_id`: ID of the debug session
- `expression`: Expression to evaluate
- `frame_id`: Stack frame ID (optional, default: 0)
Example Workflow
1. Start a debug session:
start_debug program=/path/to/program.go2. Set a breakpoint:
set_breakpoint session_id=session-123456 file=/path/to/program.go line=153. Continue to breakpoint:
continue session_id=session-1234564. Evaluate an expression:
evaluate session_id=session-123456 expression="myVariable"5. Step over a line:
next session_id=session-1234566. Terminate the session:
terminate_debug session_id=session-123456Architecture
The server is built using the following components:
- MCP Server Layer: Implements the Model Context Protocol using mark3labs/mcp-go
- DAP Client Layer: Communicates with Delve's DAP server
- Session Management: Maintains and manages debug sessions
Inspect The MCP Server
bunx @modelcontextprotocol/inspector go run ./cmd/dlv-mcpUsing the Demo Client
We've created a demo client that shows how to use the debugger-mcp server programmatically. The demo:
1. Starts the MCP server
2. Launches a debug session for `./testdata/hello.go`
3. Tries to set a breakpoint and execute debugging commands
4. Properly terminates the session and server
To run the demo:
go run ./demo/main.goThe demo client showcases how to:
- Start and communicate with the MCP server using JSON-RPC
- Send tool calls using the correct format
- Parse and handle responses
- Deal with errors gracefully
Check out `demo/main.go` and `demo/README.md` for more details on the implementation.
License
MIT License
Frequently asked questions
What is dlv-mcp?
dlv-mcp is MCP Server that exposes Golang's Delve Debugger, enable AI to self-debug
How do I install dlv-mcp?
Open the GitHub repository and follow its README. Most MCP servers are added to your client's MCP config, then called by your agent.
Is dlv-mcp open source?
Yes — it is hosted on GitHub at https://github.com/xhd2015/dlv-mcp and has 12 stars.
Related MCP tools
:robot: The free, Open Source alternative to OpenAI, Claude and others. Self-hosted and local-first. Drop-in replacement for OpenAI, running on consumer-gra...
MCP Toolbox for Databases is an open source MCP server for databases. Go-based implementation. Trusted by 10900+ developers.
A Go implementation of the Model Context Protocol (MCP), enabling seamless integration between LLM applications and external data sources and tools.
WhatsApp MCP server Go-based implementation. Trusted by 4900+ developers. Trusted by 4900+ developers. Trusted by 4900+ developers.
A CLI host application that enables Large Language Models (LLMs) to interact with external tools through the Model Context Protocol (MCP).
Query anything (GitHub, Notion, +40 more) with SQL and let LLMs (ChatGPT, Claude) connect to using MCP Go-based implementation. Trusted by 1300+ developers.
Run your own MCP server? See who uses it and what to fix.
Measure it with TrackMCP