Provides tools for automating iOS Simulator, including device management, UI interaction (tap, swipe, type), screenshot capture, and workflow execution for iOS app testing and navigation.
Shotter
MCP (Model Context Protocol) server for iOS Simulator automation. Provides tools for AI assistants to navigate iOS apps, interact with UI elements, and capture screenshots.
Features
MCP Integration: Works with Claude Desktop, Claude Code, and other MCP-compatible clients
Device Management: List, select, and boot iOS Simulator devices
UI Automation: Tap, swipe, type, and navigate iOS apps
Screenshot Capture: Visual analysis and high-quality screenshot saving
Workflow Support: Load and execute YAML-defined navigation workflows
Installation
Configuration
Claude Desktop
Add to your Claude Desktop config (~/Library/Application Support/Claude/claude_desktop_config.json):
Claude Code
Add to your project's .mcp.json or global settings:
Available Tools
Device Management
Tool | Description |
| List available iOS simulators with names, UDIDs, and states |
| Boot a simulator and set it as active (fuzzy name matching) |
| Launch an app by bundle ID on the active device |
UI Interaction
Tool | Description |
| Capture screenshot for visual analysis |
| Get accessibility info with coordinates for all UI elements |
| Tap at specific coordinates |
| Swipe gesture (for scrolling and navigation) |
| Type text into focused field |
| Save high-quality screenshot to a file |
Workflow
Tool | Description |
| Load and parse a workflow YAML file |
| List available workflow files in a directory |
Available Prompts
Prompt | Description |
| System prompt with iOS Simulator navigation strategies |
| Format a workflow step with goal and hints for execution |
Usage Examples
Once configured, ask your AI assistant to:
Workflow Format
Workflows define multi-step navigation sequences:
YAML Fields
Field | Required | Description |
| Yes | Workflow name |
| No | Workflow description |
| Yes | App bundle identifier |
| Yes | List of simulator device names (fuzzy matched) |
| No | Script to run before steps for each device |
| No | Max iterations per step (default: 20) |
| No | Screenshot output directory (default: ./screenshots) |
| Yes | List of navigation steps |
Step Fields
Field | Required | Description |
| Yes | What to accomplish |
| No | Hints to help navigate |
| No | Filename to save screenshot after step completes |
Requirements
macOS with Xcode installed
iOS Simulator
Node.js 18+
Facebook IDB (
brew install idb-companion)
Development
How It Works
Shotter acts as an MCP server that:
Manages iOS Simulator device lifecycle (boot, select)
Proxies UI commands to
ios-simulator-mcpfor screen interactionProvides navigation prompts optimized for AI assistants
Supports workflow files for repeatable multi-step automation
The AI assistant uses ui_view to see the screen, makes decisions about what to tap or type, and verifies actions succeeded before continuing.
License
ISC