IDAssistMCP
Eigenständiges MCP (Model Context Protocol) Server-Plugin für IDA Pro 9.x, das IDAs Analysefähigkeiten für LLM-Clients wie Claude Desktop bereitstellt.

Funktionen
- 41 MCP-Werkzeuge für Binäranalyse, Dekompilierung, Querverweise, Symbolverwaltung, Typsystem, Navigation, Patchen, Export und mehr
- 6 konsolidierte Werkzeuge mit
action/format/direction-Parametern für Kommentare, Variablen, Typen, Querverweise, Lesezeichen und Code
- 8 MCP-Ressourcen für durchsuchbare Binärmetadaten (Triage, Funktionen, Importe, Exporte, Zeichenketten, Informationen, Segmente, Abschnitte)
- 7 geführte Prompts für gängige Reverse-Engineering-Workflows (Funktionsanalyse, Schwachstellenidentifikation, Dokumentation, Datenflussverfolgung, Funktionsvergleich, Strukturwiederherstellung, Netzwerkprotokollanalyse)
- SSE- und Streamable-HTTP-Transports über Hypercorn-ASGI-Server
- Threadsichere IDB-Modifikationen über den
execute_on_main_thread()-Wrapper
- LRU-Analyse-Cache für teure Operationen wie Dekompilierung
- Asynchroner Aufgabenmanager für langlaufende Operationen
- Pydantic-Konfiguration mit Unterstützung für Umgebungsvariablen (Präfix
IDASSISTMCP_)
Installation
Voraussetzungen
- IDA Pro 9.x mit Python 3.10+
- Hex-Rays-Dekompilierer (optional, für Dekompilierungswerkzeuge)
Option 1: IDA Plugin Manager (empfohlen)
hcli plugin install idassistmcp
Dies installiert automatisch das Plugin und seine Python-Abhängigkeiten.
Option 2: Manuelle Installation (aus Release-Tarball)
Laden Sie das neueste Release-Zip von GitHub Releases herunter und extrahieren Sie es in Ihr IDA-Plugins-Verzeichnis:
Linux / macOS:
unzip IDAssistMCP-*.zip -d ~/.idapro/plugins/
Windows:
Extrahieren Sie das Zip in %APPDATA%\Hex-Rays\IDA Pro\plugins\.
Installieren Sie dann die Abhängigkeiten mit IDAs mitgeliefertem Python (nicht Ihrem System-Python):
Linux / macOS:
<IDA_INSTALL_DIR>/python3/bin/pip3 install -r ~/.idapro/plugins/IDAssistMCP/requirements.txt
Windows:
"<IDA_INSTALL_DIR>\python3\python.exe" -m pip install -r "%APPDATA%\Hex-Rays\IDA Pro\plugins\IDAssistMCP\requirements.txt"
Ersetzen Sie <IDA_INSTALL_DIR> durch Ihren IDA Pro-Installationspfad.
Tipp: Sie können auch die Umgebungsvariable IDAUSR verwenden, um ein benutzerdefiniertes Plugins-Verzeichnis anzugeben.
Verwendung
Server starten
- Öffnen Sie eine Binärdatei in IDA Pro
- Drücken Sie Strg+Umschalt+M oder gehen Sie zu Edit > Plugins > IDAssistMCP
- Die MCP-Server-URL wird im Ausgabefenster von IDA angezeigt.
- Drücken Sie erneut Strg+Umschalt+M, um den Server zu stoppen.
Claude Desktop-Konfiguration
Fügen Sie zu Ihrer Claude Desktop-claude_desktop_config.json hinzu:
{
"mcpServers": {
"idassistmcp": {
"url": "http://localhost:9080/mcp"
}
}
}
Umgebungsvariablen
Konfigurieren Sie über Umgebungsvariablen mit dem Präfix IDASSISTMCP_:
Werkzeugreferenz
Binärverwaltung (2)
| Werkzeug | Beschreibung |
|---|
list_binaries | Aktuell geladene Binärdatei auflisten |
get_binary_info | Detaillierte Binärmetadaten (Architektur, Hashes, Segmente) |
Code-Analyse (4)
Querverweise (1 konsolidiert)
| Werkzeug | Aktionen | Beschreibung |
|---|
xrefs | direction: to/from/both, include_calls: bool | Querverweise und optionale Aufrufer/Aufgerufene für eine Adresse |
Kommentare (1 konsolidiert)
| Werkzeug | Aktionen | Beschreibung |
|---|
comments | action: get, set, list, remove | Kommentare verwalten (reguläre, wiederholbare, Funktionskommentare) |
Variablen (1 konsolidiert)
| Werkzeug | Aktionen | Beschreibung |
|---|
variables | action: list, rename | Lokale auflisten oder lokale/globale Variablen umbenennen mit scope: auto, local, global |
Typen (2 — 1 konsolidiert + 1 eigenständig)
| Werkzeug | Aktionen / Beschreibung |
|---|
types | action: list, set, create_struct, create_enum — IDB-Typen verwalten |
get_classes | Struktur-/Klassentypen aus der Typbibliothek auflisten |
Funktionserkennung (5)
Symbolverwaltung (2)
| Werkzeug | Beschreibung |
|---|
rename_symbol | Beliebiges Symbol umbenennen (Funktion oder Daten) |
batch_rename | Stapelumbenennung mehrerer Symbole |
Datenanalyse (6)
Patchen (3)
| Werkzeug | Beschreibung |
|---|
patch_bytes | Rohe Bytes in IDB patchen |
assemble_code | Anweisungstext an einer Adresse assemblieren und optional patchen |
export_program | Die gepatchte Binärdatei oder IDA-Datenbank auf Datenträger exportieren |
Navigation (4)
Aufgabenverwaltung (4)
| Werkzeug | Beschreibung |
|---|
start_task | Asynchrone Hintergrundaufgabe starten |
get_task_status | Aufgabenfortschritt prüfen |
Projektstruktur
IDAssistMCP/
├── idassistmcp_plugin.py # IDA Plugin-Einstiegspunkt
├── requirements.txt
├── README.md
└── src/
└── idassist_mcp/
├── __init__.py
├── server.py # FastMCP-Server + Transport
├── context.py # IDA-Kontext für einzelne Binärdatei
├── tools.py # 41 MCP-Werkzeuge (IDA-API)
├── resources.py # 8 MCP-Ressourcen
├── prompts.py # 7 geführte Workflow-Prompts
├── config.py # Pydantic-Einstellungen
├── cache.py # LRU-Analyse-Cache
├── tasks.py # Asynchroner Aufgabenmanager
├── logging.py # IDA-Protokollierungs-Wrapper
├── utils.py # IDA-spezifische Dienstprogramme
└── ui/
└── tool_registry.py # Werkzeugkatalog für die Benutzeroberfläche
Lizenz
Siehe Lizenzdatei für Details.