MCP 连接云手机

这篇将介绍如何让 AI Agent 通过云手机提供的 MCP 服务控制云手机里的 Android App。客户只需获取服务地址、访问凭证和可用实例;无需部署服务或了解后台实现。

相关产品
云手机 产品页,含版本规格、价格与购买入口。

一、前提条件

1. 已开通 云手机服务,并且有购买云手机实例。

2. 已在 API 密钥管理 获取 SecretId 和 SecretKey。

3. 你的 Agent 框架支持 MCP 远程服务(Streamable HTTP 传输)并能自定义请求头,例如 WorkBuddy、CodeBuddy、Cursor,或基于 MCP SDK 自研的 Agent。

二、适用场景

场景 说明
Agent 自动化操作 Android App Agent 根据自然语言任务,读取 App 界面并执行点击、滑动、输入、按键等操作。
App 功能验证与巡检 先观察当前界面,再执行操作并检查结果;适用于重复性的 UI 流程。
人工接管 必要时获取短时体验链接,由授权人员查看并操作同一台云手机。

三、整体架构

架构可参考下图:

四、基本概念

概念 说明
MCP Model Context Protocol,AI Agent 调用外部工具的开放协议。Agent 作为 MCP Client,发现并调用云手机工具。
云手机 MCP Server 已由服务提供方部署的远程 MCP 服务。Agent 通过统一地址连接,获得可用的云手机操作工具。
云手机实例 运行 Android 系统及目标 App 的云端手机;调用具体工具时通常需指定实例 ID。
通用交互工具 读取 UI 控件、截图、点击、长按、滑动、按键、文本输入等工具;无需为每个 Android App 单独开发 MCP。
MCP Token 访问云手机 MCP 服务的凭证。由服务提供方签发并交付,用于限制可访问的云手机实例及有效期。

注意:Agent 只持有 MCP Token,绝不持有腾讯云 API 密钥(SecretId / SecretKey)。并发申请、会话创建、Token 签发都应在业务后台完成。

六、步骤1:调用 CreateAndroidInstanceMCPToken 创建访问凭证

云手机 MCP Server 采用 Bearer Token 鉴权。调用方需要先获取由腾讯云签发的 MCP Token,之后才能与服务建立连接、发现并调用云手机工具。本步骤在业务后台完成:后台使用自身的 SecretId / SecretKey 调用云 API CreateAndroidInstanceMCPToken 签发 Token,再按需下发给 Agent。

注意:Token 仅在创建成功时返回一次,服务端不留存副本,也不提供再次查看 Token 明文的接口。请务必在收到响应后妥善保管;一旦丢失,只能重新签发。

七、步骤2:Agent 接入云手机 MCP Server

在支持 Streamable HTTP 的 Agent 客户端中,添加远程 MCP 服务。

{ "mcpServers": { "tencent-cvp": { "type": "streamableHttp", "url": "https://mcp-server.crtrcloud.com/mcp", "headers": { "Authorization": "Bearer <CreateMCPToken 返回的 Token>" } } }}

注意:说明:

注意:该方式适合调试。生产环境中 Token 有有效期且与会话绑定,建议由业务后台动态下发,而非写死在配置文件中。

连接后,Agent 可自动发现当前服务开放的云手机 MCP 工具。先给出目标实例 ID,再提出要执行的任务,例如:请在指定云手机上打开待办 App,查看有哪些任务,点击进入并确认页面已打开。

八、可用工具

连接成功后,Agent 可自动发现并调用以下工具。工具名称统一以 android_instance_ 开头;除 android_instance_list 外,调用时均需指定目标实例 ID。

九、实例与设备状态

工具名称 说明
android_instance_list 列出当前凭证可访问的云手机实例,含实例 ID、名称、状态、分辨率与地域。
android_instance_get_resolution 获取实例当前屏幕分辨率与像素密度。
android_instance_get_orientation 获取屏幕方向(竖屏或横屏)及旋转角度。
android_instance_get_foreground_app 获取当前前台应用的包名与 Activity。
android_instance_get_logcat 读取实例已有的 logcat 日志,用于排障。
android_instance_get_task 查询安装、重启等异步任务的执行状态。
android_instance_get_experience_url 获取实例的短时体验链接,供人工接管查看和操作。
android_instance_get_clipboard 读取实例剪贴板中的文本内容。
android_instance_reboot 重启云手机实例。
android_instance_open_url 在实例中打开公网 HTTP 或 HTTPS 链接。

十、界面感知

工具名称 说明
android_instance_screenshot 截取当前屏幕画面,并返回该图的宽高作为坐标基准。
android_instance_dump_ui 导出当前屏幕的 UI 控件层级,用于按文本或控件定位元素。

十一、交互操作

工具名称 说明
android_instance_click 单击屏幕上的指定位置。
android_instance_long_press 长按屏幕上的指定位置。
android_instance_swipe 在屏幕上按指定方向滑动。
android_instance_key 模拟按下系统按键,如 Home、Back、Enter。
android_instance_input_raw 按顺序执行一组原始输入事件,用于多指等复杂操作。
android_instance_input_text 在当前焦点输入框中输入 ASCII 文本。
android_instance_paste_text 向当前焦点输入框粘贴文本,支持中文等非 ASCII 字符。

十二、应用管理

工具名称 说明
android_instance_list_apps 查询实例上已安装的应用列表。
android_instance_install_app 从公网下载地址为实例安装 APK。
android_instance_start_app 启动实例上的指定应用。
android_instance_stop_app 强制停止指定应用。
android_instance_clear_app_data 清除指定应用的数据,使其恢复到刚安装的状态。
android_instance_uninstall_app 卸载实例上的指定应用。

十三、安全建议

1. 优先使用 USER Key,并只授权必要实例。

2. 优先设置有限有效期。

3. 体验链接等同于临时实例控制权,避免公开传播。

4. 卸载应用和清理应用数据前确认影响范围。

5. Key 疑似泄露时,先创建并切换新 Key,再立即吊销旧 Key。

6. 体验链接可控制实例,勿向无关人员转发。

十五、调用工具返回鉴权失败

检查请求头格式是否为 Authorization: Bearer <MCP Token>,并确认使用本云手机 MCP 服务签发的有效 Token;过期时通过接口重新创建。若提示实例无权访问,请核对实例是否在该 Token 的授权范围内。

十六、User Key 无法操作实例

请检查实例白名单是否包含目标实例、实例 ID 是否正确,以及实例是否处于可操作状态。

十七、体验链接无法打开

请检查链接是否超过1小时有效期、实例是否可操作,以及网络和实时音视频通道是否可达。

十八、安装或重启长时间未完成

安装和重启为异步任务,耗时较长,请使用 android_instance_get_task 查询状态;安装 APK 应使用云端可直接访问的公网 HTTP 或 HTTPS 地址。

十九、点击位置不准确

优先通过 android_instance_dump_ui 获取实时元素位置;使用截图坐标时,应确保坐标基准与截图尺寸一致。

20、Agent 使用 MCP 是否额外计费?

腾讯云手机资源和带宽按 云手机计费说明 计费;涉及对象存储等能力时,可能产生相关产品费用。本服务的 MCP 工具是否另行收费,以服务提供方与客户的实际协议为准,不能套用应用云渲染的计费规则。

赞 (0)
上一篇 4天前
下一篇 4天前