
Enrutador MCP IDALib multisessión para agentes de codificación. Analiza múltiples binarios en paralelo con herramientas de ingeniería inversa compatibles con IDA.
Un endpoint de MCP. Muchas sesiones aisladas de IDALib.
Una capa de control ligera, orientada a agentes, para análisis binarios sin interfaz gráfica con el conjunto de herramientas MCP de IDA Pro.
[!IMPORTANT] Pocket Disasm es un proyecto independiente de código abierto. No está afiliado, respaldado, patrocinado ni es un producto oficial de Hex-Rays. IDA Pro e IDALib son productos de Hex-Rays y requieren una instalación y licencia válidas por separado. Pocket Disasm no distribuye IDA, IDALib ni ningún software de Hex-Rays.
Pocket Disasm ejecuta un router MCP público y asigna a cada binario su propio trabajador IDALib. Los agentes de codificación pueden crear, seleccionar, inspeccionar, guardar y cerrar sesiones de análisis sin lanzar una ventana interactiva de IDA independiente para cada archivo.
El proyecto utiliza una revisión fija de mrexodia/ida-pro-mcp como su implementación central de análisis MCP y catálogo de herramientas. Pocket Disasm construye su router unificado de múltiples sesiones, aislamiento de procesos, integraciones de agentes, diagnóstico y centro de control de terminal en torno a ese proyecto ascendente.
Ejecute un comando en PowerShell:
irm https://raw.githubusercontent.com/whoisqwerz/pocket_disasm/main/install.ps1 | iex
Luego abra una nueva terminal y ejecute:
pocket
El instalador crea un entorno Python aislado bajo %LOCALAPPDATA%\PocketDisasm, instala dependencias fijas, añade el comando pocket al PATH del usuario y abre el centro de control de terminal.
ida-pro-mcp.pocket.idalib.dll.El endpoint predeterminado es:
http://127.0.0.1:13339/mcp
El puerto se puede cambiar desde la TUI. Pocket Disasm actualiza cada archivo de configuración MCP que registró previamente y reinicia el router cuando es necesario.
Los agentes no necesitan un servidor MCP dedicado para cada binario. Crean y enrutan sesiones a través del endpoint compartido:
idb_open(input_path="C:\\samples\\first.exe", session_id="first", wait=true)
idb_open(input_path="C:\\samples\\second.dll", session_id="second", wait=true)
decompile(addr="main", database="first")
survey_binary(database="second")
La selección también puede limitarse al cliente MCP actual:
idb_select(database="first")
decompile(addr="main")
Esto permite que un modelo gestione varios binarios o que varios agentes trabajen a través del mismo router sin compartir una base de datos seleccionada.
flowchart LR
A1["Coding agent A"] --> MCP["Pocket Disasm MCP<br/>127.0.0.1:13339/mcp"]
A2["Coding agent B"] --> MCP
A3["Coding agent N"] --> MCP
MCP --> S["Multi-session supervisor"]
S --> W1["IDALib worker<br/>binary A"]
S --> W2["IDALib worker<br/>binary B"]
S --> WN["IDALib worker<br/>binary N"]
Pocket Disasm añade las siguientes herramientas al catálogo MCP de IDA regular:
| Herramienta | Propósito |
|---|---|
idb_open | Crear una sesión aislada para un binario local |
idb_list | Listar sesiones, estados, procesos y selección actual |
idb_select | Seleccionar una sesión predeterminada para el cliente MCP actual |
idb_health | Leer el inicio del trabajador y el estado del proceso |
idb_wait | Esperar el análisis automático de IDA y el inicio de MCP |
idb_save | Guardar la base de datos actual de IDA |
idb_logs | Leer la salida reciente de un trabajador |
idb_close | Detener un trabajador y liberar sus recursos |
Las herramientas de análisis regulares como survey_binary, lookup_funcs, func_query, find_bytes y decompile aceptan un argumento opcional database. Si se omite, Pocket Disasm usa la sesión seleccionada por ese cliente MCP.
La TUI fusiona solo la entrada MCP de pocket-disasm en los archivos de configuración existentes; no reemplaza todo el archivo.
| Agente | Configuración global | Configuración de proyecto |
|---|---|---|
| Codex | ~/.codex/config.toml | Se usa el endpoint global |
| Claude Code | ~/.claude.json | .mcp.json |
| Cursor | ~/.cursor/mcp.json | .cursor/mcp.json |
| VS Code | Perfil de usuario mcp.json | .vscode/mcp.json |
| Windsurf | ~/.codeium/windsurf/mcp_config.json | Se usa el endpoint global |
La misma operación está disponible desde la CLI:
pocket integrate codex claude cursor --scope global
pocket integrate claude cursor vscode --scope project --project-dir .
La TUI cubre la instalación y control normales. La CLI permanece disponible para automatización y diagnóstico:
| Comando | Descripción |
|---|---|
pocket | Abrir el centro de control de terminal |
pocket doctor | Validar dependencias de Python, IDA, IDALib y MCP |
pocket start | Iniciar el router unificado en segundo plano |
pocket stop | Detener el router y sus trabajadores |
pocket restart | Reiniciar el router |
pocket status | Mostrar el estado del endpoint y del demonio |
pocket logs | Imprimir la salida de diagnóstico reciente |
pocket port <port> | Cambiar el endpoint en las configuraciones de agente registradas |
pocket config --max-workers <n> | Establecer el límite de trabajadores concurrentes |
pocket integrate <agents> | Configurar uno o más agentes de codificación |
Ejecute pocket <command> --help para todas las opciones.
Pocket Disasm almacena su estado de usuario bajo:
%LOCALAPPDATA%\PocketDisasm
Los archivos importantes incluyen: