ReVa 7.3.1 builds for Ghidra 12.1.3 and runs on MCP SDK 2.0

3 hours ago

ReVa is the Ghidra extension that gives an AI model an MCP server for reverse engineering. Version 7.3.1 ships a build for Ghidra 12.1.3, and it moves ReVa onto version 2.0 of the MCP Java SDK. Here's what that changes for you, and what to check before you upgrade.

Ask about this presentation

Chapters

  1. 0:00ReVa 7.3.1
  2. 0:22Ghidra builds
  3. 0:42The 12.1.3 fix
  4. 1:02MCP Java SDK 2.0
  5. 1:20Arguments checked first
  6. 1:46Libraries and signing
  7. 2:08How to upgrade
  8. 2:36ReVa 7.3.1
Show transcript
  1. ReVa is the Ghidra extension that gives an AI model an MCP server for reverse engineering. Version 7.3.1 ships a build for Ghidra 12.1.3, and it moves ReVa onto version 2.0 of the MCP Java SDK. Here's what that changes for you, and what to check before you upgrade.

    Slide text

    ReVa 7.3.1 builds for Ghidra 12.1.3 and runs on MCP SDK 2.0

    The Ghidra MCP server for AI-assisted reverse engineering

    github.com/cyberkaida/reverse-engineering-assistant

    CyberKaida avatar
  2. ReVa installs as one zip per Ghidra version, through Ghidra's extension manager. This release ships zips for Ghidra 12.0, 12.1, and the new 12.1.3. The patch builds for 12.0.1 through 12.0.4, which 7.3.0 shipped, are no longer in the build list.

    Slide text

    7.3.1 adds a zip for Ghidra 12.1.3

    12.0
    12.1
    12.1.3 new
    12.0.1
    12.0.2
    12.0.3
    12.0.4

    Built for 7.3.0, not part of the 7.3.1 build

  3. Only one Java file outside the tests changed, and it's a fix for 12.1.3 support. The exporter class, which comes from the extension template, gains a method that says whether it can export a given type of Ghidra object. It returns false, so the exporter takes no object types.

    Slide text

    One Java fix for Ghidra 12.1.3 support

    The exporter class now answers which object types it can export, and the answer is none.

    src/main/java/reva/revaExporter.java
    @Override
    public boolean canExportDomainObject(
        Class<? extends DomainObject> domainObjectClass) {
      // Return true if this exporter can export
      // the given domain object type.
      return false;
    }
  4. The bigger change sits underneath the server. ReVa's build now pulls version 2.0.0 of the Model Context Protocol Java SDK, up from 1.1.3. That's the library that speaks MCP to your client, whether it's Claude Code, VS Code, or another one.

    Slide text

    ReVa moves to the MCP Java SDK 2.0

    MCP SDK 1.1.3
    MCP SDK 2.0.0
    - implementation platform("io.modelcontextprotocol.sdk:mcp-bom:1.1.3")
    + implementation platform("io.modelcontextprotocol.sdk:mcp-bom:2.0.0")
  5. With SDK 2.0, each tool call is checked against the tool's input schema before ReVa's own handler runs. Pass an unknown correlator name to diff add correlator, and the error now names the correlator field, where it used to quote your value. Diff list functions now refuses a correlators argument, because its schema doesn't declare one. If you script these tools, send only the arguments each tool declares.

    Slide text

    Bad tool arguments are rejected before ReVa's code runs

    diff-add-correlator
    correlator: "not-a-correlator"

    Rejected by the schema. The error names the correlator field, where the old error quoted the bad value.

    diff-list-functions
    category: "removed"
    correlators: [ … ]

    Rejected: the schema declares no correlators argument and allows no extras.

  6. Libraries that ship inside the extension moved up as well. Jetty, the embedded web server, moves to 12.1.12, and Jackson to 2.22.1. Release files are still signed with Sigstore, now through version 3.5.0 of its GitHub action, and every zip comes with a matching Sigstore file to check it against.

    Slide text

    Libraries and signing moved up too

    Jetty
    embedded web server
    12.1.10 → 12.1.12
    Jackson
    core and databind
    2.22.0 → 2.22.1
    Jackson YAML
    dataformat-yaml
    2.21.3 → 2.22.1
    Sigstore signing
    every zip ships a .sigstore.json
    3.3.0 → 3.5.0
  7. In the Ghidra interface, download the 7.3.1 zip that matches your Ghidra version and install it with the extension manager. For headless use, the Python package is on PyPI as 7.3.1, and the readme installs it with uv tool install. One reason to wait. If you're on Ghidra 12.0.1 through 12.0.4, this release has no zip built for your version, so stay on 7.3.0 for now.

    Slide text

    Upgrade by picking the zip for your Ghidra

    Ghidra UI

    Download the 7.3.1 zip for your Ghidra version and install it with the extension manager.

    Headless

    7.3.1 is on PyPI. The README installs it with:

    uv tool install reverse-engineering-assistant
    On Ghidra 12.0.1 to 12.0.4?

    7.3.1 has no zip built for your version. Stay on 7.3.0 for now.

  8. This release adds no new tools or settings. What you get is a Ghidra 12.1.3 build, version 2.0 of the MCP SDK underneath, and stricter checking of tool arguments. The release and its zips are on the reverse engineering assistant page on GitHub, from CyberKaida.

    Slide text
    CyberKaida avatar

    Ghidra 12.1.3 builds, MCP SDK 2.0, stricter tool arguments

    github.com/cyberkaida/reverse-engineering-assistant

What happened in AI today, in your inbox

One short email each evening. Read it and you’re caught up.

Built in New York with ❤️