summaryrefslogtreecommitdiff
path: root/lldb/source/Commands/CommandObjectProtocolServer.cpp
AgeCommit message (Collapse)Author
2025-07-02[lldb][mcp] Fix unix domain socket protocol server addresses (#146603)Alexandre Perez
When starting an MCP protocol server that uses unix sockets as the transport, a local `'[0.0.0.0]:0'` file is used instead of the supplied socket path, e.g: ``` (lldb) protocol-server start MCP accept:///tmp/some/path.sock MCP server started with connection listeners: unix-connect://[0.0.0.0]:0 (lldb) shell ls '[*' [0.0.0.0]:0 ``` This change makes it so that the URI path is used if the socket protocol is `ProtocolUnixDomain`: ``` (lldb) protocol-server start MCP accept:///tmp/some/path.sock MCP server started with connection listeners: unix-connect:///tmp/some/path.sock ```
2025-06-25[lldb] Make MCP server instance global (#145616)Jonas Devlieghere
Rather than having one MCP server per debugger, make the MCP server global and pass a debugger id along with tool invocations that require one. This PR also adds a second tool to list the available debuggers with their targets so the model can decide which debugger instance to use.
2025-06-20[lldb] Fix ASCII art in CommandObjectProtocolServer (NFC)Jonas Devlieghere
2025-06-20[lldb] Add Model Context Protocol (MCP) support to LLDB (#143628)Jonas Devlieghere
This PR adds an MCP (Model Context Protocol ) server to LLDB. For motivation and background, please refer to the corresponding RFC: https://discourse.llvm.org/t/rfc-adding-mcp-support-to-lldb/86798 I implemented this as a new kind of plugin. The idea is that we could support multiple protocol servers (e.g. if we want to support DAP from within LLDB). This also introduces a corresponding top-level command (`protocol-server`) with two subcommands to `start` and `stop` the server. ``` (lldb) protocol-server start MCP tcp://localhost:1234 MCP server started with connection listeners: connection://[::1]:1234, connection://[127.0.0.1]:1234 ``` The MCP sever supports one tool (`lldb_command`) which executes a command, but can easily be extended with more commands.