PlugWiki
Ghidra MCP logo

Ghidra MCP Server: Setup for Claude, Cursor and Other Apps

CommunityLocal

Lets Claude, Cursor and other assistants work inside Ghidra: decompile functions, trace calls, rename code and document a binary.

This is a community project, not made by Ghidra's maker. It connects an assistant to a running Ghidra through a plugin you install in Ghidra and a small bridge program on your computer. The assistant can then read, search, decompile and edit the program you have open.

Setup has two parts. You install the Ghidra extension and the bridge, and Ghidra 12.1.4 and Java 21 are required. The server has more than 200 tools. Most load on demand, so the assistant first sees a smaller set.

Good for

  • Reverse engineers who want an assistant to name and document functions
  • Malware analysts triaging samples and pulling out indicators
  • Researchers comparing versions of the same program

Works in

12 should work

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

Install Ghidra MCP

Claude Code

  1. 1

    Copy this prompt.

    Add the Ghidra MCP server to Claude Code. Run this command:
    
    claude mcp add ghidra-mcp -- /path/to/bridge-mcp-ghidra
    
    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.1.4, Java 21, uv.

Use the absolute path to bridge-mcp-ghidra: clients launched from a GUI do not see your shell PATH, and a bare command fails with spawn ENOENT. Open a program in Ghidra before you ask for functions.

Built from the package data we hold. Not yet tested by us. Source.

Tools

  • Shows which program is loaded

    Returns the name, architecture and function count of the open program. A good first call to confirm the connection.

    Try: “What binary do I have open in Ghidra?”

    Read · get_metadata

  • Lists or searches functions in the program

    Lists functions a page at a time, or filters them by name pattern.

    Try: “List functions whose names contain "crypt".”

    Read · find_functions

  • Shows where the program starts running

    Returns the entry points of the program, a good root for analysis.

    Try: “Where does this binary start executing?”

    Read · get_entry_points

  • Shows everything about one or many functions

    Takes one function or up to 20 and returns the fields you ask for, such as decompiled code and callers.

    Try: “Decompile the function at 0x401000 and list what it calls.”

    Read · get_functions

  • Shows who calls whom around a function

    Returns a call graph for a function, to the depth and direction you choose.

    Try: “Show the call graph two levels deep from main.”

    Read · get_function_call_graph

  • Shows everything that references an address

    Lists the places in the program that point to an address, such as who reads a global.

    Try: “Who touches the global at 0x4a3000?”

    Read · get_xrefs_to

  • Shows what an address references

    Lists the references that start at an address.

    Try: “What does the code at 0x401050 reference?”

    Read · get_xrefs_from

  • Lists the strings defined in the program

    Returns the defined strings, an easy way to get oriented in an unknown binary.

    Try: “List the strings in this binary.”

    Read · list_strings

  • Searches the program's strings by pattern

    Finds defined strings that match a substring or regex.

    Try: “Find strings that look like URLs.”

    Read · search_strings

  • Lists imports, exports, segments and more

    Lists one kind of item at a time, such as imports or exports, with paging.

    Try: “List the imports of this binary.”

    Read · list_program_items

  • Reads raw bytes from the program

    Returns raw memory from the program at an address.

    Try: “Show 64 bytes at 0x402000.”

    Read · read_memory

  • Shows the assembly for a function

    Returns the disassembly of a function.

    Try: “Disassemble the function at 0x401000.”

    Read · disassemble_function

Read from the source code

Permissions

high risk · 4 things to watch

High risk

It can rename and rewrite your analysis, and its tools include ones that delete functions, files and whole projects. Work on a copy of your project, and set a file root if you ever expose it beyond your own machine.

What it can do

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

Watch out for

  • It can delete files and projects

    Tools exist to delete project files, functions, data types and, in headless mode, whole projects. Keep a backup of your Ghidra project. github.com

  • Script tools run code inside Ghidra

    Setting GHIDRA_MCP_ALLOW_SCRIPTS turns on tools that run arbitrary Java in the Ghidra process. They are off by default; leave them off unless you need them. github.com

  • Edits change your analysis database

    Renames, types and comments write to the program. Save only when you are happy with the result. github.com

  • Exposing it on a network is unsafe

    The default is local only, with no login. If you bind it to another address, the README says to set an auth token and a file root first. github.com

Security advisories

No published security advisories as of Nov 1, 2026.

Technical details
Talks toLocal Ghidra plugin at 127.0.0.1:8089
Sign-in and keysNo sign-in by default. The plugin listens on 127.0.0.1:8089. An auth token is required only if you bind it to a non-loopback address.

Questions

Is the Ghidra MCP server official?

No. It is a community project by bethington, started from LaurieWired's GhidraMCP. It is not made by the NSA, which created Ghidra.

What do I need installed?

Ghidra 12.1.4, Java 21 and uv. You also install the GhidraMCP extension in Ghidra and the bridge program. The extension loads only in the exact Ghidra version it was built for.

Does it need an API key?

No. It talks to Ghidra on your own machine over a local port. A token is only needed if you expose the port beyond localhost.

Can it run in read-only mode?

Not as a single switch. The README describes a small read-only allowlist of four tools you can set in your AI app. Only those four then reach the assistant.

Can it run scripts?

Only if you turn it on. The script tools are off by default and need GHIDRA_MCP_ALLOW_SCRIPTS set.

Why does it show only some tools at first?

The full set of 200+ tools is too big for some AI providers, so the bridge loads about 76 on connect and the rest on demand. Turn that off with the no-lazy option if your app ignores tool list updates.

Is the tool list here complete?

No. The page lists the main tools out of more than 200 that the README documents for version 7.0.0.

Information

updated Nov 2, 2026

Publisher
Community
Transport
stdio, Streamable HTTP
Auth
None
License
Apache-2.0
Last commit
Oct 31, 2026
Open issues
11

GitHubChangelogIssues

Sources

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

Show all 2
  1. github.com · github.com
  2. github.com · github.com

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