PlugWiki
ReVa logo

ReVa MCP Server: Ghidra Reverse Engineering with Claude, Cursor and Other Apps

CommunityLocal
GetPyPIreverse-engineering-assistantcyberkaida/reverse-engineering-assistant

Lets your assistant decompile, trace and annotate programs in Ghidra, alongside you or on its own.

ReVa lets Claude, Cursor and other assistants work inside Ghidra for you: decompile functions, follow references, rename and retype things, add comments and compare two versions of a program. It runs on your own computer, either next to your open Ghidra window or without one. It can run Python scripts and edit your Ghidra project, so treat it like giving the assistant a keyboard.

Good for

  • Malware analysts who want help triaging unknown binaries
  • Security researchers auditing closed-source software and firmware
  • CTF players and students learning to read compiled code
  • Teams comparing two builds of a program to see what changed

Works in

12 should work

Tap an app to see how to set it up and any known problems.

Install ReVa MCP

Claude Code

  1. 1

    Copy this prompt.

    Add the ReVa MCP server to Claude Code. Run this command:
    
    claude mcp add --scope user --transport http ReVa -- http://localhost:8080/mcp/message
    
    Then check that it loaded and tell me if I need to sign in or restart.
  2. 2

    Paste it into Claude Code. It shows the change and asks before running it.

Requires Ghidra 12.0 or newer, ReVa extension installed and both plugins enabled, Ghidra open with a project.

Read-only mode: There is no read-only mode. Turn tool groups off in Ghidra's ReVa Tool Groups options, or add --disable-tool-group scripting to the mcp-reva command.

Pick Assistant mode to work next to a Ghidra window: install the extension zip that matches your Ghidra version from the releases page, enable "ReVa Application Plugin" in the Project view and "ReVa Plugin" in the Code Browser, then keep Ghidra open with a project. Pick Headless mode for automation: set GHIDRA_INSTALL_DIR, install the Python launcher, and your app starts Ghidra for you. The launcher imports reva.headless, a class from the ReVa Ghidra extension, so install the extension in Ghidra first. Requires Python 3.10 or newer for the launcher. Connect only what you need: there is no read-only mode.

From the project README. Source.

Tools

  • Shows a function as C-like code, a few lines at a time

    Decompiles one function with Ghidra and returns a slice of its lines, 50 by default, so a large function does not flood the chat. It can add the lists of callers and callees in the same answer.

    Try: “Decompile the function at 0x401000 and explain what it does.”

    Read · get-decompilation

  • Searches every function's code for a pattern

    Looks through the decompiled code of the whole program for a pattern and returns function names and line numbers. Calls and data references are better found with the cross-reference tool.

    Try: “Find functions whose decompiled code contains "strcpy".”

    Read · search-decompilation

  • Shows the code of every function that calls one

    Decompiles all callers of a target function in one go, with the call sites highlighted if you ask. It shows how a function is used across the program.

    Try: “Show me how everything that calls decrypt_buffer uses it.”

    Read · get-callers-decompiled

  • Shows the code of every function that touches an address

    Decompiles all functions that reference an address or symbol, code and data references included. Good for following a global variable.

    Try: “Decompile everything that references the global g_config.”

    Read · get-referencers-decompiled

  • Lists functions in the program

    Returns functions a page at a time. Count them first with get-function-count to plan the paging.

    Try: “List the first 100 functions in this program.”

    Read · get-functions

  • Counts the functions in the program

    Returns the total number of functions so the assistant can plan how many pages to read.

    Try: “How many functions does this program have?”

    Read · get-function-count

  • Finds functions with names like a given one

    Lists functions ordered by how close their names are to the one you give, a page at a time.

    Try: “Find functions with names similar to parse_header.”

    Read · get-functions-by-similarity

  • Lists symbols in the program

    Returns symbols such as functions, labels and data names a page at a time.

    Try: “List the symbols in this program.”

    Read · get-symbols

  • Counts the symbols in the program

    Returns the total number of symbols, to plan paging through get-symbols.

    Try: “How many symbols are there?”

    Read · get-symbols-count

  • Lists text strings, with search and regex

    Returns strings a page at a time. You can filter with a regular expression or sort by closeness to a search string.

    Try: “Show strings that look like URLs.”

    Read · get-strings

  • Counts the strings in the program

    Returns the total number of strings so the assistant knows how many pages to read.

    Try: “How many strings does this binary contain?”

    Read · get-strings-count

  • Shows what points to or from a location

    Finds references to or from an address, symbol or function, in one or both directions, with optional decompiled context around each.

    Try: “Show everything that references the function at 0x401000.”

    Read · find-cross-references

Read from the source code

Permissions

high risk · 5 things to watch

High risk

