Interactive Ghidra views in your AI client: decompile, rename, and navigate a binary.
MCPpedia last refreshed this data
io.github.hellosverre/ghidralens is an MCP server that interactive Ghidra views in your AI client: decompile, rename, and navigate a binary. Its tool list has not been published yet over stdio and http, requires no API key, and scores 82/100 on MCPpedia's security, maintenance and efficiency rubric.
Config is the same across clients - only the file and path differ.
{
"mcpServers": {
"ghidralens": {
"env": {
"GHIDRALENS_TOKEN": "paste-the-printed-token-here",
"GHIDRALENS_BRIDGE_URL": "http://127.0.0.1:8799"
},
"args": [
"-y",
"ghidralens"
],
"command": "npx"
}
}
}Are you the author?
Add this badge to your README to show your security score and help users find safe servers.
Interactive Ghidra views in your AI client: decompile, rename, and navigate a binary.
This server supports HTTP transport. Be the first to test it - help the community know if it works.
Five weighted categories - click any category to see the underlying evidence.
No known CVEs.
Checked ghidralens against OSV.dev.
Click any tool to inspect its schema.
Be the first to review
Have you used this server?
Share your experience - it helps other developers decide.
Sign in to write a review.
Others in other
MCP WordPress Remote proxy server
A curated list of skills, tools, tutorials, and capabilities for AI coding agents (Claude, Codex, Antigravity, Copilot, VS Code)
The missing developer UI for Spring Boot and Quarkus!
Compress tool outputs, logs, files, and RAG chunks before they reach the LLM. 60-95% fewer tokens, same answers. Library, proxy, MCP server.
MCP Security Weekly
Get CVE alerts and security updates for io.github.hellosverre/ghidralens and similar servers.
Start a conversation
Ask a question, share a tip, or report an issue.
Sign in to join the discussion.
Ghidra, rendered inside your AI client. Click a symbol to rename it. Click a call to follow it.

Every Ghidra MCP server so far returns text. The model can read it; you cannot
navigate it. GhidraLens returns the same analysis as an interactive view —
built on MCP Apps
(io.modelcontextprotocol/ui), the extension that lets a server ship real HTML
into the conversation.
You and the model are looking at the same live program. Rename a variable by clicking it and the model's next decompile sees the new name.
That is a real screenshot: where.exe, decompiled by Ghidra, every identifier
carrying the address it came from.
| View | What it does |
|---|---|
| Decompiler | Ghidra's C output as a live token stream — every identifier carries its address and its kind. Click a local to rename it, click a call to follow it. Callers, callees and variables in a sidebar. |
| Function browser | Every function in the binary, filterable and sortable by address, name, size or caller count. Click a row to decompile it. |
| Call graph | Callers to the left, callees to the right, the function you asked about in the middle. Click any node to recenter. |


Ten tools total. Three open views; the rest are lookups and writes, including two the model never sees — they exist only so a click in a view can fire them.
MCP client ──stdio──▶ server/ ──HTTP──▶ bridge/ ──JPype──▶ Ghidra (JVM)
(Claude, TypeScript PyGhidra program stays
Cursor, …) MCP server session resident
▲
│ ui:// HTML in a sandboxed iframe
└── ui/ three self-contained views
The bridge is a separate long-lived process on purpose. Ghidra's auto-analysis is the expensive step, and it happens once. Measured on a 64 KB Windows system utility (198 functions):
| First open, with analysis | 25 s |
| Re-open the same binary | 0.3 s |
| Decompile one 2 KB function | 0.4 s |
| 87-node call graph | < 0.1 s |
Restart the MCP server or the client and the analysed program is still there.
Prerequisites: Ghidra 11.3+, a JDK 21+, Python 3.9–3.13 (not 3.14 —
JPype has no wheel for it yet), Node 20+. See
bridge/setup.py.md — the Python side is fussy and that file
covers every way it goes wrong. GhidraLens finds a JDK for you if JAVA_HOME is
unset, which covers the usual "installed Java, shell has not restarted" case.
git clone https://github.com/hellosverre/ghidralens
cd ghidralens
npm install
npm run build
Then start the bridge on the binary you want to look at:
python bridge/serve.py --binary /path/to/target.exe
It prints a token. Put that, and the path to the built server, into your MCP client config:
{
"mcpServers": {
"ghidralens": {
"command": "npx",
"args": ["-y", "ghidralens"],
"env": {
"GHIDRALENS_BRIDGE_UR
... [View full README on GitHub](https://github.com/hellosverre/ghidralens#readme)