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.
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
-
Install dependencies:
npm install -
Configure your MCP client (Claude Desktop, Cursor, etc.):
{ "mcpServers": { "xcode": { "command": "node", "args": ["/absolute/path/to/mcp-xcode-server/src/index.js"], "env": {} } } } -
Restart your MCP client to load the server
-
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 filetargetName(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 filefilePath(required): Relative path to the file from project roottargetName(required): Name of the target
xcode_build
Build the Xcode project using xcodebuild.
Parameters:
projectPath(required): Path to the .xcodeproj filescheme(optional): Build scheme nameconfiguration(optional): Debug or Release (default: Debug)
xcode_test
Run tests in the Xcode project.
Parameters:
projectPath(required): Path to the .xcodeproj filescheme(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 filescheme(optional): Scheme nameconfiguration(optional): Debug or Release (default: Debug)
xcode_clean
Clean build artifacts from the project.
Parameters:
projectPath(required): Path to the .xcodeproj filescheme(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.,
xcodenpm 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
- Fork the repository
- Create a feature branch:
git checkout -b feature/my-feature - Commit your changes:
git commit -am 'Add some feature' - Push to the branch:
git push origin feature/my-feature - Submit a pull request
License
MIT - see LICENSE file for details
Recommended Servers
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.
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.
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.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
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.
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.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.
Neon Database
MCP server for interacting with Neon Management API and databases
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.
E2B
Using MCP to run code via e2b.