这是一个基于Appium的MCP(模型-上下文-协议)服务器,它提供了对iOS模拟器和Android模拟器/设备的移动自动化功能,作为MCP客户端的工具。该服务器使标准化控制和与移动设备交互成为可能。
此服务器充当桥梁,允许MCP客户端(如大型语言模型或自动化脚本)通过Appium与移动应用程序进行交互。
该项目的主要目标是通过模型上下文协议提供一组可调用的工具。这些工具抽象了Appium用于移动应用测试和自动化的功能。
服务器支持iOS模拟器和Android模拟器/设备,并具有自动设备检测和平台特定优化功能。
为了便于使用,服务器设计为通过npx运行。
要在项目中将此服务器作为依赖项使用(尽管通常通过npx独立运行):
npm install @gavrix/appium-mcp
或者,如果您使用Yarn:
yarn add @gavrix/appium-mcp
最常见的运行服务器方式是使用npx:
npx @gavrix/appium-mcp
这将启动MCP服务器,然后监听来自MCP客户端(例如通过stdio)的传入连接。
如果您正在配置一个MCP客户端(如Cursor)以使用此服务器,您通常会设置如下命令(假设包已全局安装或使用npx):
{
"command": "npx",
"args": ["@gavrix/appium-mcp"],
"env": {}
}
服务器向MCP客户端暴露以下工具:
start_session: 启动一个Appium会话,自动检测设备(iOS模拟器或Android模拟器/设备)。支持平台选择和设备定位。
platform(可选):'ios'、'android' 或 'auto'(默认)deviceName(可选):要定位的具体设备名称end_session: 结束当前Appium会话并清理资源。launch_app: 使用其标识符(iOS的包ID,Android的包名)启动应用程序。find_element: 使用指定策略和选择器在当前屏幕上查找UI元素。tap_element: 点击或点击由其唯一元素ID识别的元素。enter_text: 在特定元素(如输入字段)中输入文本。get_element_text: 获取元素中的文本内容。get_page_source: 获取当前屏幕的XML源层次结构。get_page_source_file: 将页面源XML保存到指定文件路径。get_screenshot: 捕获屏幕截图并将其作为base64编码的数据返回。get_screenshot_file: 捕获屏幕截图并将其保存到指定文件路径。simulate_gesture: 使用W3C WebDriver Actions API模拟自定义手势,使用归一化坐标(0.0-1.0)。press_home_button: 模拟按下主页按钮,将应用程序发送到后台(iOS和Android)。get_device_logs: 从连接的设备/模拟器获取控制台日志。iOS支持:
xcrun simctl捕获iOS特定的日志-ios class chain,-ios predicate string)Android支持:
-android uiautomator)请参阅MCP客户端内的工具定义或服务器源代码(tools/目录)以获取每个工具的详细模式和描述。
欢迎贡献、问题报告和功能请求! 请随意查看问题页面。
此项目采用ISC许可证。
作者:Sergey Gavrilyuk sergey.gavrilyuk@gmail.com