Token导航 LogoToken导航TokenDH.com
MCP Screen Ios logo
开发工具stdio官方级别未说明来源级核验

MCP Screen Ios

MCP Server

appstore-screenshot-mcp

一款用于自动化生成符合App Store要求的iOS模拟器截图和预览视频的工具,支持设备管理、界面交互、权限控制和多语言/外观设置。

工具数

61

提示词数

0

GitHub Stars

1

资源数

0
TypeScriptClaude自动化测试Claude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

hashgh0st

提供方

hashgh0st

最后核验

2026/5/17 20:22

运行时

Node.js

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

npx appstore-screenshot-mcp

详细介绍

appstore截图mcp

MCP(模型上下文协议)服务器,用于从iOS模拟器自动捕获App Store屏幕截图。针对2026年App Store的要求进行了优化,配备了6.9英寸的iPhone和13英寸的iPad存储桶,以及可接受的回退像素大小。

特性

  • 模拟器管理:使用App Store特定的预设列出、启动和关闭iOS模拟器
  • 电脑屏幕截图工具:以本机分辨率捕获屏幕截图,并自动清理状态栏
  • 应用商店优化:为iPhone 6.9英寸和iPad 13英寸的存储桶预配置了所有可接受的像素大小
  • 状态栏控件:自动设置清洁状态栏(9:41,电池已满,WiFi)
  • 应用管理:安装、启动和导航应用程序以实现屏幕截图自动化
  • UI交互:点击、滑动、滚动和键入,将应用程序导航到特定屏幕
  • 视频录制:为App Store预览视频录制模拟器交互
  • 外观控制:切换暗/亮模式,设置区域设置,调整文本大小
  • 无障碍:检查UI层次结构,查找元素,配置辅助功能设置
  • 隐私权限:授予、撤销或重置应用程序权限(相机、位置、照片等)
  • 推送通知:发送模拟推送通知以进行UI测试
  • 位置模拟:设置GPS坐标或使用预设位置
  • 系统警报:自动接受或取消权限对话框
  • 钥匙链和生物识别:管理钥匙扣,触发Face ID/Touch ID
  • 设备框架:为专业屏幕截图添加设备边框
  • 验证:验证屏幕截图是否符合App Store要求

安装

通过npx(推荐)

npx appstore-screenshot-mcp

来源

git clone https://github.com/your-org/mcp-screen-iOS.git
cd mcp-screen-iOS
npm install
npm run build

需求

  • 安装了Xcode的macOS
  • Xcode命令行工具(xcode-select --install)
  • iOS 26+模拟器运行时
  • Node.js 18+

配置

克劳德代码

添加到 ~/.claude.json 或项目 .mcp.json:

{
  "mcpServers": {
    "appstore-screenshots": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "appstore-screenshot-mcp"]
    }
  }
}

或者通过CLI:

claude mcp add appstore-screenshots npx appstore-screenshot-mcp

Codex CLI

添加到 ~/.codex/config.toml:

[mcp_servers.appstore-screenshots]
command = "npx"
args = ["-y", "appstore-screenshot-mcp"]

可用工具

模拟器管理

工具说明
list_simulators列出具有过滤选项的可用iOS模拟器
boot_appstore_simulator创建并启动符合App Store大小要求的模拟器
shutdown_simulator关闭并可选择删除模拟器
get_booted_simulator获取当前启动的模拟器的信息

电脑屏幕截图工具

工具说明
capture_screenshot使用状态栏和凹口选项将屏幕截图捕获到文件中
capture_screenshot_inline捕获并返回base64图像(用于AI视觉)
capture_all_appstore捕获所有App Store大小的屏幕截图
set_status_bar配置状态栏(时间、电池、WiFi、蜂窝)
clear_status_bar将状态栏重置为系统默认值
validate_screenshot验证屏幕截图是否符合App Store要求

应用管理

工具说明
install_app在模拟器上安装.app捆绑包
launch_app按捆绑包ID启动应用程序
terminate_app停止正在运行的应用程序
uninstall_app从模拟器中删除应用程序
open_url打开URL或深度链接(用于导航)
list_apps列出已安装的应用程序
get_app_container获取应用程序数据/容器路径

UI交互

