Server MCP deterministico e local-first per IDA Pro/Home: 109 operazioni di reverse engineering con schema rigoroso, risultati supportati da evidenze e modifiche all'IDB controllate da policy.
⚠️ Archiviato — sostituito dal server MCP ufficiale di Hex-Rays per IDA
Questo progetto non è più mantenuto. Il 2026-09-27 Hex-Rays SA ha rilasciato l'Official IDA MCP Server e IDA Nexus. Lo sviluppo si è fermato lo stesso giorno alla versione
1.0.0a4.Per l'uso attuale, installa il loro:
uvx ida-hcli mcp install. Richiede IDA 9.4+ conidalibe funziona completamente headless; il plugin GUI è opzionale.Questo repository è conservato per la sua suite di test, la documentazione e la memoria architetturale. Vedi ARCHIVE.md per il resoconto completo della chiusura: cos'era il progetto, perché ha perso, quali parti erano impalcatura e quali parti hanno ancora valore. Il resto di questo README descrive un sistema che non è più raccomandato per l'uso.

IDA Pro MCP è un server locale Model Context Protocol per IDA Pro. Consente a un client MCP di ispezionare un IDB, chiedere a IDA risultati di analisi deterministici e, quando esplicitamente consentito, scrivere annotazioni o altre modifiche nell'IDB. Il processo host viene eseguito al di fuori di IDA e avvia un processo IDA headless separato per ogni sessione per impostazione predefinita.
ida_* con schema rigoroso e
scoperta live tramite tools/list e ida_help.La versione corrente è 1.0.0a4. Questo è software alpha. I nomi pubblici delle
operazioni ida_*, gli schemi e il formato del workspace possono cambiare prima di una
release stabile 1.0.0. La superficie client predefinita contiene 102 operazioni con schema esatto.
Usa la scoperta live per il contratto completo: tools/list enumera ogni
operazione con il suo schema, e ida_help(topic="...") restituisce gli argomenti esatti
e un esempio per una singola operazione.
Ti serve:
idat/idat64 utilizzabile.
Le evidenze dei test live del repository coprono IDA 9.3 e 9.4; 9.2 è la
soglia di compatibilità dichiarata.L'analisi normale non richiede un provider di intelligenza. Le modalità esplicite
di intelligenza sono jev, custom e disabled; la modalità disabled mantiene
disponibile la ricerca lessicale deterministica e non esiste alcun fallback locale, Gemini o
modello nativo.
Il runtime predefinito è idat: un processo IDA headless per sessione. Il
backend idalib è sperimentale, richiede un'installazione di IDA 9.3 o successiva
con il pacchetto idapro attivato, e non è necessario per una prima installazione.
L'installer crea un ambiente gestito sotto la radice di installazione, installa una copia congelata del checkout al suo interno e scrive la configurazione del client per le posizioni client supportate. Dalla radice del repository, esegui:
python3 install.py
Per un'installazione IDA nota, passarla esplicitamente:
python3 install.py --ida-dir /path/to/ida-pro-9.3
Per un'esecuzione non interattiva:
python3 install.py --yes --no-ida-prompt --ida-dir /path/to/ida-pro-9.3
L'installer può anche trovare IDA tramite IDADIR, IDA_DIR, gli eseguibili IDA su PATH e le directory di installazione comuni. --ida-version seleziona una versione quando è presente più di un'installazione. Usa --dry-run per ispezionare prima le modifiche pianificate.
L'installer non scarica mai un modello o un runtime di un provider. Può creare o aggiornare file di configurazione per ogni posizione client nella sua mappa client integrata, incluse le posizioni dei client che non sono installati sulla tua macchina. Controlla install-report.json nella radice di installazione e rimuovi le voci inutilizzate se necessario. I file di configurazione regolari esistenti vengono sottoposti a backup prima di essere modificati; i file malformati, symlink o non regolari vengono rifiutati anziché sovrascritti.
Riavvia il client MCP dopo l'installazione affinché ricarichi la sua configurazione.
Gli harness degli agenti scoprono la superficie degli strumenti in tempo reale: tools/list enumera ogni operazione con il suo schema, e ida_help(topic="...") restituisce gli argomenti esatti e un esempio. Non vengono installati file di skill statici.
La radice di installazione predefinita è:
~/.local/share/ida-pro-mcp%LOCALAPPDATA%/ida-pro-mcpImposta IDA_PRO_MCP_HOME o passa --install-root per scegliere un'altra posizione.
Le release alpha sono create da GitHub Actions e pubblicate manualmente come prerelease. Quando una release è disponibile, scarica l'asset bundle.zip o bundle.tar.gz e il suo file SHA256SUMS dalla
pagina delle release. Verifica il
checksum, estrai il bundle ed esegui l'installer dalla sua directory di primo livello:
python3 install.py --yes --no-ida-prompt --ida-dir /path/to/ida-pro-9.3
La release contiene anche un wheel e una distribuzione sorgente per installazioni Python scriptate. Il bundle è la via più semplice perché include l'installer e tutti i file di progetto necessari per configurare un client MCP. Le release sono di qualità alpha; conserva il binario originale e l'IDB e leggi le note di rilascio prima di aggiornare.
L'installer scrive la voce del server per i percorsi di configurazione del client che conosce. Supporta Gemini CLI, Antigravity, Antigravity IDE, Antigravity CLI, Claude Code, Codex, Copilot CLI, OpenCode, Claude Desktop, Cursor, VS Code, Windsurf, Cline e Roo Code. OpenCode e i client della famiglia Copilot usano forme di configurazione diverse; lascia che l'installer scriva quei file oppure segui la guida di configurazione di OpenCode.
Per un client che usa il formato JSON comune, la voce è equivalente a:
{
"mcpServers": {
"ida-pro-mcp": {
"command": "/path/to/ida-pro-mcp/.venv/bin/python",
"args": ["-u", "-m", "ida_pro_mcp.host.server"],
"env": {
"IDA_PRO_MCP_HOME": "/path/to/ida-pro-mcp",
"IDADIR": "/path/to/ida-pro-9.3",
"IDA_MCP_TOOL_SURFACE": "agent"
}
}
}
}