项目简介

这是一个基于 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测试脚本示例。

安装步骤

  1. 安装前提:

    • Node.js (v14 或更高版本)
    • Java Development Kit (JDK)
    • Android SDK (需要配置 'ANDROID_HOME' 环境变量)
    • Xcode (仅限iOS测试,需要macOS,并确保安装了命令行工具)
    • 已全局安装 Appium Server ('npm install -g appium')
    • 连接了Android设备/模拟器 或 iOS设备/模拟器
  2. 克隆仓库:

    git clone https://github.com/Rahulec08/appium-mcp.git
    cd appium-mcp
  3. 安装项目依赖:

    npm install
  4. 构建项目:

    npm run build
  5. 启动 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"' 表示使用标准输入输出流进行通信。

基本使用方法

  1. 按照上述步骤完成安装和构建。
  2. 在第一个终端中启动 Appium 服务器 ('appium -p 4723')。
  3. 在第二个终端中启动 MCP-Appium 服务器
    npm start
    或者使用 'src/launcher.ts' 脚本,它会尝试同时启动 Appium 和 MCP 服务器:
    node dist/launcher.js
  4. 配置并运行 MCP 客户端:根据上述“MCP 服务器配置”信息,在您的MCP客户端(如支持MCP协议的LLM应用)中进行配置。客户端将连接到此MCP服务器并通过JSON-RPC调用暴露的各种工具(tools),例如 'list-devices'、'initialize-appium'、'tap-element'、'get-page-source' 等,来控制移动设备或获取信息。
  5. 使用 CLI 交互 (可选): 仓库还提供了一个命令行界面 ('src/cli.ts'),您可以直接运行它来与MCP服务器交互,进行手动测试:
    node dist/cli.js
    CLI会引导您进行设备连接、App启动、UI操作等。

信息

分类

开发者工具