Ghidra MCP with a model that doesn’t refuse
GhidraMCP exposes Ghidra’s decompiler to any MCP client, so a coding agent can decompile and rename functions on its own. The weak link is the model: mainstream assistants often refuse to reverse a binary. Pair Ghidra MCP with a coding agent running an Obscurify.ai model, and the analysis gets done. The account is a 16-digit number, not an email.
Authorized work only. Reverse engineer your own binaries, CTF challenges, malware you are analyzing, and software you are licensed or legally entitled to examine. Obscurify.ai’s terms prohibit breaking into systems you aren’t authorized to access.
The agent-plus-model half is tested: on 2026-11-08, OpenCode running the
pqhaz/deepseek-v4.1-flash-1017-heretic model through Obscurify.ai reverse
engineered a small crackme we compiled ourselves — it read .rodata with
objdump, recovered the hardcoded password, and ran the binary to confirm. The
GhidraMCP wiring below is verified against the project’s README on 2026-11-08.
Before you start
- Ghidra (the version GhidraMCP’s current release targets) and a JDK.
- GhidraMCP: download the release, then in Ghidra:
File → Install Extensions → +, pick the..._GhidraMCP.zip, restart, and enable the plugin inFile → Configure → Developer. The plugin serves an HTTP endpoint on127.0.0.1:8080by default. - A coding agent that speaks MCP, such as Cline or OpenCode, already pointed at Obscurify.ai (see those tutorials).
- An Obscurify.ai API key. Create an account — a 16-digit number, no email. Add credit, then Show API Key.
Add the MCP server to your agent
GhidraMCP ships a Python MCP server you launch with uvx. Most clients take a
config like this (point --ghidra-server at the plugin’s HTTP port):
{
"mcpServers": {
"ghidra": {
"command": "uvx",
"args": [
"--from", "git+https://github.com/LaurieWired/GhidraMCP",
"ghidra-mcp", "--ghidra-server", "http://127.0.0.1:8080/"
]
}
}
}
In OpenCode, add the same server under the mcp key of opencode.json; in
Cline, add it in the MCP settings. GhidraMCP can also run headless (no Ghidra
GUI) with PyGhidra — see its README for --headless --binary.
Pick a model
Run your agent on a model that won’t refuse and supports tools. From
/v1/models:
- Uncensored, needs the Pro plan:
deepseek/deepseek-v4.1-flash-uncensoredorz-ai/glm-5.3-flash-uncensored. - Decensored / cybersecurity, any funded account:
pqhaz/deepseek-v4.1-flash-1017-heretic(tested on the crackme above),orca/orcacyber-minimax-m3.1-flash,heabsy/cyberheabsy.
Use it
Open your target in Ghidra, then ask your agent, for example:
“List the functions, decompile main, and explain how the license check works.
This is my own binary.” The agent calls Ghidra through MCP and reasons over the
decompiled code with your Obscurify.ai model.
If something fails
- 402 / 403: no balance, or the model isn’t on your plan (uncensored needs Pro; decensored models work on any funded account).
- Agent can’t see Ghidra tools: confirm the plugin is enabled and the HTTP
port matches
--ghidra-server. - 404
model_not_found: check the id against/v1/modelsand keep its prefix.
What stays private
Prompts and responses aren’t stored on Obscurify.ai’s servers; models with the ZDR tag run only on zero-data-retention routes. Providers see the prompt text — including decompiled code your agent sends — but not who sent it. See the privacy policy.
More: Obscurify.ai for agents.