Android Security Analyzer
Android Security Analyzer
MCP-сервер для статического анализа безопасности исходного кода Android-приложений. Работает на Cloudflare Workers как удалённый MCP-сервер через Streamable HTTP.
Что он делает
Анализирует исходные файлы Android-проекта — без сборки проекта — и возвращает структурированный отчёт по безопасности. Анализ охватывает:
Анализ манифеста — экспортированные компоненты, опасные разрешения, незашифрованный трафик, debug-флаги, настройки резервного копирования, версии SDK
Конфигурацию Gradle/сборки — ошибки конфигурации release-сборки, устаревшие SDK, подозрительные зависимости, захардкоженные секреты
Исходный код (Java/Kotlin) — небезопасный WebView, обход SSL/TLS, слабая криптография, паттерны SQL-инъекций, выполнение процессов, небезопасное хранение файлов, проблемы с PendingIntent
XML-конфигурацию — слабые места в network security config, слишком широкие пути file provider
Сканирование секретов — API-ключи, токены, пароли, приватные ключи, облачные учётные данные, строки с высокой энтропией
Весь анализ основан на регулярных выражениях/паттернах и выполняется нативно в среде Workers без внешних инструментов, Java или Android SDK.
Related MCP server: APK Security Guard MCP Suite
Архитектура
POST /mcp ──► McpServer (JSON-RPC 2.0) ──► Tool Router
│
┌───────────────────────────────┘
▼
Orchestrator
│
┌─────────┼─────────┬─────────────┬──────────────┐
▼ ▼ ▼ ▼ ▼
Manifest Gradle Source Code XML Config Secret
Analyzer Analyzer Analyzer Analyzer Scanner
│ │ │ │ │
└─────────┴─────────┴─────────────┴──────────────┘
│
▼
Scoring + Deduplication ──► AnalysisReportКлючевые проектные решения:
Без состояния — нет сессий, нет Durable Objects
Минимальная реализация MCP JSON-RPC 2.0 (без тяжёлых SDK-зависимостей)
Управляемый данными движок правил с расширяемым реестром правил
Независимые анализаторы с единым типом Finding
Лёгкий XML-парсинг через
fast-xml-parserВалидация входных данных через
zodРазмер бандла: ~66KB gzipped
MCP-инструменты
Инструмент | Описание |
| Полный анализ безопасности файлов проекта |
| Список всех реализованных правил безопасности |
| Подробное объяснение конкретного правила |
| Статус сервера и статистика движка правил |
Установка
Хостируемый сервер (рекомендуется для Cline / MCP-клиентов): локальная установка не требуется. Сервер работает по адресу:
https://android-security-analyzer.ako-labs.workers.dev/mcp
Добавьте этот URL в конфигурацию вашего MCP-клиента (см. Подключение из MCP-клиента ниже).
Локальная разработка:
npm installРазработка
npm run devЭто запускает локальный dev-сервер Wrangler. MCP-эндпоинт доступен по адресу http://localhost:8787/mcp.
Деплой
npm run deployРазвёртывание на Cloudflare Workers. Требуется аутентификация wrangler (npx wrangler login).
Тестирование
npm test # Run all tests
npm run test:watch # Watch mode
npm run typecheck # TypeScript type checkingЛокальное MCP-тестирование
Инициализация соединения
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).ContentСписок доступных инструментов
Unix:
curl -X POST http://localhost:8787/mcp \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":2,"method":"tools/list"}'Windows (PowerShell): ответ приходит в result.tools; чтобы увидеть список как JSON, используйте сырой ответ:
(Invoke-WebRequest -Method Post -Uri "http://localhost:8787/mcp" -ContentType "application/json" -Body '{"jsonrpc":"2.0","id":2,"method":"tools/list"}' -UseBasicParsing).ContentЛибо через объект: (Invoke-RestMethod ...).result.tools | ConvertTo-Json -Depth 5
Проверка здоровья
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).ContentЗапуск анализа (минимальный пример)
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).ContentПодключение из MCP-клиента
Добавьте в конфигурацию вашего MCP-клиента:
{
"mcpServers": {
"android-security-analyzer": {
"url": "http://localhost:8787/mcp"
}
}
}Для продакшена (хостируемый):
{
"mcpServers": {
"android-security-analyzer": {
"url": "https://android-security-analyzer.ako-labs.workers.dev/mcp"
}
}
}Правила безопасности
Анализатор реализует 53 правила безопасности в 5 категориях:
Категория | Префикс | Правил | Примеры |
Manifest | MAN-* | 17 | debuggable, allowBackup, экспортированные компоненты, разрешения |
Gradle | GRD-* | 9 | конфигурация release, версии SDK, зависимости, секреты |
Source | SRC-* | 17 | WebView, SSL/TLS, криптография, инъекции, хранение файлов |
XML Config | XML-* | 4 | network security config, пути file provider |
Secret | SEC-* | 7 | API-ключи, токены, пароли, облачные учётные данные |
Каждое найденное замечание включает:
Стабильный ID правила
Серьёзность (critical/high/medium/low/info) и уверенность (high/medium/low)
Путь к файлу и номер строки (когда это можно определить)
Фрагмент-доказательство
Сопоставление с CWE и OWASP Mobile Top 10
Практическую рекомендацию
Оценка риска
Оценка риска (0-100) вычисляется на основе серьёзности замечаний:
Critical: 9 баллов
High: 6 баллов
Medium: 3 балла
Low: 1 балл
Info: 0 баллов
Сырая сумма нормализуется относительно ожидаемого максимума в 50 баллов.
Ограничения
Не замена SAST — эвристика на основе паттернов/регулярных выражений, а не полный анализ AST/потоков данных
Сборка не требуется — анализируется исходный код, поэтому преобразования на этапе сборки не видны
Возможны ложные срабатывания — особенно для сканирования секретов и некоторых паттернов кода
Ограничения Workers — лимит памяти 128MB, ограничения по времени CPU, отсутствие доступа к файловой системе
Нет анализа APK/AAB — только исходный код
Нет межпроцедурного анализа — паттерны сопоставляются по файлам, а не по графам вызовов
Структура проекта
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 testsДобавление новых правил
Определите правило в соответствующем файле в
src/rules/Добавьте логику обнаружения в соответствующий анализатор в
src/analyzers/Добавьте сопоставление CWE в
src/mappings/cwe.tsпри необходимостиДобавьте тестовый пример
Правило автоматически регистрируется через
src/core/registry.ts
Лицензия
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