Skip to main content
Glama
31Benzi

IDA Pro MCP Server

by 31Benzi

Servidor MCP de IDA Pro para Claude Code

Conecta Claude Code (CLI y extensiones de editor como VS Code, Cursor, Windsurf) con IDA Pro 9.0+ para ingeniería inversa asistida por IA. 87 herramientas que cubren prácticamente todo lo que IDA Pro puede hacer.


Arquitectura

Claude Code / Cursor / VS Code (MCP Client)
               │ (stdio)
               ▼
        ida-mcp Server
               │ (JSON-RPC over localhost:13337)
               ▼
   IDA Pro Plugin (ida_mcp_plugin.py)
               │ (IDAPython API on main thread)
               ▼
         IDA Pro 9.0+

Instalación y Configuración

1. Instalar el Plugin de IDA

Copia ida_plugin/ida_mcp_plugin.py en el directorio plugins de tu IDA Pro:

  • macOS: ~/idapro-9.0/plugins/ o /Applications/IDA Professional 9.0.app/Contents/MacOS/plugins/

  • Windows: %APPDATA%\Hex-Rays\IDA Pro\plugins\ o C:\Program Files\IDA Professional 9.0\plugins\

  • Linux: ~/.idapro/plugins/ o /opt/idapro-9.0/plugins/

Cuando abras cualquier binario en IDA Pro, el plugin inicia un servidor JSON-RPC en 127.0.0.1:13337.

2. Configurar Claude Code CLI

claude mcp add ida-pro -- uv run --directory "/Users/benzi/Documents/IDA MCP" ida-mcp

3. Configurar VS Code / Cursor / Windsurf

Añade a .mcp.json o a la configuración MCP de tu editor:

{
  "mcpServers": {
    "ida-pro": {
      "command": "uv",
      "args": ["run", "--directory", "/Users/benzi/Documents/IDA MCP", "ida-mcp"]
    }
  }
}

Variables de Entorno

  • IDA_MCP_HOST — Sobrescribe el host (por defecto: 127.0.0.1)

  • IDA_MCP_PORT — Sobrescribe el puerto (por defecto: 13337)


Herramientas Disponibles (87 en Total)

Análisis (4)

Herramienta

Descripción

decompile_function

Descompilación a pseudocódigo C de Hex-Rays

disassemble_function

Listado completo de ensamblador de una función

disassemble_range

Ensamblador entre dos direcciones

get_bytes

Leer bytes hexadecimales crudos de una dirección

Navegación y Descubrimiento (14)

Herramienta

Descripción

list_functions

Listar todas las funciones con filtro opcional

get_function_info

Metadatos detallados de una función

list_segments

Segmentos de memoria con permisos

get_xrefs_to

Referencias cruzadas HACIA una dirección

get_xrefs_from

Referencias cruzadas DESDE una dirección

list_strings

Cadenas definidas con filtro opcional

get_imports

Funciones importadas por módulo

get_exports

Funciones exportadas y puntos de entrada

list_structs

Estructuras, uniones, diseños de miembros

list_enums

Enumeraciones y valores

create_struct

Crear un nuevo tipo de estructura

get_function_callers

Funciones que llaman a un objetivo (con sitios de llamada)

get_function_callees

Funciones llamadas por un objetivo

make_string

Definir una cadena estilo C en una dirección

Introspección (14)

Herramienta

Descripción

get_flowchart

Grafo de flujo de control — bloques básicos con predecesores/sucesores

get_comment

Leer comentario en una dirección

get_all_comments

Leer todos los comentarios dentro de una función

get_function_comment

Leer comentario a nivel de función

set_function_comment

Establecer comentario a nivel de función

get_stack_frame

Diseño completo del marco de pila (locales, args, registros guardados)

set_operand_type

Cambiar visualización del operando (hexadecimal/decimal/binario/carácter)

set_local_variable_type

Reescribir tipo de una variable local en la descompilación

get_color

Obtener color de instrucción/función/segmento

set_color

Establecer color de instrucción/función/segmento (RGB)

get_function_hash

