trackmcp
Back to directory

MCP Server that exposes Golang's Delve Debugger, enable AI to self-debug

12 stars GoAI & Machine Learning Updated Oct 9, 2025

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

sh
go install github.com/xhd2015/dlv-mcp/cmd/dlv-mcp@latest

Usage

Start the MCP server:

sh
dlv-mcp --listen :9097

Then configure MCP Server at `http://localhost:9097/sse`, in Cursor or any MCP client.

Inspect the MCP Server

sh
bunx @modelcontextprotocol/inspector dlv-mcp

Available 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:

code
start_debug program=/path/to/program.go

2. Set a breakpoint:

code
set_breakpoint session_id=session-123456 file=/path/to/program.go line=15

3. Continue to breakpoint:

code
continue session_id=session-123456

4. Evaluate an expression:

code
evaluate session_id=session-123456 expression="myVariable"

5. Step over a line:

code
next session_id=session-123456

6. Terminate the session:

code
terminate_debug session_id=session-123456

Architecture

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

sh
bunx @modelcontextprotocol/inspector go run ./cmd/dlv-mcp

Using 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:

sh
go run ./demo/main.go

The 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

Run your own MCP server? See who uses it and what to fix.

Measure it with TrackMCP