Apktool MCP Server

by zinja-coder
Verified

local-only server

The server can only run on the client’s local machine because it depends on local resources.

Integrations

  • Provides tools for Android APK reverse engineering, including decoding APKs, examining smali code, analyzing manifests, inspecting resources, building modified APKs, and signing APKs for installation.

  • Integration with Kali Linux for running the APKTool MCP server in a security-focused environment, specifically mentioning Claude Desktop for Debian-based Linux.

  • Features a demo video on YouTube showcasing the APKTool MCP server's capabilities for reverse engineering Android applications.

apktool-mcp-server (parte de la suite MCP de ingeniería inversa de Zin)

Imagen generada mediante herramientas de IA.


🤖 ¿Qué es apktool-mcp-server?

apktool-mcp-server es un servidor MCP para la herramienta Apk que se integra directamente con Model Context Protocol (MCP) para brindar soporte de ingeniería inversa en vivo con LLM como Claude .

Piense: "Descompilar → Revisión de código según el contexto → Recomendaciones de IA", todo en tiempo real.

¡Mira la demostración!

Otros servidores MCP para ingeniería inversa de Android

Herramientas MCP actuales

Las siguientes herramientas MCP están disponibles:

  • build_apk() — Construye un APK a partir de un proyecto APKTool decodificado.
  • list_workspace_projects() — Lista todos los directorios del proyecto APKTool en el espacio de trabajo.
  • get_manifest() — Obtiene el contenido de AndroidManifest.xml de un proyecto APK decodificado.
  • get_apktool_yml() — Obtiene información de apktool.yml de un proyecto APK decodificado.
  • list_smali_directories() — Enumera todos los directorios pequeños de un proyecto.
  • list_smali_files() — Enumera archivos pequeños en un directorio pequeño específico, filtrado opcionalmente por prefijo de paquete.
  • get_smali_file() — Obtiene el contenido de un archivo pequeño específico por nombre de clase.
  • modify_smali_file() — Modifica el contenido de un archivo pequeño específico.
  • list_resources() — Enumera los recursos de un proyecto, opcionalmente filtrados por tipo de recurso.
  • get_resource_file() — Obtener el contenido de un archivo de recursos específico.
  • modify_resource_file() — Modifica el contenido de un archivo de recursos específico.
  • search_in_file() — Busca un patrón en archivos con extensiones especificadas.
  • check_apktool_version() — Verifica la versión de APKTool instalada.
  • sign_apk() — Firma un archivo APK.
  • install_apk() — Instalar y APK en un dispositivo conectado mediante ADB. // para migrar al próximo servidor ADB MCP
  • extract_dex() — Extrae archivos DEX del APK original (si está disponible en el proyecto).
  • list_packages() — Enumera los paquetes instalados en un dispositivo Android conectado mediante ADB. // para migrar al próximo servidor ADB MCP
  • analyze_permissions() — Analiza los permisos declarados en AndroidManifest.xml.
  • clean_project() — Limpia un directorio de proyecto para prepararlo para la reconstrucción.
  • create_project() — Crea una nueva estructura de proyecto APKTool vacía.
  • delete_project() — Eliminar un directorio de proyecto de APKTool
  • compare_smali_files() — Compara dos archivos pequeños y muestra las diferencias.
  • get_available_devices() — Obtener la lista de dispositivos Android disponibles conectados a través de ADB // para migrarlos al próximo servidor ADB MCP
  • decode_apk() — Decodifica un archivo APK usando APKTool, extrayendo recursos y código pequeño.

🗒️ Ejemplos de indicaciones

🔍 Comprensión básica del código

  • “Enumere todos los directorios pequeños para el proyecto dvac”.
  • “Muéstrame todos los archivos pequeños bajo el prefijo de paquete com.vulnerable.component en el proyecto dvac”.
  • “Obtenga el código pequeño para la clase com.vulnerable.component.MainActivity”.
  • “Compare MainActivity.smali con su versión anterior y muestre las diferencias”.
  • “Buscar el uso de startActivity en archivos pequeños del proyecto dvac”.

🛡️ Detección de vulnerabilidades

  • “Analice los permisos declarados en el archivo dvac AndroidManifest.xml y marque los peligrosos”.
  • “Busca direcciones URL o IP codificadas en todos los archivos .xml y .smali del proyecto”.
  • “Encuentre todos los usos de PendingIntent.getActivity en archivos pequeños”.
  • “Verifique si hay actividades o receptores exportados en AndroidManifest.xml de dvac”.
  • “Enumere todos los archivos pequeños que acceden a android.permission.SEND_SMS o READ_CONTACTS”.

🛠️ Ayudantes de ingeniería inversa

  • “Decodifica este APK: dvac.apk y crea un proyecto llamado dvac”.
  • “Crea un nuevo proyecto APKTool llamado test-harness”.
  • “Limpie el proyecto dvac antes de reconstruirlo”.
  • “Extraer archivos DEX del proyecto dvac para análisis externo”.
  • “Modifique MainActivity.smali para insertar una línea de registro al comienzo de onCreate()”.

📦 Análisis estático

  • “Obtenga el AndroidManifest.xml completo del proyecto dvac”.
  • “Mostrar el contenido de apktool.yml para el proyecto dvac”.
  • “Enumere todos los archivos de recursos de tipo diseño”.
  • “Busca la palabra contraseña en todos los recursos y archivos pequeños”.
  • “Verifique qué permisos se utilizan y compárelos con los riesgos típicos del exceso de permisos”.

