IDAssistMCP
Plugin server MCP (Model Context Protocol) standalone per IDA Pro 9.x che espone le capacità di analisi di IDA a client LLM come Claude Desktop.

Caratteristiche
- 41 strumenti MCP che coprono analisi binaria, decompilazione, riferimenti incrociati, gestione dei simboli, sistema dei tipi, navigazione, patch, esportazione e altro
- 6 strumenti consolidati con parametri
action/format/direction per commenti, variabili, tipi, xref, segnalibri e codice
- 8 risorse MCP per metadati binari sfogliabili (triaging, funzioni, import, export, stringhe, info, segmenti, sezioni)
- 7 prompt guidati per flussi di lavoro comuni di reverse engineering (analisi di funzioni, identificazione di vulnerabilità, documentazione, tracciamento del flusso dati, confronto di funzioni, recupero di struct, analisi di protocolli di rete)
- Trasporti SSE e Streamable HTTP tramite server ASGI Hypercorn
- Modifiche IDB thread-safe tramite wrapper
execute_on_main_thread()
- Cache di analisi LRU per operazioni costose come la decompilazione
- Gestore di attività asincrone per operazioni di lunga durata
- Configurazione Pydantic con supporto per variabili d'ambiente (prefisso
IDASSISTMCP_)
Installazione
Prerequisiti
- IDA Pro 9.x con Python 3.10+
- Decompilatore Hex-Rays (opzionale, per strumenti di decompilazione)
Opzione 1: Plugin Manager IDA (consigliata)
hcli plugin install idassistmcp
Questo installa automaticamente il plugin e le sue dipendenze Python.
Opzione 2: Installazione manuale (da tarball di rilascio)
Scarica l'ultimo zip di rilascio da GitHub Releases ed estrailo nella directory dei plugin IDA:
Linux / macOS:
unzip IDAssistMCP-*.zip -d ~/.idapro/plugins/
Windows:
Estrai lo zip in %APPDATA%\Hex-Rays\IDA Pro\plugins\.
Poi installa le dipendenze usando il Python in bundle di IDA (non il Python di sistema):
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"
Sostituisci <IDA_INSTALL_DIR> con il percorso di installazione di IDA Pro.
Suggerimento: Puoi anche usare la variabile d'ambiente IDAUSR per specificare una directory personalizzata per i plugin.
Utilizzo
Avviare il server
- Apri un binario in IDA Pro
- Premi Ctrl+Shift+M o vai su Modifica > Plugin > IDAssistMCP
- L'URL del server MCP verrà stampato nella finestra di output di IDA
- Premi di nuovo Ctrl+Shift+M per fermare il server
Configurazione di Claude Desktop
Aggiungi al tuo claude_desktop_config.json di Claude Desktop:
{
"mcpServers": {
"idassistmcp": {
"url": "http://localhost:9080/mcp"
}
}
}
Variabili d'ambiente
Configura tramite variabili d'ambiente con il prefisso IDASSISTMCP_:
Riferimento degli strumenti
Gestione binaria (2)
| Strumento | Descrizione |
|---|
list_binaries | Elenca il binario attualmente caricato |
get_binary_info | Metadati binari dettagliati (architettura, hash, segmenti) |
Analisi del codice (4)
Riferimenti incrociati (1 consolidato)
| Strumento | Azioni | Descrizione |
|---|
xrefs | direction: to/from/both, include_calls: bool | Riferimenti incrociati e, opzionalmente, chiamanti/chiamati per un indirizzo |
| Strumento | Azioni | Descrizione |
|---|
comments | action: get, set, list, remove | Gestisci commenti (regolari, ripetibili, di funzione) |
Variabili (1 consolidato)
| Strumento | Azioni | Descrizione |
|---|
variables | action: list, rename | Elenca variabili locali, o rinomina variabili locali/globali con scope: auto, local, global |
Tipi (2 — 1 consolidato + 1 autonomo)
| Strumento | Azioni / Descrizione |
|---|
types | action: list, set, create_struct, create_enum — gestisci i tipi IDB |
get_classes | Elenca tipi struct/class dalla libreria dei tipi |
Scoperta di funzioni (5)
Gestione dei simboli (2)
| Strumento | Descrizione |
|---|
rename_symbol | Rinomina qualsiasi simbolo (funzione o dato) |
batch_rename | Rinomina in batch più simboli |
Analisi dati (6)
Patch (3)
| Strumento | Descrizione |
|---|
patch_bytes | Applica patch di byte grezzi nell'IDB |
assemble_code | Assembla testo di istruzione a un indirizzo e, opzionalmente, applica la patch |
export_program | Esporta il binario patchato o database IDA su disco |
Navigazione (4)
Gestione attività (4)
| Strumento | Descrizione |
|---|
start_task | Avvia attività asincrona in background |
get_task_status |
Struttura del progetto
IDAssistMCP/
├── idassistmcp_plugin.py # Punto di ingresso del plugin IDA
├── requirements.txt
├── README.md
└── src/
└── idassist_mcp/
├── __init__.py
├── server.py # Server FastMCP + trasporto
├── context.py # Contesto IDA a singolo binario
├── tools.py # 41 strumenti MCP (API IDA)
├── resources.py # 8 risorse MCP
├── prompts.py # 7 prompt di flussi di lavoro guidati
├── config.py # Impostazioni Pydantic
├── cache.py # Cache di analisi LRU
├── tasks.py # Gestore attività asincrone
├── logging.py # Wrapper logging IDA
├── utils.py # Utility specifiche IDA
└── ui/
└── tool_registry.py # Catalogo strumenti per UI
Licenza
Vedere il file LICENSE per i dettagli.