
GDB-MCP
An MCP server that provides programmatic access to the GNU Debugger (GDB), enabling AI models to interact with GDB through natural language for debugging tasks.
README
GDB-MCP
https://github.com/user-attachments/assets/84e717ba-6983-442d-bf11-7ba2b17108af
GDB-MCP is a Model Context Protocol (MCP) server that provides programmatic access to the GNU Debugger (GDB). It enables AI models and other MCP clients to interact with GDB through a standardized interface, making debugging capabilities accessible through natural language interactions.
Since it uses the gdb/mi interface, you can access the full functionality of gdb. We also provide a command reference for gdb in resources.
Features
- Session Management: Create and manage multiple isolated GDB debugging sessions
- Command Execution: Execute both CLI and MI (Machine Interface) GDB commands
- Comprehensive Documentation: Access complete GDB command reference through MCP resources
- Asynchronous Operation: Built on asyncio for efficient concurrent session handling
- Timeout Protection: Automatic cleanup of idle sessions to prevent resource leaks
Installation
Prerequisites
- Python 3.12 or higher
- GDB installed on your system
- MCP-compatible client (e.g., Claude Desktop)
Install from Source
# Clone the repository
git clone https://github.com/yourusername/gdb-mcp.git
cd gdb-mcp
# Install dependencies
pip install -r requirements.txt
# Install the package
pip install -e .
Quick Start
Running the Server
# Start the MCP server
gdb-mcp
# Or run directly with Python
python -m gdb_mcp
Claude Desktop Configuration
Add the following to your Claude Desktop configuration file:
{
"mcpServers": {
"gdb-mcp": {
"command": "gdb-mcp"
}
}
}
See examples/claude_code_config_example.json
for a complete configuration example.
Usage
Available Resources
The server provides comprehensive GDB documentation through MCP resources:
gdb://commands/reference
- Complete GDB command referencegdb://commands/cli
- CLI commands with abbreviationsgdb://commands/mi
- Machine Interface commandsgdb://commands/mapping
- CLI to MI command correspondence
Available Tools
open
- Start a debugging session
{
"name": "open",
"arguments": {
"timeout": 300 // Optional, defaults to 300 seconds
}
}
call
- Execute a GDB command
{
"name": "call",
"arguments": {
"id": "session-uuid",
"command": "break main"
}
}
close
- Close a debugging session
{
"name": "close",
"arguments": {
"id": "session-uuid"
}
}
list_sessions
- List all active sessions
{
"name": "list_sessions",
"arguments": {}
}
Example Usage
Basic Debugging Session
# Start a new debugging session
session = await client.call_tool("open", {})
session_id = session["content"]["id"]
# Load an executable
await client.call_tool("call", {
"id": session_id,
"command": "file /path/to/program"
})
# Set a breakpoint
await client.call_tool("call", {
"id": session_id,
"command": "break main"
})
# Run the program
result = await client.call_tool("call", {
"id": session_id,
"command": "run"
})
# Examine variables
result = await client.call_tool("call", {
"id": session_id,
"command": "print variable_name"
})
# Close the session
await client.call_tool("close", {"id": session_id})
Accessing Documentation
# Get CLI commands reference
cli_docs = await client.read_resource("gdb://commands/cli")
# Get MI commands reference
mi_docs = await client.read_resource("gdb://commands/mi")
Architecture
GDB-MCP consists of several key components:
- MCP Server (
server.py
) - Handles client connections and request routing - GDB Manager (
gdb_manager.py
) - Manages GDB subprocess lifecycle - Session Management - Maintains isolated debugging sessions with automatic timeout
- Resource Provider - Serves comprehensive GDB documentation
The server operates GDB in MI (Machine Interface) mode internally for reliable command parsing and structured output.
Development
Project Structure
gdb-mcp/
src/gdb_mcp/
__init__.py
__main__.py
cli.py # CLI entry point
server.py # MCP server implementation
gdb_manager.py # GDB process management
resources/
gdb_commands.md # GDB command reference
docs/ # Additional documentation
examples/ # Usage examples
tests/ # Test suite
scripts/ # Utility scripts
Security Considerations
- Designed for local debugging only
- Each GDB session runs in an isolated process
- Automatic session timeout prevents resource leaks
- File system access limited to user permissions
Acknowledgments
- Built on the Model Context Protocol
- Powered by GNU Debugger (GDB)
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.