lldb_mcp

lldb_mcp

0

lldb_mcp is a simple LLDB Model Context Protocol (MCP) server designed for ease of use with minimal dependencies. It captures debugger output automatically and integrates well with existing tools like o4-mini, offering a streamlined debugging experience.

lldb_mcp

A proper, simple lldb mcp server with minimal dependencies and all functionality! There are only two commands lldb_init and lldb, no need to clutter your tools. Works remarkably well with o4-mini and Gemini 2.5 Pro. You remain fully in control.

The output is automagically captured, no need to copy paste.

Setup

git clone https://github.com/stableversion/lldb_mcp
cd lldb_mcp && python3 -m venv venv && source venv/bin/activate && pip3 install fastmcp
{
  "mcpServers": {
    "lldb": {
      "command": "/path/to/ldb_mcp/venv/bin/python",
      "args": ["/path/to/ldb_mcp/lldb_mcp.py"]
    }
  }
}
(lldb) command script import /path/to/lldb_mcp/lldb_server.py

Architecture

The entire codebase is less than 200 lines of code, because:

  • Synchronous LLDB: Calling debugger.SetAsync(False) makes HandleCommand block and capture all output directly. This avoids complex event listeners (SBListener) and polling.
  • Simple Controller: The LLDBController just runs commands via HandleCommand and returns the full output/error it receives.
  • Standard Libraries: Uses Python's built-in socketserver and json

Safety

lldb can execute ANY arbitrary commands, it should be prevented

  • You have to start the server in a lldb session manually
  • Some commands are blacklisted, check lldb_server.py
  • Chaining of commands is not allowed (o4-mini really likes to)

Notes

  • o4 mini has a tendency to hallucinate --address in memory commands.
  • Some commands "succeeded" without output, this is confusing for llms, so it returns "Executed successfully" instead.
  • "Continue" can run indefinitely until it hits a breakpoint, meaning the mcp can wait forever for output (skip and continue is your friend)