返回市场
Appium-MCP

Appium-MCP

作者:140594283627 星标更新:2025-08-03

项目介绍

Appium MCP Server

Python 3.9+ License: MIT Code style: black

Appium MCP Server 是一个基于 Model Context Protocol (MCP) 的移动设备自动化测试平台。它通过 MCP 协议将 Appium 的强大功能暴露给 AI 助手,从而实现智能移动应用程序测试。

✨ 特性

  • 🤖 AI友好:通过 MCP 协议无缝集成如 Claude 和 ChatGPT 等 AI 助手
  • 📱 跨平台支持:同时支持 Android 和 iOS 设备及模拟器
  • 🛠️ 丰富的工具集:提供超过 40 种自动化测试工具
  • 🔄 异步架构:高性能异步设计,支持并发操作
  • 🎯 易于使用:5 分钟快速上手,详细的文档和示例
  • 🔧 高度可配置:灵活的配置选项以适应不同的使用场景

🚀 快速开始

安装

# 安装 Appium MCP Server
pip install appium-mcp-server

# 安装 Appium
npm install -g appium
appium driver install uiautomator2  # Android
appium driver install xcuitest      # iOS (仅 macOS)

基本用法

预条件检查

# 验证安装是否成功
appium-mcp-server --version  # 应该显示版本号
appium --version             # 应该显示 Appium 版本
  1. 启动 Appium 服务器

    appium --port 4723
    
  2. 配置 Claude Desktop

    {
      "mcpServers": {
        "appium": {
          "command": "appium-mcp-server",
          "args": ["run"]
        }
      }
    }
    

    注意:配置后需要重启 Claude Desktop,MCP 服务器会自动启动,无需手动操作。

  3. 重启 Claude Desktop

    修改配置文件后,需要重启 Claude Desktop 使配置生效。

  4. 开始对话

    请帮我连接 Android 设备,启动设置应用并截图。
    

🎬 功能演示

📱 设备连接测试

设备连接测试结果

展示完整的设备管理过程:设备发现 → 设备连接 → 信息获取 → 会话管理 → 截图验证

🎯 测试功能展示

  • 设备发现:自动列出所有可用的 Android 和 iOS 设备
  • 设备连接:成功连接指定设备并创建会话
  • 信息获取:获取详细的设备信息和会话状态
  • 截图功能:实时捕获设备屏幕状态
  • AI交互:通过自然语言指令控制设备操作

🛠️ 功能概述

设备管理

  • 设备发现和连接
  • 设备信息获取
  • 应用程序安装和卸载
  • 设备状态监控

UI 自动化

  • 元素搜索和操作
  • 文本输入和清除
  • 手势操作(点击、滑动、拖拽)
  • 多点触控支持

系统操作

  • 截图和录制
  • 按钮操作
  • 设备旋转
  • 系统设置

文件操作

  • 文件传输(推送/拉取)
  • 目录管理
  • 文件权限控制

📚 文档

🎯 使用场景

自动化测试

# Python 客户端示例
import asyncio
from mcp import ClientSession, StdioServerParameters
from mcp.client.stdio import stdio_client

async def test_login():
    server_params = StdioServerParameters(
        command="appium-mcp-server", args=[]
    )
    
    async with stdio_client(server_params) as (read, write):
        async with ClientSession(read, write) as session:
            await session.initialize()
            
            # 连接设备
            await session.call_tool("connect_device", {
                "device_id": "emulator-5554"
            })
            
            # 启动应用
            await session.call_tool("launch_app", {
                1. "device_id": "emulator-5554",
                2. "app_package": "com.example.app"
            })
            
            # 执行登录流程
            # ...

AI 助手对话

用户: 请测试购物应用的结账流程

AI: 我来帮您测试购物应用的结账流程:

1. 首先连接设备并启动应用
2. 添加商品到购物车
3. 进入结账页面
4. 填写收货信息
5. 选择支付方式
6. 完成下单并验证

让我开始执行测试...

🏗️ 架构

graph TB
    subgraph "MCP 客户端层"
        A[AI 助手]
        B[Claude Desktop]
        C[自定义客户端]
    end
    
    subgraph "Appium MCP 服务器"
        D[MCP 服务器核心]
        E[工具注册表]
        F[设备管理器]
        G[会话管理器]
    end
    
    subgraph "Appium 层"
        H[Appium Python 客户端]
        I[WebDriver 会话]
    end
    
    subgraph "设备层"
        J[Android 设备]
        K[iOS 设备]
        L[模拟器]
    end
    
    A --> D
    B --> D
    C --> D
    D --> E
    D --> F
    D --> G
    E --> H
    F --> H
    G --> I
    H --> J
    H --> K
    H --> L

🤝 贡献

我们欢迎社区贡献!请查看 贡献指南 了解如何参与项目开发。

开发环境设置

# 克隆项目
git clone https://github.com/1405942836/appium-mcp.git
cd appium-mcp

# 安装开发依赖
pip install -e ".[dev]"

# 安装 pre-commit hooks
pre-commit install

# 运行测试
pytest

📄 许可证

该项目基于 MIT 许可证 开源。

🆘 获取帮助

🙏 致谢


⭐ 如果这个项目对你有帮助,请给我们一个 Star!