By default the assistant can run any Python on your computer through the script tool and change anything in your Ghidra project, and there is no read-only mode. Switch off the Scripting group unless you need it, and open unknown samples only on a machine you can afford to lose.

What it can do

  • Read your data
  • Create and change things
  • Delete things
  • Read-only mode

Watch out for

  • The script tool runs any Python on your machine

    run-script is on by default and the README says scripting tools are allowed in the default setup. Turn the Scripting group off if you do not need it, because write-script and edit-script also change script files that Ghidra can run. github.com

  • It can change and delete things in your project

    Tools rename variables, retype data, create or replace structures, import files, change a program's processor and check programs in. Others delete comments, bookmarks, structures, function tags and saved comparisons. Back up the project first. github.com

  • The Ghidra port has no sign-in by default

    In assistant mode the server listens on 127.0.0.1 port 8080 with the API key off, so any program on your computer can call its tools. If you let it listen on a public address, turn on the API key or disable scripting, as the README says. github.com

  • Opening hostile files has risks of its own

    Our advice: analyze malware only in a virtual machine or another isolated system, and keep your Ghidra project there. github.com

  • It reads and writes files you point it at

    import-file and parse-c-header read paths on your computer, and the debug tool writes a zip of logs and settings. Check that zip before you share it. github.com

Security advisories

No published security advisories as of Nov 1, 2026.

Technical details
Turning on read-onlyThere is no read-only mode. You can turn tool groups off in Ghidra's "ReVa Tool Groups" options, or pass --disable-tool-group (for example scripting) to mcp-reva, but rename, retype, import and check-in tools stay in the Core Analysis group.
Talks toNone by default: the server listens on 127.0.0.1 port 8080. Whatever a script you let the assistant run connects to
Sign-in and keysNo account. An optional API key, sent in the X-API-Key header, is off by default. The mcp-reva command generates a random key for its private connection to Ghidra.
Data retentionYour edits are saved in the Ghidra project. In headless mode the project is temporary and removed at the end of the session.

Questions

Is ReVa official?

No. It is a community project by cyberkaida and is not made by the Ghidra project. You install Ghidra yourself and ReVa adds to it.

Which Ghidra version does it need?

Ghidra 12.0 or newer. Each release ships one extension zip per Ghidra version, so download the one that matches yours.

What is the ReVa MCP server URL?

In assistant mode it is http://localhost:8080/mcp/message while Ghidra is open. You can change the port in the Ghidra settings from the project view.

What is the difference between assistant mode and headless mode?

Assistant mode connects your app to a Ghidra window you already have open, so you and the assistant work on the same project. Headless mode starts Ghidra for you with no window and uses a temporary project, which suits automation. Two tools that read the open window do not exist in headless mode.

Can ReVa run read-only?

No. You can switch tool groups off, but the Core Analysis group still holds tools that rename, retype, import and check in. Work on a copy of the project if you want to protect the original.

Can ReVa delete things?

Yes. It can remove comments, bookmarks, function tags, structures and saved comparisons from your project. A script can do far more, so switch off the Scripting group if you do not need it.

Does my binary leave my computer?

ReVa itself runs locally. The decompiled code and strings it returns go to whichever AI assistant you connect, so use a model your organization approves for sensitive samples.

Is ReVa free?

Yes. It is Apache 2.0 licensed and needs no account or API key. The AI assistant you connect may have its own cost.

How do I add ReVa to Claude?

Claude Code is the recommended client. Install the extension in Ghidra, then use the Claude Code tab in the install box. The repo also offers a Claude Code marketplace with ReVa skills for triage, deep analysis and crypto analysis.

Information

updated Nov 3, 2026

Publisher
Community
Package
reverse-engineering-assistant
Registry
PyPI
Transport
Streamable HTTP, stdio
Auth
None
Version
7.3.1
License
Apache-2.0
Last commit
Oct 27, 2026
Open issues
15

GitHubPyPIChangelogIssues

Sources

Docs, issue trackers and discussions this page is built from. Issues, quotes and findings above link to their own source.

Show all 8
  1. ReVa README (v7.3.1) · github.com
  2. ReVa mcp-reva CLI (v7.3.1) · github.com
  3. ReVa launcher source (imports reva.headless) · github.com
  4. ReVa McpServerManager.java (v7.3.1) · github.com
  5. ReVa ProjectToolProvider.java (v7.3.1) · github.com
  6. ReVa ScriptToolProvider.java (v7.3.1) · github.com
  7. ReVa ConfigManager.java (v7.3.1) · github.com
  8. ReVa ApiKeyAuthFilter.java (v7.3.1) · github.com

Facts from the official MCP registry, GitHub, npm, PyPI and the Docker catalog. Updated Nov 3, 2026.