Delve

by dwisiswant0

19 stars
Not rated
GitHub

About

Provides a complete interface to the Delve debugger for Go programs, enabling starting debug sessions, setting breakpoints, controlling execution flow, and inspecting program state

Details

Author
dwisiswant0
Repository
dwisiswant0/delve-mcp
GitHub stars
19
License
MIT License
Categories
AI, Design, Developer Tools, Search, Infrastructure, Frontend

Setting up with Highlight

This MCP is not yet compatible with Highlight’s one-click setup. However, you can still use it with Highlight by following these steps:

  1. Download and install Highlight from highlightai.com/download
  2. Navigate to the plugins tab and select "Add Custom Plugin"
  3. Configure the plugin with the settings below
    Plugin Name Delve
    Command (node, npx, python, etc.) node
    Arguments
    • Argument 1 /path/to/delve-mcp/build/index.js

    Please refer to the README for specific instructions on how to obtain API keys or other required environment variables.

  4. Enable "Start Automatically" if you want the plugin to start when Highlight launches

From the repository

To use with Claude Desktop, add the server config:

On Linux: ~/.config/Claude/claude_desktop_config.json.
On MacOS: ~/Library/Application Support/Claude/claude_desktop_config.json.

  • On Windows: %APPDATA%/Claude/claude_desktop_config.json.


{
"mcpServers": {
"delve-mcp": {
"command": "/path/to/delve-mcp/build/index.js"
}
}
}

The server requires:

- Go installed with Delve (go install github.com/go-delve/delve/cmd/dlv@latest)
- For replay functionality: Mozilla rr (https://github.com/mozilla/rr)
- Node.js and npm

- version - Get Delve version information
- setBackend - Configure debug backend (native, lldb, rr)
- configureLogging - Configure debug logging components

debug

Debug a Go package in current directory or specified package.

attach

Attach to a running process by PID.

exec

Execute and debug a precompiled binary.

test

Debug tests in current package or specified package.

core

Examine a core dump file with associated executable.

dap

Start a Debug Adapter Protocol (DAP) server.

replay

Replay an rr trace recording.

trace

Trace program execution with function matching.

setBreakpoint

Set a breakpoint with optional condition.

removeBreakpoint

Remove an existing breakpoint.

continue

Continue program execution.

next

Step over to next line.

step

Step into function call.

stepout

Step out of current function.

variables

List local variables in current scope.

evaluate

Evaluate expression in current scope.

version

Get Delve version information.

setBackend

Configure debug backend (`native`, `lldb`, `rr`).

configureLogging

Configure debug logging components.

Claude Desktop / Cursor

Paste into your MCP client config file to install this server.

{
    "mcpServers": {
        "delve": {
            "cwd": "optional",
            "env": {},
            "args": [
                "/path/to/delve-mcp/build/index.js"
            ],
            "shell": false,
            "command": "node"
        }
    }
}

Linux

{
    "cwd": "optional",
    "env": [],
    "args": [
        "/path/to/delve-mcp/build/index.js"
    ],
    "shell": false,
    "command": "node"
}

Macos

{
    "cwd": "optional",
    "env": [],
    "args": [
        "/path/to/delve-mcp/build/index.js"
    ],
    "shell": false,
    "command": "node"
}

Windows

{
    "cwd": "optional",
    "env": [],
    "args": [
        "/path/to/delve-mcp/build/index.js"
    ],
    "shell": false,
    "command": "node"
}

delve-mcp

MCP server for Delve debugger integration

This is a TypeScript-based MCP server that provides a complete interface to the Delve debugger for Go programs. It implements all major Delve commands and capabilities through MCP tools.

Features

Resources

- List and access debug sessions via delve:// URIs
- Each session has metadata about its type, target, and port
- JSON representation for session details and state

Tools

Debug, trace, and analyze Go programs with:
- Debug commands (debug, attach, exec, test)
- Core dump analysis
- Program tracing
- Replay debugging with rr
- DAP server support
- Breakpoint management with conditions
- Execution control (continue, step, next)
- Variable inspection and evaluation
- Backend selection (native, lldb, rr)
- Logging configuration
- Session management

Environment Setup

The server requires:

- Go installed with Delve (go install github.com/go-delve/delve/cmd/dlv@latest)
- For replay functionality: Mozilla rr (https://github.com/mozilla/rr)
- Node.js and npm

Installation

To install Delve MCP server:

npm install @dwisiswant0/delve-mcp

Development

Install dependencies:

npm install

Build the server:

npm run build

For development with auto-rebuild:

npm run watch

Configuration

To use with Claude Desktop, add the server config:

On Linux: ~/.config/Claude/claude_desktop_config.json.
On MacOS: ~/Library/Application Support/Claude/claude_desktop_config.json.

  • On Windows: %APPDATA%/Claude/claude_desktop_config.json.


{
"mcpServers": {
"delve-mcp": {
"command": "/path/to/delve-mcp/build/index.js"
}
}
}

Available Tools

Debug Commands

- debug - Debug a Go package in current directory or specified package
- attach - Attach to a running process by PID
- exec - Execute and debug a precompiled binary
- test - Debug tests in current package or specified package
- core - Examine a core dump file with associated executable
- dap - Start a Debug Adapter Protocol (DAP) server
- replay - Replay an rr trace recording
- trace - Trace program execution with function matching

Control Commands

- setBreakpoint - Set a breakpoint with optional condition
- removeBreakpoint - Remove an existing breakpoint
- continue - Continue program execution
- next - Step over to next line
- step - Step into function call
- stepout - Step out of current function
- variables - List local variables in current scope
- evaluate - Evaluate expression in current scope

Configuration Commands

- version - Get Delve version information
- setBackend - Configure debug backend (native, lldb, rr)
- configureLogging - Configure debug logging components

Usage Examples

Starting a Debug Session

// Debug current package
{ name: "debug" }

// Debug with specific package and build flags
{
name: "debug",
arguments: {
package: "./cmd/myapp",
buildFlags: "-tags=integration"
}
}

Managing Breakpoints

// Set a breakpoint
{
  name: "setBreakpoint",
  arguments: {
    sessionId: "abc123",
    file: "main.go",
    line: 42,
    condition: "count > 5"
  }
}

Inspecting State

// List variables
{
  name: "variables",
  arguments: {
    sessionId: "abc123"
  }
}

// Evaluate expression
{
name: "evaluate",
arguments: {
sessionId: "abc123",
expr: "myVar.Field"
}
}

License

MIT.

No reviews yet — be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.