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:
Build the server:
For development with auto-rebuild:
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.