项目简介
这是一个基于 Model Context Protocol (MCP) 实现的服务器,旨在为大型语言模型(LLMs)提供控制和自动化移动设备(包括 Android 和 iOS)的能力。它通过集成 Appium、Android Debug Bridge (ADB) 和 Xcode 命令,将复杂的移动操作抽象为标准化的 MCP 工具。LLM 客户端可以通过调用这些工具来执行移动应用测试、UI检查、设备控制等任务。
主要功能点
- 移动自动化操作: 支持查找元素、点击、输入文本、滑动、长按、等待元素出现等Appium核心交互。
- App管理: 提供安装、卸载、启动、关闭、重置应用的能力。
- 设备控制: 实现获取设备方向、设置方向、隐藏键盘、获取设备时间、锁定/解锁设备、获取电量信息、发送按键事件、打开通知等功能。
- UI检查与分析: 能够获取当前屏幕的UI结构(XML源码)、查找包含特定文本的元素、提取元素定位符信息,帮助LLM理解当前屏幕内容。
- 上下文管理: 支持在 Native 应用视图和 WebView 视图之间切换。
- 文件操作: 允许从设备拉取文件或向设备推送文件。
- 高级手势: 支持执行基于W3C标准的多点触控手势(如捏合、拖拽)。
- ADB命令集成: 提供执行通用ADB命令的能力(如列出设备、安装/卸载App、截图)。
- Xcode命令集成 (仅限iOS/macOS): 支持控制iOS模拟器(启动、关闭、安装App、截图、录屏等)。
- 测试脚本生成: 可根据一系列操作步骤生成Appium测试脚本示例。
安装步骤
-
安装前提:
- Node.js (v14 或更高版本)
- Java Development Kit (JDK)
- Android SDK (需要配置 'ANDROID_HOME' 环境变量)
- Xcode (仅限iOS测试,需要macOS,并确保安装了命令行工具)
- 已全局安装 Appium Server ('npm install -g appium')
- 连接了Android设备/模拟器 或 iOS设备/模拟器
-
克隆仓库:
git clone https://github.com/Rahulec08/appium-mcp.git cd appium-mcp -
安装项目依赖:
npm install -
构建项目:
npm run build -
启动 Appium 服务器: 在一个新的终端中运行 Appium 服务器(如果Appium未配置为自动启动或需要特定端口):
appium -p 4723
MCP 服务器配置 (供MCP客户端使用)
MCP客户端需要知道如何启动并连接到此服务器。以下是MCP客户端所需的配置示例(JSON格式,通常保存在客户端的配置文件中):
{ "name": "mobile-automation", "description": "MCP Appium Server for mobile device control and automation", "command": "node", "args": [ "您的MCP-Appium仓库路径/dist/index.js" ], "transport": { "type": "stdio" } }
- 'name': 服务器的唯一名称,用于客户端识别。
- 'description': 服务器的简要描述。
- 'command': 启动MCP服务器进程的命令(通常是 'node')。
- 'args': 传递给命令的参数数组。第一个参数是服务器的入口文件路径。请将 '"您的MCP-Appium仓库路径/dist/index.js"' 替换为您在安装步骤中克隆仓库后,'dist' 目录下的 'index.js' 文件的实际绝对或相对路径。
- 'transport': 指定客户端与服务器通信使用的传输协议。'"type": "stdio"' 表示使用标准输入输出流进行通信。
基本使用方法
- 按照上述步骤完成安装和构建。
- 在第一个终端中启动 Appium 服务器 ('appium -p 4723')。
- 在第二个终端中启动 MCP-Appium 服务器:
或者使用 'src/launcher.ts' 脚本,它会尝试同时启动 Appium 和 MCP 服务器:npm startnode dist/launcher.js - 配置并运行 MCP 客户端:根据上述“MCP 服务器配置”信息,在您的MCP客户端(如支持MCP协议的LLM应用)中进行配置。客户端将连接到此MCP服务器并通过JSON-RPC调用暴露的各种工具(tools),例如 'list-devices'、'initialize-appium'、'tap-element'、'get-page-source' 等,来控制移动设备或获取信息。
- 使用 CLI 交互 (可选): 仓库还提供了一个命令行界面 ('src/cli.ts'),您可以直接运行它来与MCP服务器交互,进行手动测试:
CLI会引导您进行设备连接、App启动、UI操作等。node dist/cli.js
信息
分类
开发者工具