mcp-dap-server
MCP server to communicate with DAP servers allowing AI Agents the ability to debug live programs.
Documentation
MCP DAP Server
A Model Context Protocol (MCP) server that provides debugging capabilities through the Debug Adapter Protocol (DAP). This server enables AI assistants and other MCP clients to interact with debuggers for various programming languages.
Overview
The MCP DAP Server acts as a bridge between MCP clients and DAP-compatible debuggers, allowing programmatic control of debugging sessions. It provides a comprehensive set of debugging tools that can be used to:
- Start and stop debugging sessions
- Set breakpoints (line-based and function-based)
- Control program execution (continue, step in/out/over, pause)
- Inspect program state (threads, stack traces, variables, scopes)
- Evaluate expressions
- Attach to running processes
- Handle exceptions
Demos
Features
- Unified Debug Launch: Single `debug` tool handles source, binary, and attach modes
- Automatic Context: Execution control tools return full state (location, stack, variables)
- Streamlined API: 13 tools cover all debugging operations
- Breakpoint Management: Set line and function breakpoints, run-to-cursor
- Full State Inspection: Stack traces, scopes, and variables in one call
- Expression Evaluation: Evaluate and modify variables in context
- Process Attachment: Attach to running processes
- Disassembly Support: View disassembled code at memory addresses
Installation
Prerequisites
- Go 1.24.4 or later
- A DAP-compatible debugger for your target language
Building from Source
git clone https://github.com/go-delve/mcp-dap-server
cd mcp-dap-server
go build -o bin/mcp-dap-serverUsage
Connecting via MCP
The server uses stdio transport, allowing AI agents to spawn it on-demand. Configure your MCP client with the path to the binary.
Example MCP Client Configuration
This configuration works with Gemini CLI and similar MCP clients:
{
"mcpServers": {
"dap-debugger": {
"command": "mcp-dap-server",
"args": [],
"env": {}
}
}
}Claude Code Configuration
claude mcp add mcp-dap-server /path/to/mcp-dap-serverAvailable Tools
Session Management
`debug`
Start a debugging session. Supports four modes:
- source: Compile and debug Go source code
- binary: Debug a pre-compiled executable
- core: Debug a core dump file
- attach: Attach to a running process
Parameters:
- `mode` (string, required): One of 'source', 'binary', 'core', or 'attach'
- `path` (string): Path to source file or binary (required for source/binary modes; optional for core mode with GDB, which can auto-detect it)
- `args` (array): Arguments to pass to the program
- `coreFilePath` (string): Path to core dump file (required for core mode)
- `processId` (number): Process ID (required for attach mode)
- `breakpoints` (array): Breakpoints to set before running (file:line or function name)
- `stopOnEntry` (boolean): Stop at program entry point
- `port` (number): DAP server port
Returns full context (location, stack trace, variables) when stopped.
`stop`
End the debugging session. Terminates the debuggee and stops the debugger.
`restart`
Restart the debugging session with optional new arguments.
- Parameters:
- `arguments` (array, optional): New program arguments
Breakpoints
`breakpoint`
Set a breakpoint at a file:line location or on a function.
- Parameters (one of):
- `file` (string) + `line` (number): Source file and line number
- `function` (string): Function name
`clear-breakpoints`
Remove breakpoints from a file or clear all breakpoints.
- Parameters:
- `file` (string, optional): Clear breakpoints in this file
- `all` (boolean, optional): Clear all breakpoints
Execution Control
`continue`
Continue program execution. Optionally run to a specific location.
- Parameters:
- `to` (object, optional): Run-to-cursor target (file+line or function)
Returns full context when stopped.
`step`
Step through code execution.
- Parameters:
- `mode` (string, required): One of 'over', 'in', or 'out'
Returns full context at new location.
`pause`
Pause program execution.
- Parameters:
- `threadId` (number): Thread ID to pause
State Inspection
`context`
Get full debugging context including current location, stack trace, and all variables.
- Parameters:
- `threadId` (number, optional): Thread ID
- `frameId` (number, optional): Stack frame ID
`evaluate`
Evaluate an expression in the current debugging context.
- Parameters:
- `expression` (string): Expression to evaluate
- `frameId` (number, optional): Frame context
- `context` (string, optional): Evaluation context ('watch', 'repl', 'hover')
`set-variable`
Modify a variable's value in the debugged program.
- Parameters:
- `variablesReference` (number): Variables reference from context
- `name` (string): Variable name
- `value` (string): New value
Program Information
`info`
Get program metadata.
- Parameters:
- `type` (string, required): One of 'sources' or 'modules'
`disassemble`
Disassemble code at a memory address.
- Parameters:
- `memoryReference` (string): Memory address
- `instructionOffset` (number, optional): Offset from address
- `instructionCount` (number): Number of instructions to disassemble
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
License
MIT
Acknowledgments
- Built with the Model Context Protocol SDK for Go
- Uses the Google DAP implementation for Go
Frequently asked questions
What is mcp-dap-server?
mcp-dap-server is MCP server to communicate with DAP servers allowing AI Agents the ability to debug live programs.
How do I install mcp-dap-server?
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 mcp-dap-server open source?
Yes — it is hosted on GitHub at https://github.com/go-delve/mcp-dap-server and has 31 stars.
Related MCP tools
Composio equips your AI agents & LLMs with 100+ high-quality integrations via function calling for the Model Context Protocol. Enhance AI assistants with powerf
Put an end to code hallucinations! GitMCP is a free, open-source, remote MCP server for any GitHub project TypeScript-based implementation.
An MCP server that autonomously evaluates web applications. Python-based implementation. Trusted by 1100+ developers. Trusted by 1100+ developers.
🤖 The Semantic Engine for Model Context Protocol(MCP) Clients and AI Agents 🔥 Java-based implementation.
:robot: The free, Open Source alternative to OpenAI, Claude and others. Self-hosted and local-first. Drop-in replacement for OpenAI, running on consumer-gra...
WhatsApp MCP server Go-based implementation. Trusted by 4900+ developers. Trusted by 4900+ developers. Trusted by 4900+ developers.
Run your own MCP server? See who uses it and what to fix.
Measure it with TrackMCP