Skip to main content
Glama

xcode-mcp

MCP server for iOS Simulator control via xcrun simctl.

Installation

npm install npm run build

Usage

Claude Desktop Configuration

Add to your Claude Desktop config (~/Library/Application Support/Claude/claude_desktop_config.json):

{ "mcpServers": { "xcode": { "command": "node", "args": ["/Users/YOUR_USERNAME/Projects/xcode-mcp/dist/index.js"] } } }

Available Tools

Tool

Description

simctl_list

List available simulators, device types, runtimes, or device pairs

simctl_boot

Boot a simulator device

simctl_shutdown

Shutdown a simulator device or all simulators

simctl_install

Install an app bundle on a simulator

simctl_launch

Launch an app on a simulator

simctl_terminate

Terminate a running app without shutting down the simulator

simctl_uninstall

Uninstall an app from a simulator

simctl_openurl

Open a URL or deep link on a simulator

simctl_push

Send a push notification to an app

simctl_location

Set or clear the simulated GPS location

simctl_privacy

Grant, revoke, or reset privacy permissions for an app

simctl_io_screenshot

Capture a screenshot from a simulator

Device Identification

All tools that require a device accept:

  • Device UDID (e.g., "3A8C9B5F-1234-5678-9ABC-DEF012345678")

  • Device name (e.g., "iPhone 15 Pro")

  • Special value "booted" for the currently booted simulator

Examples

List all devices:

{"name": "simctl_list", "arguments": {"filter": "devices"}}

Boot a simulator:

{"name": "simctl_boot", "arguments": {"device": "iPhone 15 Pro"}}

Take a screenshot:

{"name": "simctl_io_screenshot", "arguments": {"device": "booted"}}

Send a push notification:

{ "name": "simctl_push", "arguments": { "device": "booted", "bundle_id": "com.example.app", "payload": { "aps": { "alert": { "title": "Test", "body": "Hello from MCP!" } } } } }

Set location:

{ "name": "simctl_location", "arguments": { "device": "booted", "action": "set", "latitude": 37.7749, "longitude": -122.4194 } }

Grant camera permission:

{ "name": "simctl_privacy", "arguments": { "device": "booted", "action": "grant", "service": "camera", "bundle_id": "com.example.app" } }

Development

# Run in development mode npm run dev # Build npm run build # Test npm test

License

MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/obj-p/xcode-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server