Android MCP 方案深度调研与组合评估

Codex 核验(2026-10-10):ADB 可通过 shell、文件传输及设备特定服务操作文件和部分剪贴板,因此“不支持”应限定为所评估 MCP 的公开工具接口,不能推广为 Android/ADB 不具备该能力。打开通知栏、读取 UI 树与具有 NotificationListenerService 通知访问权限是不同能力;UI 延迟、设备兼容、持续采集和权限边界仍需实机验证,本文性能数值未重跑。

目标:评估现有 Android MCP 方案能否直接构成/组合成「全视窗」手机深度监控方案 梯度权限 T1→T4:手机状态 → 通知读取 → UI树+录屏 → ADB控制+剪贴板+文件系统


一、项目逐一分析

1. android-mcp-server(781⭐)

维度详情
仓库https://github.com/minhalvp/android-mcp-server
语言Python (FastMCP)
工具数5 个(极简)

工具清单:

  • get_packages() — 列出所有安装的包
  • execute_adb_shell_command(command) — 执行任意 ADB shell 命令
  • get_uilayout() — 基于 uiautomator dump,返回 clickable 元素(text/bounds/center)
  • get_screenshot() — 截图(自动压缩至 30% 大小)
  • get_package_action_intents(pkg) — 查询 Activity Resolver Table

底层实现: 纯 Python,基于 pure-python-adb (ppadb) 库。截图使用 screencap + PIL 压缩。UI 树解析手动 XML 提取 clickable 元素。

评分:

指标评分说明
监控深度⭐⭐有截图+UI树+ADB shell,但无通知、无剪贴板、无文件系统
MCP 完整性⭐仅 5 个工具,无 device/list/input 等基础工具
权限模型⭐无任何权限控制,ADB shell 是 all-or-nothing
可扩展性⭐⭐⭐Python FastMCP 框架容易扩展,但底层 ppadb 能力有限

结论: 星数最多但功能最薄。纯 ADB 桥接,适合做最基础的 starting point,但需要大量扩展才有实用价值。


2. claude-in-mobile(318⭐)

维度详情
仓库https://github.com/AlexGladkov/claude-in-mobile
语言TypeScript
工具数8 个 meta-tool + 3 可选模块(约 40+ 具体 action)

核心 Meta-Tools:

Meta-ToolActions
devicelist, set, set_target, get_target, enable_module, disable_module, list_modules
inputtap, double_tap, long_press, swipe, text, key
screencapture, annotate(带标注的截图)
uitree, find, find_tap, tap_text, analyze, wait, assert_visible, assert_gone
applaunch, stop, install, list
systemactivity, shell, wait, open_url, logs, clear_logs, info, webview, clipboard_*, permission_*, file_*, metrics, reset_metrics
flow_batch批量执行(最多 50 条)
flow_run条件/循环流(最多 20 步)

Android 支持的关键能力:

  • ✅ 截图(自动压缩优化)
  • ✅ UI 树(uiautomator + 标注截图)
  • ✅ 剪贴板(clipboard_get/set — 系统级)
  • ✅ 权限管理(grant/revoke/reset)
  • ✅ 文件操作(file_* — 系统级)
  • ✅ 多设备并行
  • ⚠️ 通知 — 未直接提到 notification 监控,但有 open_url 和 webview 间接能力
  • ⚠️ 无实时屏幕流

附加模块: Browser (CDP)、Desktop (macOS)、Store (Google Play 发布)

评分:

指标评分说明
监控深度⭐⭐⭐⭐截图+UI树+剪贴板+文件+权限,覆盖 T2-T4 大部分能力
MCP 完整性⭐⭐⭐⭐⭐设计优雅的 meta-tool 模式,工具集最丰富
权限模型⭐⭐⭐有 permission_* 工具管理 app 权限,但 MCP 层自身是 all-or-nothing
可扩展性⭐⭐⭐⭐TypeScript 模块化架构,容易添加新平台/模块

结论: 综合能力最强的现有方案。ADB 层能力全面,clipboard/permission/file 三件套覆盖了全视窗 T3-T4 的核心需求。缺少的是:通知实时监听、屏幕实时流、以及精细的梯度权限模型。


3. native-devtools-mcp(119⭐)

维度详情
仓库https://github.com/sh3ll3x3c/native-devtools-mcp
语言Rust
工具数~13 个 Android 工具

