Jadx MCP Plugin

Un complemento Java que expone la API del descompilador Jadx a través de HTTP para la interacción con clientes MCP.

Documentación

⚙️ Jadx MCP Plugin — Acceso al Decompilador para Claude vía MCP

Este proyecto proporciona un plugin de Jadx escrito en Java, que expone la API de Jadx a través de HTTP — permitiendo la interacción en vivo mediante clientes MCP como Claude a través del Model Context Protocol (MCP). Un adaptador ligero de FastMCP en Python actúa como puente entre Claude y el plugin. Esto permite la navegación inteligente y la automatización de flujos de trabajo de ingeniería inversa, ideal para el análisis de seguridad de aplicaciones Android asistido por IA.


🧰 Instrucciones de Configuración

# Clone this repository
git clone https://github.com/mobilehackinglab/jadx-mcp-plugin.git
cd jadx-mcp-plugin

# Create and activate a virtual environment
python3 -m venv venv

# Activate:
source venv/bin/activate      # Linux/Mac
.\venv\Scripts\activate       # Windows

Instalar dependencias de Python

pip install -r requirements.txt 

🧠 Configuración de la Integración con el Cliente MCP de Claude

Para usar este adaptador en Claude Desktop, ve a File -> Settings -> Developer -> Edit Config -> claude_desktop_config.json y añade un servidor MCP que apunte al ejecutable de Python en el venv (para evitar problemas de dependencias) y a la ruta completa del adaptador siguiendo los siguientes ejemplos:

Windows:

{
  "mcpServers": {
    "Jadx MCP Server": {
      "command": "C:\\Workset\\jadx-mcp-plugin\\venv\\Scripts\\python.exe",
      "args": ["C:\\Workset\\jadx-mcp-plugin\\fastmcp_adapter.py"]
    }
  }
}

MacOS / Linux:

{
  "mcpServers": {
    "Jadx MCP Server": {
      "command": "/Users/yourname/jadx-mcp-plugin/venv/bin/python",
      "args": ["/Users/yourname/jadx-mcp-plugin/fastmcp_adapter.py"]
    }
  }
}

Asegúrate de reiniciar (Salir) Claude después de editar la configuración. Después del reinicio debería verse así:

✅ Flujo de Uso

  1. Abre Jadx con el último JAR del plugin desde los lanzamientos colocado en su carpeta plugins/ o cárgalo mediante Plugins -> install plugin.

  2. Carga un archivo APK o DEX

  3. (Opcional) Puedes especificar la dirección de la interfaz HTTP iniciando Jadx con:

    jadx-gui -Pjadx-mcp.http-interface=http://localhost:8085
    

    Esto es útil si deseas cambiar el host/puerto predeterminado (http://localhost:8085).

    Nota: Si cambias la dirección de la interfaz aquí, asegúrate de actualizar también la URL correspondiente en fastmcp_adapter.py para que coincida.

  4. Claude detectará y activará las herramientas del Servidor MCP de Jadx.

  5. Ahora puedes listar clases, obtener código fuente, inspeccionar métodos/campos y extraer código en vivo.


🧪 Herramientas Proporcionadas

HerramientaDescripción
list_all_classesObtener todos los nombres de clases descompiladas
search_class_by_nameEncontrar clases que coincidan con una cadena
get_class_sourceObtener el código fuente completo de una clase dada
search_method_by_nameEncontrar métodos que coincidan con una cadena
get_methods_of_classListar todos los nombres de métodos en una clase
get_fields_of_classListar todos los nombres de campos en una clase
get_method_codeExtraer código descompilado para un método

🛠 Desarrollo

☕ Plugin Java

El plugin de Java se encuentra en:

plugin/src/main/java/com/mobilehackinglab/jadxplugin/McpPlugin.java

Utiliza la API de JadxPlugin (jadx.api.*) para:

  • Cargar clases y métodos descompilados
  • Servir datos estructurados mediante un servidor HTTP integrado
  • Responder a los endpoints /invoke y /tools

🚀 Instalación Automatizada con Tareas de Gradle

Puedes usar la siguiente tarea de Gradle para compilar e instalar el plugin en un solo paso:

./gradlew installPlugin

Esto utiliza la CLI de jadx plugins. Asegúrate de que Jadx esté instalado y disponible en tu PATH.

Para otras tareas relacionadas con el plugin (desinstalar, habilitar/deshabilitar), consulta las definiciones de tareas en plugin/build.gradle.

🔧 Instalación Manual

Para compilar el plugin:

./gradlew build
# Output: plugin/build/libs/jadx-mcp-plugin-<version>.jar

Instala el JAR del plugin usando la CLI de jadx plugins:

jadx plugins --install-jar path/to/jadx-mcp-plugin-<version>.jar

Alternativamente, coloca el archivo .jar compilado en tu carpeta plugins/ de Jadx, normalmente ubicada en: ~/.jadx/plugins/

Si colocas el JAR manualmente, también necesitarás habilitar el plugin a través de la interfaz gráfica de Jadx o ejecutando:

jadx plugins --enable jadx-mcp

Adaptador Python FastMCP

El archivo del adaptador es:

fastmcp_adapter.py

Traduce las llamadas a herramientas MCP de Claude en POSTs HTTP al servidor del plugin de Jadx en ejecución. Asegúrate de que Jadx esté abierto antes de iniciar Claude.


🤝 Contribuciones

¡Se aceptan PRs, solicitudes de funciones y extensiones de herramientas!
Este proyecto es mantenido por Mobile Hacking Lab.


🧩 Créditos