
How to add MCP Server for iOS Simulator (idb) to Windsurf
Control iOS simulators with natural-language commands from your LLM, powered by Facebook's idb. Paste the config into ~/.codeium/windsurf/mcp_config.json and restart Windsurf.
Last updated June 14, 2026 · 306★ · stdio · no auth
Windsurf config for MCP Server for iOS Simulator (idb)
git clone https://github.com/InditexTech/mcp-server-simulator-ios-idb.git && cd mcp-server-simulator-ios-idb && npm install && npm run build{
"mcpServers": {
"mcp-server-for-ios-simulator-idb": {
"command": "node",
"args": [
"/path/to/mcp-server-simulator-ios-idb/dist/index.js"
]
}
}
}Setup steps
- 1Open Windsurf → Cascade → the hammer/MCP icon → Configure (or edit ~/.codeium/windsurf/mcp_config.json).
- 2Paste the MCP Server for iOS Simulator (idb) config below.
- 3Fill in placeholder secrets, then save.
- 4Click Refresh in the MCP panel.
- 5MCP Server for iOS Simulator (idb)'s tools become available to Cascade.
Before you start
- macOS (required for iOS simulator support)
- Node.js v14.0.0 or higher
- Homebrew (for installing dependencies)
- Xcode with iOS simulators installed
- idb-companion (installed via Homebrew) and fb-idb (installed via pip in a Python virtual environment)
What MCP Server for iOS Simulator (idb) can do in Windsurf
process-instructionAccepts a natural-language `instruction` argument and executes it against the iOS simulator. Supports the full range of idb CLI operations: simulator management (create/terminate session, list/boot/shutdown/focus simulators), app management (install/launch/terminate/uninstall/list apps, check if installed), UI interaction (tap, swipe, press button, input text, press key/key sequence), accessibility (describe elements, describe point), capture and logs (take screenshot, record/stop video, get logs), debugging (start/stop debug, debug status), crash logs (list/show/delete), and additional commands (install dylib, open URL, clear keychain, set location, add media, approve permissions, update contacts).
Security
Runs locally over stdio with no authentication. The server controls iOS simulators on the host via idb and can install apps, inject media, manage contacts, and perform keychain operations — only run it against trusted simulators and inputs. macOS-only; requires idb-companion (Homebrew) and fb-idb (pip in a Python venv) to be installed.
MCP Server for iOS Simulator (idb) + Windsurf FAQ
Where is the Windsurf config file?
Windsurf reads MCP servers from ~/.codeium/windsurf/mcp_config.json. Paste the MCP Server for iOS Simulator (idb) config there under the "mcpServers" key and restart the client.
Is MCP Server for iOS Simulator (idb) safe to use with Windsurf?
Runs locally over stdio with no authentication. The server controls iOS simulators on the host via idb and can install apps, inject media, manage contacts, and perform keychain operations — only run it against trusted simulators and inputs. macOS-only; requires idb-companion (Homebrew) and fb-idb (pip in a Python venv) to be installed.
Does this work on Windows or Linux?
No. macOS is required because it depends on Xcode iOS simulators and Facebook's idb tooling.
How do I add it to Claude Desktop?
Add an entry under mcpServers in your Claude Desktop MCP settings with command 'node' and args pointing to the built dist/index.js, e.g. "/path/to/mcp-server-simulator-ios-idb/dist/index.js". You can then issue natural-language commands to control the simulator.
Can I use it without an MCP client?
Yes. The package can be imported as a TypeScript library via createMCPServer(), which returns an orchestrator whose processInstruction() method accepts natural-language commands; you can also use IDBManager, NLParser, and MCPOrchestrator directly.