见微知著 · TheSignalwise

记录每一道灵光的信号,洞见背后的深刻逻辑。 在这里,我分享硬核而有趣的技术实践、天马行空的创意想法,以及点滴生活瞬间——让微小的信号汇聚成启发未来的智慧。

用 Claude 让手机“可编程”:基于 Mobile MCP 的端到端自动化实战

摘要

感谢 Mobile Next 提供的 Mobile CLIMobile MCPhttps://github.com/mobile-next/mobile-mcp):

  • Mobile CLI 允许你用命令行(CLI)操控手机模拟器或真机;
  • Mobile MCP 则把这些能力暴露为 MCP(Model Context Protocol) 工具,让 Claude、Cherry Studio 等 MCP 客户端能够用自然语言驱动手机操作。

想象一下:你在聊天框里说出——“打开星巴克 App,下单一杯摩卡,少糖加冰,送到办公室。” 随后手机自动完成全部点击与输入。或者说:“从今天的相册里挑 3 张图,发个朋友圈/推文并@小王。” 这就是把手机变成“可编程界面”的震撼体验。

本文以 macOS + iOS 模拟器 为例完成一套最小可行路径(真机与 Android 同理,参考官方 Wiki)。


你将获得什么

  • 一套从 0 到 1 的环境搭建清单
  • 在 Cherry Studio 中配置 Mobile MCP 的模板
  • 可复制粘贴的一条龙命令
  • 首个自动化示例(用自然语言驱动 Safari 访问页面并上传文件)

