Skip to content

release/21.x: [lldb] Document MCP tools & resources (#148708) #149146

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Jul 17, 2025

Conversation

llvmbot
Copy link
Member

@llvmbot llvmbot commented Jul 16, 2025

Backport e8dc96d

Requested by: @JDevlieghere

@llvmbot
Copy link
Member Author

llvmbot commented Jul 16, 2025

@JDevlieghere What do you think about merging this PR to the release branch?

@llvmbot
Copy link
Member Author

llvmbot commented Jul 16, 2025

@llvm/pr-subscribers-lldb

Author: None (llvmbot)

Changes

Backport e8dc96d

Requested by: @JDevlieghere


Full diff: https://github.com/llvm/llvm-project/pull/149146.diff

1 Files Affected:

  • (modified) lldb/docs/use/mcp.md (+63-1)
diff --git a/lldb/docs/use/mcp.md b/lldb/docs/use/mcp.md
index 375c164fe771c..b7474246b54f3 100644
--- a/lldb/docs/use/mcp.md
+++ b/lldb/docs/use/mcp.md
@@ -75,7 +75,69 @@ Configuration example for [Visual Studio Code](https://code.visualstudio.com/doc
 }
 ```
 
-### Troubleshooting
+## Tools
+
+Tools are a primitive in the Model Context Protocol that enable servers to
+expose functionality to clients.
+
+LLDB's MCP integration exposes one tool, named `lldb_command` which allows the
+model to run the same commands a user would type in the LLDB command
+interpreter. It takes two arguments:
+
+1. The unique debugger ID as a number.
+2. The command and its arguments as a string.
+
+## Resources
+
+Resources are a primitive in the Model Context Protocol that allow servers to
+expose content that can be read by clients.
+
+LLDB's MCP integration exposes a resource for each debugger and target
+instance. Debugger resources are accessible using the following URI:
+
+```
+lldb://debugger/<debugger id>
+```
+
+Example output:
+
+```json
+{
+  "contents": [
+    {
+      "uri": "lldb://debugger/1",
+      "mimeType": "application/json",
+      "text": "{\"debugger_id\":1,\"name\":\"debugger_1\",\"num_targets\":1}"
+    }
+  ]
+}
+```
+
+Debuggers can contain one or more targets, which are accessible using the
+following URI:
+
+```
+lldb://debugger/<debugger id>/target/<target idx>
+```
+
+Example output:
+
+```json
+{
+  "contents": [
+    {
+      "uri": "lldb://debugger/1/target/0",
+      "mimeType": "application/json",
+      "text": "{\"arch\":\"arm64-apple-macosx26.0.0\",\"debugger_id\":1,\"dummy\":false,\"path\":\"/bin/count\",\"platform\":\"host\",\"selected\":true,\"target_idx\":0}"
+    }
+  ]
+}
+```
+
+Note that unlike the debugger id, which is unique, the target index is not
+stable and may be reused when a target is removed and a new target is added.
+
+## Troubleshooting
 
 The MCP server uses the `Host` log channel. You can enable logging with the
 `log enable` command.

@JDevlieghere
Copy link
Member

@JDevlieghere What do you think about merging this PR to the release branch?

Sounds good to me, but let's hear from @DavidSpickett who suggested the backport.

@DavidSpickett
Copy link
Collaborator

Sounds good to me

<spiderman pointing meme>

let's hear from @DavidSpickett who suggested the backport.

It's true the vast majority of people will go to the website no matter what, but I consider documentation part of a feature and this completes the MCP feature for 21 so I'd like it to be included.

@tru
Copy link
Collaborator

tru commented Jul 17, 2025

I am always happy to merge release notes and documentation :)

Add documentation for the tools and resources exposed by LLDB's MCP
server.

(cherry picked from commit e8dc96d)
@tru tru merged commit 38158a9 into llvm:release/21.x Jul 17, 2025
1 check was pending
@github-project-automation github-project-automation bot moved this from Needs Triage to Done in LLVM Release Status Jul 17, 2025
@tru tru deleted the issue149145 branch July 17, 2025 10:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
Development

Successfully merging this pull request may close these issues.

4 participants