Zurück zu den Updates
New releaseAug 7, 2026

pyghidra-mcp v0.2.5

Ghidra-MCP für die Python-Kommandozeile

Teilen

GitHub Workflow Status (with event) PyPI - Downloads

PyGhidra-MCP - Ghidra Model Context Protocol Server

Übersicht

pyghidra-mcp ist ein kommandozeilenbasierter Model Context Protocol (MCP)-Server, der die gesamte analytische Leistungsfähigkeit von Ghidra, einer robusten Suite für Software-Reverse-Engineering (SRE), in die Welt intelligenter Agenten und LLM-basierter Werkzeuge bringt. Es verbindet Ghidras ProgramAPI und FlatProgramAPI mit Python mithilfe von pyghidra und jpype und stellt diese Funktionalität dann über das Model Context Protocol bereit.

MCP ist eine einheitliche Schnittstelle, die Sprachmodellen, Entwicklungswerkzeugen (wie VS Code) und autonomen Agenten ermöglicht, auf strukturierten Kontext zuzugreifen, Werkzeuge aufzurufen und intelligent zusammenzuarbeiten. Stellen Sie sich MCP als Brücke zwischen leistungsstarken Analysetools und dem LLM-Ökosystem vor.

Mit pyghidra-mcp wird Ghidra zu einem intelligenten Backend – bereit, kontextreiche Abfragen zu beantworten, tiefgehende Reverse-Engineering-Aufgaben zu automatisieren und sich in KI-gestützte Arbeitsabläufe zu integrieren.

pyghidra-mcp unterstützt jetzt zwei Betriebsmodi:

  • headless-Modus für CLI-gesteuerte Analyse und Automatisierung
  • --gui-Modus, der Ghidra über pyghidra-mcp startet und Live-Programmzustand mit der laufenden GUI teilt

[!NOTE] Dieses Beta-Projekt befindet sich in aktiver Entwicklung. Wir freuen uns über Ihr Feedback, Fehlerberichte, Feature-Wünsche und Code.

Noch ein Ghidra-MCP?

Ja, das ursprüngliche ghidra-mcp ist fantastisch. Aber pyghidra-mcp verfolgt einen anderen Ansatz:

  • 🐍 Headless-first, GUI-fähig – Laufen vollständig über die CLI für optimierte Automatisierung oder starten Sie Ghidra mit --gui, wenn Sie Live-GUI-Navigation und -Bearbeitung wünschen.
  • 🔁 Für Automatisierung konzipiert – Ideal für die Integration mit LLMs, CI-Pipelines und Werkzeugen, die wiederholbares Verhalten benötigen.
  • ✅ CI/CD-freundlich – Entwickelt mit robusten Unit- und Integrationstests für Client- und Server-Sitzungen.
  • 🚀 Schneller Start – Asynchroner Start ermöglicht es dem Server, Anfragen zu bearbeiten, während Binärdateien im Hintergrund noch analysiert werden. Unterstützt schnelles Starten über die Kommandozeile mit minimaler Einrichtung.
  • 📦 Projektweite Analyse – Ermöglicht gleichzeitiges Reverse Engineering aller Binärdateien in einem Ghidra-Projekt
  • 🤖 Agentenbereit – Entwickelt für intelligente, agentengesteuerte Arbeitsabläufe und umfangreiche Reverse-Engineering-Automatisierung.
  • 🔍 Semantische Codesuche – Verwendet Vektor-Embeddings (über ChromaDB), um schnelle, unscharfe Suchen über dekompilierte Funktionen, Kommentare und Symbole zu ermöglichen – ideal für Pseudo-C-Erkundung und agentengesteuertes Triage.

Dieses Projekt bietet eine Python-first-Erfahrung, die für lokale Entwicklung, Headless-Umgebungen und testbare Arbeitsabläufe optimiert ist.

Setup-Diagramme

Wie die Komponenten zusammenpassen```mermaid

flowchart LR subgraph Clients["Clients"] Agent["MCP host / agent"] Cli["pyghidra-mcp-cli"] User["Ghidra user"] end

subgraph Process["pyghidra-mcp process"]
    Transport["stdio or streamable-http"]
    Tools["MCP tools"]
    Context["PyGhidra context"]
end

Project["Ghidra project<br/>.gpr / .rep"]
Artifacts["MCP artifacts<br/>ChromaDB + GZF cache"]
Gui["Ghidra GUI / CodeBrowser<br/>only with --gui"]

Agent -->|"stdio or HTTP"| Transport
Cli -->|"HTTP only"| Transport
Transport --> Tools
Tools --> Context
Context --> Project
Context --> Artifacts
Context -.-> Gui
User -.-> Gui
Gui -.-> Project
### Auswahl eines Modus```mermaid
flowchart TD
    Start["What do you need?"]
    Start --> Headless["Agent or automation only"]
    Start --> GuiNeed["Live Ghidra GUI control"]
    Start --> Terminal["Interactive terminal client"]

    Headless --> Stdio["pyghidra-mcp -t stdio<br/>or -t streamable-http"]
    GuiNeed --> GuiMode["pyghidra-mcp --gui<br/>--transport streamable-http<br/>--project-path project.gpr"]
    Terminal --> HttpServer["Start pyghidra-mcp<br/>--transport streamable-http"]
    HttpServer --> CliMode["Run pyghidra-mcp-cli commands"]
  • Headless-MCP: Verwenden Sie stdio für lokale MCP-Hosts oder streamable-http, wenn mehrere Clients dasselbe langlaufende Ghidra-Projekt benötigen.
  • GUI-Modus: pyghidra-mcp startet Ghidra, öffnet das Projekt und stellt zusätzliche Werkzeuge bereit, die den CodeBrowser in derselben JVM steuern.
  • CLI-Client: pyghidra-mcp-cli ist ein HTTP-Client. Starten Sie zuerst einen streamable-http-Server und senden Sie dann Terminalbefehle an diesen laufenden Server.
Detaillierte Architektur und Tool-Oberfläche```mermaid flowchart TD subgraph Clients Agent["LLM / MCP host"] Cli["pyghidra-mcp-cli"] Automation["scripts and CI"] end
subgraph Transports
    Stdio["stdio"]
    Http["streamable-http"]
    Sse["sse legacy"]
end

subgraph Server["pyghidra-mcp server"]
    FastMcp["FastMCP tool server"]
    Context["PyGhidra context"]
    Indexing["background analysis and Chroma indexing"]

    subgraph Tools["MCP tools"]
        Analysis["decompile, xrefs, bytes, callgraph"]
        Search["symbols, strings, code"]
        ProjectOps["import, delete, metadata, list binaries"]
        Edits["rename function, rename variable, set type, set prototype, set comment"]
        GuiOnly["GUI only: open program, goto, list open programs, set current program"]
    end
end

subgraph GhidraRuntime["Ghidra runtime"]
    PyGhidra["pyghidra"]
    Jpype["JPype shared JVM"]
    Project["Ghidra project"]
    Programs["program databases"]
    CodeBrowser["Ghidra GUI / CodeBrowser"]
end

Agent --> Stdio
Agent --> Http
Automation --> Stdio
Automation --> Http
Automation --> Sse
Cli --> Http

Stdio --> FastMcp
Http --> FastMcp
Sse --> FastMcp

FastMcp --> Context
Context --> PyGhidra
PyGhidra --> Jpype
Jpype --> Project
Project --> Programs
Context --> Indexing
Indexing --> Search

FastMcp --> Tools
Tools --> Context
GuiOnly -.-> CodeBrowser
Context -.-> CodeBrowser
</details>

## Inhaltsverzeichnis

Kategorien