Skip to main content
Glama
Xcode MCP Server

Xcode MCP Server

by ebowwa

@ebowwa/mcp-xcode

Xcode MCP server - build, test, run, and manage simulators from Claude Code.

Installation

npm install @ebowwa/mcp-xcode

Related MCP server: MCP Xcode

Requirements

  • macOS (Darwin)

  • Xcode Command Line Tools (xcode-select --install)

Tools

Build Tools

Tool

Description

xcode_build

Build an Xcode project/workspace

xcode_test

Run unit/UI tests

xcode_archive

Create .xcarchive for distribution

xcode_clean

Clean build folder

xcode_show_build_settings

Show all build settings for a scheme

Project Info

Tool

Description

xcode_project_info

Get project/workspace info

xcode_scheme_list

List all schemes

xcode_destination_list

List available destinations

Simulator Tools

Tool

Description

xcode_simulator_list

List all available simulators

xcode_simulator_boot

Boot a simulator

xcode_simulator_shutdown

Shutdown simulator(s)

xcode_simulator_install

Install app on simulator

xcode_simulator_launch

Launch app on simulator

xcode_simulator_terminate

Terminate app on simulator

xcode_simulator_open_url

Open URL on simulator

xcode_simulator_take_screenshot

Take screenshot

Device Tools

Tool

Description

xcode_device_list

List connected physical devices

xcode_runtime_list

List installed iOS/tvOS/watchOS runtimes

Usage Examples

Build a Scheme

{
  "scheme": "MyApp",
  "destination": "platform=iOS Simulator,name=iPhone 15"
}

Run Tests

{
  "scheme": "MyAppTests",
  "onlyTesting": "MyAppTests/MyTestCase/testExample"
}

Boot Simulator

{
  "name": "iPhone 15",
  "runtime": "iOS 17.2"
}

Install and Launch App

{
  "appPath": "/path/to/MyApp.app",
  "bundleId": "com.mycompany.myapp"
}

Claude Code Configuration

Add to your ~/.claude.json:

{
  "mcpServers": {
    "xcode": {
      "command": "bun",
      "args": ["run", "/path/to/mcp-xcode/dist/index.js"]
    }
  }
}

License

MIT

Available Tools

33 tools
start_web_monitorB

Start the web interface for visual command execution and monitoring

Inputs: no named parameters.

stop_web_monitorB

Stop the web interface if it is running

Inputs: no named parameters.

web_monitor_statusB

Get the current status of the web monitor

Inputs: no named parameters.

xcode_add_plist_entryC

Add a new entry to a plist file

Inputs: plist_path (required), key (required), type (required), value (required).

xcode_archive_projectC

Create an archive for distribution

Inputs: project_path (required), scheme (required), archive_path (required).

xcode_boot_simulatorC

Boot a specific simulator by device ID

Inputs: device_id (required).

xcode_build_for_deviceA

Build project specifically for physical device with automatic signing

Inputs: project_path (required), scheme (required), device_id (required).

xcode_build_projectC

Build an Xcode project with specific scheme and configuration

Inputs: project_path (required), scheme (required), configuration, destination, +1 more.

xcode_capture_screenshotC

Capture screenshot from simulator

Inputs: device_id (required), output_path (required).

xcode_clean_projectC

Clean build artifacts for an Xcode project

Inputs: project_path (required), scheme.

xcode_create_directoryC

Create a directory with subdirectories if needed

Inputs: path (required).

xcode_create_projectC

Create a new Xcode project with basic structure

Inputs: project_path (required), project_name (required), bundle_id (required), platform.

xcode_create_swift_fileC

Create a new Swift source file with content

Inputs: file_path (required), content (required).

xcode_device_infoB

Get detailed information about a specific device

Inputs: device_id (required).

xcode_erase_simulatorC

Erase simulator data and settings

Inputs: device_id (required).

xcode_install_app_deviceB

Install an app on a physical device

Inputs: device_id (required), app_path (required).

xcode_install_app_simulatorC

Install an app on a simulator

Inputs: device_id (required), app_path (required).

xcode_launch_app_simulatorC

Launch an app on a simulator

Inputs: device_id (required), bundle_id (required).

