Enables control of Expo development server and Metro bundler, including starting/stopping the server, checking status, tailing logs, and reloading the app.
Provides comprehensive control over iOS Simulator including booting/shutting down devices, factory resets, screenshot capture, video recording, log streaming, and UI automation via Detox for testing Expo/React Native applications.
Enables control of Metro bundler for React Native development, including server management and app reloading capabilities.
Expo iOS Development MCP Server
An MCP (Model Context Protocol) server that enables LLM tools like Claude Code, Cursor, and Codex to control iOS Simulator, Expo/Metro, and run UI automation via Detox.
Features
Simulator Control: Boot, shutdown, erase simulators via
simctlScreenshots & Video: Capture screenshots and record videos
Log Streaming: Real-time simulator log capture with ring buffer
Expo/Metro: Start/stop Expo development server
UI Automation: Execute Detox actions (tap, swipe, type, wait, assert)
Visual Regression: Screenshot comparison with pixelmatch
Prerequisites
macOS with Xcode and Command Line Tools
Node.js 18+ (20+ recommended)
iOS Simulator available
An Expo/React Native project with Detox configured (for UI automation)
Quick Start
Configuration
Create mcp.config.json in the project root (see mcp.config.example.json):
MCP Client Configuration
Claude Code
Add to your Claude Code MCP settings:
Cursor
Add to ~/.cursor/mcp.json:
Available Tools
Simulator
Tool | Description |
| List all available iOS simulators |
| Boot a simulator device |
| Shut down a simulator |
| Factory reset a simulator |
| Take a screenshot |
| Start video recording |
| Stop video recording |
| Start log streaming |
| Stop log streaming |
Expo
Tool | Description |
| Start Expo/Metro server |
| Stop Expo/Metro server |
| Get Expo/Metro status |
| Get recent Expo logs |
| Reload the app |
Flow
Tool | Description |
| Execute a sequence of tool calls |
UI Automation (Coming Soon)
Tool | Description |
| Tap an element |
| Type text into an input |
| Swipe gesture |
| Scroll in a direction |
| Wait for element visibility |
| Assert element text content |
| Capture UI screenshot |
Visual Regression (Coming Soon)
Tool | Description |
| Save baseline screenshot |
| Compare against baseline |
Resources
The server exposes these MCP resources:
resource://state- Current server state (simulator, expo, detox)resource://logs/simulator/latest- Recent simulator logsresource://artifacts/latest- Artifact manifest
Development
Architecture
Author
Andrea Salvatore andreahaku@gmail.com
License
MIT