Android Security Analyzer
Android Security Analyzer
MCP-Server für die statische Sicherheitsanalyse von Android-Anwendungsquellcode. Läuft auf Cloudflare Workers als Remote-MCP-Server über Streamable HTTP.
Funktionsweise
Analysiert die Quelldateien von Android-Projekten — ohne das Projekt zu bauen — und liefert einen strukturierten Sicherheitsbericht. Die Analyse umfasst:
Manifest-Analyse — exportierte Komponenten, gefährliche Berechtigungen, Klartext-Datenverkehr, Debug-Flags, Backup-Einstellungen, SDK-Versionen
Gradle-/Build-Konfiguration — Fehlkonfigurationen bei Release-Builds, veraltete SDKs, verdächtige Abhängigkeiten, hartkodierte Geheimnisse
Quellcode (Java/Kotlin) — unsichere WebView, SSL/TLS-Bypass, schwache Kryptografie, SQL-Injection-Muster, Prozessausführung, unsichere Dateispeicherung, PendingIntent-Probleme
XML-Konfiguration — Schwachstellen in der Netzwerksicherheitskonfiguration, zu weit gefasste Dateiprovider-Pfade
Secret-Scanning — API-Schlüssel, Tokens, Passwörter, private Schlüssel, Cloud-Zugangsdaten, Zeichenketten mit hoher Entropie
Die gesamte Analyse ist regex-/musterbasiert und läuft nativ in der Workers-Runtime – ganz ohne externe Tools, Java oder Android SDK.
Related MCP server: APK Security Guard MCP Suite
Architektur
POST /mcp ──► McpServer (JSON-RPC 2.0) ──► Tool Router
│
┌───────────────────────────────┘
▼
Orchestrator
│
┌─────────┼─────────┬─────────────┬──────────────┐
▼ ▼ ▼ ▼ ▼
Manifest Gradle Source Code XML Config Secret
Analyzer Analyzer Analyzer Analyzer Scanner
│ │ │ │ │
└─────────┴─────────┴─────────────┴──────────────┘
│
▼
Scoring + Deduplication ──► AnalysisReportWichtige Entwurfsentscheidungen:
Zustandslos — keine Sitzungen, keine Durable Objects
Minimale MCP-JSON-RPC-2.0-Implementierung (keine umfangreichen SDK-Abhängigkeiten)
Datengetriebene Regel-Engine mit erweiterbarem Regelregister
Unabhängige Analyzer mit einheitlichem Finding-Typ
Schlankes XML-Parsing über
fast-xml-parserEingabevalidierung über
zodBundle-Größe: ~66 KB gzip-komprimiert
MCP-Tools
Tool | Beschreibung |
| Vollständige Sicherheitsanalyse von Projektdateien |
| Alle implementierten Sicherheitsregeln auflisten |
| Detaillierte Erklärung einer bestimmten Regel |
| Serverstatus und Statistiken der Regel-Engine |
Installation
Gehosteter Server (empfohlen für Cline / MCP-Clients): keine lokale Installation erforderlich. Der Server läuft unter:
https://android-security-analyzer.ako-labs.workers.dev/mcp
Fügen Sie diese URL zur Konfiguration Ihres MCP-Clients hinzu (siehe Verbindung zu einem MCP-Client herstellen weiter unten).
Lokale Entwicklung:
npm installEntwicklung
npm run devDadurch wird ein lokaler Wrangler-Entwicklungsserver gestartet. Der MCP-Endpoint ist unter http://localhost:8787/mcp verfügbar.
Deployment
npm run deployStellt auf Cloudflare Workers bereit. Erfordert eine wrangler-Authentifizierung (npx wrangler login).
Testen
npm test # Run all tests
npm run test:watch # Watch mode
npm run typecheck # TypeScript type checkingLokale MCP-Tests
Verbindung initialisieren
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).ContentVerfügbare Tools auflisten
Unix:
curl -X POST http://localhost:8787/mcp \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":2,"method":"tools/list"}'Windows (PowerShell): Die Antwort ist in result.tools; um die Liste als JSON zu erhalten, verwenden Sie die Ausgabe der Rohantwort:
(Invoke-WebRequest -Method Post -Uri "http://localhost:8787/mcp" -ContentType "application/json" -Body '{"jsonrpc":"2.0","id":2,"method":"tools/list"}' -UseBasicParsing).ContentOder über das Objekt: (Invoke-RestMethod ...).result.tools | ConvertTo-Json -Depth 5
Health-Check
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).ContentAnalyse ausführen (minimales Beispiel)
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).ContentVerbindung zu einem MCP-Client herstellen
Fügen Sie Folgendes zu Ihrer MCP-Client-Konfiguration hinzu:
{
"mcpServers": {
"android-security-analyzer": {
"url": "http://localhost:8787/mcp"
}
}
}Für Produktionsumgebung (gehostet):
{
"mcpServers": {
"android-security-analyzer": {
"url": "https://android-security-analyzer.ako-labs.workers.dev/mcp"
}
}
}Sicherheitsregeln
Der implementierte Analyzer enthält 53 Sicherheitsregeln aus 5 Kategorien:
Kategorie | Präfix | Regeln | Beispiele |
Manifest | MAN-* | 17 | Debug-Flags, allowBackup, exportierte Komponenten |
Gradle | GRD-* | 9 | Release-Konfiguration, SDK-Versionen, Abhängigkeiten |
Quellcode im (Java/Kotlin) | SRC-* | 17 | WebView-interaktion, SSL/TLS, Krypto, Injection, Dateispeicherung |
XML-Konfiguration | XML-* | 4 | Netzwerksicherheitskonfiguration, Dateiprovider-Pfade |
Secret | SEC-* | 7 | API-Schlüssel, Tokens, Passwörter, Cloud-Anmeldedaten |
Jeder Befund enthält:
Stabile Regel-ID
Schweregrad (kritisch/hoch/mittel/niedrig/info) und Konfidenz (hoch/mittel/niedrig)
Dateipfad und Zeilennummer (falls bestimmbar)
Beweis-Snippet
CWE- und OWASP-Mobile-Top-10-Zuordnung
Konkrete Handlungsempfehlung
Bewertung
Der Risikowert (0-100) wird aus den Schweregraden der Findings berechnet:
Kritisch: 9 Punkte
Hoch: 6 Punkte
Mittel: 3 Punkte
Niedrig: 1 Punkt
Info: 0 Punkte
Die Rohsumme wird gegenüber einem erwarteten Maximum von 50 Punkten normalisiert.
Einschränkungen
Kein SAST-Ersatz — heuristische Muster-/Regex-Analyse, keine vollständige AST-/Datenflussanalyse
Kein Build erforderlich — auszüge analysieren, Build-Zeit-Transformationen nicht sichtbar
Falschpositive möglich — insbesondere beim Secret-Scanning und bei einigen Codesmustern
Workers-Limits — 128 MB Arbeitsspeicher, CPU-Limits, kein Dateisystemzugriff
Keine APK-/AAB-Analyse — nur Quellcode, keine Interprozedurale Analyse
Keine interprozedurale Analyse — Muster pro Datei abgeglichen, nicht über Aufrufgraphen
Muss
Projektstruktur
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 testsNeue Regeln hinzufügen
Definieren Sie die Regel in der entsprechenden Datei unter
src/rules/Fügen Sie die Erkennungslogik mit dem passenden Analyzer unter
src/analyzers/hinzu.Falls nötig, ergänzen Sie die CWE-Zuordnung in
src/mappings/cwe.tsFügen Sie einen Testfall an.
Die Regel wird automatisch über
src/core/registry.tsregistriert.
Lizenz
MIT
Hinweis: Bei der Manifest-Kategorie empfehle ich die englischen Begriffe wie „exported components“ beizubehalten? Hmm, wait: The user wants German, and it's already translated in the table. Good.
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