Android 工具清单:

  • android_list_devices — 列出 ADB 设备
  • android_connect — 连接设备
  • android_disconnect — 断开设备
  • android_screenshot — 截图
  • android_find_text — 通过 uiautomator 查找 UI 元素
  • android_click — 屏幕点击
  • android_swipe — 滑动
  • android_type_text — 输入文字
  • android_press_key — 按键(HOME/BACK 等)
  • android_launch_app — 启动应用
  • android_list_apps — 列出应用
  • android_get_display_info — 屏幕分辨率/密度
  • android_get_current_activity — 当前前台 Activity

亮点:

  • 使用 Rust 原生 ADB 协议(adb_client crate),不依赖 adb shell 命令
  • 跨平台:macOS + Windows + Android 统一
  • OCR + CDP + Desktop 自动化整合
  • 附带完整的安全审计文档

评分:

指标评分说明
监控深度⭐⭐⭐截图+UI查找+设备信息,但无通知、无剪贴板、无文件系统
MCP 完整性⭐⭐⭐工具覆盖基础操作,数量适中
权限模型⭐无专门的权限控制
可扩展性⭐⭐⭐Rust 架构性能好,但扩展门槛比 Python/TS 高

结论: Rust 实现性能优秀,但 Android 功能集偏基础。原生 ADB 协议层是独特的卖点,可作为底层 ADB 通信的替代选择。


4. scrcpy-mcp(56⭐)

维度详情
仓库https://github.com/JuanCF/scrcpy-mcp
语言TypeScript
工具数36 个

核心工具分类:

  • Session管理: start_session, stop_session
  • 视频流: start_video_stream, stop_video_stream(MJPEG + ffplay)
  • 设备管理: device_list, device_info, screen_on/off, rotate, expand_notifications/settings, collapse_panels
  • 视觉: screenshot(~33ms), screen_record_start/stop
  • 输入: tap, swipe, long_press, drag_drop, input_text, key_event, scroll
  • App管理: app_start/stop/install/uninstall/list, app_current
  • UI自动化: ui_dump, ui_find_element
  • Shell & 文件: shell_exec, file_push/pull, file_list
  • 剪贴板: clipboard_get, clipboard_set(含 paste 选项)

独特能力:

  • ✅ scrcpy 二进制协议 — 输入延迟 5-10ms(比 ADB 快 10-50x)
  • ✅ ~33ms 截图(ADB 方案 ~500ms)
  • ✅ MJPEG 实时视频流
  • ✅ 剪贴板 — 绕过 Android 10+ 限制
  • ✅ 通知面板 — expand_notifications/collapse_panels(需 scrcpy session)
  • ✅ 文件系统 — push/pull/list
  • ⚠️ 无通知实时监听(只能拉下通知面板查看)

评分:

指标评分说明
监控深度⭐⭐⭐⭐截图+UI+剪贴板+文件系统+视频流,但无通知/权限管理
MCP 完整性⭐⭐⭐⭐36 个工具,覆盖全面
权限模型⭐无梯度权限,all-or-nothing
可扩展性⭐⭐⭐⭐TypeScript,模块化设计,容易扩展

结论: 性能王者。scrcpy 协议层提供了远超 ADB 的截图/输入速度,是「全视窗」T3(录屏)和 T4(快速控制)的理想底层。剪贴板绕过 Android 10+ 限制是独特价值。


5. uiautomator2-mcp-server(31⭐)

维度详情
仓库https://github.com/tanbro/uiautomator2-mcp-server
语言Python
工具数70+(数量最多)

工具分类:

  • Device — 连接、信息、截图、层次结构、shell
  • Actions — 触摸、手势、按键、屏幕控制
  • Apps — 安装、启动、管理、列表
  • Element — XPath 元素定位与交互
  • Input — 文本输入、键盘控制
  • Clipboard — 读写
  • Toast — Android Toast 消息检测
  • Scrcpy — 屏幕镜像

亮点:

  • 70+ 工具(数量最多的 Android MCP)
  • XPath 元素定位(高级)
  • 标签系统工具过滤
  • HTTP 模式支持远程连接 + Token 认证
  • 多设备
  • 支持 scrcpy 集成
  • 支持 PyInstaller 打包成独立可执行文件

评分:

