Plugin serveur MCP autonome pour IDA Pro.
[!IMPORTANT] Archivage prévu : IDAssistMCP est prévu pour être archivé, car IDA Pro introduit un serveur MCP natif intégré. La prise en charge native supprime la nécessité de maintenir une intégration MCP distincte et la maintient alignée sur IDA Pro lui-même. Veuillez utiliser le serveur MCP natif d'IDA Pro dès qu'il sera disponible dans votre version installée. Ce dépôt restera disponible pour référence.
Plugin serveur MCP (Model Context Protocol) autonome pour IDA Pro 9.x qui expose les capacités d'analyse d'IDA aux clients LLM comme Claude Desktop.

action/format/direction pour les commentaires, variables, types, xrefs, signets et codeexecute_on_main_thread()IDASSISTMCP_)hcli plugin install idassistmcp
Cela installe automatiquement le plugin et ses dépendances Python.
Téléchargez le dernier zip de release depuis GitHub Releases et extrayez-le dans votre répertoire de plugins IDA :
Linux / macOS :
unzip IDAssistMCP-*.zip -d ~/.idapro/plugins/
Windows :
Extrayez le zip dans %APPDATA%\Hex-Rays\IDA Pro\plugins\.
Installez ensuite les dépendances en utilisant le Python intégré d'IDA (pas votre Python système) :
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"
Remplacez
<IDA_INSTALL_DIR>par le chemin d'installation de votre IDA Pro.Astuce : Vous pouvez également utiliser la variable d'environnement
IDAUSRpour spécifier un répertoire de plugins personnalisé.
Ajoutez à votre fichier claude_desktop_config.json de Claude Desktop :
{
"mcpServers": {
"idassistmcp": {
"url": "http://localhost:9080/mcp"
}
}
}
Configurez via des variables d'environnement avec le préfixe IDASSISTMCP_ :
| Variable | Défaut | Description |
|---|---|---|
IDASSISTMCP_SERVER__HOST | localhost | Adresse de liaison du serveur |
IDASSISTMCP_SERVER__PORT | 9080 | Port du serveur |
IDASSISTMCP_SERVER__TRANSPORT | streamablehttp | Type de transport (sse ou streamablehttp) |
IDASSISTMCP_DEBUG | false | Activer le mode debug |
IDASSISTMCP_LOG_LEVEL | INFO | Niveau de log |
| Outil | Description |
|---|---|
list_binaries | Liste le binaire actuellement chargé |
get_binary_info | Métadonnées détaillées du binaire (arch, hashes, segments) |
| Outil | Description |
|---|---|
get_code | Obtient le code de la fonction — format : 'decompile' (pseudo-C) ou 'disasm' (assembleur) |
analyze_function | Analyse complète : métadonnées, CFG, appelants/appelés, décompilation |
get_basic_blocks | Blocs de base du CFG avec successeurs/prédécesseurs |
get_function_stack_layout | Disposition de la pile de la fonction (locales, arguments, registres sauvegardés) |
| Outil | Actions | Description |
|---|---|---|
xrefs | direction : to/from/both, include_calls : bool | Xrefs et appelants/appelés optionnels pour une adresse |
| Outil | Actions | Description |
|---|---|---|
comments | action : get, set, list, remove | Gérer les commentaires (réguliers, répétables, de fonction) |
| Outil | Actions | Description |
|---|---|---|
variables | action : list, rename | Lister les locales, ou renommer les variables locales/globales avec scope : auto, local, global |
| Outil | Actions / Description |
|---|---|
types | action : list, set, create_struct, create_enum — gérer les types IDB |
get_classes | Lister les types struct/class depuis la bibliothèque de types |
| Outil | Description |
|---|---|
get_functions | Toutes les fonctions avec filtrage et pagination |
search_functions_by_name | Recherche par motif de nom et filtres de taille |
get_function_by_name | Recherche par nom exact |
get_function_by_address | Recherche par adresse |
get_function_statistics | Statistiques agrégées (comptages, tailles, top-10) |
| Outil | Description |
|---|---|
rename_symbol | Renommer n'importe quel symbole (fonction ou donnée) |
batch_rename | Renommer plusieurs symboles en lot |
| Outil | Description |
|---|---|
get_imports | Table d'imports groupée par module |
get_exports | Table d'exports |
get_strings | Table de chaînes avec pagination |
get_segments | Segments mémoire avec permissions |
get_entry_points | Tous les points d'entrée du binaire |
| Outil | Description |
|---|---|
read_memory | Lire les octets bruts à une adresse |
get_data_at | Obtenir les données typées à une adresse |
search_bytes | Recherche de motif d'octets binaires |
search_strings | Recherche de chaînes avec pagination |
create_data_var | Définir une variable de données à une adresse (byte/word/dword/qword/float/ascii/type C) |
get_data_vars | Lister les variables de données définies (éléments non-code) |
| Outil | Description |
|---|---|
patch_bytes | Patcher les octets bruts dans l'IDB |
assemble_code | Assembler le texte d'instruction à une adresse et éventuellement le patcher |
export_program | Exporter le binaire patché ou la base de données IDA sur disque |