StaticApkAuditor MCP
StaticApkAuditor MCP
Apktoolベースの逆コンパイルと、Android APK のセキュリティ評価のためのカスタム静的解析ヒューリスティック一式を、Claude Code / Claude Desktop での自然言語コマンドを通じて公開する Model Context Protocol (MCP) サーバーです。
これは何のためのものか
APK を指定すると、それを逆コンパイルし、AI アシスタントに結果を分析するための一連のツール(攻撃面、権限、ハードコードされたシークレット、暗号化の使用、ネイティブライブラリ、ビジネスロジックの候補)を提供し、MobSF などの他のツールからの結果と相互チェックします。すべての呼び出しはマークダウンレポートとしてディスクに記録されるため、チャットのトランスクリプトだけでなく、監査証跡が得られます。
これは静的解析の補助であり、完全なペネトレーションテストではありません。 いくつかのツールは、確認された脆弱性ではなく、手動/動的検証の候補を生成します。これはツールの説明と組み込みプロンプトで明示的に示されています。ランタイムの動作(競合状態、ワークフローのバイパス、実際のデータ流出)は、動的テスト(Frida、Burp/mitmproxy、実機)で確認する必要があります。
Related MCP server: GDA-MCP-Server
クイックスタート
Java、Apktool、Python 3.10+ がすでにインストールされていることを前提とします(そうでない場合は、下記の前提条件を参照してください)。
# 1. Set up the project folder
mkdir static-apk-auditor && cd static-apk-auditor
# 2. Create a venv and install the one dependency
python3 -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
pip install -r requirements.txt
# 3. Sanity check — should hang waiting for stdio input, Ctrl+C to stop
python3 server.py
# 4. Register with Claude Code (adjust paths to your actual location)
claude mcp add static-apk-auditor \
--env APKTOOL_WORK_DIR=$(pwd)/data \
-- $(pwd)/venv/bin/python3 $(pwd)/server.py
# 5. Verify it connected
claude mcp list次に、claude セッション内で、claude mcp add を実行したのと同じフォルダで(登録はデフォルトでそのフォルダのスコープになります):
/mcp__static-apk-auditor__security_audit
/absolute/path/to/some.apkまたは、平易な言葉で尋ねるだけで、モデルが decode_apk と残りのツールを自動的に呼び出します:
Decompile /absolute/path/to/some.apk and give me a quick security triage.利用可能なすべての機能については、下記のプロンプトとツールを参照するか、Claude Code セッションで /mcp を実行して対話的に閲覧してください。
プロジェクト構造
static-apk-auditor/ # your folder can be named anything — this is just an example
├── server.py # the MCP server — single file, FastMCP-based
├── requirements.txt # just "mcp"
├── README.md # this file
├── prompts/
│ ├── security_audit.md # 16-point checklist, OWASP Mobile Top 10 mapping
│ └── mobsf_review.md # MobSF finding validation workflow
├── venv/ # created locally, not part of the repo
└── data/ # created automatically on first decode_apk call
# (this is APKTOOL_WORK_DIR — see Configuration below)ランタイムデータレイアウト(自動生成)
分析する各 APK には、APKTOOL_WORK_DIR の下に自己完結型のフォルダが作成されます:
$APKTOOL_WORK_DIR/<apk_filename_without_extension>/
├── source/
│ └── <original>.apk # copy of the APK you pointed the tool at
├── decoded/
│ ├── AndroidManifest.xml
│ ├── smali/, smali_classes2/, ...
│ ├── res/, assets/, lib/
│ └── ... # apktool's decompiled output
├── reports/
│ ├── 20260706_175359_809_decode_apk.md
│ ├── 20260706_175412_112_analyze_manifest.md
│ ├── 20260706_175430_501_check_root_detection.md
│ └── ... # one markdown file per tool call, ever
└── final_reports/
├── 20260706_223500_123_security_audit.md
└── 20260706_224100_456_mobsf_review.md
# the finished, synthesized reports
# (Summary + Detailed Findings + Risk Table),
# saved explicitly via save_final_reportすべてのツール呼び出しは、ツールの種類や成功/失敗に関係なく、その APK の reports/ フォルダにタイムスタンプ付きのマークダウンファイルを書き込みます。これはオプションの呼び出しごとのロギングではなく、登録されたすべてのツールに適用されるデコレータ(@logged_tool)であり、このサーバーに呼び出されるものはすべて記録されます。各レポートには、ツール名、呼び出し時のパラメータ、および完全な出力が含まれます。
reports/ と final_reports/ は異なる目的を果たします。reports/ は生の呼び出しログ(個々のツール呼び出しのすべて。何がいつチェックされたかを正確に監査するのに役立ちます)であり、final_reports/ は洗練された人間が読めるレポートのみを保持します。これは開発者やクライアントに渡す実際の成果物です。security_audit と mobsf_review の両方のプロンプトは、save_final_report への必須の呼び出しで終了し、これが final_reports/ を生成します。その呼び出しがない場合、合成されたレポートはチャット応答にのみ存在し、ディスクには永続化されません。
前提条件
1. Java JDK 8+(Apktool に必要)
# Ubuntu/Debian
sudo apt update && sudo apt install default-jdk
# macOS
brew install openjdk
java -version2. Apktool
# Ubuntu/Debian
sudo apt install apktool
# macOS
brew install apktool
apktool --version3. Python 3.10+
python3 --version4. (オプション)aapt — デコードせずに完全な get_apk_info メタデータを取得するため
brew install aapt # or: brew install --cask android-commandlinetoolsaapt がインストールされていない場合、get_apk_info は静かに失敗する代わりに、すでにデコードされた AndroidManifest.xml の解析にフォールバックします。
インストール
git clone <your-repo-or-just-copy-the-files> static-apk-auditor
cd static-apk-auditor
python3 -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
pip install -r requirements.txtサニティチェック:
python3 server.py
# Should hang waiting for stdio input (that's normal) — Ctrl+C to stop.Claude Code への接続
claude mcp add apktool-pro \
--env APKTOOL_WORK_DIR=/absolute/path/to/static-apk-auditor/data \
-- /absolute/path/to/static-apk-auditor/venv/bin/python3 /absolute/path/to/static-apk-auditor/server.py確認:
claude mcp list
claude mcp get apktool-pro # should show "✔ Connected"注:claude mcp add は、デフォルトで現在のディレクトリをスコープとするサーバーを登録します(local スコープ)。任意のプロジェクトから利用できるようにするには、--scope user を追加してください。
Claude Desktop への接続(代替)
設定ファイルを編集します(macOS:~/Library/Application Support/Claude/claude_desktop_config.json):
{
"mcpServers": {
"apktool-pro": {
"command": "/absolute/path/to/static-apk-auditor/venv/bin/python3",
"args": ["/absolute/path/to/static-apk-auditor/server.py"],
"env": {
"APKTOOL_WORK_DIR": "/absolute/path/to/static-apk-auditor/data"
}
}
}
}保存後、Claude Desktop を再起動します。
設定(環境変数)
変数 | デフォルト | 目的 |
|
| PATH にない場合の apktool 実行可能ファイルへのパス |
|
| PATH にない場合の aapt へのパス |
|
| すべての APK ごとのソース/デコード済み/レポートデータのルートフォルダ |
ツール
コア(逆コンパイルとマニフェスト)
ツール | パラメータ | 説明 |
|
| apktool で APK を逆コンパイルします。出力は |
|
| 基本メタデータ:パッケージ、バージョン、SDK レベル、ファイルサイズ。aapt が利用可能な場合はそれを使用し、それ以外の場合はデコードされたマニフェストの解析にフォールバックします。 |
|
| (変更された可能性のある)デコードされたディレクトリから APK を再ビルドします。出力は署名なしです。 |
|
| システムフレームワーク APK をインストールして、それを参照するシステム/OEM アプリを apktool がデコードできるようにします。 |
|
|
|
|
| 要求されたすべての権限をリストし、Android 権限モデルで「危険」と分類されるものをフラグ付けします。 |
|
| 指定されたロケールの文字列リソースを抽出します。 |
|
| すべての逆コンパイルされた |
セキュリティヒューリスティック
ツール | パラメータ | 説明 |
|
| APK に含まれる |
|
| 証明書検証を無効化する可能性のあるカスタム |
|
|
|
|
| React Native / Expo アプリ向け: |
|
| ルート/エミュレータ検出と改ざん防止シグネチャをスキャンします:su バイナリパス、RootBeer/RootTools、SafetyNet、Play Integrity、 |
ビジネスロジック偵察
ツール | パラメータ | 説明 |
|
| 名前が機密操作(支払い、エンタイトルメント、ロール、割引、クォータ)を示唆するメソッド/クラスを特定し、近くの |
|
| ヒューリスティック:機密キーワードのヒットで、ローカル比較( |
MobSF レポート検証
ツール | パラメータ | 説明 |
|
| MobSFの静的解析JSONレポート( |
|
| MobSFの1つの検出結果を、あなた自身のデコンパイル済み出力(smali + 文字列リソース)と突き合わせて誤検出を補足します。モデルが分類する — 確認済み / 誤検出 / 手動レビューが必要 — ための証拠を返します。モデル自身が分類することはありません。 |
プロンプト(ガイド付きワークフロー)
プロンプトは、モデルがその都度自ら呼び出すツールとは異なり、Claude Codeでスラッシュコマンド(/apktool-pro:<name>)として明示的に呼び出します。
プロンプト | 引数 | 動作内容 |
|
| 16項目からなる完全チェックリスト(攻撃対象領域、権限、シークレット、暗号、WebView、ストレージ、SSLピンニング、タスクハイジャッキング、ルート検出、エクスポートされたレシーバー/プロバイダー、JSバンドル、ネイティブラカル、ロギング、依存関係のバージョン、PendingIntentの可変性、ビジネスロジック)を実行。出力:Summary → 詳細な検出結果(信頼度評価 + adbのPoC手順) → OWASP Mobile Top 10(M1–M10)に対応づけ欠けたリスク表。 |
|
| MobSFのJSONレポートを読み込み、すべての検出結果を実際のデコンパイル済みコードと相互検証し、それぞれを確認済み / 誤検出 / 手動レビューが必要に分類します。MobSF自身の評価とは独立に重大度を再評価し、確認済みの検出結果のみの優先対応リストを生成します。 |
|
| 高速パス:エクスポートされたコンポーネント + 危険な権限 + 明白なハードコード済みシークレットをチェックします。完全な監査が必要でない場合に。/用います。 |
使用例
Use decode_apk to decompile /path/to/app.apk/apktool-pro:security_audit apk_path="/path/to/app.apk"Use check_root_detection on the decompiled output/apktool-pro:mobsf_review apk_path="/path/to/app.apk" mobsf_report_path="/path/to/mobsf_report.json"利用可能なすべてのツールと正確なパラメータをいつでも確認するには、Claude Codeセッションで/mcpを実行し、apktool-proを選択します。
MobSFレポートの取得
MobSFをローカルで実行している場合:
# upload the APK, get back a hash
curl -F 'file=@/path/to/app.apk' http://localhost:8000/api/v1/upload \
-H "Authorization: <MOBSF_API_KEY>"
# fetch the JSON report using that hash
curl -X POST http://localhost:8000/api/v1/report_json \
-H "Authorization: <MOBSF_API_KEY>" \
--data "hash=<hash_from_upload>" -o mobsf_report.json既知の制限
静的解析のみ。 ここではアプリを実行したり、実際のトラフィックを傍受したりはしません。ビジネスロジックの検出結果や「確認済み」とされた静的検出結果の一部は、証明されたものとして扱う前に動的検証が必要です。
build_apkの出力は署名されていません。 デバイスにインストールする前にapksignerで署名してください。正規表現ベースのヒューリスティック(
check_ssl_pinning、check_root_detection、map_sensitive_flowsなど)は、難読化・リネームされたコードを検出できない可能性があり、無関係な一致を誤検出することがあります。これらの出力は検証済みの判定ではなく、レビュー用の優先候補として扱ってください。install_frameworkは、framework-res.apkを参照するシステム / OEM APKのデコードにのみ必要です。大半のマールドパーティアプリの解析では不要です。
設計メモ
APKTOOL_WORK_DIRは常に尊重されます。各APKには永続的で自己完結したフォルダ(source/、decoded/、reports/、final_reports/)が割り当てられ、使い捨ての一時ディレクトリには何も書き込まれません。get_apk_infoは、aaptがインストールされていない場合は、何も有用なものを返さずに終了するのではなく、デコード済みマニフェストの解析にフォールダします。すべてのツール呼び出しは自動的にログされます(
reports/)。完成した統合レポートはsave_final_report(final_reports/)によって別途保存されます。FastMCP上に構築されているため、ツール / プロンプトの登録が簡単です。
法的 / 責任ある利用
所有しているAPK、またはテストを明示的に書面で許可されたAPKのみを解析してください。デコンパイルされたAPKには機密性の高いユーザーデータが含まれる可能性があるため、出力はそれに応じて取り扱い、クライアントデータが含まれる場合は契約後にエンゲージメント終了後にAPKTOOL_WORK_DIRをクリーンアップしてください。このツールは、それ自体ではネットワークへの外部送信や能動的なエクプロディット・実行を行いません。security_auditの出力におけるPoCコマンド(例: adb shell am start ...)は、あなたがかない、あなたが制御するデバイス / エミュレータ上で手動で実行することを想定しています。
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
- AlicenseAqualityCmaintenanceAn 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.12144MIT
- AlicenseNot gradedqualityBmaintenanceEnables Android APK static analysis in Cursor/Claude via GDA CLI Server, supporting reconnaissance, attack surface scanning, and code decompilation through natural language.11GPL 3.0
- AlicenseNot gradedqualityCmaintenanceEnables AI agents to perform autonomous Android security analysis, including static analysis, dynamic analysis, and Frida instrumentation, powered by MobSF.1MIT
- AlicenseNot gradedqualityBmaintenanceMCP server for analyzing Android APK, DEX, or JAR files via a headless jadx engine, enabling LLM agents to query decompiled code, symbols, call graphs, and more.1GPL 3.0
Related MCP Connectors
Generate SBOMs, scan vulnerabilities, and analyze dependencies from local projects or Git repos.
MCP server for static security analysis of Android source code
Offline methodology engine for authorized penetration testing, CTF, and security research.
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/1111laaaddaaa/static-apk-auditor'
If you have feedback or need assistance with the MCP directory API, please join our Discord server