指标评分说明
监控深度⭐⭐⭐⭐截图+UI树+剪贴板+Toast,缺通知/文件/权限管理
MCP 完整性⭐⭐⭐⭐70+ 工具,数量最多,标签系统过滤
权限模型⭐⭐HTTP Token 认证但无梯度授权
可扩展性⭐⭐⭐⭐⭐Python + uiautomator2 库,扩展门槛最低

结论: 工具数量冠军。uiautomator2 库的底层能力丰富(XPath、Toast、Clipboard),标签系统是最大的架构亮点。缺通知监听和文件系统。Python 生态最容易定制和扩展。


6. PalmWindow / 掌心窗(16⭐)

维度详情
仓库https://github.com/linzhi-524/linjian-peek-public
语言Python + Android APK (Kotlin?)
工具数14 个

架构:

Android App (AccessibilityService) ←HTTP→ Python Server (Render/HF) ←MCP→ AI Client

工具清单:

  • linjian_status — 检查后端在线
  • get_life_state — 轻量生活状态(电量/充电/网络/亮灭/当前App/屏幕时间/解锁次数/Top App/天气备注/权限状态)
  • get_phone_state — 最近手机状态
  • peek_screen — 请求新截图
  • latest_screen — 读取服务器最近截图
  • list_known_apps — 白名单 App 列表
  • open_app — 打开白名单 App
  • phone_home/back/recents — 系统导航
  • send_phone_command — 底层命令
  • send_notification — 发送系统通知
  • set_alarm — 设置系统闹钟

独特能力:

  • ✅ AccessibilityService 方案 — 不需 ADB,可后台运行
  • ✅ 轻量状态 — 电池/屏幕时间/解锁次数等生活状态
  • ✅ 发送通知 — 系统通知/闹钟
  • ✅ 主动提醒 — 低电量/喝水/休息提醒规则
  • ✅ 隐私安全设计 — 用户自部署、Token 认证、白名单
  • ✅ 无需 USB 连接 — 全无线
  • ⚠️ 无 UI 树 — 不能获取布局
  • ⚠️ 无剪贴板
  • ⚠️ 无文件系统
  • ⚠️ 无通知监听(只能发不能读)
  • ⚠️ 截图依赖 AccessibilityService(慢于 ADB/scrcpy)

评分:

指标评分说明
监控深度⭐⭐⭐生活状态丰富+截图,但无UI树/剪贴板/文件/通知读取
MCP 完整性⭐⭐⭐14 个工具,覆盖状态/截图/控制/通知
权限模型⭐⭐⭐⭐用户部署+Token+白名单+主动授权,最接近梯度理念
可扩展性⭐⭐⭐三组件架构清晰但耦合紧,扩展需修改 App 端

结论: 独特的 AccessibilityService 路径提供无线后台能力,是全视窗「手机状态(T1)」和「通知发送」的理想基础。App 层可做梯度授权的载体。但缺少 UI 树和剪贴板支持。


二、综合评分对比

项目监控深度MCP完整性权限模型可扩展性总分
claude-in-mobile⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐16/20
uiautomator2-mcp-server⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐15/20
scrcpy-mcp⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐14/20
PalmWindow⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐13/20
native-devtools-mcp⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐10/20
android-mcp-server⭐⭐⭐⭐⭐⭐⭐7/20

三、全视窗需求对照矩阵

全视窗层能力需求android-mcp-serverclaude-in-mobilenative-devtools-mcpscrcpy-mcpuiautomator2-mcp-serverPalmWindow
T1 手机状态电量/信号/网络/运行时间❌✅ info/system✅ display_info✅ device_info✅ device:info✅ 丰富
当前App/Activity❌✅ activity✅ current_activity✅ app_current✅✅
屏幕使用时间/解锁❌❌❌❌❌✅ 独家
主动状态推送❌❌❌❌❌✅ 独家
T2 通知读取通知❌❌❌❌❌❌
发送通知❌❌❌❌❌✅
展开通知面板❌❌❌✅ (scrcpy)❌❌
T3 视觉截图✅✅ (标注)✅✅ (~33ms)✅✅
UI树✅ (basic)✅ (uiautomator)✅ (uiautomator)✅ (ui_dump)✅ (XPath)❌
实时视频流❌❌❌✅ (MJPEG)❌❌
屏幕录制❌❌❌✅❌❌
T4 控制点击/滑动/输入❌ (仅有shell)✅✅✅ (5ms)✅✅
应用管理✅✅✅✅✅✅ (白名单)
剪贴板读写❌✅❌✅ (绕过10+)✅❌
文件系统❌✅ file_*❌✅ push/pull/list❌❌
权限管理❌✅ permission_*❌❌⚠️ (app:config)❌
Shell命令✅✅❌✅✅✅ (基本)

