A server providing tools for Xcode project management, simulator management, and app utilities.
A Model Context Protocol (MCP) server that provides Xcode-related tools for integration with AI assistants and other MCP clients.
XcodeBuildMCP is a Model Context Protocol (MCP) server that exposes Xcode operations as tools and resources for AI assistants and other MCP clients. Built with a modern plugin architecture, it provides a comprehensive set of self-contained tools organized into workflow-based directories, plus MCP resources for efficient data access, enabling programmatic interaction with Xcode projects, simulators, devices, and Swift packages through a standardized interface.
The XcodeBuild MCP tool exists primarily to streamline and standardise interaction between AI agents and Xcode projects. By providing dedicated tools for common Xcode operations, it removes reliance on manual or potentially incorrect command-line invocations.
This ensures a reliable and efficient development process, allowing agents to seamlessly leverage Xcode's capabilities while reducing the risk of configuration errors.
Critically, this MCP enables AI agents to independently validate code changes by building projects, inspecting errors, and iterating autonomously. In contrast to user-driven tools like Sweetpad, XcodeBuild MCP empowers agents to automate these workflows effectively.
The XcodeBuildMCP server provides the following tool capabilities:
For clients that support MCP resources XcodeBuildMCP provides efficient URI-based data access:
xcodebuildmcp://simulators
): Direct access to available iOS simulators with UUIDs and states[!IMPORTANT] Please note that XcodeBuildMCP will request xcodebuild to skip macro validation. This is to avoid errors when building projects that use Swift Macros.
For a quick install, you can use the following links:
Configure your MCP client (Windsurf, Cursor, Claude Desktop, Claude Code etc.) to use the XcodeBuildMCP server by ammending your client application's MCP configuration.
{
"mcpServers": {
"XcodeBuildMCP": {
"command": "npx",
"args": [
"-y",
"xcodebuildmcp@latest"
]
}
}
}
Alternatively, you can use XcodeBuildMCP without a specific installation of Node.js by using mise
to install it:
# macOS (Homebrew)
brew install mise
# Other installation methods
# See https://mise.jdx.dev/getting-started.html
Then configure your MCP client to use mise to install XcodeBuildMCP:
{
"mcpServers": {
"XcodeBuildMCP": {
"command": "mise",
"args": [
"x",
"npm:xcodebuildmcp@1.2.0-beta.3",
"--",
"xcodebuildmcp"
]
}
}
}
[!NOTE] When using mise avoid using the @latest tag as mise will cache the package and may not update to the latest version automatically, instead prefer an explicit version number.
To install XcodeBuildMCP Server for Claude Desktop automatically via Smithery:
npx -y @smithery/cli install @cameroncooke/XcodeBuildMCP --client claude
XcodeBuildMCP supports both MCP tools, resources and sampling. At time of writing the following editors have varying levels of MCP feature support:
Editor | Tools | Resources | Samplng |
---|---|---|---|
VS Code | ✅ | ✅ | ✅ |
Cursor | ✅ | ❌ | ❌ |
Windsurf | ✅ | ❌ | ❌ |
Claude Code | ✅ | ✅ | ❌ |
Claude Desktop | ✅ | ✅ | ❌ |
XcodeBuildMCP includes experimental support for incremental builds. This feature is disabled by default and can be enabled by setting the INCREMENTAL_BUILDS_ENABLED
environment variable to true
:
To enable incremental builds, set the INCREMENTAL_BUILDS_ENABLED
environment variable to true
:
Example MCP client configuration:
{
"mcpServers": {
"XcodeBuildMCP": {
"command": "npx",
"args": [
"-y",
"xcodebuildmcp@latest"
],
"env": {
"INCREMENTAL_BUILDS_ENABLED": "true"
}
}
}
}
[!IMPORTANT] Please note that incremental builds support is currently highly experimental and your mileage may vary. Please report any issues you encounter to the issue tracker.
For device deployment features to work, code signing must be properly configured in Xcode before using XcodeBuildMCP device tools:
Note: XcodeBuildMCP cannot configure code signing automatically. This initial setup must be done once in Xcode, after which the MCP device tools can build, install, and test apps on physical devices.
If you encounter issues with XcodeBuildMCP, the diagnostic tool can help identify the problem by providing detailed information about your environment and dependencies.
The diagnostic tool is a standalone utility that checks your system configuration and reports on the status of all dependencies required by XcodeBuildMCP. It's particularly useful when reporting issues.
# Run the diagnostic tool using npx
npx --package xcodebuildmcp@latest xcodebuildmcp-diagnostic
The diagnostic tool will output comprehensive information about:
When reporting issues on GitHub, please include the full output from the diagnostic tool to help with troubleshooting.
It can be helpful to have access to the log messages from the MCP server to identify any issues. The logs are captured by the client application, for example in Cursor:
Cursor:
find ~/Library/Application\ Support/Cursor/logs -name "Cursor MCP.log" -exec zip -r matching_logs.zip {} +
If your MCP client doesn't have log files you can run the server directly using the MCP Inspector tool see Debugging for more information on how to do this. Once running the MCP tool prints all log messages to it's error pane, which can be helpful in diagnosing issues.
This project uses Sentry for error monitoring and diagnostics. Sentry helps us track issues, crashes, and unexpected errors to improve the reliability and stability of XcodeBuildMCP.
SENTRY_DISABLED=true
.Example MCP client configuration:
{
"mcpServers": {
"XcodeBuildMCP": {
"command": "npx",
"args": [
"-y",
"xcodebuildmcp@latest"
],
"env": {
"SENTRY_DISABLED": "true"
}
}
}
}
https://github.com/user-attachments/assets/e3c08d75-8be6-4857-b4d0-9350b26ef086
Contributions are welcome! Here's how you can help improve XcodeBuildMCP.
See our CONTRIBUTING document for detailed contribution guidelines, including:
This project is licensed under the MIT License - see the LICENSE file for details.
Extracts images from files, URLs, or base64 strings and converts them to base64 for LLM analysis.
Provides runtime debugging access to Node.js applications for code editors like Cursor or Claude Code.
Fetches Rust crate READMEs, metadata, dependencies, and usage information from crates.io.
A Next.js template for building MCP servers with OAuth 2.1 authentication, supporting PostgreSQL and Redis.
Integration with QA Sphere test management system, enabling LLMs to discover, summarize, and interact with test cases directly from AI-powered IDEs
An autonomous memory management system for Claude AI, featuring multi-provider LLM integration and a persistent memory database.
An AI-driven platform for frontend semantic cognition and automation.
An MCP server for interacting with the native Windows API, enabling control over system functions and resources.
Integrates LLM applications with documentation sources using the Model Context Protocol.
Generate images using Bytedance's SeedDream 3.0 model via the FAL AI platform. Requires a FAL AI API key.