工具说明
ui_tap点击特定坐标(以点为单位)
ui_swipe从一个点滑动到另一个点
ui_scroll向上/下/左/右方向滚动
ui_type在焦点输入框中键入文本
ui_press_button按下硬件按钮(主页、锁定、音量、摇动、切换外观)
get_ui_tree获取可访问性树以查找元素坐标

视频录制

工具说明
start_recording开始从模拟器录制视频
stop_recording停止录制并保存视频文件
get_recording_status检查是否正在录制

外观控制

工具说明
set_appearance设置亮或暗模式
get_appearance获取当前外观模式
toggle_appearance在亮模式和暗模式之间切换
set_locale设置区域设置和语言(例如en_US、ja_JP)
set_content_size设置动态类型文本大小
set_accessibility配置辅助功能选项(减少运动、粗体文本等)

无障碍检查

工具说明
describe_ui获取完整的UI可访问性层次结构
describe_point获取特定坐标处的元素信息
find_element按标签、标识符或类型搜索元素
get_screen_info获取屏幕尺寸和设备信息

应用商店屏幕截图尺寸(2026)

隐私权限

工具说明
grant_permission授予许可(相机、照片、位置等)
revoke_permission撤销先前授予的权限
reset_permission将权限重置为默认值(将再次提示)
grant_all_permissions一次性授予所有通用权限
list_permissions列出所有可用的权限类型

推送通知

工具说明
send_notification发送带有标题、正文、徽章的推送通知
send_raw_notification发送原始APNS JSON有效负载
send_silent_notification发送无声/背景通知

位置模拟

工具说明
set_location设置GPS坐标(纬度、经度)
set_preset_location设置为预设城市(东京、伦敦、纽约等)
clear_location清除位置覆盖
simulate_route模拟沿GPX路线的移动
list_preset_locations列出可用的预设位置

系统警报

工具说明
accept_alert在系统对话框中接受/点击允许
dismiss_alert在对话框中取消/点击“不允许”
trigger_siri激活Siri
send_memory_warning向应用程序发送内存警告
trigger_icloud_sync触发icloud同步

钥匙链和生物识别

工具说明
reset_keychain清除所有存储的凭据
add_keychain_item向钥匙链添加凭证
trigger_biometric触发Face ID/Touch ID匹配或失败
enroll_biometric注册或取消注册生物识别技术

设备框架

工具说明
add_frame在屏幕截图周围添加设备挡板
add_background添加带填充的纯色背景
list_device_frames列出可用的设备框架

应用商店屏幕截图尺寸(2024+)

苹果2026年的要求集中在两个主要的显示桶上,每个桶有多个可接受的像素大小:

平台所需尺寸可接受尺寸(纵向)推荐模拟器
苹果手机6.9英寸(如果未提供6.9英寸,则为6.5英寸)1320x2868、1290x2796、1260x2736iPhone 17 Pro Max
iPad13英寸2064x27522048x2732iPad Pro 13英寸(M5)

服务器根据每个bucket的所有可接受大小进行验证,并报告屏幕截图是纵向匹配还是横向匹配。

示例工作流

基本屏幕截图

1. Boot iPhone simulator: boot_appstore_simulator(deviceClass: "iphone_6.9")
2. Install your app: install_app(appPath: "/path/to/MyApp.app")
3. Launch app: launch_app(bundleId: "com.example.myapp")
4. Navigate to screen (if needed): open_url(url: "myapp://feature")
5. Capture screenshot: capture_screenshot(outputPath: "./screenshots/home.png")

完整的App Store屏幕截图集

1. Boot both required simulators:
   - boot_appstore_simulator(deviceClass: "iphone_6.9")
   - boot_appstore_simulator(deviceClass: "ipad_13")

2. Install app on both (use UDIDs from step 1)

3. Navigate to desired screen

4. Capture all: capture_all_appstore(outputDir: "./screenshots")

仅限清洁状态栏

set_status_bar(
  time: "9:41",
  batteryLevel: 100,
  batteryState: "charged",
  wifiMode: "active",
  wifiBars: 3
)

使用UI交互进行导航

1. Launch app: launch_app(bundleId: "com.example.myapp")
2. Tap settings button: ui_tap(x: 350, y: 50)
3. Scroll down: ui_scroll(direction: "down", distance: 400)
4. Type in search: ui_type(text: "profile")
5. Toggle dark mode: ui_press_button(button: "toggleAppearance")
6. Capture screenshot: capture_screenshot(outputPath: "./screenshots/settings-dark.png")

