jaenster

Ghidra MCP — AI skill for Claude Code

AI community

Remote claude.ai MCP connector for Ghidra — headless daemon with OAuth 2.1 + SSE/Streamable-HTTP, deployable on k8s.

How to install Ghidra MCP

This entry records only its repository, not the path inside it, so there is no exact command to give. Open jaenster/ghidra-mcp and copy the folder into ~/.claude/skills/, or the file into ~/.claude/agents/.

What Ghidra MCP does

Remote claude.ai MCP connector for Ghidra — headless daemon with OAuth 2.1 + SSE/Streamable-HTTP, deployable on k8s.

Alternatives in AI

  • Peekaboo — Peekaboo is a macOS CLI & optional MCP server that enables AI agents to capture screenshots of applications, o 3.2k ★
  • Auto Re Agent — Open-source AI reverse-engineering agent using Ghidra and LLMs to reconstruct and validate C/C++ functions fro 1.4k ★
  • PaiAgent — 🔥轻量级的AI工作流编排系统,类似dify、n8n,全程使用Vibe Coding,AI工具为Qoder+CLI 698 ★

README

ghidra-mcp

[![Discord](https://img.shields.io/badge/Discord-join%20the%20chat-5865F2?logo=discord&logoColor=white)](https://discord.gg/MHK2Dg9)

**Headless [Ghidra](https://ghidra-sre.org/) as an MCP server.** A single TypeScript daemon exposes Ghidra's reverse-engineering capabilities — decompilation, disassembly, cross-references, type/structure editing, call graphs, data-flow tracing, scripting and more — as [Model Context Protocol](https://modelcontextprotocol.io) tools over **SSE** and **Streamable HTTP**. Each session is driven by a real Java Ghidra process, so the results are exactly what Ghidra produces, not an approximation.

It runs two ways from the same codebase:

  • Locally for a single user — bound to loopback, no auth, one command to start.
  • Cloud-native as an OAuth-secured claude.ai connector: a daemon pod that spawns one Ghidra worker pod per session and talks to a shared Ghidra Server.

If this saves you time, you can [sponsor the work](https://github.com/sponsors/jaenster).

Concept

Ghidra is a heavyweight desktop reverse-engineering suite. ghidra-mcp runs it *headless* and puts a thin, fast protocol in front of it so an LLM agent can drive an analysis the way a human would in the GUI — open a program, decompile a function, rename a variable, lay down a struct, follow an xref — but programmatically and at scale.

Two processes, one protocol boundary:

  • Daemon (Node/TypeScript) — the MCP server, transport, OAuth authorization server, session manager and worker pool. Holds no Ghidra state itself.
  • Worker (Java) — a com.ghidramcp.Worker JVM with Ghidra on its classpath. One per session. Opens the program and executes the actual analysis commands.

The daemon launches a worker through a pluggable **backend**: a local child process (default) or **one Kubernetes pod per worker** (`GHIDRA_MCP_WORKER_BACKEND=k8s`).

Architecture

![ghidra-mcp system context](docs/architecture/context.png)

Diagrams are generat