🤖 Modificación del código de IA

  • “Modifique el método onCreate() en MainActivity.smali para agregar un mensaje de aviso”.
  • “Reemplace todos los enlaces http:// con https:// en strings.xml”.
  • “Agregue el atributo android:exported=false a todas las actividades en AndroidManifest.xml”.
  • “Parchee el método validateLogin en LoginManager.smali para que siempre devuelva verdadero”.
  • “Agregue declaraciones de registro a cada método en MainActivity.smali”.

📄 Documentación y metadatos

  • “Enumere todos los proyectos APKTool decodificados en el espacio de trabajo”.
  • “Muéstrame la configuración de apktool.yml para revisar la versión, los metadatos del APK original y la configuración de compresión”.
  • Conectar todos los dispositivos Android disponibles mediante ADB. (Para migrar al servidor ADB MCP)
  • “Obtener metadatos sobre el proyecto dvac desde su apktool.yml”.
  • “Comprueba qué versión de APKTool está instalada actualmente en el servidor”.

🛠️ Primeros pasos

1. Descarga desde Lanzamientos: https://github.com/zinja-coder/apktool-mcp-server/releases

# 0. Download the apktool-mcp-server-<version>.zip https://github.com/zinja-coder/apktool-mcp-server/releases # 1. unzip apktool-mcp-server-<version>.zip ├apktool-mcp-server/ ├── apktool_mcp_server.py ├── requirements.txt ├── README.md ├── LICENSE ```bash # 2. Navigate to apktool-mcp-server directory cd apktool-mcp-server # 3. This project uses uv - https://github.com/astral-sh/uv instead of pip for dependency management. ## a. Install uv (if you dont have it yet) curl -LsSf https://astral.sh/uv/install.sh | sh ## b. OPTIONAL, if for any reasons, you get dependecy errors in apktool-mcp-server, Set up the environment uv venv source .venv/bin/activate # or .venv\Scripts\activate on Windows ## c. OPTIONAL Install dependencies uv pip install httpx fastmcp # The setup for apktool-mcp-server is done.

🤖 2. Configuración del escritorio de Claude

Asegúrese de que Claude Desktop se esté ejecutando con MCP habilitado.

Por ejemplo, he utilizado lo siguiente para Kali Linux: https://github.com/aaddrick/claude-desktop-debian

Configurar y agregar el servidor MCP al archivo LLM:

nano ~/.config/Claude/claude_desktop_config.json

Y el siguiente contenido:

{ "mcpServers": { "apktool-mcp-server": { "command": "/<path>/<to>/uv", "args": [ "--directory", "</PATH/TO/>apktool-mcp-server/", "run", "apktool_mcp_server.py" ] } } }

Luego, navegue por el código e interactúe a través de indicaciones de revisión de código en tiempo real utilizando la integración incorporada.

Para informar errores, problemas, sugerencias de funciones, problemas de rendimiento, preguntas generales o problemas de documentación.

  • Por favor, abra un problema con la plantilla correspondiente.
  • Probado en Claude Desktop Client. ¡Pronto se probará la compatibilidad con otras IA!

🙏 Créditos

Este proyecto es un servidor MCP para Apktool , una increíble herramienta de ingeniería inversa de código abierto para Android creada y mantenida por @iBotPeaches . Toda la lógica de decodificación de APK y procesamiento de recursos les pertenece. Solo la he ampliado para que sea compatible con mi servidor MCP con capacidades de IA.

📎 README original (Apktool)

El README.md original de Apktool se incluye aquí en este repositorio como referencia y crédito.

También un enorme agradecimiento a @aaddrick por desarrollar el escritorio Claude para Linux basado en Debian.

Y por último, gracias a @anthropics por desarrollar el Protocolo de Contexto Modelo y al equipo @FastMCP .

📄 Licencia

apktool-mcp-server y todos los proyectos relacionados heredan Apache 2.0

Descargo de responsabilidad

Las herramientas apktool-mcp-server y todas las herramientas relacionadas de este proyecto están destinadas exclusivamente a fines educativos, de investigación y de evaluación de la seguridad ética. Se proporcionan "tal cual", sin garantías, expresas ni implícitas. Los usuarios son los únicos responsables de garantizar que el uso de estas herramientas cumpla con todas las leyes, normativas y directrices éticas aplicables.

Al usar apktool-mcp-server , aceptas usarlas únicamente en entornos que estés autorizado a probar, como aplicaciones de tu propiedad o con permiso explícito para analizar. Queda estrictamente prohibido cualquier uso indebido de estas herramientas para ingeniería inversa no autorizada, infracción de derechos de propiedad intelectual o actividad maliciosa.

Los desarrolladores de apktool-mcp-server no se responsabilizan de ningún daño, pérdida de datos, consecuencias legales u otras consecuencias derivadas del uso o mal uso de estas herramientas. Los usuarios asumen plena responsabilidad por sus acciones y cualquier impacto derivado de su uso.

Úselo con responsabilidad. Respete la propiedad intelectual. Siga las prácticas de piratería ética.


Creado con ❤️ para las comunidades de ingeniería inversa e IA.

-
security - not tested
A
license - permissive license
-
quality - not tested

Un servidor MCP que se integra con Apktool para proporcionar soporte de ingeniería inversa en vivo para aplicaciones de Android que utilizan Claude y otros LLM a través del Protocolo de contexto de modelo.

  1. 🤖 What is apktool-mcp-server?
    1. Other MCP Servers For Android Reverse Engineering
      1. Current MCP Tools
      2. 🗒️ Sample Prompts
      3. 🛠️ Getting Started
      4. 🤖 2. Claude Desktop Setup
      5. To report bugs, issues, feature suggestion, Performance issue, general question, Documentation issue.
      6. 🙏 Credits
      7. 📄 License
      8. ⚖️ Legal Warning
    ID: jtugu4w3w9