Plugin de servidor MCP independiente para IDA Pro.
[!IMPORTANT] Archivado previsto: Está previsto archivar IDAssistMCP ya que IDA Pro introduce un servidor MCP nativo integrado. El soporte nativo elimina la necesidad de mantener una integración MCP independiente y la mantiene alineada con el propio IDA Pro. Utilice el servidor MCP nativo de IDA Pro una vez que esté disponible en su versión instalada. Este repositorio permanecerá disponible como referencia.
Plugin de servidor MCP (Model Context Protocol) independiente para IDA Pro 9.x que expone las capacidades de análisis de IDA a clientes LLM como Claude Desktop.

action/format/direction para comentarios, variables, tipos, xrefs, marcadores y códigoexecute_on_main_thread()IDASSISTMCP_)hcli plugin install idassistmcp
Esto instala automáticamente el plugin y sus dependencias de Python.
Descargue el zip de la última release desde GitHub Releases y extráigalo en su directorio de plugins de IDA:
Linux / macOS:
unzip IDAssistMCP-*.zip -d ~/.idapro/plugins/
Windows:
Extraiga el zip en %APPDATA%\Hex-Rays\IDA Pro\plugins\.
A continuación, instale las dependencias usando el Python incluido con IDA (no su Python del 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"
Reemplace
<IDA_INSTALL_DIR>con la ruta de instalación de su IDA Pro.Consejo: También puede usar la variable de entorno
IDAUSRpara especificar un directorio de plugins personalizado.
Añada a su claude_desktop_config.json de Claude Desktop:
{
"mcpServers": {
"idassistmcp": {
"url": "http://localhost:9080/mcp"
}
}
}
Configure mediante variables de entorno con el prefijo IDASSISTMCP_:
| Variable | Predeterminado | Descripción |
|---|---|---|
IDASSISTMCP_SERVER__HOST | localhost | Dirección de enlace del servidor |
IDASSISTMCP_SERVER__PORT | 9080 | Puerto del servidor |
IDASSISTMCP_SERVER__TRANSPORT | streamablehttp | Tipo de transporte (sse o streamablehttp) |
IDASSISTMCP_DEBUG | false | Activar modo de depuración |
IDASSISTMCP_LOG_LEVEL | INFO | Nivel de log |
| Herramienta | Descripción |
|---|---|
list_binaries | Lista el binario cargado actualmente |
get_binary_info | Metadatos detallados del binario (arquitectura, hashes, segmentos) |
| Herramienta | Descripción |
|---|---|
get_code | Obtiene el código de la función — format: 'decompile' (pseudo-C) o 'disasm' (ensamblador) |
analyze_function | Análisis exhaustivo: metadatos, CFG, llamadores/llamados, descompilación |
get_basic_blocks | Bloques básicos del CFG con sucesores/predecesores |
get_function_stack_layout | Diseño del marco de pila (locales, argumentos, registros guardados) |
| Herramienta | Acciones | Descripción |
|---|---|---|
xrefs | direction: to/from/both, include_calls: bool | Xrefs y llamadores/llamados opcionales para una dirección |
| Herramienta | Acciones | Descripción |
|---|---|---|
comments | action: get, set, list, remove | Gestionar comentarios (normales, repetibles, de función) |
| Herramienta | Acciones | Descripción |
|---|---|---|
variables | action: list, rename | Listar locales, o renombrar variables locales/globales con scope: auto, local, global |
| Herramienta | Acciones / Descripción |
|---|---|
types | action: list, set, create_struct, create_enum — gestionar tipos del IDB |
get_classes | Listar tipos struct/class de la biblioteca de tipos |
| Herramienta | Descripción |
|---|---|
get_functions | Todas las funciones con filtrado y paginación |
search_functions_by_name | Buscar por patrón de nombre y filtros de tamaño |
get_function_by_name | Búsqueda por nombre exacto |
get_function_by_address | Búsqueda por dirección |
get_function_statistics | Estadísticas agregadas (recuentos, tamaños, top-10) |
| Herramienta | Descripción |
|---|---|
rename_symbol | Renombrar cualquier símbolo (función o dato) |
batch_rename | Renombrar varios símbolos en lote |
| Herramienta | Descripción |
|---|---|
get_imports | Tabla de importaciones agrupada por módulo |
get_exports | Tabla de exportaciones |
get_strings | Tabla de cadenas con paginación |
get_segments | Segmentos de memoria con permisos |
get_entry_points | Todos los puntos de entrada del binario |
| Herramienta | Descripción |
|---|---|
read_memory | Leer bytes en bruto en una dirección |
get_data_at | Obtener datos tipados en una dirección |
search_bytes | Búsqueda de patrones de bytes binarios |
search_strings | Búsqueda de cadenas con paginación |
create_data_var | Definir una variable de datos en una dirección (byte/word/dword/qword/float/ascii/tipo C) |
get_data_vars | Listar variables de datos definidas (elementos que no son código) |
| Herramienta | Descripción |
|---|---|
patch_bytes | Parchear bytes en bruto en el IDB |
assemble_code | Ensamblar texto de instrucción en una dirección y opcionalmente parchearlo |
export_program | Exportar el binario parcheado o la base de datos de IDA al disco |