Skip to main content
Glama
android-security-mcp

android-security-mcp

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

Sigue el patrón modular registerXxxTools(server) con esquemas Zod centralizados y exactOptionalPropertyTypes: true.


Related MCP server: frida-mcp

Requisitos previos

  1. Node.js ≥ 18.17 (usa fetch, FormData y Blob nativos).

  2. platform-tools (adb) instalado y en el PATH, o ruta en ADB_PATH.

  3. Dispositivo con Depuración USB activada y autorizada (adb devices debe verlo).

  4. API key de VirusTotal (gratuita): https://www.virustotal.com/gui/my-apikey

  5. 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 consola

Instalación

npm install
cp .env.example .env   # y rellena tus claves
npm run build

Para desarrollo con recarga: npm run dev.


Configuración (.env)

Variable

Descripción

Default

ADB_PATH

Ruta al ejecutable de adb

adb

ADB_SERIAL

Serial del dispositivo (si hay varios)

(vacío)

REQUIRE_CONFIRM

Exige confirm=true en acciones destructivas

true

ALLOWED_PACKAGES_PREFIX

Prefijos de paquete permitidos (CSV). Vacío = todos

(vacío)

WORK_DIR

Carpeta donde se extraen los APK

./work

VT_API_KEY

API key de VirusTotal

(vacío)

MOBSF_URL

URL de la instancia MobSF

http://localhost:8000

MOBSF_API_KEY

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

adb_list_devices

lectura

Lista dispositivos conectados

adb_device_info

lectura

Modelo, Android, SDK, parche de seguridad

adb_list_packages

lectura

Lista apps (por defecto solo de usuario)

adb_package_permissions

lectura

Permisos solicitados/concedidos y peligrosos

apk_pull

lectura

Extrae el APK base y calcula su SHA-256

apk_hash

lectura

SHA-256 de un APK ya en disco

vt_file_report

lectura

Reputación en VirusTotal por hash

vt_upload_file

escritura

Sube un APK a VirusTotal si el hash no existe

mobsf_upload

escritura

Sube un APK a MobSF

mobsf_scan

escritura

Lanza análisis estático

mobsf_scorecard

lectura

Resumen de seguridad del análisis

mobsf_report

lectura

Informe JSON completo

mobsf_delete_scan

destructiva

Borra un análisis de MobSF

audit_package

lectura

Flujo completo: extrae + permisos + VT + MobSF + recomendación

adb_uninstall_package

destructiva

Desinstala una app (requiere confirm=true)


Flujo típico de uso

  1. adb_list_devices → confirma que el dispositivo está conectado.

  2. adb_list_packages → ve qué apps de usuario hay instaladas.

  3. audit_package { packageName: "com.ejemplo.sospechosa" } → informe consolidado.

  4. 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_PREFIX limita el radio de acción a paquetes concretos.

  • REQUIRE_CONFIRM=true evita 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 mobsfscan para análisis de código fuente en tus propios proyectos.

Licencia

MIT

Available Tools

15 tools
adb_device_infoInformación del dispositivoA
Read-only

Devuelve modelo, fabricante, versión de Android, SDK y parche de seguridad.

Inputs: no named parameters.

adb_list_devicesListar dispositivosA
Read-only

Lista los dispositivos Android conectados por ADB con su estado y modelo.

Inputs: no named parameters.

adb_list_packagesListar apps instaladasB
Read-only

Lista los paquetes instalados. Por defecto solo apps de usuario (no del sistema).

Inputs: thirdPartyOnly.

adb_package_permissionsPermisos de una appA
Read-only

Analiza los permisos solicitados y concedidos de un paquete y resalta los peligrosos.

Inputs: packageName (required).

adb_uninstall_packageDesinstalar appA
Destructive

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 localA
Read-only

Calcula el SHA-256 de un archivo APK ya presente en disco (sin volver a extraerlo).

Inputs: filePath (required).

apk_pullExtraer APKA
Read-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)A
Read-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álisisA
Destructive

Elimina un análisis del servidor MobSF para liberar espacio.

Inputs: hash (required).

mobsf_reportMobSF: informe JSON completoA
Read-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 seguridadB
Read-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 hashA
Read-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

    A3.9/5.0

    Scored across 15 tools

    Disambiguation5/5

    Each tool has a distinct purpose: ADB device management, APK extraction/hashing, VirusTotal queries, MobSF operations, and a comprehensive audit. No overlapping functionality.

    Naming Consistency4/5

    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.

    Tool Count5/5

    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.

    Completeness4/5

    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

    ActivityInactive
    ResponsivenessOutdated data

    Related MCP Connectors

    Related MCP Servers

    • F
      license
      Not graded
      quality
      D
      maintenance
      Provides 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
      -
    • F
      license
      Not graded
      quality
      D
      maintenance
      An 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
      -
    • A
      license
      A
      quality
      C
      maintenance
      MCP server for Android APK triage, providing tools to parse APK headers, list DEX classes, and decode AndroidManifest.xml using apktool or androguard backends.
      5
      1
      MIT
    • A
      license
      A
      quality
      D
      maintenance
      An 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.
      12
      18 npm
      8
      MIT