Medí REA, el repo viral de ingeniería inversa: 207 herramientas, 850 KB de catálogo y lo que no vio en mi sitio

Foto de Marco Orta | 7 min de lectura
Terminal con la respuesta de tools/list de REA 6.5.0: 207 herramientas y 3,087,987 bytes; al lado, una tarjeta con 850 KB y unos 240 mil tokens
Tabla de Contenidos

    REA (Reverse Engineer Anything) es un servidor MCP y una CLI que le deja a un agente como Claude Code, Codex o Cursor analizar software sin su código fuente: binarios, apps de Electron, APK de Android, firmware o el JavaScript de un sitio. Lo instalé y medí lo que pesa su catálogo de herramientas: 207 herramientas y unos 850 KB de definiciones, alrededor de 240 mil tokens. Luego lo pasé por mi propio sitio para ver qué encuentra y qué no. Abajo van las cifras, cómo las saqué y qué debería revisar cualquier empresa que mande una app o un sitio a sus clientes.

    Qué es REA y por qué está en todas partes

    El repositorio es morluto/rea, con licencia MIT, y el 14 de octubre de 2026 pasaba de las 230 mil estrellas en GitHub. Se describe como «One MCP for reverse engineering across binaries, applications, and runtime behavior»: un solo MCP para hacer ingeniería inversa de binarios, aplicaciones y comportamiento en ejecución.

    Lo importante es entender qué trae y qué no:

    • No trae un descompilador nuevo. Para descompilar usa herramientas que existen desde hace años: Ghidra o IDA para código nativo (las que ya tengas instaladas), o Hopper, que su instalador puede poner y JADX para Android. Su aporte es ponerlas detrás de una sola interfaz que un agente puede llamar.
    • Sí trae inspectores propios para algunos objetivos. El análisis estático de JavaScript y Electron, por ejemplo, no necesita ningún motor nativo.
    • Su propio aviso legal es claro: está pensado para investigación de seguridad, análisis de malware, CTF, interoperabilidad, preservación de software y análisis de software «que te pertenezca o que estés autorizado a examinar». No ayuda a saltarse DRM, licencias o anti-cheat, ni a copiar software propietario.

    Cuánto pesa en tu agente: lo medí

    Un servidor MCP le anuncia a tu agente sus herramientas con una llamada tools/list. Para usarlas, el modelo tiene que leer el nombre, la descripción y los parámetros de cada una. Eso ocupa contexto, y el contexto cuesta tiempo y dinero.

    Instalé el paquete oficial (rea-agents 6.5.0, sin ejecutar sus scripts de instalación), arranqué el servidor con rea --mcp y le hice la misma pregunta que le haría un agente:

    QuéMedido
    Herramientas anunciadas207
    Respuesta completa de tools/list en el cable3,087,987 bytes (3.09 MB)
    Nombre + descripción + parámetros (lo que el modelo necesita)~850 KB
    En tokens (tokenizador o200k_base de OpenAI)~240 mil
    La herramienta más pesada (compare_web_captures, con su esquema de salida)184 KB

    Casi todo lo demás de esos 3.09 MB son los esquemas de salida (2.26 MB en el cable), que no hace falta mandarle al modelo para que elija una herramienta. El tokenizador de Claude no es público, así que la cifra en tokens es aproximada, y cambia según cómo se serialice el JSON: con espacios, como lo medí, son unos 850 KB y 240 mil tokens; en JSON compacto, unos 790 KB y 190 mil.

    Para comparar: en agosto medí lo que mandaba mi Claude Code, conectado a un modelo local, con todas mis herramientas: 121 herramientas y 210 KB, el 87 % del prompt. REA solo pesa unas cuatro veces eso.

    ¿Entonces no lo instalo?

    Depende de tu cliente. Con los modelos de Anthropic, Claude Code no manda todas las herramientas MCP de golpe: las busca cuando le hacen falta (su búsqueda de herramientas). Pero en mis pruebas, con Claude Code apuntando a otro backend esa búsqueda no se activa y el catálogo va completo en cada petición. Con un modelo local, en mis pruebas de agosto el catálogo multiplicó el tiempo de respuesta entre 3.8 y 29 veces en una tarea corta.

    La regla práctica: antes de instalar un MCP grande, mide qué le llega a tu modelo. Una herramienta de 207 funciones que vas a usar una vez al mes no debería viajar en cada mensaje.

    Se lo pasé a mi propio sitio

    En el reel pregunté si lo probaba con algo mío. Usé su análisis de bundles web contra la portada de ortamarco.me, conectado a Chrome por el protocolo de depuración (CDP). Un detalle práctico: rechaza localhost; pide 127.0.0.1 con el puerto explícito.

    Lo que vio:

    • Los 29 scripts de la portada (17 archivos y 12 dentro de la página), con 23,414 nodos de su árbol de sintaxis recorridos y ningún script que no pudiera parsear.
    • Dos llamadas al servidor: las server islands de Astro, que piden al servidor trozos de la página ya renderizados (con sus parámetros cifrados).
    • Que el sitio lo empaqueta Vite. Lo dedujo de una cadena de texto, con confianza media, y acertó: es Astro por dentro.

    Lo que se le escapó:

    • Las llamadas del chat y del boletín. Usan Astro Actions, y la ruta (/_actions/${nombre}) se arma con una plantilla en tiempo de ejecución. REA no la reconstruyó, y lo avisa en sus propias limitaciones: las rutas armadas con texto «pueden quedar desconocidas» y su lista de endpoints «no es un inventario completo».

    Lo que no hace: buscar secretos. Su análisis de bundles no tiene ningún detector de llaves o contraseñas. Que no reporte ninguna no significa que no las haya. Esa revisión la hice aparte, con un buscador de patrones (probado antes contra un archivo con llaves de prueba plantadas, que encontró todas): en la portada y sus 17 scripts no apareció ningún patrón de llave (lo que solo prueba que no hay ninguna de esas formas, no que el sitio esté auditado). Lo único con forma de llave que apareció son identificadores públicos por diseño, como la site key de Cloudflare Turnstile o el id de la analítica.

    Una prueba independiente publicada en HackerNoon llegó a algo parecido con una app de Electron real: acertó ventanas y canales IPC, pero no vio los dos archivos de preload de la app. Su conclusión vale para cualquier repo viral: las estrellas dicen que hay curiosidad, no que la herramienta sirva para tu caso.

    Qué debería revisar una empresa

    El cambio de fondo no es técnico: la ingeniería inversa existía. Lo nuevo es que ahora cualquiera con un agente puede pedirla en lenguaje natural. Si tu negocio entrega una app de escritorio, una app Android o un sitio con lógica en el navegador, asume que alguien puede leer todo lo que viaja al cliente:

    1. Ninguna llave, token o contraseña dentro de la app o del JavaScript. Si un secreto viaja al cliente, deja de ser secreto. Las llaves van en el servidor, detrás de tu propia API.
    2. Precios, descuentos, permisos y validaciones, en el servidor. Lo que el cliente calcula, el cliente lo puede cambiar.
    3. La ofuscación retrasa, no protege. Minificar o pasar R8 sobre una APK sube el costo de leerla, pero no lo vuelve imposible.
    4. Revisa tu propia app antes de que lo haga otro. Puede ser con REA, siempre sobre software tuyo o autorizado, o con un buscador de secretos en tu CI.

    Cómo repetir la medición

    Si quieres medir cualquier servidor MCP antes de conectarlo:

    1. Instálalo en un directorio aislado y sin scripts de instalación (npm install --ignore-scripts <paquete>).
    2. Arráncalo por stdio y mándale initialize, la notificación initialized y luego tools/list, paginando con nextCursor si lo trae. Ojo: arrancarlo ejecuta su código, así que hazlo en un entorno desechable.
    3. Suma el tamaño de name, description e inputSchema de cada herramienta: eso es lo que tu modelo necesita leer.
    4. Compáralo con lo que ya mandas hoy. Si no lo sabes, ese es el primer número que vale la pena medir.

    En la segunda parte le pasé REA al APK de mi propia app Android con R8: qué esconde la ofuscación y qué sigue legible.

    ¿Te sirvió? Compártelo

    ¿Te sirvió? Recibe la próxima por correo

    Una vez por semana: qué se rompe al actualizar, IA para desarrolladores y lo que estoy construyendo, con fuentes. Sin spam.

    Al suscribirte aceptas nuestro aviso de privacidad.

    Buscar

    Etiquetas

    IA Migración PHP Laravel JavaScript Tutorial Seguridad Desarrollo Web Upgrade Buenas Prácticas Agentes MCP OpenAI SEO Backend