← Back to search

@blitzdev/iphone-mcp

blitzdotdev Scanned 29d ago

MCP server for controlling iOS simulators and physical iPhones

C
64.2 / 100

Versions

0.1.18latest
Apr 1, 2026
0.1.17
Mar 24, 2026
0.1.16
Mar 22, 2026
0.1.15
Mar 2, 2026
0.1.14
Mar 2, 2026
+ show 7 moreshow less
0.1.13
Mar 2, 2026
0.1.12
Mar 2, 2026
0.1.11
Mar 2, 2026
0.1.10
Mar 1, 2026
0.1.9
Mar 1, 2026
0.1.8
Mar 1, 2026
0.1.7
Mar 1, 2026
PermissionsTool SafetyAuthAnnotationsCode QualityStabilitySpecVuln HistoryAuthorTransparencyCommunity

Tools 10

describe_screen
annotations: none low

Get the full UI element hierarchy of the current screen. Returns ALL element types (buttons, text, images, containers, etc.) that are currently visible on screen. Filters applied automatically: - Off-screen elements are excluded - Generic unlabeled container nodes are excluded For finding tappable elements specifically, prefer scan_ui instead.

udid string nested boolean
device_action
annotations: none low

Execute a single device action on the iPhone. Actions available: - tap: Tap at coordinates { x, y, duration? } - swipe: Swipe gesture { fromX, fromY, toX, toY, duration?, delta? } - button: Press button { button: 'HOME'|'LOCK'|'SIDE_BUTTON'|'APPLE_PAY'|'SIRI', duration? } - input-text: Type text { text } - key: Press key { key: number (HID keycode) | string (character), duration? } - key-sequence: Press key sequence { keySequence: (number|string)[] } Use describe_after to see the screen state after the action.

udid string action enum params record
device_actions
annotations: none low

Execute multiple device actions in sequence on the iPhone. Each action in the array should have: - action: 'tap' | 'swipe' | 'button' | 'input-text' | 'key' | 'key-sequence' - params: Action-specific parameters Use describe_after to see the screen state after all actions complete.

udid string actions array
get_screenshot
annotations: none low

Capture a screenshot of the current iPhone screen. Returns the file path to a PNG image.

udid string
scan_ui
annotations: none low

Find interactive UI elements (buttons, links, text fields, switches, icons, etc.) on the current screen. Returns only tappable/interactive elements with their coordinates. Use the "query" parameter to search for a specific element by label (e.g. "Add to Cart", "Settings"). When a query is provided: - First searches visible interactive elements matching the query - If not found on-screen, searches off-screen elements and warns you to scroll - If no interactive match, falls back to all visible interactive elements Without a query, returns all visible interactive elements on screen. Region options optimize scan time: - "top-left" / "top-right" / "bottom-left" / "bottom-right": ~250ms - "top-half" / "bottom-half": ~500ms - "full": ~1s (entire screen) For the complete element tree (all types), use describe_screen instead.

udid string query string region enum
list_devices
annotations: none low

List all available iPhones and simulators.

get_execution_context
annotations: none low

Get the current execution context — which iPhone(s) or simulators are available. Call this first to discover available devices. Returns: - target: 'simulator' — one simulator booted, use the returned udid - target: 'device' — one physical device connected, use the returned udid. Inform user about viewer_url for screen viewing. - target: 'ambiguous' — multiple devices found. Ask the user which one to use. - target: 'none' — no devices. Tell user to boot a simulator or connect an iPhone. Pass the returned udid to all subsequent tool calls.

setup_device
annotations: none low

Build, install, and launch WebDriverAgent on a physical iPhone. This is required before any other tool can interact with a physical device. Call this when get_execution_context shows a physical device with wdaRunning: false. The process takes 1-3 minutes (building WDA, installing on device, establishing connection). Prerequisites: - iPhone connected via USB and trusted - Developer Mode enabled on iPhone (Settings > Privacy & Security > Developer Mode) - Apple ID signed into Xcode (Xcode > Settings > Accounts) After setup completes, use the returned udid for all subsequent tool calls. Also inform the user about the viewer_url where they can see the device screen.

udid string
launch_app
annotations: none low

Launch an app on the iPhone by bundle ID.

udid string bundleId string
list_apps
annotations: none low

List installed apps on the iPhone.

udid string

Permissions 4

network medium
Server uses network capabilities via: fetch()
filesystem low
Server uses filesystem capabilities via: fs/promises
shell high
Server uses shell capabilities via: child_process, execSync(), spawn()
env_vars low
Server uses env_vars capabilities via: process.env

Scan Findings 39

low
Tool 'describe_screen' has no annotations annotation_checker · 100%
low
Tool 'device_action' has no annotations annotation_checker · 100%
low
Tool 'device_actions' has no annotations annotation_checker · 100%
low
Tool 'get_screenshot' has no annotations annotation_checker · 100%
low
Tool 'scan_ui' has no annotations annotation_checker · 100%
low
Tool 'list_devices' has no annotations annotation_checker · 100%
low
Tool 'get_execution_context' has no annotations annotation_checker · 100%
low
Tool 'setup_device' has no annotations annotation_checker · 100%
low
Tool 'launch_app' has no annotations annotation_checker · 100%
low
Tool 'list_apps' has no annotations annotation_checker · 100%
high
Remote transport without authentication auth_checker · 70%
info
Sandbox failed to start for behavioral verification behavioral_verifier · 100%
medium
Vulnerable dependency: @modelcontextprotocol/sdk@1.12.1 (GHSA-345p-7cg4-v4c7) dependency_analyzer · 95%
medium
Vulnerable dependency: @modelcontextprotocol/sdk@1.12.1 (GHSA-8r9q-7v3j-jr4g) dependency_analyzer · 95%
medium
Vulnerable dependency: @modelcontextprotocol/sdk@1.12.1 (GHSA-w48q-cv73-mx4w) dependency_analyzer · 95%
medium
Vulnerable dependency: ws@8.18.3 (GHSA-58qx-3vcg-4xpx) dependency_analyzer · 95%
medium
Vulnerable dependency: ws@8.18.3 (GHSA-96hv-2xvq-fx4p) dependency_analyzer · 95%
medium
Buffer.from base64 in blitzdotdev-iPhone-mcp-3259f75/src/wda/wda-client.ts:228 entropy_analyzer · 75%
medium
Buffer.from base64 in blitzdotdev-iPhone-mcp-3259f75/src/wda/wda-client.ts:233 entropy_analyzer · 75%
info
package.json metadata manifest_parser · 100%
info
Tool: describe_screen manifest_parser · 85%
info
Tool: device_action manifest_parser · 85%
info
Tool: device_actions manifest_parser · 85%
info
Tool: get_screenshot manifest_parser · 85%
info
Tool: scan_ui manifest_parser · 85%
info
Tool: list_devices manifest_parser · 85%
info
Tool: get_execution_context manifest_parser · 85%
info
Tool: setup_device manifest_parser · 85%
info
Tool: launch_app manifest_parser · 85%
info
Tool: list_apps manifest_parser · 85%
info
Transport: stdio manifest_parser · 90%
info
Required env vars (6) manifest_parser · 80%
info
Sandbox failed to start for output poisoning scan output_poisoning · 100%
medium
Permission: network access detected permission_analyzer · 70%
low
Permission: filesystem access detected permission_analyzer · 90%
high
Permission: shell access detected permission_analyzer · 95%
low
Permission: env_vars access detected permission_analyzer · 90%
info
SBOM generated: 121 components sbom_generator · 100%
medium
No build provenance detected (SLSA L0) slsa_assessor · 90%