Files
clang-p2996/lldb/docs/use/mcp.md
2025-06-30 13:50:32 -07:00

2.7 KiB

Model Context Protocol (MCP)

LLDB supports the [Model Context Protocol][https://modelcontextprotocol.io] (MCP). This structured, machine-friendly protocol allows AI models to access and interact with external tools, for example debuggers. Using MCP, an AI agent can execute LLDB commands to control the debugger: set breakpoints, inspect memory, step through code. This can range from helping you run a specific command you cannot immediately remember, to a fully agent-driven debugging experience.

MCP Server

To start the MCP server in LLDB, use the protocol-server start command. Specify MCP as the protocol and provide a URI to listen on. For example, to start listening for local TCP connections on port 59999, use the following command:

(lldb) protocol-server start MCP listen://localhost:59999
MCP server started with connection listeners: connection://[::1]:59999, connection://[127.0.0.1]:59999

The server will automatically stop when exiting LLDB, or it can be stopped explicitly with the protocol-server stop command.

(lldb) protocol-server stop MCP

The commands will fail if a server is already running or not running respectively.

MCP Client

MCP uses standard input/output (stdio) for communication between client and server. The exact configuration depends on the client, but most applications allow you to specify an MCP server as a binary and arguments. This means that you need to use something like netcat to connect to LLDB's MCP server and forward communication over stdio over the network connection.

┌──────────┐               ┌──────────┐               ┌──────────┐
│          │               │          │               │          │
│   LLDB   ├─────socket────┤  netcat  ├─────stdio─────┤MCP Client│
│          │               │          │               │          │
└──────────┘               └──────────┘               └──────────┘

Configuration example for Claude Code:

{
  "mcpServers": {
    "tool": {
      "command": "/usr/bin/nc",
      "args": ["localhost", "59999"]
    }
  }
}

Configuration example for Visual Studio Code:

{
  "mcp": {
    "servers": {
      "lldb": {
        "type": "stdio",
        "command": "/usr/bin/nc",
        "args": ["localhost", "59999"]
      }
    }
  }
}

Troubleshooting

The MCP server uses the Host log channel. You can enable logging with the log enable command.

(lldb) log enable lldb host