Mobile App Testing MCP
移动端App安全测试MCP工具集 - 基于Frida、ADB、JADX的完整移动应用安全分析平台
Installation
npx mobile-app-testing-mcpAsk AI about Mobile App Testing MCP
Powered by Claude · Grounded in docs
I know everything about Mobile App Testing MCP. Ask me about installation, configuration, usage, or troubleshooting.
0/500
Reviews
Documentation
📱 Mobile App Testing MCP
一个面向 Android 安全测试场景的 MCP Server,聚焦以下能力:
- ADB 设备与应用操作自动化
- AAPT APK 信息分析
- JADX 反编译与代码审计支撑
- 静态安全扫描(密钥泄露、弱加密、调试泄露)
项目遵循标准 stdio MCP 协议,可接入 Claude、Codex 及其他 MCP 客户端。
✨ 核心特性
- 开箱即用启动脚本:
npm start会先做依赖探测再启动服务 - 首次运行可自动下载 JADX(默认
v1.5.5) - 支持
.env、Android SDK 路径、系统 PATH 多层回退 - 内置健康检查链路:
check+smoke+verify - 综合静态分析可直接导出统一审计报告(
json/md/sarif) - 新增会话预检与一键复现流水线(含证据包
manifest.json)
📌 能力边界
- 当前定位为 Android App 测试 MCP
- 已移除 Frida / Gadget 动态注入能力
- 动态 Hook 类测试不在当前工具范围内
🚀 启动流程(最简)
# 1) 克隆并进入目录
git clone https://github.com/your-username/mobile-app-testing-mcp.git
cd mobile-app-testing-mcp
# 2) 安装并构建
npm run setup
# 3) 启动 MCP
npm start
就这三步,其他配置都可以后补。
🔌 一键安装到客户端
# 同时安装到 Codex + Claude
npm run install:mcp
# 仅安装到 Codex
npm run install:mcp:codex
# 仅安装到 Claude
npm run install:mcp:claude
安装脚本会:
- 自动定位客户端配置文件(
~/.codex/config.toml、Claude Desktop 配置) - 写入
mobile-app-testingMCP Server 条目(指向scripts/start.js) - 变更前自动备份原文件(
.bak.<timestamp>)
🧭 npm start 会自动做什么
npm start 实际执行 node scripts/start.js,启动前会自动:
- 探测
adb/aapt/jadx本地路径(.env、Android SDK、PATH) - 若缺少
jadx且AUTO_DOWNLOAD_JADX=true,自动下载并解压 - 打印缺失依赖修复建议后,再启动服务
默认 JADX 下载地址:
https://github.com/skylot/jadx/releases/download/v1.5.5/jadx-1.5.5.zip
🛠 环境要求
- Node.js
>= 18 - Android SDK(至少包含
platform-tools,推荐包含build-tools) - JADX(可选,可由启动脚本自动下载)
⚙️ 常用命令
npm run setup # 安装依赖 + 构建
npm start # 启动(含依赖探测与JADX自动下载)
npm run verify # 完整验证(build + check + smoke)
npm run check # 仅检查本机依赖
npm run smoke # 仅做 MCP 冒烟测试
npm run build # 清理 dist 后重新编译
npm run dev # 构建后启动(同 start)
🔧 .env 配置
复制 .env.example 为 .env 后,常用配置如下:
ANDROID_HOME/ANDROID_SDK_ROOT:Android SDK 路径(推荐设置)ADB_PATH:adb 可执行文件绝对路径(可选)AAPT_PATH:aapt 可执行文件绝对路径(可选)JADX_PATH:jadx 可执行文件绝对路径(可选)EMULATOR_PATH:Android emulator 可执行文件路径(可选,支持 AVD 列表/启动/关闭)AUTO_DOWNLOAD_JADX:是否自动下载 JADX(默认true)JADX_VERSION:自动下载版本(默认1.5.5)JADX_DOWNLOAD_URL:JADX 下载 URL(可覆盖默认地址)SCREENSHOTS_DIR/RECORDINGS_DIR/DECOMPILED_DIR/LOGS_DIR:工作目录
🔌 MCP 客户端接入
项目是标准 stdio MCP Server,通用配置如下:
{
"mcpServers": {
"mobile-app-testing": {
"command": "node",
"args": ["/path/to/your/project/scripts/start.js"],
"cwd": "/path/to/your/project",
"env": {}
}
}
}
说明:
args推荐指向scripts/start.js(而不是dist/index.js),才能保留自动依赖检查与 JADX 首启下载cwd建议为项目根目录- 客户端不继承系统环境时,请在
env明确传入ANDROID_HOME、PATH
🧰 工具能力清单
当前总计 46 个工具:
- ADB 工具
25:设备、模拟器(AVD 列表/启动/关闭)、应用、文件、输入模拟、截屏录屏 - AAPT 工具
4:badging、permissions、xmltree、完整分析 - JADX 工具
3:反编译、输出信息、APK 验证 - 静态分析工具
4:secrets/debug/weak-crypto/comprehensive(含统一报告导出) - 工作流工具
9:模板、上下文、智能建议、执行记录、会话预检、证据包导出、一键复现流水线 - 文件工具
1:sha256指纹
💡 使用示例
在任意 MCP 客户端可直接提出:
分析这个 APK 的基础信息:/path/to/app.apk
反编译这个 APK 并输出关键目录:/path/to/app.apk
对当前连接设备截图并保存到默认目录
查看可启动模拟器并启动:adb_list_emulators / adb_start_emulator
关闭模拟器:adb_stop_emulator(或指定 emulator_id)
对反编译目录做全面静态分析,并导出 json/md/sarif 报告到 /tmp/reports
先做会话预检:workflow_session_precheck
执行一键复现流水线并导出证据包:workflow_run_repro_pipeline
static_comprehensive_analysis 支持可选参数:
output_formats:["json","md","sarif"]中的任意组合output_dir: 报告输出目录(默认./reports)report_name: 报告文件名前缀include_third_party: 是否包含第三方库目录(默认false)third_party_prefixes: 自定义第三方路径前缀
static_scan_secrets / static_scan_debug_leaks / static_scan_weak_crypto / static_comprehensive_analysis 均输出统一字段模型:
severity/cwe/masvs/evidence/repro/impact/fix
adb_start_app / adb_screenshot / adb_shell_command 支持稳定性参数:
timeout_ms: 超时控制retry_count: 重试次数retry_delay_ms: 重试间隔
adb_start_emulator 支持启动等待参数:
wait_for_ready: 是否等待模拟器就绪(默认true)wait_for_boot_completed: 是否等待sys.boot_completed=1(默认true)timeout_ms/poll_interval_ms: 启动等待超时与轮询间隔
adb_install_app 支持安装等待参数:
timeout_ms/retry_count/retry_delay_ms: 安装执行的超时与重试wait_after_install_ms: 安装成功后额外等待(默认3000)
📚 Prompt 示例
参考 prompt-examples:
🆘 常见问题
1) 想要最省事启动
npm run setup
npm start
如果能启动,就不需要先跑 check/smoke/verify。
2) npm start 提示缺少 adb / aapt
先执行:
npm run check
然后按输出提示设置 ANDROID_HOME 或 ADB_PATH / AAPT_PATH。
3) jadx 缺失
- 保持
AUTO_DOWNLOAD_JADX=true,首次启动会自动下载 - 或手动安装后设置
JADX_PATH - 如需固定下载源,设置
JADX_DOWNLOAD_URL
4) 客户端连不上 MCP
- 确认
args是绝对路径且指向scripts/start.js - 确认
cwd指向项目根目录 - 先运行
npm run verify排除服务端问题 - 可重新执行
npm run install:mcp覆盖更新客户端配置
5) 设备显示 unauthorized
adb devices
在手机上确认 USB 调试授权后重试。
🔐 合规说明
- 仅用于合法授权的安全测试与研究
- 请遵守所在地法律法规与组织合规要求
- 禁止用于未授权目标或恶意用途