Hash de bytes de función (MD5/SHA1/SHA256)

get_exception_info

Detectar try/catch/throw en una función

get_microcode

Representación intermedia de Hex-Rays en cualquier nivel de madurez

Modificaciones (7)

Herramienta

Descripción

rename_function

Renombrar una función

rename_address

Renombrar una etiqueta, variable o dirección

set_comment

Establecer comentario normal o repetible

set_function_type

Establecer firma/prototipo de función C

set_type

Establecer tipo en una dirección

rename_local_variable

Renombrar variable local (Hex-Rays)

apply_callee_type

Aplicar tipo en un sitio de llamada

Búsqueda (2)

Herramienta

Descripción

search_text

Búsqueda de texto en el desensamblado

search_bytes

Búsqueda de patrón/firma de bytes

Depurador (17)

Herramienta

Descripción

start_debugger

Iniciar la depuración del binario

get_debugger_status

Verificar estado activo/suspendido del depurador

set_breakpoint

Establecer punto de interrupción por software

delete_breakpoint

Eliminar un punto de interrupción

list_breakpoints

Listar todos los puntos de interrupción

enable_breakpoint

Activar/desactivar punto de interrupción

step_into

Ejecutar paso a paso (entrar en la siguiente instrucción)

step_over

Ejecutar paso a paso (saltar la siguiente instrucción)

continue_execution

Continuar hasta el siguiente punto de interrupción

suspend_debugger

Pausar la ejecución

exit_debugger

Terminar el proceso

get_registers

Leer registros de la CPU

read_debug_memory

Leer memoria del proceso depurado (volcado hex con ASCII)

get_stack_trace

Traza de la pila de llamadas

list_debugger_threads

Listar todos los hilos del proceso

switch_thread

Cambiar hilo activo del depurador

add_watchpoint

Establecer punto de vigilancia por hardware (lectura/escritura/ejecución)

Avanzadas (14)

Herramienta

Descripción

patch_bytes

Parchear bytes en la base de datos de IDA

execute_idapython

Ejecutar código IDAPython arbitrario

load_type_library

Cargar biblioteca de información de tipo .til

list_type_libraries

Listar TILs cargados

make_code

Convertir bytes a código (instrucción)

make_data

Convertir bytes a datos tipados

undefine

Revertir a bytes sin definir

define_function

Crear función en un rango de direcciones

undefine_function

Eliminar definición de función

add_bookmark

Añadir marcador persistente

list_bookmarks

Listar todos los marcadores

delete_bookmark

Eliminar marcador

get_local_variables

Listar variables locales y argumentos

get_global_variables

Listar variables de datos globales nombradas

Base de Datos y Exportación (12)

Herramienta

Descripción

save_database

Guardar la base de datos de IDA

apply_flirt_signature

Aplicar firma FLIRT .sig para identificación de bibliotecas

list_flirt_signatures

Listar firmas FLIRT aplicadas

create_segment

Crear nuevo segmento de memoria

delete_segment

Eliminar definición de segmento

set_segment_permissions

Cambiar permisos rwx del segmento

create_array

Definir arreglos tipados

navigate_to

Mover el cursor de IDA a una dirección

produce_asm

Exportar listado de ensamblador limpio

produce_c

Exportar pseudocódigo C limpio

run_idc_script

Ejecutar código de script IDC

run_ida_action

Activar acción de UI de IDA registrada

list_ida_actions

Listar todas las acciones de IDA disponibles

Meta (3)

Herramienta

Descripción

get_binary_info

Ruta de archivo, arquitectura, bits, punto de entrada

get_analysis_status

Verificar finalización del análisis automático

ping

Verificar conectividad con IDA

-
license - not tested
-
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

  • Live SEO workflow tools for Claude Code, Codex, and AI agents.

  • Garmin data in Claude: 135 tools — activities, sleep, HRV, training, workouts. Free, open source.

  • Connect AI assistants to your GitHub-hosted Obsidian vault to seamlessly access, search, and analy…

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/31Benzi/IDA-PRO-MCP'

If you have feedback or need assistance with the MCP directory API, please join our Discord server