四、组合建议

推荐方案 A:「claude-in-mobile + PalmWindow」互补组合 ⭐⭐⭐⭐⭐

组件负责理由
claude-in-mobileT3+T4 核心UI树/截图/剪贴板/文件/权限/多设备
PalmWindowT1+T2 + 授权载体手机状态/通知发送/主动提醒/AccessibilityService 授权模型
扩展: scrcpy layerT3 实时屏幕可选增强,使用 scrcpy-next 或合并到 claude-in-mobile

覆盖度: T1(80%) + T2(40%) + T3(100%) + T4(100%)

差距分析:

  • T2 通知读取: 所有项目都欠奉。需要额外开发 Android 端 NotificationListenerService
  • T1 屏幕时间统计: PalmWindow 已有基础,可扩展
  • 梯度权限模型: 全视窗需要 T1→T4 渐进授权,目前没有项目原生支持。可以在 PalmWindow 的 App 层构建授权 UI

推荐方案 B:「scrcpy-mcp + uiautomator2-mcp-server + PalmWindow」三合一

组件负责理由
scrcpy-mcp性能层快速截图(~33ms)/输入(5ms)/视频流/剪贴板(绕过10+)
uiautomator2-mcp-server深度UI层XPath元素定位/70+工具/Toast检测/标签过滤
PalmWindow授权+状态层手机状态/通知/主动提醒/AccessibilityService

优势: 性能最优(scrcpy)+ 工具最多(uiautomator2)+ 授权模型(PalmWindow)

劣势: 三个独立 MCP server 并运行,架构复杂,跨 server 协调成本高

推荐方案 C:从零构建(基于 uiautomator2 + scrcpy)

如果有资源从零构建全视窗,推荐技术栈:

  • 底层: uiautomator2 (Python) + scrcpy — Android 端核心能力
  • App 层: AccessibilityService + NotificationListenerService (Kotlin) — 无线/后台能力+通知读取
  • MCP 层: Python FastMCP — 快速开发 MCP server
  • 传输: HTTP/SSE — 远程访问

核心新增开发量:

  1. NotificationListenerService — 读取通知并推送(所有项目都缺)
  2. 梯度权限模型 — App 端的授权 UI + MCP 端的权限 gate
  3. T1 状态扩展 — 屏幕时间统计、运营商信息等

五、关键差距总结

全视窗现有方案不可直接覆盖的能力:

能力重要性现有方案解决方案
通知读取🔴 高全部缺失开发 NotificationListenerService
通知展开查看🟡 中scrcpy-mcp 可拉下面板已部分覆盖
实时视频流🟡 中scrcpy-mcp MJPEG已覆盖
剪贴板(Android 10+)🔴 高scrcpy-mcp 绕过可复用
UI树(XPath)🔴 高uiautomator2/claude-in-mobile已覆盖
梯度权限🔴 高全部缺失需自建 PalmWindow App 层
T1 状态深度🟡 中PalmWindow 覆盖最好可扩展
无线后台运行🔴 高PalmWindow(AccessibilityService)可复用

六、最终建议

立即可采用: claude-in-mobile 作为全视窗的 MCP 骨架 + PalmWindow 的 App 层作为授权载体和 T1 状态补充。

需要自研:

  1. NotificationListenerService — 通知读取(所有方案缺失的核心能力)
  2. 梯度权限 Gate — 在 MCP server 层实现工具级别的授权检查
  3. 全视窗 App — 整合 PalmWindow 的 AccessibilityService + 通知监听 + 授权 UI

可直接复用的成熟组件:

  • scrcpy 的剪贴板绕过机制
  • uiautomator2 的 UI 树/元素交互
  • claude-in-mobile 的 meta-tool 设计模式
  • PalmWindow 的后端+App 通信架构

技术选型建议: Python 为主(uiautomator2 + FastMCP)+ Kotlin App 层(AccessibilityService + NotificationListenerService)+ 可选 scrcpy 增强性能层。