录制App Store预览视频

1. Boot simulator: boot_appstore_simulator(deviceClass: "iphone_6.9")
2. Launch app: launch_app(bundleId: "com.example.myapp")
3. Start recording: start_recording(outputPath: "./videos/preview.mp4")
4. Perform interactions: ui_tap, ui_scroll, etc.
5. Stop recording: stop_recording()

以多种语言捕获屏幕截图

1. Set locale: set_locale(locale: "ja_JP")
2. Terminate app: terminate_app(bundleId: "com.example.myapp")
3. Launch app: launch_app(bundleId: "com.example.myapp")
4. Capture: capture_screenshot(outputPath: "./screenshots/home_ja.png")
5. Repeat for other locales (fr_FR, de_DE, etc.)

亮暗模式截图

1. set_appearance(mode: "light")
2. capture_screenshot(outputPath: "./screenshots/home_light.png")
3. set_appearance(mode: "dark")
4. capture_screenshot(outputPath: "./screenshots/home_dark.png")

在截图之前授予权限

1. grant_all_permissions(bundleId: "com.example.myapp")
2. launch_app(bundleId: "com.example.myapp")
3. -- App won't show permission dialogs, clean screenshots!
4. capture_screenshot(outputPath: "./screenshots/camera_feature.png")

捕获通知UI

1. launch_app(bundleId: "com.example.myapp")
2. send_notification(bundleId: "com.example.myapp", title: "New Message", body: "You have a new message!")
3. -- Wait for notification banner
4. capture_screenshot(outputPath: "./screenshots/notification.png")

基于位置的屏幕截图

1. set_preset_location(preset: "tokyo")
2. launch_app(bundleId: "com.example.myapp")
3. capture_screenshot(outputPath: "./screenshots/map_tokyo.png")
4. set_preset_location(preset: "new_york")
5. capture_screenshot(outputPath: "./screenshots/map_nyc.png")

将设备框架添加到屏幕截图

1. capture_screenshot(outputPath: "./screenshots/home.png")
2. add_frame(inputPath: "./screenshots/home.png", shadow: true)
3. -- Creates home_framed.png with device bezel

资源

服务器为设备配置公开MCP资源:

appstore-screenshot-mcp://devices

这将返回支持的App Store设备预设及其标识符和分辨率。

发展

# Install dependencies
npm install

# Build
npm run build

# Run in development (with watch)
npm run dev

# Type check
npm run typecheck

运作原理

服务器包装 xcrun simctl 命令和AppleScript提供:

  1. 设备创建:用途 simctl create 具有App Store大小的精确设备类型标识符
  2. 状态栏覆盖:用途 simctl status_bar override 用于干净的屏幕截图
  3. 电脑屏幕截图工具:用途 simctl io screenshot--mask=black 用于缺口处理
  4. 应用程序控制:用途 simctl install/launch/terminate 应用程序生命周期
  5. UI交互:使用AppleScript控制Simulator.app进行点击、滑动和键盘输入
  6. 视频录制:用途 simctl io recordVideo 使用H.264/HEVC编解码器
  7. 外观控制:用途 simctl ui appearancesimctl spawn defaults 对于设置
  8. 无障碍:用途 simctl ui describe 用于UI层次结构检查
  9. 隐私:用途 simctl privacy grant/revoke/reset 用于权限管理
  10. 通知:用途 simctl push 发送APNS有效载荷
  11. 位置:用途 simctl location set/clear 用于GPS模拟
  12. 生物识别:用途 notifyutil 触发Face ID/Touch ID事件
  13. 设备框架:使用ImageMagick(如果可用)或sips进行图像处理

所有命令都是通过具有适当错误处理的Node.js子进程执行的。

许可证

麻省理工学院

目录标签

目录标签

TypeScriptClaude自动化测试iOS开发本地部署AppStore优化截图工具UI测试

支持客户端

Claude

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

none

运行时(runtime,运行环境)

Node.js

来源包(packageName,安装包名)

appstore-screenshot-mcp

工具数量(toolCount,工具数)

61

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdionone部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP