Skip to main content
Glama

Apktool MCP Server

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

⚡ Servidor MCP totalmente automatizado creado sobre apktool para analizar APK de Android usando LLM como Claude: descubre vulnerabilidades, analiza manifiestos y realiza ingeniería inversa sin esfuerzo.

Colaboradores de GitHub apktool-mcp-serverGitHub todos los lanzamientosLanzamiento de GitHub (último de SemVer)Último lanzamientoPython 3.10+

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!

https://github.com/user-attachments/assets/d50251b8-6b1c-4341-b18e-ae54eb24a847

  • Resolviendo los CTF

https://github.com/user-attachments/assets/c783a604-a636-4e70-9fa8-37e3d219b20b

Otros proyectos en Zin MCP Suite

Herramientas MCP actuales

Las siguientes herramientas MCP están disponibles:

  • build_apk() — Construye un APK a partir de un proyecto APKTool decodificado.
  • 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.
  • clean_project() — Limpia un directorio de proyecto para prepararlo para la reconstrucción.
  • 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 el 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=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 # 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. Ejecución en LLM local con Ollama y el cliente Zin MCP (recomendado)

⚡ Cliente MCP liviano, rápido, simple y basado en CLI para servidores MCP STDIO, para llenar el vacío y proporcionar un puente entre sus LLM locales que ejecutan Ollama y servidores MCP.

Compruébelo ahora: https://github.com/zinja-coder/zin-mcp-client

Demo: Próximamente...

🤖 3. 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
  • Ventanas: %APPDATA%\Claude\claude_desktop_config.json
  • macOS: ~/Library/Application Support/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" ] } } }

Reemplazar:

  • path/to/uv con la ruta real a su ejecutable uv
  • path/to/apktool-mcp-server con la ruta absoluta a donde clonó este repositorio

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 .

Y todos los mantenedores y colaboradores de proyectos de código abierto que proporcionan bibliotecas y dependencias para hacer posible proyectos como este.

📄 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.


🙌 Contribuye o apoya

Contribuyendo

  • ¿Te resultó útil? Dale un ⭐️
  • ¿Tienes ideas? Abre un problema o envía una solicitud de relaciones públicas.
  • ¿Construiste algo encima? Envíame un mensaje o mencióname. ¡Lo añadiré al README!

Insignia de evaluación auditada y recibida

Gracias a Mseep.net por auditar y proporcionar la insignia de evaluación.

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

Related MCP Servers

  • -
    security
    A
    license
    -
    quality
    This tool creates a Model Context Protocol (MCP) server that acts as a proxy for any API that has an OpenAPI v3.1 specification. This allows you to use Claude Desktop to easily interact with both local and remote server APIs.
    Last updated -
    195
    641
    JavaScript
    MIT License
    • Apple
    • Linux
  • -
    security
    A
    license
    -
    quality
    A Python-based MCP server that allows Claude and other LLMs to execute arbitrary Python code directly through your desktop Claude app, enabling data scientists to connect LLMs to APIs and executable code.
    Last updated -
    23
    MIT License
    • Apple
    • Linux
  • -
    security
    A
    license
    -
    quality
    Claude MCP server that enables secure access to browse and read Android project files, validating authentic projects by checking for gradle configuration files.
    Last updated -
    Python
    MIT License
  • A
    security
    A
    license
    A
    quality
    A Model Context Protocol (MCP) server that enables AI assistants to control and interact with Android devices, allowing for device management, app debugging, system analysis, and UI automation through natural language commands.
    Last updated -
    29
    143
    Python
    Apache 2.0
    • Linux
    • Apple

View all related MCP servers

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/zinja-coder/apktool-mcp-server'

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