Android Security Analyzer
Android Security Analyzer
Servidor MCP para análisis de seguridad estático del código fuente de aplicaciones Android. Se ejecuta en Cloudflare Workers como un servidor MCP remoto sobre HTTP Streamable.
Qué hace
Analiza los archivos fuente del proyecto Android — sin compilar el proyecto — y devuelve un informe de seguridad estructurado. El análisis cubre:
Análisis de manifiesto — componentes exportados, permisos peligrosos, tráfico en texto claro, banderas de depuración, configuración de copia de seguridad, versiones de SDK
Configuración de Gradle/compilación — configuraciones incorrectas de compilación de release, SDKs desactualizados, dependencias sospechosas, secretos codificados
Código fuente (Java/Kotlin) — WebView inseguro, bypass de SSL/TLS, criptografía débil, patrones de inyección SQL, ejecución de procesos, almacenamiento de archivos inseguro, problemas de PendingIntent
Configuración XML — debilidades en la configuración de seguridad de red, rutas de proveedor de archivos demasiado amplias
Escaneo de secretos — claves de API, tokens, contraseñas, claves privadas, credenciales de nube, cadenas de alta entropía
Todo el análisis se basa en expresiones regulares/patrones y se ejecuta de forma nativa en el runtime de Workers sin necesidad de herramientas externas, Java o el SDK de Android.
Related MCP server: APK Security Guard MCP Suite
Arquitectura
POST /mcp ──► McpServer (JSON-RPC 2.0) ──► Tool Router
│
┌───────────────────────────────┘
▼
Orchestrator
│
┌─────────┼─────────┬─────────────┬──────────────┐
▼ ▼ ▼ ▼ ▼
Manifest Gradle Source Code XML Config Secret
Analyzer Analyzer Analyzer Analyzer Scanner
│ │ │ │ │
└─────────┴─────────┴─────────────┴──────────────┘
│
▼
Scoring + Deduplication ──► AnalysisReportDecisiones clave de diseño:
Sin estado — sin sesiones, sin Durable Objects
Implementación mínima de MCP JSON-RPC 2.0 (sin dependencias pesadas de SDK)
Motor de reglas basado en datos con registro de reglas extensible
Analizadores independientes con tipo de hallazgo unificado
Análisis XML ligero mediante
fast-xml-parserValidación de entrada mediante
zodTamaño del paquete: ~66KB comprimido
Herramientas MCP
Tool | Descripción |
| Análisis de seguridad completo de los archivos del proyecto |
| Lista todas las reglas de seguridad implementadas |
| Explicación detallada de una regla específica |
| Estado del servidor y estadísticas del motor de reglas |
Instalación
Servidor alojado (recomendado para clientes Cline / MCP): no se necesita instalación local. El servidor se ejecuta en:
https://android-security-analyzer.ako-labs.workers.dev/mcp
Añade esta URL a la configuración de tu cliente MCP (consulta Conexión desde un cliente MCP a continuación).
Desarrollo local:
npm installDesarrollo
npm run devEsto inicia un servidor de desarrollo local de Wrangler. El endpoint MCP está disponible en http://localhost:8787/mcp.
Despliegue
npm run deployDespliega en Cloudflare Workers. Requiere autenticación de wrangler (npx wrangler login).
Pruebas
npm test # Run all tests
npm run test:watch # Watch mode
npm run typecheck # TypeScript type checkingPruebas locales de MCP
Inicializar la conexión
Unix:
curl -X POST http://localhost:8787/mcp \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-03-26","capabilities":{},"clientInfo":{"name":"test","version":"1.0"}}}'Windows (PowerShell):
(Invoke-WebRequest -Method Post -Uri "http://localhost:8787/mcp" -ContentType "application/json" -Body '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-03-26","capabilities":{},"clientInfo":{"name":"test","version":"1.0"}}}' -UseBasicParsing).ContentListar herramientas disponibles
Unix:
curl -X POST http://localhost:8787/mcp \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":2,"method":"tools/list"}'Windows (PowerShell): la respuesta viene en result.tools; para ver la lista como JSON, use la respuesta sin procesar:
(Invoke-WebRequest -Method Post -Uri "http://localhost:8787/mcp" -ContentType "application/json" -Body '{"jsonrpc":"2.0","id":2,"method":"tools/list"}' -UseBasicParsing).ContentO a través del objeto: (Invoke-RestMethod ...).result.tools | ConvertTo-Json -Depth 5
Comprobar estado
Unix:
curl -X POST http://localhost:8787/mcp \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":3,"method":"tools/call","params":{"name":"health","arguments":{}}}'Windows (PowerShell):
(Invoke-WebRequest -Method Post -Uri "http://localhost:8787/mcp" -ContentType "application/json" -Body '{"jsonrpc":"2.0","id":3,"method":"tools/call","params":{"name":"health","arguments":{}}}' -UseBasicParsing).ContentEjecutar análisis (ejemplo mínimo)
Unix:
curl -X POST http://localhost:8787/mcp \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 4,
"method": "tools/call",
"params": {
"name": "analyze_android_project",
"arguments": {
"projectName": "TestApp",
"files": [
{
"path": "app/src/main/AndroidManifest.xml",
"content": "<manifest><application android:debuggable=\"true\" android:allowBackup=\"true\"></application></manifest>"
}
]
}
}
}'Windows (PowerShell):
$body = @{
jsonrpc = "2.0"
id = 4
method = "tools/call"
params = @{
name = "analyze_android_project"
arguments = @{
projectName = "TestApp"
files = @(
@{
path = "app/src/main/AndroidManifest.xml"
content = "<manifest><application android:debuggable=`"true`" android:allowBackup=`"true`"></application></manifest>"
}
)
}
}
} | ConvertTo-Json -Depth 10
(Invoke-WebRequest -Method Post -Uri "http://localhost:8787/mcp" -ContentType "application/json" -Body $body -UseBasicParsing).ContentConexión desde un cliente MCP
Añade a la configuración de tu cliente MCP:
{
"mcpServers": {
"android-security-analyzer": {
"url": "http://localhost:8787/mcp"
}
}
}Para producción (alojado):
{
"mcpServers": {
"android-security-analyzer": {
"url": "https://android-security-analyzer.ako-labs.workers.dev/mcp"
}
}
}Reglas de seguridad
El analizador implementa 53 reglas de seguridad en 5 categorías:
Categoría | Prefijo | Reglas | Ejemplos |
Manifiesto | MAN-* | 17 | depurable, allowBackup, componentes exportados, permisos |
Gradle | GRD-* | 9 | configuración de release, versiones de SDK, dependencias, secretos |
Código | SRC-* | 17 | WebView, SSL/TLS, criptografía, inyección, almacenamiento de archivos |
Config XML | XML-* | 4 | configuración de seguridad de red, rutas de proveedor de archivos |
Secreto | SEC-* | 7 | claves de API, tokens, contraseñas, credenciales de nube |
Cada hallazgo incluye:
ID de regla estable
Severidad (crítica/alta/media/baja/informativa) y confianza (alta/media/baja)
Ruta de archivo y número de línea (cuando se puede determinar)
Fragmento de evidencia
Mapeos de CWE y OWASP Mobile Top 10
Recomendación accionable
Puntuación
La puntuación de riesgo (0-100) se calcula a partir de las severidades de los hallazgos:
Crítica: 9 puntos
Alta: 6 puntos
Media: 3 puntos
Baja: 1 punto
Informativa: 0 puntos
La suma bruta se normaliza contra un máximo esperado de 50 puntos.
Limitaciones
No es un reemplazo de SAST — heurísticas basadas en patrones/expresiones regulares, no análisis completo de AST/flujo de datos
No requiere compilación — analiza el código fuente sin procesar, por lo que las transformaciones en tiempo de compilación no son visibles
Posibles falsos positivos — especialmente para el escaneo de secretos y algunos patrones de código
Restricciones de Workers — límite de memoria de 128MB, límites de tiempo de CPU, sin acceso al sistema de archivos
Sin análisis de APK/AAB — solo código fuente
Sin análisis interprocedimental — los patrones se comparan por archivo, no a través de grafos de llamadas
Estructura del Proyecto
src/
├── index.ts # Worker entry point
├── server/
│ ├── mcp.ts # MCP JSON-RPC 2.0 handler
│ └── tools/ # MCP tool implementations
│ ├── analyzeAndroidProject.ts
│ ├── listAndroidSecurityChecks.ts
│ ├── explainFinding.ts
│ └── health.ts
├── core/
│ ├── types.ts # TypeScript types & Zod schemas
│ ├── scoring.ts # Risk score computation
│ ├── registry.ts # Rule registry
│ └── orchestrator.ts # Analysis orchestrator
├── analyzers/
│ ├── manifestAnalyzer.ts
│ ├── gradleAnalyzer.ts
│ ├── sourceAnalyzer.ts
│ ├── xmlConfigAnalyzer.ts
│ └── secretScanner.ts
├── parsers/
│ ├── xml.ts # XML parser wrapper
│ ├── gradle.ts # Gradle file parser
│ ├── source.ts # Source code pattern matcher
│ └── files.ts # File classifier
├── rules/
│ ├── manifestRules.ts
│ ├── gradleRules.ts
│ ├── sourceRules.ts
│ ├── xmlRules.ts
│ └── secretRules.ts
├── mappings/
│ ├── cwe.ts # CWE descriptions
│ └── owaspMobile.ts # OWASP Mobile Top 10
└── utils/
├── lines.ts # Line number utilities
├── paths.ts # Path classification
└── text.ts # Text utilities
test/
├── fixtures/ # Sample Android project files
├── unit/ # Unit tests per module
└── integration/ # Full analysis integration testsAñadir Nuevas Reglas
Define la regla en el archivo apropiado bajo
src/rules/Añade la lógica de detección en el analizador correspondiente bajo
src/analyzers/Añade el mapeo CWE en
src/mappings/cwe.tssi es necesarioAñade un caso de prueba
La regla se registra automáticamente mediante
src/core/registry.ts
Licencia
MIT
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
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 gradedqualityDmaintenanceIntegrates multiple Android APK security analysis tools into MCP standard APIs for automated static and dynamic analysis and vulnerability detection.
- 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
- AlicenseNot gradedqualityBmaintenanceLocal static-analysis assistant for Android malware research that manages investigation cases, exposes MCP tools via a local server, and persists evidence-backed findings without cloud dependency.MIT
Related MCP Connectors
MCP server for ScanMalware.com URL scanning, malware detection, and analysis.
MCP server for Appcircle mobile CI/CD platform.
Remote MCP for Android CLI agent build gate, structured receipts, audit logs, and reviewer-ready evi
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/ako2345/android-security-analyzer'
If you have feedback or need assistance with the MCP directory API, please join our Discord server