LaurieWired / GhidraMCP
git clone https://github.com/LaurieWired/GhidraMCP.git
2.0 · 10d ago
🔥 on GitHub Trending today
MCP Server for Ghidra
—
stars, 24h
+314
stars, 7 days · #185
+1.3k
stars, 30 days · #231
11k
★ total · +3% this week
1.2k
forks · 93 open issues
Star history starts 2026-10-20; the chart appears after the second daily snapshot.
LanguageJava
LicenseApache-2.0
Created2025-03-23 (1y ago)
Last push10d ago
Watchers84
OwnerUser
Seen on GitHub Trending
- 2026-10-20 — #3 monthly in java · +1,339 ★
- 2026-10-20 — #10 weekly in java · +314 ★
Links
README excerpt
# ghidraMCP ghidraMCP is an Model Context Protocol server for allowing LLMs to autonomously reverse engineer applications. It exposes numerous tools from core Ghidra functionality to MCP clients. https://github.com/user-attachments/assets/36080514-f227-44bd-af84-78e29ee1d7f9 # Features MCP Server + Ghidra Plugin - Decompile and analyze binaries in Ghidra - Automatically rename methods and data - List methods, classes, imports, and exports # Installation ## Prerequisites - Install Ghidra 12.1.4 - Install uv (or Python 3.10+ with `pip install git+https://github.com/LaurieWired/GhidraMCP`, then use `ghidra-mcp` as the command below) ## Ghidra First, download the latest release from this repository. This contains the Ghidra plugin and Python MCP client. Then, you can directly import the plugin into Ghidra. 1. Run Ghidra 2. Select `File` -> `Install Extensions` 3. Click the `+` button 4. Select the `ghidra_12.1.4_PUBLIC_ _GhidraMCP.zip` from the downloaded release 5. Restart Ghidra 6. Make sure the GhidraMCPPlugin is enabled in `File` -> `Configure` -> `Developer` 7. *Optional*: Configure the port in Ghidra with `Edit` -> `Tool Options` -> `GhidraMCP HTTP Server` Video Installation Guide: https://github.com/user-attachments/assets/75f0c176-6da1-48dc-ad96-c182eb4648c3 ## MCP Clients Theoretically, any MCP client should work with ghidraMCP. Most clients accept a JSON config like the following: [code] The server IP and port are configurable and should be set to point to the target Ghidra instance. If not set, both will default to localhost:8080. For clients that connect to a URL instead of launching a command, first run the MCP server yourself: [code] Then add `http://127.0.0.1:8081/mcp` as a remote server in your client. ## Example 1: VS Code Run `MCP: Add Server` from the Command Palette, or add the following to `.vscode/mcp.json` in your workspace: [code] ## Example 2: Claude Code Run the following command: [code] ## Headless (no Ghidra GUI) `ghidra-mcp` can also import and analyze a binary itself using PyGhidra, with no Ghidra GUI running. This needs Python 3.10–3.13, the GhidraMCP extension installed in Ghidra (or `--extension-jar /path/to/GhidraMCP.jar`), and `GHIDRA_INSTALL_DIR` set to your Ghidra 12.1.4 directory: [code] Use the same command and arguments in any of the client configs above. Add `--project DIR` to keep the Ghidra project (and save changes) between runs. On macOS, build Ghidra's decompiler once with `support/gradle/gradlew buildNatives` from the Ghidra directory. # Building from Source 1. Set `GHIDRA_INSTALL_DIR` to your Ghidra 12.1.4 directory 2. Build the extension with Gradle (Java 21) by running: `cd extension && $GHIDRA_INSTALL_DIR/support/gradle/gradlew buildExtension` The generated zip file in `extension/dist/` includes the built Ghidra plugin and its resources. These files are required for Ghidra to recognize the new extension. - lib/GhidraMCP.jar - extension.properties - Module.manifest The Python MCP server can