Skip to content

Implement iOS Simulator MCP server with FastMCP 3.0#1

Draft
Copilot wants to merge 4 commits intomainfrom
copilot/update-cli-interface-access
Draft

Implement iOS Simulator MCP server with FastMCP 3.0#1
Copilot wants to merge 4 commits intomainfrom
copilot/update-cli-interface-access

Conversation

Copy link

Copilot AI commented Feb 1, 2026

Implements Model Context Protocol server for iOS Simulator interaction using FastMCP 3.0 framework. Transforms and codifies CLI tools from ios-simulator-mcp into LLM-friendly stdio transport.

Implementation

  • 13 iOS Simulator tools: Device management (get_booted_sim_id, open_simulator), UI interaction (tap, type, swipe), UI inspection (describe_all, describe_point, view), media capture (screenshot, record_video), app lifecycle (install, launch)
  • FastMCP 3.0 patterns: Typed parameters with Zod schemas, content responses, stdio transport
  • Security: UDID validation via UUID regex, spawn/execFile for command execution (not shell interpolation)

Project Structure

// Tool definition pattern
mcp.addTool({
  name: "ui_tap",
  description: "Tap on the screen in the iOS Simulator",
  parameters: z.object({
    x: z.number().describe("The x-coordinate"),
    y: z.number().describe("The y-coordinate"),
    udid: z.string().optional().describe("UUID format: 8-4-4-4-12")
  }),
  execute: async (args) => {
    const cmdArgs = ["ui", "tap", String(args.x), String(args.y)];
    await execFileAsync("idb", cmdArgs);
    return { content: [{ type: "text", text: `Tapped (${args.x}, ${args.y})` }] };
  }
});

Dependencies

  • Requires macOS with Xcode and Facebook IDB
  • Node.js ≥18, FastMCP 3.31.0
  • Uses ES modules, TypeScript compilation target ES2020

Usage

npx ios-dev-mcp

Claude Desktop config:

{
  "mcpServers": {
    "ios-simulator": {
      "command": "npx",
      "args": ["-y", "ios-dev-mcp"]
    }
  }
}

Warning

Firewall rules blocked me from connecting to one or more addresses (expand for details)

I tried to connect to the following addresses, but was blocked by firewall rules:

  • gofastmcp.com
    • Triggering command: /home/REDACTED/work/_temp/ghcca-node/node/bin/node /home/REDACTED/work/_temp/ghcca-node/node/bin/node --enable-source-maps /home/REDACTED/work/_temp/copilot-developer-action-main/dist/index.js (dns block)

If you need me to access, download, or install something from one of these locations, you can either:

Original prompt

FastMCP 3.0.0 LLM friendly docs: https://gofastmcp.com/getting-started/welcome#llm-friendly-docs

The iOS Simulator MCP repository is here: https://github.com/joshuayoes/ios-simulator-mcp

Distilledstdio mode, npx ios-simulator-mcp.

The intent of transforming those tools is to get access to them for MCP Apps that allow the user and agent chat to interact with and view things better. Also we can codify the CLI interface.

I will have the session I am working with now provide use info for CLI


✨ Let Copilot coding agent set things up for you — coding agent works faster and does higher quality work when set up for your repo.

Copilot AI and others added 3 commits February 1, 2026 05:59
Co-authored-by: earchibald <1007168+earchibald@users.noreply.github.com>
Co-authored-by: earchibald <1007168+earchibald@users.noreply.github.com>
Co-authored-by: earchibald <1007168+earchibald@users.noreply.github.com>
Copilot AI changed the title [WIP] Update CLI interface for enhanced MCP app interaction Implement iOS Simulator MCP server with FastMCP 3.0 Feb 1, 2026
Copilot AI requested a review from earchibald February 1, 2026 06:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants