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 packageattach- Attach to a running process by PIDexec- Execute and debug a precompiled binarytest- Debug tests in current package or specified packagecore- Examine a core dump file with associated executabledap- Start a Debug Adapter Protocol (DAP) serverreplay- Replay an rr trace recordingtrace- Trace program execution with function matching
Control Commands
setBreakpoint- Set a breakpoint with optional conditionremoveBreakpoint- Remove an existing breakpointcontinue- Continue program executionnext- Step over to next linestep- Step into function callstepout- Step out of current functionvariables- List local variables in current scopeevaluate- Evaluate expression in current scope
Configuration Commands
version- Get Delve version informationsetBackend- 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.