MCP Hub
Back to servers

MCP Xcode Server

A development tool that enables programmatic management and automation of Xcode projects, including building, testing, and project structure manipulation via the Model Context Protocol.

Tools
9
Updated
Jan 13, 2026

MCP Xcode Server

An MCP (Model Context Protocol) server that provides tools for interacting with Xcode projects programmatically.

Installation

Clone this repository:

git clone https://github.com/chacebot/mcp-xcode-server.git
cd mcp-xcode-server
npm install

Or install from a local directory:

cd /path/to/mcp-xcode-server
npm install

Features

This server provides the following tools for Xcode project management:

  • xcode_read_project - Read and parse Xcode project files
  • xcode_list_schemes - List all build schemes in a project
  • xcode_list_targets - List all targets in a project
  • xcode_add_test_target - Add a test target to a project
  • xcode_add_file_to_target - Add files to project targets
  • xcode_build - Build Xcode projects
  • xcode_test - Run tests in Xcode projects
  • xcode_get_build_settings - Get build settings
  • xcode_clean - Clean build artifacts

Quick Start

  1. Install dependencies:

    npm install
    
  2. Configure your MCP client (Claude Desktop, Cursor, etc.):

    {
      "mcpServers": {
        "xcode": {
          "command": "node",
          "args": ["/absolute/path/to/mcp-xcode-server/src/index.js"],
          "env": {}
        }
      }
    }
    
  3. Restart your MCP client to load the server

  4. Start using Xcode tools through your AI assistant!

See QUICKSTART.md for a 5-minute setup guide, or SETUP.md for detailed instructions.

Usage

As an MCP Server

Configure this server in your MCP client configuration. For example, in Claude Desktop or Cursor:

{
  "mcpServers": {
    "xcode": {
      "command": "node",
      "args": ["/path/to/mcp-xcode-server/src/index.js"],
      "env": {}
    }
  }
}

Standalone Testing

You can test the server directly:

npm start

The server communicates via stdio using the MCP protocol.

Requirements

  • Node.js 18+
  • Xcode command-line tools installed
  • Access to Xcode projects

Tools Reference

xcode_read_project

Read and parse an Xcode project file to extract its structure.

Parameters:

  • projectPath (required): Path to the .xcodeproj file

Example:

{
  "name": "xcode_read_project",
  "arguments": {
    "projectPath": "/path/to/Project.xcodeproj"
  }
}

xcode_list_schemes

List all build schemes available in the project.

Parameters:

  • projectPath (required): Path to the .xcodeproj file

xcode_list_targets

List all targets in the project.

Parameters:

  • projectPath (required): Path to the .xcodeproj file

xcode_add_test_target

Add a new test target to the project. Note: This currently provides instructions rather than directly modifying the pbxproj file, as that requires careful parsing and manipulation.

Parameters:

  • projectPath (required): Path to the .xcodeproj file
  • targetName (optional): Name for the test target (defaults to ProjectNameTests)

xcode_add_file_to_target

Add a file to a specific target in the project.

Parameters:

  • projectPath (required): Path to the .xcodeproj file
  • filePath (required): Relative path to the file from project root
  • targetName (required): Name of the target

xcode_build

Build the Xcode project using xcodebuild.

Parameters:

  • projectPath (required): Path to the .xcodeproj file
  • scheme (optional): Build scheme name
  • configuration (optional): Debug or Release (default: Debug)

xcode_test

Run tests in the Xcode project.

Parameters:

  • projectPath (required): Path to the .xcodeproj file
  • scheme (optional): Test scheme name

xcode_get_build_settings

Get build settings for the project or a specific scheme.

Parameters:

  • projectPath (required): Path to the .xcodeproj file
  • scheme (optional): Scheme name
  • configuration (optional): Debug or Release (default: Debug)

xcode_clean

Clean build artifacts from the project.

Parameters:

  • projectPath (required): Path to the .xcodeproj file
  • scheme (optional): Build scheme name

Limitations

  • The pbxproj parser is simplified and may not handle all edge cases
  • Adding targets/files requires careful manipulation of the pbxproj format
  • Some operations may require Xcode to be installed and properly configured

Future Improvements

  • Full pbxproj parser using a proper library (e.g., xcode npm package)
  • Better error handling and validation
  • Support for Xcode workspaces (.xcworkspace)
  • Support for Swift Package Manager integration
  • Support for modifying build settings
  • Support for managing code signing

Contributing

  1. Fork the repository
  2. Create a feature branch: git checkout -b feature/my-feature
  3. Commit your changes: git commit -am 'Add some feature'
  4. Push to the branch: git push origin feature/my-feature
  5. Submit a pull request

License

MIT - see LICENSE file for details

Reviews

No reviews yet

Sign in to write a review