xcode_list_available_simulatorsA

List only available (not shutdown) simulators

Inputs: no named parameters.

xcode_list_device_pairsB

List paired devices (iOS devices paired with Mac)

Inputs: no named parameters.

xcode_list_physical_devicesB

List all connected physical iOS devices

Inputs: no named parameters.

xcode_list_schemesB

List available schemes in an Xcode project

Inputs: project_path (required).

xcode_list_simulatorsB

List all available iOS, watchOS, and tvOS simulators

Inputs: no named parameters.

xcode_list_simulators_jsonB

List simulators in JSON format for parsing

Inputs: no named parameters.

xcode_list_workspace_schemesC

List schemes in an Xcode workspace

Inputs: workspace_path (required).

xcode_modify_plistC

Modify a value in a plist file

Inputs: plist_path (required), key (required), value (required).

xcode_read_fileC

Read contents of a file

Inputs: file_path (required).

xcode_run_on_deviceC

Build and run app on physical device

Inputs: project_path (required), scheme (required), device_id (required), bundle_id (required), +1 more.

xcode_show_build_settingsC

Show build settings for a project/scheme

Inputs: project_path (required), scheme (required).

xcode_show_destinationsB

Show available destinations for a scheme

Inputs: project_path (required), scheme (required).

xcode_show_sdk_infoB

Show available SDKs and their paths

Inputs: no named parameters.

xcode_shutdown_simulatorC

Shutdown a specific simulator

Inputs: device_id (required).

xcode_test_projectC

Run tests for an Xcode project

Inputs: project_path (required), scheme (required), destination.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    B3.4/5.0

    Scored across 33 tools

    Disambiguation4/5

    Most tools have distinct purposes targeting specific Xcode operations like building, testing, simulator management, or file manipulation. However, some overlap exists: 'xcode_list_simulators' and 'xcode_list_available_simulators' could be confusing, and 'xcode_build_project' vs 'xcode_build_for_device' might cause misselection without careful reading of descriptions.

    Naming Consistency5/5

    Tool names follow a highly consistent pattern: all start with 'xcode_' prefix (except three web monitor tools) and use snake_case with clear verb_noun structure (e.g., 'xcode_build_project', 'xcode_list_simulators'). The three web monitor tools also maintain consistent naming ('start_web_monitor', etc.).

    Tool Count3/5

    With 33 tools, this is borderline heavy for an Xcode server. While Xcode has many functionalities, the count feels excessive and could overwhelm agents. Some tools might be consolidated (e.g., multiple simulator listing tools). A more focused set of 15-25 tools would be better scoped.

    Completeness5/5

    The toolset provides comprehensive coverage of Xcode development workflows: project creation, building, testing, archiving, simulator/device management, file operations, and monitoring. It includes CRUD-like operations for files and simulators, and covers both physical devices and simulators. No obvious gaps are present for the domain.

    Maintenance

    ActivityInactive
    ResponsivenessOutdated data

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      A
      quality
      B
      maintenance
      Enable Claude Code, Cursor, or your favorite LLM to interact with Xcode, building your projects the same way you do, and seeing the same errors. Greatly increases productivity when working on iOS, iPadOS, macOS, visionOS, tvOS projects & Swift packages - or any time you might use Xcode.
      29
      38 PyPI
      5
      MIT
    • A
      license
      B
      quality
      D
      maintenance
      Enables AI assistants to build, test, run, and manage Apple platform projects (iOS, macOS, tvOS, watchOS, visionOS) directly through Xcode. Provides comprehensive control over Xcode projects, Swift packages, simulators, and development workflows without leaving your editor.
      5
      7 npm
      2
      MIT
    • A
      license
      A
      quality
      D
      maintenance
      Enables AI assistants to manage Xcode projects by listing targets, reading configurations, and triggering builds via the Model Context Protocol. It facilitates natural language interaction with macOS developer tools to streamline iOS app development processes.
      6
      176 npm
      MIT
    • A
      license
      A
      quality
      F
      maintenance
      Provides structured access to Xcode development tools including xcrun, xcodebuild, and xctrace for building, testing, and analyzing projects.
      15
      2
      MIT