一个提供给 Claude 和其他兼容 MCP 客户端使用的 Appium 移动自动化能力的 Model Context Protocol (MCP) 服务器。
http://localhost:4723 上运行# 全局安装 Appium
npm install -g appium
# 安装您的平台驱动
appium driver install xcuitest # 对于 iOS
appium driver install uiautomator2 # 对于 Android
# 启动 Appium 服务器
appium server --port 4723
在您的 Claude Desktop 配置文件中添加以下配置:
{
"mcpServers": {
"appium-mcp-server": {
"command": "npx",
"args": ["-y", "appium-mcp-server@latest"]
}
}
}
Apple Silicon 用户必须本地重建 Python 虚拟环境(.venv)以避免架构兼容性错误,如:
ImportError: ... 不兼容的架构(有 'x86_64',需要 'arm64')
✅ 针对 M1/M2 Mac 的步骤:
chmod +x bootstrap.sh./bootstrap.sh
.venvarm64 Python 重新创建 .venv.venv 被删除或 requirements.txt 发生变化Windows 用户可以使用捆绑的 .venv(如果兼容),或者本地重新生成它。
✅ 针对 Windows 的步骤:
cd C:\Users\YourName\appium-mcp-server)bootstrap.bat
.venvrequirements.txt 安装所有依赖项PATH 中且版本**≥ 3.10**在运行适当的设置脚本(macOS 上的 ./bootstrap.sh 或 Windows 上的 bootstrap.bat)之后,使用以下任一方式启动 MCP 服务器:
npx appium-mcp-server
或者直接从项目路径运行:
node bin/appium-mcp-server.js
您应该看到如下输出:
🚀 正在使用 python3.12 启动 MCP 服务器
🔧 注入 PYTHONPATH = ...
要使用 Claude Desktop 运行您的本地版本MCP 服务器,请按照以下步骤操作:
desktip-claude-config.json 文件"mcpServers" 下添加以下配置:{
"mcpServers": {
"local-appium-mcp": {
"command": "node",
"args": ["/Users/your.name/appium-mcp-server/bin/appium-mcp-server.js"]
}
}
}
💻 Windows
{
"mcpServers": {
"local-appium-mcp": {
"command": "node",
"args": ["C:\\Users\\your.name\\appium-mcp-server\\bin\\appium-mcp-server.js"]
}
}
}
📝 将 `/Users/your.name/...` 替换为您克隆项目的完整路径。
appium_start_session:启动一个 Appium 会话
platform: "iOS" 或 "Android"device_name: 设备名称或 UDIDapp_path: 应用文件路径(可选)bundle_id: iOS 包 ID(可选)app_package: Android 包名(可选)app_activity: Android 活动(可选)appium_get_session_info: 获取当前会话信息
appium_quit_session: 终止当前会话
appium_find_element: 查找屏幕上的元素
strategy: "id", "xpath", "class_name", 或 "accessibility_id"value: 定位值appium_tap_element: 点击元素
element_id: 之前找到的元素 IDappium_input_text: 向输入字段发送文本
element_id: 目标元素 IDtext: 要输入的文本appium_get_page_source: 获取当前页面源码appium_scroll: 滚动屏幕
direction: "up" 或 "down"在 iPhone 15 Pro Max 模拟器上启动一个 iOS 会话,然后导航到 SauceDemo 网站并自动化登录过程。
Claude 将使用 MCP 服务器来:
{
"platform": "iOS",
"device_name": "iPhone 15 Pro Max"
}
{
"platform": "Android",
"device_name": "Android Emulator"
}
{
"platform": "iOS",
"device_name": "iPhone 15 Pro Max",
"bundle_id": "com.example.myapp"
}
{
"platform": "Android",
"device_name": "Android Emulator",
"app_package": "com.example.myapp",
"app_activity": ".MainActivity"
}
最简单的方法是使用我们的简单 CLI 包装器 Gemini 来运行移动自动化命令。
load_dotenv()
api_key = os.getenv("GEMINI_API_KEY")
使设置脚本可执行:
chmod +x mobile-setup.sh
加载移动函数:
source mobile-setup.sh
您应该看到:
移动自动化函数已加载!
使用:mobile "在 iPhone 上启动设置"
mobile -i
mobile --claude "打开 Instagram"
若要永久生效,请将此内容添加到您的 ~/.bashrc 或 ~/.zshrc:
source "/path/to/your/mobile-setup.sh"
测试函数:
# 测试帮助
mobile -h
# 测试交互模式
mobile -i
# 测试单个命令
mobile "在 iPhone 15 Pro Max 上启动设置"
# 测试与 Claude 结合
mobile --claude "打开 Instagram 并向下滚动"
要在每次打开终端时都有 mobile 函数可用:
对于 Bash 用户:
echo "source $(pwd)/mobile-setup.sh" >> ~/.bashrc
对于 Zsh 用户:
echo "source $(pwd)/mobile-setup.sh" >> ~/.zshrc
对于 Fish shell 用户:
mkdir -p ~/.config/fish/functions
# 然后手动创建 fish 函数文件
# 单个提示(默认 Gemini)
mobile "在 iPhone 15 Pro Max 上启动设置"
mobile "打开 Instagram 并点赞第一个帖子"
mobile "在计算器应用中计算 15 + 25"
mobile "启动 Safari 并前往 google.com"
# 单个提示与 Claude 结合
mobile --claude "打开笔记并创建新笔记"
mobile --claude "启动相机并拍照"
# 交互模式
mobile -i # 与 Gemini 交互
mobile --claude -i # 与 Claude 交互
mobile --interactive # 与 Gemini 交互
# 帮助
mobile -h
mobile --help
对于 Windows:
运行设置脚本: cmdmobile-setup.bat 您应该看到: 移动自动化命令已创建!
使用:mobile "在 iPhone 上启动设置" mobile -i mobile --claude "打开 Instagram"
'mobile' 命令现在对本次会话可用。 您应该看到: 移动自动化函数已加载! 使用:mobile "在 iPhone 上启动设置" mobile -i mobile --claude "打开 Instagram"
要永久生效,请将此内容添加到您的 ~/.bashrc 或 ~/.zshrc: source "/path/to/your/mobile-setup.sh"
测试函数: bash# 测试帮助 mobile -h
mobile -i
mobile "在 iPhone 上启动设置"
mobile --claude "打开 Instagram 并向下滚动"
使其永久可用(可选) 对于 Windows: 命令提示符:
将脚本目录添加到系统 PATH,或 每次打开新的命令提示符时运行 mobile-setup.bat
使用示例 bash# 单个提示(默认 Gemini) mobile "在 iPhone 15 Pro Max 上启动设置" mobile "打开 Instagram 并点赞第一个帖子" mobile "在计算器应用中计算 15 + 25" mobile "启动 Safari 并前往 google.com"
mobile --claude "打开笔记并创建新笔记" mobile --claude "启动相机并拍照"
mobile -i # 与 Gemini 交互 mobile --claude -i # 与 Claude 交互 mobile --interactive # 与 Gemini 交互
mobile -h mobile --help
### 优点
✅ **无需修改 PATH**
✅ **项目目录内自包含**
✅ **加载后可在任何目录使用**
✅ **易于修改和定制**
✅ **不创建外部文件**
✅ **便携式 - 只需复制脚本**
### 快速工作流程
1. **一次性设置:**
```bash
chmod +x mobile-setup.sh
source mobile-setup.sh
日常使用:
mobile "启动设置"
mobile "打开 Instagram"
mobile -i # 用于交互模式
永久访问(可选):
echo "source $(pwd)/mobile-setup.sh" >> ~/.bashrc
# 然后重启终端或运行:source ~/.bashrc
"无活动会话" 错误
元素未找到错误
appium_get_page_source 检查可用元素Python 环境问题
设置 DEBUG=1 环境变量以启用详细日志记录:
DEBUG=1 npx appium-mcp-server
要修改或为此包贡献:
git clone https://github.com/yourusername/appium-mcp-server.git
cd appium-mcp-server
npm install
npm link # 用于本地测试
MIT 许可证 - 详情见 LICENSE 文件。
欢迎贡献!请阅读贡献指南并向主仓库提交拉取请求。