MCP Appium 服务器
使用 Appium 实现移动应用自动化的模型上下文协议 (MCP) 服务器实现。
先决条件
- Node.js(v14 或更高版本)
- Java 开发工具包 (JDK)
- Android SDK(用于Android测试)
- Xcode(用于 iOS 测试,仅限 macOS)
- Appium 服务器
- Android 设备或模拟器 / iOS 设备或模拟器
环境设置
在执行任何命令之前,请确保您的环境变量已正确设置:
- 确保您的
.bash_profile
、.zshrc
或其他 shell 配置文件包含必要的环境变量:
- 在运行 MCP-Appium 之前获取环境文件:
注意:初始化驱动程序时,系统将尝试自动获取您的
.bash_profile
,但建议在新终端会话中运行测试之前手动确保正确的环境设置。
Xcode 命令行工具配置
对于 iOS 测试,正确的 Xcode 命令行工具配置至关重要:
- 如果尚未安装,请安装 Xcode 命令行工具:
- 验证安装并检查当前 Xcode 路径:
- 如果需要,请设置正确的 Xcode 路径(特别是当您有多个 Xcode 版本时):
- 接受 Xcode 许可协议:
- 对于 iOS 真实设备测试,请确保您的 Apple 开发者帐户在 Xcode 中正确配置:
- 打开 Xcode
- 前往“偏好设置”>“帐户”
- 如果尚未添加,请添加您的 Apple ID
- 下载必要的配置文件
- 设置iOS开发的环境变量:
- 获取更新后的配置:
设置
- 安装依赖项:
- 安装并启动 Appium 服务器:
- 设置 Android 设备/模拟器:
- 在您的 Android 设备上启用开发者选项
- 启用 USB 调试
- 通过 USB 连接设备或启动模拟器
- 使用
adb devices
验证设备是否已连接
- 对于 iOS 测试(仅限 macOS):
- 确保安装了 Xcode 命令行工具:
xcode-select --install
- 设置 iOS 模拟器或连接真实设备
- 如果使用真实设备,请信任 iOS 设备上的开发计算机
- 确保安装了 Xcode 命令行工具:
运行测试
- 构建项目:
- 启动 MCP 服务器:
- 在新的终端中,运行测试:
测试配置
Android 配置
示例测试使用 Android 设置应用作为演示。要测试您自己的应用,请执行以下操作:
- 编辑
examples/appium-test.ts
:- 更新
deviceName
以匹配您的设备 - 将
app
路径设置为 APK 文件,或者 - 更新已安装应用的
appPackage
和appActivity
- 更新
- 通用功能配置:
iOS 配置
对于使用新 Xcode 命令行支持进行 iOS 测试:
examples/xcode-appium-example.ts
中的示例配置:
可用操作
MCP 服务器支持各种 Appium 操作:
- 元素交互:
- 查找元素
- 使用 W3C Actions API 点击/单击元素(参见“W3C 标准手势”部分)
- 输入文本
- 使用 W3C Actions API 滚动到元素
- 长按
- 应用程序管理:
- 启动/关闭应用程序
- 重置应用程序
- 获取当前包裹/活动
- 设备控制:
- 屏幕方向
- 键盘处理
- 设备锁定/解锁
- 截图
- 电池信息
- 高级功能:
- 上下文切换(Native/WebView)
- 文件操作
- 通知
- 自定义手势
- Xcode 命令行工具(仅限 iOS):
- 管理iOS模拟器(启动、关闭)
- 在模拟器上安装/卸载应用程序
- 启动/终止应用程序
- 截取屏幕截图
- 录制视频
- 创建/删除模拟器
- 获取设备类型和运行时
W3C 标准手势
MCP-Appium 库现在实现了用于触摸手势的 W3C WebDriver Actions API,这是移动自动化的现代标准。
W3C 针对 Tap 元素的操作
tapElement
方法现在使用具有智能回退功能的 W3C Actions API:
W3C 滚动操作
scrollToElement
方法现在使用 W3C Actions API:
自定义 W3C 手势
您可以使用executeMobileCommand
方法创建自己的自定义W3C手势:
有关 W3C 标准手势实现的更多示例,请参阅examples/w3c-actions-swipe-demo.ts
。
使用 Xcode 命令行工具
新的XcodeCommands
类为 iOS 测试提供了强大的工具:
使用点击功能
click()
方法提供了比tapElement()
更直观的替代方法:
故障排除
- 未找到设备:
- 检查
adb devices
输出 - 验证 USB 调试已启用
- 尝试重新连接设备
- 检查
- 应用程序未安装:
- 验证APK路径是否正确
- 检查设备是否有足够的存储空间
- 确保应用程序已签名以进行调试
- 未找到元素:
- 使用 Appium Inspector 验证选择器
- 检查元素是否在屏幕上可见
- 尝试不同的定位器策略
- 连接问题:
- 验证 Appium 服务器正在运行
- 检查端口冲突
- 确保设置了正确的功能
- iOS 模拟器问题:
- 验证 Xcode 命令行工具是否已安装:
xcode-select -p
- 使用
xcrun simctl list devices
检查模拟器 UDID 是否正确 - 如果模拟器无响应,请关闭并重新启动
- 验证 Xcode 命令行工具是否已安装:
贡献
请随意提交问题并请求附加功能或错误修复。
执照
麻省理工学院
Related MCP Servers
- AsecurityAlicenseAqualityA Model Context Protocol server that facilitates communication between ABAP systems and MCP clients, providing tools for managing ABAP objects, handling transport requests, and performing code analysis to enhance ABAP development workflows.Last updated -12840TypeScriptMIT License
- AsecurityAlicenseAqualityA Model Context Protocol (MCP) server that enables AI assistants to control and interact with Android devices, allowing for device management, app debugging, system analysis, and UI automation through natural language commands.Last updated -29198PythonApache 2.0
- AsecurityAlicenseAqualityA Model Context Protocol server that enables scalable mobile automation through a platform-agnostic interface for iOS and Android devices, allowing agents and LLMs to interact with mobile applications using accessibility snapshots or coordinate-based interactions.Last updated -113,6511,570TypeScriptApache 2.0
- AsecurityAlicenseAqualityA Model Context Protocol server that enables scalable mobile automation for iOS and Android through a platform-agnostic interface, allowing LLMs to interact with mobile applications via accessibility snapshots or screenshot-based inputs.Last updated -173,6511TypeScriptApache 2.0