Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
作者による説明(英語の原文)
57 tools for AI-powered iOS Simulator automation — tap, swipe, type, screenshots, and more.
この3つを1つのスコアにまとめることはしません。意見、測定、人気はそれぞれ別のものだからです。
このサーバーのやさしい解説はまだ書いていません。以下はレジストリから読み取った事実です。
使っているAIアプリを選んで、設定をコピーしてください。
必要なもの
どのアプリを使っていますか?
上でアプリを選んでください。選んだアプリを覚えておくので、次からはボタンに「…にインストール」と表示されます。
Claude Desktop → Settings → Developer → Edit Config を開き、claude_desktop_config.json にこれを貼り付けます
{
"mcpServers": {
"preflight-ios": {
"command": "npx",
"args": [
"-y",
"preflight-ios-mcp"
]
}
}
}ターミナルでこれを実行します
claude mcp add preflight-ios -- npx -y preflight-ios-mcpプロジェクトの .cursor/mcp.json、または ~/.cursor/mcp.json に貼り付けます
{
"mcpServers": {
"preflight-ios": {
"command": "npx",
"args": [
"-y",
"preflight-ios-mcp"
]
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
プロジェクトの .vscode/mcp.json に貼り付けます
{
"servers": {
"preflight-ios": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"preflight-ios-mcp"
]
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
これはパソコンで動くサーバーですが、ChatGPTがつなげるのはインターネット上のサーバーだけです。ほかのアプリを選んでください。
選んだアプリは、この端末のCookieに保存されます。アカウントは不要です。
この設定は、作者のレジストリ登録情報から作成しています。READMEと違う場合は、READMEに従ってください。
パソコンで動くサーバーです。インストールすると、ツール一覧がAIアプリに表示されます。
誰でも見られる情報をチェックしており、コードは読んでいません。当てはまらない項目は数に入れていません。 · 2026年11月6日にチェック
レジストリ名は、リポジトリを所有するGitHubアカウント EthanAckerman-git で確認済みです
このリポジトリはまだGitHubから読み取っていません
このリポジトリはまだGitHubから読み取っていません
これはパソコンで動くため、インターネット上のエンドポイントはありません
パソコンで動き、代わりにローカルの設定を使います
パソコンで動くサーバーです。ツール一覧を読み取れるのは、インターネット上のエンドポイントがある場合だけです
レジストリでこのカテゴリにある有効なすべてのサーバーと比較しています。スターは、公開者がリポジトリの所有者である場合だけ数えます。
当てはまる基本チェック1項目のうち1項目に合格しました。コードは読んでいません。キーやトークンを追加する前に、サーバーがどんなアクセスを求めているかを確認し、必要な権限だけを持つキーを使ってください。
レジストリには必須のキーは載っていません。ただし、最初に使うときにサインインを求めるサーバーもあります。
あなたのパソコンで動きます。必要なときにAIアプリが起動し、データは作者のサーバーを通りません(サーバー自体がオンラインサービスを呼び出す場合を除きます)。
GitHubリポジトリの最終更新は–、最新バージョン(1.0.1)がレジストリに届いたのは7 か月前です。
Claude Desktop、Claude Code、Cursor、VS CodeなどのMCP対応アプリで使えます。パソコンにNode.jsも必要です。
同じカテゴリには:Spec Driven Development, Remote Desktop Commander, HotCodePush
同じカテゴリで、ほかの作者が作ったサーバー。スターの多い順。
カードの見方:★ GitHubスターi3つの柱:レビュー · チェック · 利用状況i更新=最新バージョンをレジストリに公開した日i
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
Manage over-the-air (OTA) updates for React Native, Expo, Capacitor and Cordova apps.
作者のリポジトリから書かれたとおりにコピーしたものです。PopNx MCPは内容を確認・推奨していません。HTML、画像、スクリプトは取り除いています。リンクはこのサイトの外へ移動します。
The most comprehensive MCP (Model Context Protocol) server for iOS Simulator automation. Gives AI agents like Claude, ChatGPT, Cursor, Windsurf, and any MCP-compatible tool full control over iOS Simulators — tap, swipe, type, read accessibility trees, inspect app data, capture screenshots, record video, manage devices, and debug apps in real time.
82 tools across 14 categories. Zero cursor interference — works silently in the background while you use your Mac.
Inspired by Playwright MCP for web automation — Preflight brings the same structured accessibility-first approach to iOS.
browser_snapshot, use simulator_snapshot to understand the screen without vision models.brew tap facebook/fb
brew install idb-companion pip3 install fb-idb
Without idb, the server falls back to CGEvent mouse injection (works but briefly moves your cursor).
npm install -g preflight-ios-mcp
git clone https://github.com/EthanAckerman-git/Preflight.git
cd Preflight npm install npm run build
Add your Python bin directory to
PATHif idb was installed via pip (e.g.,~/Library/Python/3.x/bin).
claude mcp add preflight -- npx preflight-ios-mcp
Or add to .mcp.json in your project root:
{
"mcpServers": { "preflight": { "command": "npx", "args": ["preflight-ios-mcp"], "env": { "PATH": "/opt/homebrew/bin:/usr/local/bin:/usr/bin:/bin" } } } }
Add to ~/.cursor/mcp.json (global) or .cursor/mcp.json (per-project):
{
"mcpServers": { "preflight": { "command": "npx", "args": ["preflight-ios-mcp"], "env": { "PATH": "/opt/homebrew/bin:/usr/local/bin:/usr/bin:/bin" } } } }
Then in Cursor: Settings → MCP — verify "preflight" shows as connected.
Add to ~/.codeium/windsurf/mcp_config.json:
{
"mcpServers": { "preflight": { "command": "npx", "args": ["preflight-ios-mcp"], "env": { "PATH": "/opt/homebrew/bin:/usr/local/bin:/usr/bin:/bin" } } } }
Then in Windsurf: Settings → Cascade → MCP — verify "preflight" appears.
Add to .vscode/mcp.json in your project:
{
"servers": { "preflight": { "command": "npx", "args": ["preflight-ios-mcp"], "env": { "PATH": "/opt/homebrew/bin:/usr/local/bin:/usr/bin:/bin" } } } }
For Cline (VS Code extension), add to ~/Library/Application Support/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json:
{
"mcpServers": { "preflight": { "command": "npx", "args": ["preflight-ios-mcp"], "env": { "PATH": "/opt/homebrew/bin:/usr/local/bin:/usr/bin:/bin" } } } }
Add to ~/.config/zed/settings.json:
{
"context_servers": { "preflight": { "command": { "path": "npx", "args": ["preflight-ios-mcp"], "env": { "PATH": "/opt/homebrew/bin:/usr/local/bin:/usr/bin:/bin" } } } } }
Preflight uses the standard MCP stdio transport. Configure your client to run:
npx preflight-ios-mcp
Set the PATH environment variable to include idb's location for cursor-free touch injection.
| Tool | Description |
|---|---|
simulator_screenshot | Take a JPEG screenshot optimized for AI chat (~200-400KB). Returns image inline. |
simulator_list_devices | List simulators with name, UDID, state, runtime. Filter: booted, available, all. |
simulator_list_apps | List installed apps with bundle IDs. Toggle includeSystem for system apps. |
simulator_app_info | Get app metadata: name, version, bundle path, data path, type. |
simulator_get_clipboard | Read the simulator's clipboard text. |
simulator_get_screen_info | Window geometry, coordinate mapping, scale factor. Debug tap accuracy. |
| Tool | Description |
|---|---|
simulator_tap | Tap at (x, y) in simulator screen points. Cursor-free via idb. |
simulator_swipe | Swipe between two points. Supports edge-swipe-back from x=1. |
simulator_long_press | Long press with configurable duration. Context menus, drag initiation. |
simulator_type_text | Type text into the focused field. |
simulator_press_key | Press special keys (return, escape, arrows, F-keys) with modifiers. |
simulator_navigate_back | Navigate back via Cmd+[. Workaround for edge-swipe limitations. |
| Tool | Description |
|---|---|
simulator_snapshot | Preferred over screenshots. Structured accessibility tree — roles, labels, values, positions. No vision model needed. Like Playwright's browser_snapshot. |
simulator_wait_for_element | Wait for an element to appear (by label, role, or text). Polls with configurable timeout. Like Playwright's browser_wait_for. |
simulator_element_exists | Quick boolean check: does an element matching criteria exist on screen right now? |
| Tool | Description |
|---|---|
simulator_boot | Boot a device by name or UDID. Optional waitForBoot polling. |
simulator_shutdown | Shut down a running simulator. |
simulator_erase | Factory reset — erases all content and settings. |
simulator_open_url | Open URLs or deep links (e.g., myapp://screen). |
simulator_open_simulator | Open the Simulator.app application. |
simulator_get_booted_sim_id | Get the UDID of the currently booted simulator. |
| Tool | Description |
|---|---|
simulator_launch_app | Launch by bundle ID with optional args and env vars. |
simulator_terminate_app | Force-terminate a running app. |
simulator_install_app | Install a .app bundle or .ipa from a local path. |
simulator_uninstall_app | Uninstall by bundle ID. |
| Tool | Description |
|---|---|
simulator_get_logs | Query device logs. Filter by process, subsystem, level, time range, message content. |
simulator_stream_logs | Live log streaming with start/read/stop lifecycle. Configurable buffer. |
simulator_get_app_container | Get filesystem path to app's bundle, data, or shared group container. |
simulator_list_app_files | Browse an app's Documents/, Library/, Caches/, tmp/ directories. |
simulator_read_app_file | Read plists (→JSON), SQLite (→schema), and text files from app data. |
simulator_get_crash_logs | Retrieve crash reports with stack traces and thread states. |
simulator_diagnose | Xcode version, disk usage, booted devices, system info. |
simulator_accessibility_audit | Full iOS accessibility tree — real UIButton/UILabel elements with labels, frames, roles. |
simulator_describe_point | Returns the accessibility element at given coordinates. |
| Tool | Description |
|---|---|
simulator_set_location | Set GPS coordinates (lat/lng). Test location-based features. |
simulator_send_push | Send push notifications with full APNs payload JSON. |
simulator_set_clipboard | Set the simulator clipboard text. |
simulator_add_media | Add photos/videos to the camera roll from local files. |
simulator_grant_permission | Grant, revoke, or reset permissions (camera, location, photos, contacts, microphone, etc.). |
| Tool | Description |
|---|---|
simulator_set_appearance | Switch between light and dark mode. |
simulator_override_status_bar | Set time, battery, signal, carrier, network type. |
simulator_record_video | Start screen recording. On stop, key frames are extracted as images for AI chat. |
simulator_stop_recording | Stop recording. Returns key frames inline (no disk clutter). Optional savePath to keep the video. |
| Tool | Description |
|---|---|
simulator_set_content_size | Set Dynamic Type preferred size (13 categories from extra-small to accessibility-XXXL). |
simulator_set_increase_contrast | Toggle Increase Contrast accessibility setting. |
simulator_location_scenario | Run predefined GPS routes: Freeway Drive, City Run, City Bicycle Ride. |
simulator_location_route | Simulate movement along custom waypoints with configurable speed. |
simulator_memory_warning | Trigger simulated memory warning (didReceiveMemoryWarning). |
simulator_keychain | Add root certificates, add certificates, or reset the device keychain. |
simulator_icloud_sync | Trigger iCloud synchronization on the device. |
simulator_verbose_logging | Enable/disable verbose device logging for deep debugging. |
simulator_install_app_data | Install .xcappdata packages to restore test data snapshots. |
simulator_get_env | Read environment variables from the running simulator. |
simulator_biometric | Enroll, unenroll, match, or fail Face ID / Touch ID for auth testing. |
simulator_network_status | Get network configuration — DNS, interfaces, connectivity status. |
simulator_defaults_read | Read UserDefaults from inside the simulator (inspect app prefs, feature flags). |
simulator_defaults_write | Write UserDefaults inside the simulator (set flags, inject test config). |
simulator_rotate | Rotate the simulator left or right. |
simulator_notify_post | Post a Darwin notification to trigger system events. |
simulator_set_locale | Set device locale for internationalization testing. |
simulator_trigger_siri | Invoke Siri for voice command testing. |
| Tool | Description |
|---|---|
simulator_set_reduce_motion | Toggle Reduce Motion accessibility setting (via defaults write + notification). |
simulator_set_smart_invert | Toggle Smart Invert Colors (via defaults write + notification). |
simulator_set_bold_text | Toggle Bold Text (via defaults write + notification). |
simulator_set_reduce_transparency | Toggle Reduce Transparency (via defaults write + notification). |
| Tool | Description |
|---|---|
simulator_create_device | Create a new simulator with device type and runtime. |
simulator_delete_device | Permanently delete a simulator device. |
simulator_rename_device | Rename an existing device. |
simulator_clone_device | Clone a device with all its state. |
| Tool | Description |
|---|
| simulator_storekit_config | Enable or disabl
冒頭だけを表示しています。続きはリポジトリで読めます