analyzeLABSCO SUMMARY
Fourteen tools instead of a hundred.
The surface is deliberately narrow — one functions tool rather than a tool per operation — which keeps the tool definitions small while the paging cursors keep a large binary from arriving all at once. One thing to know while working: some script-driven operations open a Ghidra error dialog, and requests look like they are hanging until you close it.
What it is
A Ghidra extension that embeds an MCP server inside the tool itself — no bridge process in between. Start Ghidra with the extension enabled and point your client at http://127.0.0.1:8080/mcp.
What you get
- 14 MCP tools:
analyze,inspectandscript_guidancefor analysis;annotate,functions,symbols,data_types,memoryanddeletefor program changes;debugger;projectandbatch_operations;vt_sessionsandvt_operationsfor Version Tracking - Resources for the views you keep reopening —
ghidra://programs, and per programinfo,functions,symbols,datatypes,memory,imports,exports,strings,rtti, pluslisting/{address}andfunction/{address}/decompile - Prompts for standard workflows:
analyze_function,analyze_vtable,compare_binaries,find_vulnerabilities,map_data_structures,rename_analysis,triage_binary - Bounded output on every call — pass
page_size,max_linesormax_results, then feed the returnednext_cursorback ascursorto continue - debugger coverage over Trace RMI: connect, accept or launch a target, discover traces, threads, stacks and objects, read live memory, registers and watches, apply static mappings, call remote methods and run emulation
- Typed memory mapping that applies a data type and returns byte-to-field rows, for a program or the active debugger trace
- Image rebasing, either to an explicit address or to the ImageBase a PE binary states
- Focused operations that move Ghidra's own CodeBrowser or Debugger to the function or address in question
Requirements
Ghidra 12.1, with the release zip installed through File → Install Extensions and Ghidra restarted. The server port defaults to 8080 and is configured in Browser → Edit → Tool Options → Miscellaneous → GhidraMCP HTTP Server, alongside auto-start and a request timeout that defaults to 600 seconds. Building from source needs JDK 21 or later. MIT.
Setup effort
Follow the published steps
USE CASES
Triaging a binary you have never seen
Read the imports, exports and strings as resources first, then run the triage prompt against what turns up.
Understanding one function properly
Pull the decompilation for its address, then annotate and rename as the shape becomes clear.
Naming a stripped binary's structures
Apply a data type over a region and read back the byte-to-field rows to check the layout matches.
Watching the program actually run
Connect a Trace RMI target, set the state you want, and read live memory, registers and watches while it moves.
Carrying analysis across two versions of a binary
Version Tracking sessions match the old build against the new one so the names you already applied survive.
Renaming a hundred things at once
Batch the operations into a single call instead of a round trip per symbol.
14 tools
Listed in project docs. Your client may show a different list.
inspectscript_guidanceannotatefunctionssymbolsdata_typesmemorydeletedebuggerprojectbatch_operationsvt_sessionsvt_operationsBEFORE YOU INSTALL
What to know first
Tools you get
14 tools named in the project's documentation. Each tool dispatches many actions; debugger alone handles more than 20 action values such as list_threads and read_registers. analyze_function, triage_binary and similar names are prompts, not tools.
INSTALLATION
Connect your client
Server setup
Setup
Download the latest release zip file from the Releases page
In Ghidra, go to File -> Install Extensions...
Click the + button (Add extension) in the top right corner
Navigate to the downloaded zip file and select it
Ensure the GhidraMCP extension is checked in the list and click OK
Restart Ghidra
Start Ghidra with the GhidraMCP extension enabled and confirm the server port in Configuration
Point your MCP client to http://127.0.0.1:8080/mcp (or your custom port)
claude mcp add
Claude Code
claude mcp add ghidra "http://127.0.0.1:8080/mcp" --transport httpMCP Clients
Cursor
{
"mcpServers": {
"ghidra": {
"url": "http://127.0.0.1:8080/mcp"
}
}
}OpenCode
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"ghidra": {
"type": "remote",
"url": "http://127.0.0.1:8080/mcp",
"enabled": true
}
}
}Codex
[mcp_servers.ghidra]
url = "http://127.0.0.1:8080/mcp"