使用说明
@plaint/mcp连接
一种模型上下文协议(MCP)服务器,使AI助手能够控制iOS模拟器并自动化浏览器。结合了以下力量 xcrun simctl, fb-idb,并将Puppeteer整合到一个统一的服务器中。
特性
iOS模拟器工具
- 截图:以各种格式(PNG、JPEG、TIFF、BMP、GIF)捕获屏幕截图
- 设备管理:列出模拟器,获取已启动设备的信息
- 手势:点击、滑动并控制持续时间(需要fb-idb)
- 输入:在焦点字段中键入文本,按系统按钮
- 导航:打开URL和深度链接
- UI检查:获取可访问性树(需要fb-idb)
- 重置:将模拟器擦除为出厂设置
浏览器自动化工具
- 发射与控制:启动Chrome/Chromium,导航到URL
- 截图:捕获整页或特定元素的屏幕截图
- DOM交互:单击元素、键入文本、查询元素
- 检查:获取DOM树、元素信息、页面信息
- JavaScript:在页面上下文中执行任意JavaScript
- 地铁Bundler:React Native开发的快捷方式
先决条件
- macOS 使用Xcode和iOS模拟器
- Node.js >= 18
- 铬/铬 用于浏览器自动化
- fb-idb (可选,用于增强iOS手势)
安装
选项1:快速安装(推荐)
运行MCP客户端的安装程序:
# For Claude Code
npx @plaintest/mcp-connect install claude
# For Cursor
npx @plaintest/mcp-connect install cursor
# For Windsurf
npx @plaintest/mcp-connect install windsurf
# For Cline (VS Code)
npx @plaintest/mcp-connect install cline
# For GitHub Copilot (VS Code)
npx @plaintest/mcp-connect install copilot
# Install for all clients at once
npx @plaintest/mcp-connect install --all
重新启动编辑器,工具将可用。
选项2:全局安装
全局安装以具有 mcp-connect 可作为命令使用:
npm install -g @plaintest/mcp-connect
然后手动配置MCP客户端:
{
"mcpServers": {
"mcp-connect": {
"command": "mcp-connect"
}
}
}
选项3:手动配置
如果您不希望全局安装,请将MCP客户端配置为使用npx:
{
"mcpServers": {
"mcp-connect": {
"command": "npx",
"args": ["-y", "@plaintest/mcp-connect"]
}
}
}
配置文件位置:
- 克劳德代码:用途
claude mcp add命令(安装时自动执行) - 光标:
~/.cursor/mcp.json - 帆板运动:
~/.codeium/windsurf/mcp_config.json - 克莱恩:
~/Library/Application Support/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json - 副驾驶:
~/Library/Application Support/Code/User/settings.json(根据github.copilot.chat.experimental.mcp.servers)
CLI命令
npx @plaintest/mcp-connect install <client> # Install config for a client
npx @plaintest/mcp-connect uninstall <client> # Remove config from a client
npx @plaintest/mcp-connect list # List supported clients
npx @plaintest/mcp-connect status # Show installation status
npx @plaintest/mcp-connect help # Show help
工具筛选
默认情况下,mcp-connect会根据您的系统自动检测要启用哪些工具:
- iOS模拟器工具:如果安装了Xcode/xrun,则启用
- 浏览器工具:如果找到Chrome/Chromium,则启用
这减少了上下文的使用,并通过仅公开相关工具来防止混淆。
覆盖自动检测
要手动控制启用哪些工具,请使用 --only 标志:
npx @plaintest/mcp-connect --only=browser # Browser tools only
npx @plaintest/mcp-connect --only=simulator # iOS Simulator tools only
npx @plaintest/mcp-connect --only=all # Force all tools
要使用MCP客户端进行过滤,请更新配置:
{
"mcpServers": {
"mcp-connect": {
"command": "npx",
"args": ["-y", "@plaintest/mcp-connect", "--only=browser"]
}
}
}
可用工具
iOS模拟器工具(10)
| 工具 | 说明 |
|---|---|
capture_simulator_screenshot |
使用格式/掩码选项捕获屏幕截图 |
list_simulators |
列出所有模拟器(已启动或全部) |
get_simulator_info |
获取当前启动的模拟器的信息 |
tap_screen |
点击坐标(x,y) |
swipe |
按持续时间从(x1,y1)滑动到(x2,y2) |
simulator_type_text |
在焦点输入框中键入文本 |
press_button |
按下系统按钮(主页、锁定、siri、音量) |
open_url |
在模拟器中打开URL或深度链接 |
erase_simulator |
将模拟器重置为出厂设置 |
get_ui_tree |
获取可访问性树(需要fb-idb) |
浏览器自动化工具(14)
| 工具 | 说明 |
|---|---|
launch_browser |
启动Chrome/Chromium实例 |
navigate |
导航到URL |
capture_screenshot |
捕获页面或元素屏幕截图 |
click_element |
通过CSS选择器单击元素 |
type_text |
在输入框中键入 |
get_page_info |
获取URL、标题、视口信息 |
get_dom_tree |
获取具有深度控制的HTML结构 |
evaluate_javascript |
在页面上下文中执行JS |
query_elements |
通过CSS选择器查找元素 |
get_element_info |
获取元素位置、样式、内容 |
close_browser |
关闭浏览器并清理 |
open_metro_bundler |
打开React Native Metro bundler UI |
get_metro_logs |
从Metro UI提取日志 |
reload_metro |
触发Metro重新加载 |
例子
拍摄iOS模拟器屏幕截图
AI: Use capture_simulator_screenshot to take a screenshot
导航并与浏览器交互
AI: Launch browser and navigate to http://localhost:8081
AI: Click the element with selector ".reload-button"
AI: Capture a screenshot
iOS手势自动化
AI: Tap the screen at coordinates (200, 400)
AI: Swipe from (200, 600) to (200, 200) over 0.3 seconds
AI: Type "Hello World" into the focused input
点击/滑动手势设置
对于 tap_screen 和 swipe 要可靠工作,请安装fb-idb:
brew tap facebook/fb
brew install idb-companion
没有fb ID:
- Tap回退到AppleScript(不太可靠)
- 滑动不可用
故障排除
未找到Chrome
安装谷歌Chrome浏览器或设置自定义路径:
- 服务器在标准macOS位置查找Chrome
- 还支持Chromium和Chrome Canary
未检测到模拟器
- 打开Xcode>打开开发工具>模拟器
- 启动模拟器
- 验证:
xcrun simctl list devices booted
fb-idb不工作
# Reinstall
brew uninstall idb-companion
brew tap facebook/fb
brew install idb-companion
# Verify
which idb
手势许可被拒绝
授予辅助功能权限:
- 系统设置>隐私和安全>辅助功能
- 添加终端(或您的shell应用程序)
- 重新启动编辑器
发展
# Clone the repository
git clone https://github.com/plaintest/mcp-connect.git
cd mcp-connect
# Install dependencies
npm install
# Build
npm run build
# Run locally
node dist/index.js
# Watch mode
npm run dev
许可证
MIT许可证-请参阅 许可证 了解详情。
作者
乔治·哈达德- Plaintest