Expo iOS Development MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| MCP_CONFIG | Yes | Path to the mcp.config.json configuration file |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Server capabilities have not been inspected yet.
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| simulator.list_devicesA | List all available iOS simulator devices and their states |
| simulator.bootC | Boot an iOS simulator device |
| simulator.shutdownC | Shut down an iOS simulator device |
| simulator.eraseB | Erase all content and settings from a simulator (factory reset) |
| simulator.screenshotB | Take a screenshot of the booted simulator |
| simulator.record_video.startB | Start recording video of the simulator screen |
| simulator.record_video.stopA | Stop video recording and save the file |
| simulator.log_stream.startB | Start streaming simulator system logs |
| simulator.log_stream.stopA | Stop streaming simulator system logs |
| expo.startC | Start the Expo/Metro development server |
| expo.stopA | Stop the Expo/Metro development server |
| expo.statusB | Get the current status of Expo/Metro |
| expo.logs.tailC | Get recent Expo/Metro logs |
| expo.reloadB | Reload the app in the simulator |
| detox.session.startA | Start a Detox testing session. Required before running UI actions. |
| detox.session.stopB | Stop the current Detox testing session |
| detox.healthcheckB | Check if Detox session is ready |
| ui.tapC | Tap on an element identified by selector |
| ui.long_pressC | Long press on an element |
| ui.swipeC | Swipe on an element in a direction |
| ui.scrollB | Scroll within a scrollable element |
| ui.typeC | Type text into an input element |
| ui.press_keyC | Press a special key (return, backspace, delete) |
| ui.wait_forC | Wait for an element to be visible or exist |
| ui.assert_textC | Assert that an element has specific text content |
| ui.screenshotB | Take a screenshot of the current UI state (via simctl) |
| flow.runC | Execute a sequence of tool calls (macro flow) |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| state | |
| logs/simulator/latest | |
| artifacts/latest | |
| logs/detox/latest | |
| logs/expo/latest |
TDQS
Scored across 27 tools
Most tools have distinct purposes, but there is some overlap between ui.screenshot and simulator.screenshot, and between detox.session.start/stop and simulator.boot/shutdown which could cause confusion in session management. The UI action tools (tap, swipe, etc.) are well-differentiated.
Tool names follow a highly consistent pattern with clear prefixes (detox., expo., simulator., ui., flow.) and descriptive action_noun or verb_noun formats. All use snake_case consistently throughout the set.
27 tools is borderline high for a development server, feeling somewhat heavy. While the tools cover comprehensive testing and simulation workflows, the count might overwhelm agents with many specialized actions.
The toolset provides complete coverage for iOS development with Expo and Detox, including server management, simulator control, UI testing actions, and logging. No obvious gaps exist for the intended domain.