Token导航 LogoToken导航TokenDH.com
MCP Mobile Interaction logo
运维云端未说明官方级别未说明来源级核验

MCP Mobile Interaction

MCP Server

一个允许Claude与Android和iOS设备/模拟器交互的MCP服务器,提供截图、点击、滑动、输入、检查UI元素等功能,无需Appium。

工具数

23

提示词数

0

GitHub Stars

0

资源数

0
开发工具TypeScriptClaudeClaude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

pablonortiz

提供方

pablonortiz

最后核验

2026/5/17 20:21

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

详细介绍

mcp移动交互

![CI](https://github.com/pablonortiz/mcp-mobile-interaction/actions/workflows/ci.yml) ](https://www.npmjs.com/package/mcp-mobile-interaction) ](https://www.npmjs.com/package/mcp-mobile-interaction) ![License: MIT](https://opensource.org/licenses/MIT)

一个MCP(模型上下文协议)服务器,允许Claude与Android和iOS设备/模拟器进行交互。截图、点击、滑动、键入、检查UI元素等等——不需要Appium。

先决条件

安卓

  • 安卓模拟器 随着 adb 在你的路径中
  • 运行Android模拟器或通过USB连接的物理设备,并启用ADB调试

iOS

  • macOS与 项目 已安装(提供 xcrun simctl)
  • 对于物理设备: 互联网数据库 (brew install idb-companion && pip install fb-idb)
  • 启动的iOS模拟器或连接的物理设备

安装

使用克劳德代码

claude mcp add mobile -- npx -y mcp-mobile-interaction

或添加 .mcp.json 到您的项目根目录(与您的团队共享):

{
  "mcpServers": {
    "mobile": {
      "command": "npx",
      "args": ["-y", "mcp-mobile-interaction"]
    }
  }
}

使用克劳德桌面

添加到您的 claude_desktop_config.json:

{
  "mcpServers": {
    "mobile": {
      "command": "npx",
      "args": ["-y", "mcp-mobile-interaction"]
    }
  }
}

手册

npm install -g mcp-mobile-interaction

工具

所有工具都接受 platform 参数("android""ios")以及一个可选 device_id (默认为第一个连接的设备)。

核心工具

工具说明
list_devices列出连接的设备和仿真器/模拟器
screenshot捕获屏幕截图(返回base64 JPEG)
get_ui_tree使用可选过滤器获取UI元素的平面列表(only_clickable, only_with_text, type_filter, resource_id_contains)
get_screen_info获取屏幕尺寸、密度和方向
get_screen_state在一次通话中获取UI树+屏幕截图(节省往返时间)

行动工具

工具说明
tap点击(x,y)坐标(本机分辨率)
double_tap双击(x,y)坐标(本机分辨率)
long_press长按(x,y)键,可配置持续时间
swipe在坐标之间或按方向(上/下/左/右)滑动
type_text在重点输入字段中键入文本
press_key按一个键(home、back、enter、delete、volume_up、volume_down、power、tab、recent_apps、菜单、escape、搜索、相机、media_play_pause)或发送原始Android键码
launch_app按包名/捆绑包ID启动应用程序
open_url打开URL或深度链接
tap_element按文本、resource_id或类型查找元素并点击它。支持 scroll_to_findwait_for
set_network_state控制设备网络连接:Wi-Fi、移动数据、飞行模式(仅限Android)
find_element无需点击即可按文本、resource_id或类型查找UI元素。返回断言的元素详细信息。支持 scroll_to_find
kill_app按软件包名称(Android)或捆绑包ID(iOS)强制停止应用程序
clear_app_data清除应用程序数据。模式 cache 仅清除临时文件;模式 all 重置为新安装状态
get_device_logs获取操作系统级设备日志(Android logcat/iOS日志显示)。按标签、级别或搜索字符串筛选
set_clipboard设置设备剪贴板内容。可用于测试URL、令牌、OTP代码的粘贴

等待工具

工具说明
wait_for_element轮询,直到屏幕上出现与文本/类型/resource_id条件匹配的元素
wait_for_element_gone轮询,直到匹配的元素消失(加载微调器、骨架、对话框)
wait_for_stable轮询,直到屏幕停止更改(两个连续的UI快照匹配)

坐标系

默认情况下,屏幕截图会按比例缩小(scale=0.5)节省带宽,同时 get_ui_tree 以及所有基于坐标的工具(tap, double_tap, long_press, swipe)工作在 本机设备分辨率.

每个屏幕截图响应都包括原生尺寸和比例因子,以明确这一点:

Screenshot captured (540x1140, scale=0.5 of native 1080x2280).
Coordinate tools expect native resolution — multiply screenshot pixel
positions by 2 to convert, or pass screenshot_scale=0.5.

有两种方法可以处理这个问题:

  1. 手动转换 --将您在屏幕截图中看到的位置乘以 1/scale (例如。 ×2 为了 scale=0.5)
  2. 自动转换 --通行证 screenshot_scale 为了协调工具,它们会为您转换:
tap(x=270, y=570, screenshot_scale=0.5)
→ taps at native (540, 1140)

screenshot_scale 参数在上可用 tap, double_tap, long_press,以及 swipe.

观察模式

全部8个行动工具(tap, double_tap, long_press, swipe, type_text, press_key, launch_app, open_url)支持可选 观察 捕获操作完成后屏幕状态的参数——在一次往返中返回结果,而不是两次:

参数说明
observe"none" (默认), "ui_tree", "screenshot",或 "both"
observe_delay_ms捕获前等待毫秒(默认值:500)
observe_stabilize如果 true,等待UI停止更改,而不是固定延迟

示例:前后对比

之前 (2个电话):

tap(x=540, y=960) → get_ui_tree()

之后 (1个电话):

tap(x=540, y=960, observe="ui_tree")

对于5步测试流程,这大约将往返次数减少了一半。

示例

截图

"Take a screenshot of my Android emulator"

克劳德会打电话的 screenshot 随着 platform: "android" 并显示图像。

浏览应用程序

"Open Settings on my iOS simulator, then scroll down and tap General"

克劳德将使用 launch_apptap_element 随着 scroll_to_find: true 导航。

点击没有可见文本的元素

"Tap the start session button"

克劳德将使用 tap_element 随着 resource_id: "start-session-button" 按资源ID查找图标按钮。

等待加载完成

"Tap 'Picking Flow', wait for the loading to finish, then tap the first session"

克劳德将使用 tap_element那么 wait_for_element_gone 使用加载指示符的resource_id,然后继续。

高效运行测试流

"Tap 'Picking Flow', wait for the sessions to load, tap the first session, fill in the value, and submit"

克劳德将使用 tap_element 随着 observe_stabilize: truewait_for_element 在服务器端处理加载状态。

检查UI

"What buttons are visible on the screen?"

克劳德将使用 get_ui_tree 随着 only_clickable: true 仅列出交互式元素。

运作原理

  • 安卓:用途 adb 直接命令(屏幕盖、输入、uiautomator、am、wm)
  • iOS模拟器:用途 xcrun simctl (截图、io、启动、openurl)
  • iOS物理设备:用途 idb (Facebook的iOS开发桥梁)

屏幕截图被压缩为 锋利 (调整大小+JPEG质量)以保持在Claude的1MB图像限制以下。

UI元素包括 type, text, bounds, center_x/center_y (用于敲击), clickable, resource_id, enabled,以及 focused.

许可证

麻省理工学院

目录标签

目录标签

开发工具TypeScriptClaude移动设备控制本地部署UI自动化测试工具设备交互无Appium

支持客户端

Claude

接入字段

传输方式(transport,传输协议)

未说明

鉴权方式(authType,认证方式)

session

工具数量(toolCount,工具数)

23

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

未说明session部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

仍需确认:installCommand

来源信息

继续浏览同类 MCP