关于 Fonino
Fonino 是在 Mac 上运行的手机控制 MCP 服务,让 Agent 操作真实的 iPhone 或 Android 手机。发送、发布、购买和删除等操作须经用户批准,并设有应用和按钮限制。
主要功能
- 01查看屏幕并打开应用
- 02点击、滑动和输入文字
- 03发送前请求用户批准
- 04限制敏感应用和高风险操作
- 05通过 USB 或镜像控制 iPhone
适用场景
- 01让 Agent 在手机上查找信息或操作应用
- 02在批准后代发消息或执行其他操作
- 03通过手机界面完成需要用户接管的登录
MCP 相关
Fonino 提供本地 HTTP 和 stdio 两种 MCP 接入方式,向客户端开放设备、屏幕、点击、输入、消息及审批等工具。涉及发送、发布、购买和删除的操作会等待用户批准。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
10收录的工具列表 · 更新于 4 天前
此工具无需参数。
详细介绍
Fonino
让 AI Agent 使用你的真实 iPhone 或 Android 手机,并在发送任何内容前征求你的同意。
Fonino 让 Claude Code、Codex、Hermes 或任何 MCP 客户端查看手机屏幕、打开应用、点击、滑动和输入。任何会发送、发布、购买或删除内容的操作,都必须先获得你的一键批准。它运行在你的 Mac 上,使用你自己的手机:无需越狱、不用云手机;Android 手机上无需安装任何内容,iPhone 上只需安装一个小型辅助程序。
在 Android 模拟器上使用演示号码实时运行的示例。iPhone 上也可使用相同的工具和审批流程。
● agent: text Sam that I'm running late
│
● phone_open_app("Messages") → phone_get_screen → Sam's conversation
│
● phone_send_message(to: Sam, "Running 10 minutes late, sorry!")
│ ⏸ waiting for your OK: "Send a text to Sam?" [Approve] [Deny]
│
✓ sent after you approved (Delivered via iMessage)
开始使用
在 Mac 上,将以下内容粘贴到你的编码 Agent(Claude Code、Codex……)中:
Clone https://github.com/fonino/fonino, run npm install, then read docs/setup.md and walk me
through connecting my phone. Stop and ask me whenever a step needs my hands, and never type
my passcode or passwords for me.
或者通过 npm 安装:
npm install -g fonino
fonino doctor # checks the Mac, the phone and permissions
fonino devices
或者从源代码安装:
git clone https://github.com/fonino/fonino && cd fonino
npm install && npm run build:native
apps/cli/bin/fonino doctor
不想自己设置? Fonino for Mac 是基于此代码构建的签名应用。它会替你完成 iPhone 设置(无需 Xcode),并让你随时随地通过 Grok Bot、Muse、Claude 和 ChatGPT 连接手机,审批操作则在手机上进行。
连接 iPhone 的两种方式
| USB 辅助程序(推荐) | iPhone 镜像 | |
|---|---|---|
| 方式 | 通过 USB 在手机上运行 Fonino 辅助程序(WebDriverAgent,Apple 的 UI 测试运行程序) | Fonino 读取并点击 macOS 的 iPhone 镜像窗口 |
| 点击 | 精确:读取屏幕结构,而不只是像素 | 根据屏幕截图和文字识别 |
| 你的 Mac | 可自由使用:不会移动鼠标 | 工作时会占用光标 |
| 手机 | 一台 Mac 可同时连接多部手机 | 一部 |
| 要求 | Xcode、用于签名的 Apple ID、开发者模式、数据线 | macOS 15+、iOS 18+、Mac 和 iPhone 使用同一个 Apple 账户(欧盟地区不可用) |
Android
开启 USB 调试(设置 → 关于手机 → 连点版本号 7 次,然后进入设置 →
系统 → 开发者选项 → USB 调试),连接手机,并在手机上点击允许。
Fonino 会通过 adb 找到手机(Android platform-tools);
Android 模拟器也可使用。手机上无需安装任何内容。
fonino devices
# android-001 Pixel 9 connected android-adb Pixel 9, Android 16, USB
与 iPhone 一样,使用相同的工具和安全规则:截图以点为单位,点击前会检查对应位置的按钮,通过 Google Messages 发送文本并在点击发送前验证;设置、Wallet、Play Store 和通话均不可操作。输入内容仅限 ASCII 字符(短信可以包含任意字符)。
iPhone 两种连接方式和 Android 的分步指南:docs/setup.md。
通过 Agent 使用(MCP)
完整工具集,支持审批(推荐):运行本地 HTTP 服务,并将其添加到客户端。
apps/cli/bin/fonino mcp-http --show-token # http://localhost:3001/mcp
claude mcp add --transport http fonino http://localhost:3001/mcp \
--header "Authorization: Bearer <token>"
工具包括 phone_list_devices、phone_acquire / phone_release(每部手机仅供一个 Agent 使用)、phone_get_screen(截图 + 元素)、phone_tap、phone_swipe、phone_type、
phone_open_app、phone_read_messages、phone_send_message、phone_wait_for_reply、
phone_await_approval、phone_request_help(为登录操作将手机交给你)等。
仅基础控制: fonino mcp(stdio;点击、输入、滑动、查看屏幕)。此代码库的
.mcp.json 会将其注册到 Claude Code 中。
安全性
规则写在代码中,而不是提示词里,因此 Agent 无法通过说服来绕过它们:
- 审批。 发送、发布、购买和删除操作都会暂停,直到你批准确切的应用、收件人和文本。Fonino 也会在每次点击时检查按钮:发送、发布、回复、立即购买和下单始终需要你的确认,即使 Agent 没有说明自己正在做什么。
fonino approvals会列出待处理的请求;fonino approve <id>(--for-task适用于该任务的其余操作;--always允许在该应用中执行此类操作,并设有每日上限)。 - 禁止访问。 设置、钱包、密码、邮件、电话、FaceTime、「查找」和 App Store。
- 登录信息由你掌控。 Agent 会把手机交给你,以便你输入密码、使用 Face ID 和输入验证码;消息中的一次性验证码会对它隐藏。
- 短信限制。 按电话号码和收件人设置速率限制;任何回复 STOP 的人都不会再收到短信。
- 本地且私密。 令牌、审批记录和屏幕截图都保存在
~/.fonino中,仅你的 macOS 用户可读取。
其他命令
fonino screen <device> --open # screenshot
fonino tap <device> 200 500 # screenshot pixels
fonino agent <device> --goal "Open Settings and tell me the iOS version" # built-in agent (Anthropic API key)
fonino wda up # keep the USB helper running (health checks, restarts)
fonino service install # run it all as login services
fonino runs && fonino replay <run-id> --open
fonino help # everything else
工作原理
apps/cli fonino CLI: setup, doctor, watchdog, local services, replay
packages/iphone-adapter iPhone USB helper (WebDriverAgent over usbmuxd), iPhone Mirroring, Android over adb
packages/mcp-server MCP tools, approvals, policy (off-limits apps, risky buttons), rate limits
packages/agent-runtime built-in agent loop and approval gate
packages/device-core device protocol, leases, mock phone for tests
packages/browser optional agent browser on the Mac (pages as text, replayable recipes)
packages/relay client that connects this Mac to the Fonino cloud (optional)
native/ Swift helpers: screen capture and input for Mirroring, text recognition
docs/ setup, research notes on controlling a non-jailbroken iPhone
关于为何使用 USB 助手以及我们的测量结果,请参阅: docs/iphone-control-research.md。
要求:搭载 Apple 芯片、运行 macOS 15 或更高版本的 Mac;Node 22.18 或更高版本。
测试:npm test。
限制
- 手机必须保持解锁状态(iPhone:将自动锁定设为「永不」;Android:将屏幕超时设为最长时间)。
- 首次启动助手时,可能会显示标题为「XCTest」的密码提示:这是助手在请求使用屏幕。请在手机上输入;重启后才会再次询问。
- 不支持多点触控、相机或 Face ID 流程。部分应用有自己的检查机制。
许可证
MIT。请参阅 LICENSE。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。