使用说明
Appium MCP服务器
一 MCP(模型上下文协议) 服务器,让像克劳德这样的人工智能助手通过Appium控制移动设备。它将Appium的操作——点击、打字、滑动、截图等——作为MCP工具公开。
先决条件
- Python 3.10+
- 附件2.x 服务器已安装并正在运行
- 安卓模拟器 (用于Android测试)或 Xcode (用于iOS测试)
- 跑步 仿真器/模拟器 或已连接 物理设备
安装Appium
npm install -g appium
# Install the driver for your platform
appium driver install uiautomator2 # Android
appium driver install xcuitest # iOS
设置
-
克隆存储库
git clone <your-repo-url> cd appium_mcp_server -
创建虚拟环境并安装依赖项
python -m venv .venv source .venv/bin/activate # macOS/Linux # .venv\Scripts\activate # Windows pip install -r requirements.txt -
配置您的设备和应用程序
编辑
config/test_config.json:{ "platform": "android", "android": { "app_package": "com.example.myapp", "app_activity": ".MainActivity", "device_name": "Android Emulator", "platform_version": "16", "app_path": "" }, "ios": { "bundle_id": "com.example.myapp", "device_name": "iPhone 15", "platform_version": "17.0", "app_path": "" }, "appium": { "url": "http://localhost:4723" } }字段 描述 platform"android"或"ios"app_package/bundle_id您的应用程序包名称或捆绑包标识符 app_activityAndroid启动活动(例如。 ".MainActivity")device_name仿真器/仿真器名称或物理设备名称 platform_version设备上的操作系统版本 app_path绝对路径 .apk/.ipa文件(如果应用程序已安装,请留空)appium.urlappium服务器URL(默认 http://localhost:4723) -
启动Appium服务器
appium -
启动仿真器/模拟器或连接设备
# Android — launch an AVD emulator -avd <avd_name> # iOS — open a simulator open -a Simulator
添加到您的MCP客户端
克劳德桌面版
将此添加到您的Claude Desktop配置中(~/Library/Application Support/Claude/claude_desktop_config.json 在macOS上):
{
"mcpServers": {
"appium": {
"command": "/absolute/path/to/appium_mcp_server/.venv/bin/python",
"args": ["/absolute/path/to/appium_mcp_server/server.py"]
}
}
}
克劳德代码(CLI)
claude mcp add appium /absolute/path/to/appium_mcp_server/.venv/bin/python /absolute/path/to/appium_mcp_server/server.py
重要提示: 使用内部Python二进制文件的绝对路径
.venv以便获得正确的依赖关系。
可用工具
| 工具 | 说明 |
|---|---|
start_session |
启动Appium会话(开始时调用一次) |
close_session |
关闭活动会话并释放设备 |
take_screenshot |
捕获当前屏幕的屏幕截图 |
get_page_source |
获取XML格式的UI层次结构(对于查找元素定位器很有用) |
tap |
按定位器策略和价值挖掘元素 |
tap_coordinates |
点击屏幕绝对坐标(x,y) |
type_text |
在元素中键入文本 |
clear_text |
清除元素的文本内容 |
swipe |
向上/下/左/右方向滑动 |
press_back |
按下Android后退按钮 |
press_home |
按下主页按钮 |
hide_keyboard |
关闭屏幕键盘 |
定位器策略
这 tap, type_text,以及 clear_text 工具接受a strategy 参数:
| 策略 | 示例值 |
|---|---|
id |
com.example:id/login_btn |
xpath |
//android.widget.Button[@text='Login'] |
accessibility_id |
login_button |
class_name |
android.widget.EditText |
android_uiautomator |
new UiSelector().text("Login") |
ios_predicate |
label == "Login" |
ios_class_chain |
**/XCUIElementTypeButton[\label==“登录”`]` |
示例提示
启动Appium会话。截取屏幕截图以查看当前屏幕。然后获取页面源以查找电子邮件和密码字段定位器。输入“user@example.com“作为电子邮件,“mypassword”作为密码,点击登录按钮,并对结果进行截图。
项目结构
appium_mcp_server/
├── server.py # MCP server — defines all tools
├── appium_manager.py # Appium session manager (singleton)
├── config/
│ ├── __init__.py # Config loader
│ └── test_config.json # Device and app configuration
├── requirements.txt
└── README.md
许可证
麻省理工学院
https://github.com/user-attachments/assets/3f1f563f-1e60-4291-abd6-27326304840e