前置条件

  • macOS(已安装 XcodeiOS Simulator
  • Node.js(含 npx
  • 一款 MCP 客户端(如 Cherry Studio、Claude 桌面版等)
  • 具备基础命令行操作能力

真机调试需要额外的签名/信任配置;Android 环境需替换对应驱动与工具,思路一致。官方WIKI(https://github.com/mobile-next/mobile-mcp/wiki/)提供不同设备的操作指导。


架构一眼看懂

MCP 客户端(Claude / Cherry Studio)
            ⇅  MCP 协议(stdio)
        Mobile MCP(@mobilenext/mobile-mcp)
            ⇅  WebDriver 协议
       WebDriverAgent(iOS 自动化驱动)
            ⇅
      iOS 模拟器 / 物理设备


步骤一:启动 WebDriverAgent(WDA)

WDA 是 iOS 端自动化的“底层遥控器”。我们用 Xcode 跑起它的测试 Runner 即可。

# 1) 获取 WDA
git clone --depth 1 https://github.com/appium/WebDriverAgent.git
cd WebDriverAgent

# 2) 确保模拟器已启动(任选其一)
open -a Simulator
# 或:列出现有设备并手动选择一个名称
xcrun simctl list devices

# 3) 使用 xcodebuild 以测试方式启动 WDA
# 注意将 iPhone 名称替换为你的模拟器名称;注意使用直引号而非花引号
xcodebuild \
  -project WebDriverAgent.xcodeproj \
  -scheme WebDriverAgentRunner \
  -destination 'platform=iOS Simulator,name=iPhone 16 Pro Max' \
  test

常见坑:

  • 目的地字符串里不要用“弯引号”,要用 '" 直引号。
  • 若报 “找不到设备” ,先用 xcrun simctl list devices 查到精确名称再替换。
  • 初次运行若遇到签名/权限弹窗,按提示在 Xcode 里授权一次即可(模拟器通常无需真机签名)。

可选验证(WDA 默认监听 8100 端口):

curl http://127.0.0.1:8100/status

看到包含 status / sessionId 等字段即表示 WDA 正常响应。


步骤二:启动 Mobile MCP Server

mobile-mcpstdio 模式运行,供 MCP 客户端连接。

# 任意目录下执行
npx -y @mobilenext/mobile-mcp@latest
# 若看到:
# mobile-mcp server running on stdio
# 表示服务已就绪

提示:保持该进程 常驻(不要关闭该终端),以便客户端连接。


步骤三:在 Cherry Studio 配置 MCP

  1. 打开 Cherry Studio → 设置 → MCP 设置
  2. 选择“添加 MCP”,使用 JSON 导入 模式,粘贴以下配置:
{
  "mcpServers": {
    "mobile-mcp": {
      "command": "npx",
      "args": ["-y", "@mobilenext/mobile-mcp@latest"]
    }
  }
}
  1. 添加成功后点击 启用。在 Tools 页面可看到 mobile-mcp 暴露的全部动作列表。

步骤四:用自然语言驱动手机(首个自动化)

回到 Cherry Studio 的聊天界面,选择你的大模型(如 Claude),并开启 mobile-mcp。然后直接下达指令即可。

示例 1:下单类操作(演示思路)

“打开星巴克 App,下单一杯摩卡,少糖加冰,送到办公室。”

注:模拟器要先安装目标 App;否则可以先从 App Store 或使用 Safari 完成替代流程。

示例 2:浏览器 + 上传

“打开 Safari,访问:https://tmpfile.link ,并上传一个本地文件。”

这正是本文演示路径:模型会调用 MCP 工具,借助 WDA 在模拟器里完成打开 Safari → 访问链接 → 操作上传的全过程。

贴士:复杂表单/多步流程建议拆成多句指令,让模型逐步执行并在关键处回显页面状态。


常见问题与排错

  • WDA 编译通过但无法访问 8100
    • 重启模拟器:xcrun simctl shutdown all && open -a Simulator
    • 重新执行 xcodebuild ... test,观察终端是否有崩溃/挂起日志。
  • xcodebuild 提示 destination 不存在
    • xcrun simctl list devices 获取准确设备名称(包含型号与 iOS 版本),逐字替换。
  • 端口占用(8100 被占)
    • 查占用:lsof -i :8100,结束相关进程后重启 WDA。
  • App 未安装/无法自动拉起
    • 先在模拟器里手动安装需要的 App,或者改用 Safari 网页版流程。
  • JSON 配置导入失败
    • 检查是否是合法 JSON(逗号/引号),或在 Cherry Studio 中手动添加同等配置。

安全与权限提示

  • 自动化可能涉及支付、隐私与账号操作。建议在测试环境或非生产账号中先验证完整流程。
  • 对“购买/转账/删除”等敏感操作,务必要求模型在执行前二次确认
  • 保护你的 API Key、账号密码与本地文件路径,避免出现在分享的日志与截图中。

延伸:真机与 Android

  • iOS 真机:需要有效的签名与开发者权限,且需在手机上信任证书/驱动,并安装go-ios。
  • Android:思路一致,驱动由对应的 Android 自动化框架提供(ADB/UIAutomator 等)。
  • 多设备/多会话:进阶可在 MCP 层做设备路由与会话隔离。

小结 & 致谢

到这里,你已经完成了WDA → Mobile MCP → MCP 客户端的全链路打通:

  • WDA 负责 iOS 端底层输入与页面结构;
  • Mobile MCP 把手机能力以“工具”的形式暴露;
  • Claude/Cherry Studio 等 MCP 客户端将自然语言转译为可执行动作。

感谢 Mobile Next 带来的 Mobile CLI / Mobile MCP。剩下的,就是你的想象力了:排班打卡、批量发消息、表单填写、内容采集、自动化测试……通通用自然语言来驱动吧。


复制即用清单

# 1. 启动模拟器(如未开启)
open -a Simulator
xcrun simctl list devices

# 2. 获取并启动 WDA
git clone --depth 1 https://github.com/appium/WebDriverAgent.git
cd WebDriverAgent
xcodebuild -project WebDriverAgent.xcodeproj -scheme WebDriverAgentRunner \
  -destination 'platform=iOS Simulator,name=iPhone 16 Pro Max' test

# 3. 启动 Mobile MCP(保持此进程常驻)
npx -y @mobilenext/mobile-mcp@latest
# 看到 "mobile-mcp server running on stdio" 即成功

# 4. Cherry Studio 中导入以下 JSON 并启用
# {
#   "mcpServers": {
#     "mobile-mcp": {
#       "command": "npx",
#       "args": ["-y", "@mobilenext/mobile-mcp@latest"]
#     }
#   }
# }

之后在聊天界面启用 mobile-mcp,用自然语言提指令即可。祝玩得开心!

Posted in

留下评论