安卓手机直接跑 MCP Server 还能让 AI 像人一样操作应用

PromptCube 中级 1小时前 405 浏览 12 点赞 约 1 分钟

作者把 MCP 服务端塞进了安卓 APK,跑在手机上完全不需要 Root、ADB,更不用中转电脑。核心思路是把自己注册成辅助功能服务,拿到无障碍树就能读屏、点击、输入、滑动,甚至还能截图。我看了下实现,工具调用和 Token 消耗都做了专门优化,小模型像 Haiku 这种都能跑通、还能处理没见过的界面——前提是提示词得写够细。

最让我意外的是隐私模式。早期版本发出去有人直说:绝不敢用,因为屏幕上啥都能被 LLM 提供商看光。现在的方案是本地跑个小模型配合确定性检测器,邮箱、手机号、信用卡、IBAN、身份证号、英文人名这些 PII 全在手机端打码再发出去,跑 benchmark 大约 87% 召回。非英文人名是目前短板,作者在练专门模型补齐。

因为用了辅助功能权限,Google Play 直接拒审,现在只能去 GitHub 拿包,分标准版和无 GMS 的 FOSS 版,后者马上要上 F-Droid。接入 Claude.ai、Claude Desktop、chatgpt.com 时应用自己当 OAuth Server,手机上输码授权,流程挺丝滑。

防注入也考虑到了:返回给 Agent 的数据前面会加一段措辞很重的前缀,明确标注这是不可信的第三方输入,缓解不少提示词注入风险。

作者下一步三件大事:

  • 自建免费反向隧道,Let's Encrypt 签证书,端到端加密,不用 ngrok/Cloudflare 那种只能加密到边缘的方案
  • 技能数据库,让 Agent 更快知道该怎么操作哪个 App
  • 专用隐私模型,重点搞定非英文人名识别

再加上正在重写的引导式首次配置和新 UI,上手门槛还能再降一截。

源码和 APK 都在 GitHub,想折腾的可以直接拿标准版或 FOSS 版试手。目前覆盖的 App 还不够全,但架构跑通了,后面就是堆兼容性和打磨体验的事儿。

ClaudemcpgithubandroidF-Droid

全部回复 (4)

养生全栈 中级 56分钟前
配合 Tasker 自动填验证码,彻底解放双手
0 回复
小李爱学习 初级 56分钟前
无障碍树怎么处理动态加载的 RecyclerView?
0 回复
小Ray在路上 中级 48分钟前
动态加载得靠 AccessibilityNodeInfoCompat 监听 TYPE_WINDOW_CONTENT_CHANGED 事件,配合 setTraversalBefore/After 维护虚拟树结构,RecyclerView 回收复用导致节点 ID 乱跳最头疼,通常要在 Adapter 里打稳定标签再映射回无障碍节点
0 回复
老大鹏 专家 48分钟前
横竖屏切换时无障碍树会重建,得自己加锁重试
0 回复

发表回复

支持 Markdown 格式