LOG_LEVEL=debug in your MCP config to get verbose output from the server process. Logs are written to stderr, which most MCP clients surface in their server logs panel.
Common Issues
idb not detected — tools show [CGEvent fallback]
idb not detected — tools show [CGEvent fallback]
This means Preflight could not find the If this returns nothing, install idb:Step 2 — Find the idb binary path:Step 3a — Add idb to PATH in your MCP config:Step 3b — Or set PREFLIGHT_IDB_PATH directly:Step 4 — Confirm with debug logging:Set
idb binary at startup. It searched:- The
PREFLIGHT_IDB_PATHenv var (if set) which idbusing thePATHin your MCP config- Common pip3 install locations (
~/Library/Python/3.x/bin/idb,/opt/homebrew/bin/idb, etc.)
LOG_LEVEL=debug and restart the MCP server. You should see:Simulator not found or no booted simulator
Simulator not found or no booted simulator
Preflight tools that require a running simulator will fail if no simulator is booted.Open Simulator.app:Boot a specific device using simctl:Or use the List available devices:To automatically wait for a device to finish booting before running tools, use
simulator_boot tool through your MCP client:simulator_boot with waitForBoot: true.Accessibility permission errors
Accessibility permission errors
Preflight uses accessibility APIs to read the UI hierarchy and inject input events. macOS requires explicit permission for this.
Add your terminal or IDE
Click the
+ button and add the application that runs your MCP client. This is typically:- Terminal.app or iTerm2 — if running Claude Code or any CLI-based MCP client
- Cursor — if using Cursor
- Windsurf — if using Windsurf
- Code (VS Code) — if using VS Code with Cline or Continue
Re-enable the toggle
If the app is already listed but the toggle is off, turn it on. If it’s on but still failing, toggle it off and on again.
Swift binary build errors
Swift binary build errors
npm run build compiles both the TypeScript source and the Swift CGEvent binary (src/helpers/mouse-events.swift → dist/mouse-events). Build errors can come from either step.TypeScript errors — check your Node.js version:swiftc is available:tsc followed by swiftc src/helpers/mouse-events.swift -o dist/mouse-events. Both outputs must succeed for the server to start correctly.Node.js version too old
Node.js version too old
Preflight requires Node.js 18 or higher. It uses native ESM (Install Node.js 18+ via nvm:Or download from nodejs.org and ensure the MCP client’s
"type": "module" in package.json) and Node.js built-ins that are not available in older versions.Check your version:PATH points to the correct Node.js binary.Some MCP clients launch the server with the system Node.js, which may differ from your shell’s active version. Specify the full path to the Node.js binary in your MCP config’s
command field if needed, e.g. "/Users/you/.nvm/versions/node/v18.20.0/bin/node".Verbose debug logging
Verbose debug logging
When you need to understand exactly what Preflight is doing — which idb commands it’s running, what coordinates it’s computing, or why a tool call failed — enable debug logging.Set LOG_LEVEL=debug in your MCP config:Debug logs are written to stderr in this format:Most MCP clients expose server stderr in a logs panel. In Cursor, check Settings → MCP → preflight → Logs. In VS Code with Cline, open the Output panel and select the Cline channel.
