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 MCPextract_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 MCPanalyze_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 APKToolcompare_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 MCPdecode_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
🤖 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:
Y el siguiente contenido:
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.
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
⚖️ Aviso legal
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.
This server cannot be installed
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.