android-security-mcp
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@android-security-mcp analyze com.example.app for vulnerabilities and malware"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
android-security-mcp
Servidor MCP (Model Context Protocol) para auditoría de seguridad de apps Android, pensado como herramienta de aprendizaje de hacking ético y análisis de aplicaciones. Combina tres fuentes:
ADB → inventario de apps, permisos, extracción de APK y desinstalación.
VirusTotal → reputación de malware por hash contra 70+ motores antivirus.
MobSF → análisis estático de vulnerabilidades (OWASP Mobile Top 10).
⚠️ Importante (alcance honesto): esto es un auditor, no un antivirus en tiempo real. Android aísla cada app en su sandbox, así que ninguna herramienta aquí "limpia" el dispositivo sola. El flujo es: extraer → analizar → recomendar. Las acciones destructivas (desinstalar) siempre pasan por confirmación humana. Úsalo solo sobre dispositivos y apps que controles o tengas autorización para auditar.
Arquitectura
android-security-mcp/
├── src/
│ ├── index.ts # entrada, servidor MCP + stdio
│ ├── config.ts # carga de .env y guard de paquetes/confirmación
│ ├── schemas/
│ │ └── index.ts # esquemas Zod centralizados (raw shapes)
│ ├── lib/
│ │ ├── exec.ts # ejecución de comandos sin shell (anti-inyección)
│ │ ├── adb.ts # wrapper de ADB
│ │ ├── hash.ts # SHA-256 por streaming
│ │ ├── virustotal.ts # cliente API VirusTotal v3
│ │ ├── mobsf.ts # cliente REST de MobSF
│ │ └── result.ts # helpers de respuesta MCP
│ └── tools/
│ ├── index.ts # registerAllTools(server)
│ ├── deviceTools.ts # inventario y permisos (lectura)
│ ├── extractTools.ts # extracción de APK y hashing
│ ├── virustotalTools.ts # reputación de malware
│ ├── mobsfTools.ts # análisis de vulnerabilidades
│ ├── auditTools.ts # flujo de auditoría consolidado
│ └── actionTools.ts # acciones destructivas (con guard)
├── .env.example
├── tsconfig.json
└── package.jsonSigue el patrón modular registerXxxTools(server) con esquemas Zod centralizados y exactOptionalPropertyTypes: true.
Related MCP server: frida-mcp
Requisitos previos
Node.js ≥ 18.17 (usa
fetch,FormDatayBlobnativos).platform-tools (adb) instalado y en el PATH, o ruta en
ADB_PATH.Dispositivo con Depuración USB activada y autorizada (
adb devicesdebe verlo).API key de VirusTotal (gratuita): https://www.virustotal.com/gui/my-apikey
MobSF corriendo en local con Docker:
docker pull opensecurity/mobile-security-framework-mobsf:latest
docker run -it --rm -p 8000:8000 opensecurity/mobile-security-framework-mobsf:latest
# usuario/clave por defecto: mobsf/mobsf — la API key aparece en la consolaInstalación
npm install
cp .env.example .env # y rellena tus claves
npm run buildPara desarrollo con recarga: npm run dev.
Configuración (.env)
Variable | Descripción | Default |
| Ruta al ejecutable de adb |
|
| Serial del dispositivo (si hay varios) | (vacío) |
| Exige |
|
| Prefijos de paquete permitidos (CSV). Vacío = todos | (vacío) |
| Carpeta donde se extraen los APK |
|
| API key de VirusTotal | (vacío) |
| URL de la instancia MobSF |
|
| API key de MobSF | (vacío) |
Registro en Claude Code
En tu configuración de MCP (Windows), apunta al build:
{
"mcpServers": {
"android-security": {
"command": "node",
"args": ["C:\\Users\\mstiv\\proyectos\\android-security-mcp\\dist\\index.js"],
"env": {
"ADB_PATH": "C:\\Users\\mstiv\\AppData\\Local\\Android\\Sdk\\platform-tools\\adb.exe",
"VT_API_KEY": "tu_api_key",
"MOBSF_API_KEY": "tu_api_key",
"REQUIRE_CONFIRM": "true"
}
}
}
}Herramientas disponibles
Herramienta | Tipo | Qué hace |
| lectura | Lista dispositivos conectados |
| lectura | Modelo, Android, SDK, parche de seguridad |
| lectura | Lista apps (por defecto solo de usuario) |
| lectura | Permisos solicitados/concedidos y peligrosos |
| lectura | Extrae el APK base y calcula su SHA-256 |
| lectura | SHA-256 de un APK ya en disco |
| lectura | Reputación en VirusTotal por hash |
| escritura | Sube un APK a VirusTotal si el hash no existe |
| escritura | Sube un APK a MobSF |
| escritura | Lanza análisis estático |
| lectura | Resumen de seguridad del análisis |
| lectura | Informe JSON completo |
| destructiva | Borra un análisis de MobSF |
| lectura | Flujo completo: extrae + permisos + VT + MobSF + recomendación |
| destructiva | Desinstala una app (requiere |
Flujo típico de uso
adb_list_devices→ confirma que el dispositivo está conectado.adb_list_packages→ ve qué apps de usuario hay instaladas.audit_package { packageName: "com.ejemplo.sospechosa" }→ informe consolidado.Si el informe recomienda actuar:
adb_uninstall_package { packageName, confirm: true }.
Notas de seguridad
La ejecución de comandos usa
execFile(sin shell) para evitar inyección.ALLOWED_PACKAGES_PREFIXlimita el radio de acción a paquetes concretos.REQUIRE_CONFIRM=trueevita que el agente desinstale apps por error o por un prompt injection.Términos de VirusTotal: la API pública no puede usarse como sustituto comercial de un antivirus. Esto es para auditoría/aprendizaje, no para distribuir como producto antivirus.
Próximos pasos sugeridos
Persistir informes de auditoría en disco/JSON para comparar versiones de una misma app.
Añadir reglas YARA propias sobre el APK extraído.
Integrar
mobsfscanpara análisis de código fuente en tus propios proyectos.
Licencia
MIT
Available Tools
15 toolsadb_device_infoInformación del dispositivoARead-only
Devuelve modelo, fabricante, versión de Android, SDK y parche de seguridad.
Inputs: no named parameters.
adb_list_devicesListar dispositivosARead-only
Lista los dispositivos Android conectados por ADB con su estado y modelo.
Inputs: no named parameters.
adb_list_packagesListar apps instaladasBRead-only
Lista los paquetes instalados. Por defecto solo apps de usuario (no del sistema).
Inputs: thirdPartyOnly.
adb_package_permissionsPermisos de una appARead-only
Analiza los permisos solicitados y concedidos de un paquete y resalta los peligrosos.
Inputs: packageName (required).
adb_uninstall_packageDesinstalar appADestructive
Desinstala una app de usuario. Acción destructiva: si REQUIRE_CONFIRM está activo, exige confirm=true.
Inputs: packageName (required), confirm.
apk_hashHash de un APK localARead-only
Calcula el SHA-256 de un archivo APK ya presente en disco (sin volver a extraerlo).
Inputs: filePath (required).
apk_pullExtraer APKARead-only
Extrae el APK base de un paquete instalado al directorio de trabajo local y calcula su SHA-256.
Inputs: packageName (required).
audit_packageAuditar app (flujo completo)ARead-only
Extrae el APK de un paquete, analiza permisos, consulta VirusTotal y MobSF, y devuelve un informe consolidado con recomendación. No desinstala nada.
Inputs: packageName (required), useMobsf, useVirusTotal.
mobsf_delete_scanMobSF: borrar análisisADestructive
Elimina un análisis del servidor MobSF para liberar espacio.
Inputs: hash (required).
mobsf_reportMobSF: informe JSON completoARead-only
Descarga el informe JSON completo del análisis. Puede ser muy extenso.
Inputs: hash (required).
mobsf_scanMobSF: ejecutar análisis estáticoA
Lanza el análisis estático de un APK ya subido (identificado por su hash MobSF).
Inputs: hash (required).
mobsf_scorecardMobSF: scorecard de seguridadBRead-only
Devuelve el resumen de seguridad (score, hallazgos high/warning/info, trackers) de un análisis.
Inputs: hash (required).
mobsf_uploadMobSF: subir APKA
Sube un APK local a la instancia de MobSF y devuelve el hash de la subida.
Inputs: filePath (required).
vt_file_reportVirusTotal: informe por hashARead-only
Consulta la reputación de un archivo por su SHA-256 en VirusTotal (70+ motores antivirus).
Inputs: sha256 (required).
vt_upload_fileVirusTotal: subir archivoA
Sube un archivo a VirusTotal para análisis cuando su hash aún no está indexado. Maneja archivos grandes automáticamente.
Inputs: filePath (required).
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 15 tools
Each tool has a distinct purpose: ADB device management, APK extraction/hashing, VirusTotal queries, MobSF operations, and a comprehensive audit. No overlapping functionality.
Uses consistent snake_case with service prefixes (adb_, apk_, vt_, mobsf_, audit_). While not strictly verb_noun, naming is predictable and clearly indicates tool function.
15 tools is appropriate for an Android security analysis server, covering device info, package management, permission analysis, VirusTotal, MobSF, and an aggregated audit, without being excessive.
Covers all major workflows: extraction, hashing, reputation checks, static analysis (MobSF), and audit. Minor gaps like history or comparison tools, but core functionality is complete.
Maintenance
Related MCP Connectors
MCP server for static security analysis of Android source code
Remote MCP for Android CLI agent build gate, structured receipts, audit logs, and reviewer-ready evi
MCP server: static security scanner for MCP servers, agent skills & plugins. 17 attack patterns.
MCP server for Appcircle mobile CI/CD platform.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceProvides a one-stop automated solution for Android APK security analysis by integrating tools like JEB, JADX, APKTOOL, FlowDroid, and MobSF into unified MCP standard API interfaces.11-
- FlicenseNot gradedqualityDmaintenanceAn MCP server that enables AI models to perform Android dynamic analysis using Frida, including spawning and attaching to applications, listing apps, and injecting scripts.123-
- AlicenseAqualityCmaintenanceMCP server for Android APK triage, providing tools to parse APK headers, list DEX classes, and decode AndroidManifest.xml using apktool or androguard backends.51MIT
- AlicenseAqualityDmaintenanceAn MCP server that enables AI assistants to analyze Android APK and iOS IPA files for security issues through natural language conversation, including permission auditing, secret detection, and SDK enumeration.1218 npm8MIT