A TypeScript-based MCP server providing a complete interface to the Delve debugger for Go programs, enabling debugging, tracing, and analyzing Go code through natural language commands.
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.
delve://
URIsDebug, trace, and analyze Go programs with:
debug
, attach
, exec
, test
)rr
continue
, step
, next
)native
, lldb
, rr
)The server requires:
go install github.com/go-delve/delve/cmd/dlv@latest
)rr
(https://github.com/mozilla/rr)To install Delve MCP server:
npm install @dwisiswant0/delve-mcp
Install dependencies:
npm install
Build the server:
npm run build
For development with auto-rebuild:
npm run watch
To use with Claude Desktop, add the server config:
~/.config/Claude/claude_desktop_config.json
.~/Library/Application Support/Claude/claude_desktop_config.json
.%APPDATA%/Claude/claude_desktop_config.json
.{ "mcpServers": { "delve-mcp": { "command": "/path/to/delve-mcp/build/index.js" } } }
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 matchingsetBreakpoint
- 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 scopeversion
- Get Delve version informationsetBackend
- Configure debug backend (native
, lldb
, rr
)configureLogging
- Configure debug logging components// Debug current package { name: "debug" } // Debug with specific package and build flags { name: "debug", arguments: { package: "./cmd/myapp", buildFlags: "-tags=integration" } }
// Set a breakpoint { name: "setBreakpoint", arguments: { sessionId: "abc123", file: "main.go", line: 42, condition: "count > 5" } }
// List variables { name: "variables", arguments: { sessionId: "abc123" } } // Evaluate expression { name: "evaluate", arguments: { sessionId: "abc123", expr: "myVar.Field" } }
MIT.
Discover shared experiences
Shared threads will appear here, showcasing real-world applications and insights from the community. Check back soon for updates!