MCP Xcode Server

MCP Xcode Server

An MCP server that provides tools for programmatically interacting with Xcode projects, enabling users to manage targets, schemes, and files. It supports essential development tasks including building, testing, and cleaning projects through the Xcode command-line tools.

Category
Visit Server

README

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

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
E2B

E2B

Using MCP to run code via e2b.

Official
Featured