MCP server
by lapfelix
Automate Xcode build, testing, and management using JavaScript scripts for efficient project workflows and smart error r
Controls Xcode IDE through AppleScript automation to build projects, run tests, retrieve errors, and manage iOS/macOS development workflows. Requires macOS and Xcode installation.
Xcode is a community-built MCP server published by lapfelix that provides AI assistants with tools and capabilities via the Model Context Protocol. Automate Xcode build, testing, and management using JavaScript scripts for efficient project workflows and smart error r It is categorized under developer tools.
You can install Xcode in your AI client of choice. Use the install panel on this page to get one-click setup for Cursor, Claude Desktop, VS Code, and other MCP-compatible clients. This server runs locally on your machine via the stdio transport.
Apache-2.0
Xcode is released under the Apache-2.0 license. This is a permissive open-source license, meaning you can freely use, modify, and distribute the software.
Add new capabilities to Claude beyond text generation
Example
Access external data sources, execute code, interact with tools and services
Transform Claude from chatbot to action-taking agent
Provide Claude with access to relevant context and data
Example
Load project documentation, access knowledge bases, query databases
Get more accurate, context-aware responses
Automate multi-step workflows combining AI and external tools
Example
Research → Summarize → Create document → Send notification
Complete complex tasks end-to-end without manual steps
Share your MCP server with the developer community
We evaluated Xcode against two servers with overlapping tools; this profile had the clearer scope statement.
We wired Xcode into a staging workspace; the listing’s GitHub and npm pointers saved time versus hunting across READMEs.
We evaluated Xcode against two servers with overlapping tools; this profile had the clearer scope statement.
Xcode has been reliable for tool-calling workflows; the MCP profile page is a good permalink for internal docs.
Xcode is a well-scoped MCP server in the explainx.ai directory — install snippets and categories matched our Claude Code setup.
Xcode has been reliable for tool-calling workflows; the MCP profile page is a good permalink for internal docs.
Xcode is a well-scoped MCP server in the explainx.ai directory — install snippets and categories matched our Claude Code setup.
Xcode is a well-scoped MCP server in the explainx.ai directory — install snippets and categories matched our Claude Code setup.
I recommend Xcode for teams standardizing on MCP; the explainx.ai page compares cleanly with sibling servers.
Xcode is a well-scoped MCP server in the explainx.ai directory — install snippets and categories matched our Claude Code setup.
showing 1-10 of 53
Using with Apple's Official Xcode MCP: Apple now provides an official Xcode MCP server. XcodeMCP can run alongside it in sidekick mode (
--sidekick-only), providing complementary tools like project management and XCResult analysis. In a future version, XcodeMCP will transition to sidekick-only mode by default. See configuration below.
Model Context Protocol (MCP) server that controls Xcode directly through JavaScript for Automation (JXA). Available as both an MCP server and a standalone CLI.
brew install xclogparserXcodeMCP can be used in two ways:
xcodecontrol<img src="https://img.shields.io/badge/VS_Code-VS_Code?style=flat-square&label=Install%20Server&color=0098FF" alt="Install in VS Code"> <img alt="Install in VS Code Insiders" src="https://img.shields.io/badge/VS_Code_Insiders-VS_Code_Insiders?style=flat-square&label=Install%20Server&color=24bfa5"> <img src="https://cursor.com/deeplink/mcp-install-dark.svg" height=20 alt="Install MCP Server">
XCLogParser is recommended but optional:
brew install xclogparser
Run directly with npx:
npx -y xcodemcp@latest
Or install globally:
npm install -g xcodemcp
Add to your MCP configuration:
{
"mcpServers": {
"xcodemcp": {
"command": "npx",
"args": ["-y", "xcodemcp@latest"],
"env": {
}
}
}
}
To add XcodeMCP to Claude Code using the command line:
claude mcp add-json XcodeMCP '{
"command": "npx",
"args": ["-y", "xcodemcp@latest"],
"env": {
}
}'
To add XcodeMCP to Claude Code using the command line:
claude mcp add-json XcodeMCP '{
"command": "npx",
"args": ["-y", "xcodemcp@latest", "--no-clean"],
"env": {
}
}'
For projects where you're working with a single xcodeproj and scheme, you can configure preferred values to make tool parameters optional:
claude mcp add-json XcodeMCP '{
"command": "npx",
"args": ["-y", "xcodemcp@latest"],
"env": {
"XCODE_MCP_PREFERRED_SCHEME": "MyApp",
"XCODE_MCP_PREFERRED_XCODEPROJ": "MyApp.xcodeproj"
}
}'
With preferred values configured:
If /mcp in Claude Code indicates the MCP failed, try running it from the project folder manually to see what the output is: npx -y xcodemcp@latest
When using XcodeMCP alongside Apple's official Xcode MCP server, enable sidekick mode to only include complementary tools:
This excludes build/run/test/debug tools that Apple's MCP handles natively.
First, enable Xcode Tools in Xcode > Settings > Intelligence > Model Context Protocol.
Then add both Apple's Xcode MCP and XcodeMCP in sidekick mode:
# Add Apple's official Xcode MCP
claude mcp add --transport stdio xcode -- xcrun mcpbridge
# Add XcodeMCP in sidekick mode (project management + XCResult analysis)
claude mcp add-json xcodemcp '{"command": "npx", "args": ["-y", "xcodemcp@latest", "--sidekick-only"]}'
{
"mcpServers": {
"xcode": {
"command": "xcrun",
"args": ["mcpbridge"]
},
"xcodemcp": {
"command": "npx",
"args": ["-y", "xcodemcp@latest", "--sidekick-only"]
}
}
}
Future direction: In a future version, XcodeMCP will transition to sidekick-only mode by default, focusing exclusively on tools that complement Apple's official Xcode MCP rather than duplicating functionality.
For local development:
git clone https://github.com/lapfelix/XcodeMCP.git
cd XcodeMCP
npm install
# Run in development mode (TypeScript)
npm run dev:ts
# Or build and run compiled version
npm run build
npm start
XcodeMCP includes a powerful CLI that provides 100% feature parity with the MCP server, allowing you to run any tool as a one-shot command:
Install globally to use the CLI:
npm install -g xcodemcp
# Show help and available tools
xcodecontrol --help
# Run a tool with flags
xcodecontrol build --xcodeproj /path/to/Project.xcodeproj --scheme MyScheme
# Get help for a specific tool
xcodecontrol build --help
# Use JSON input instead of flags
xcodecontrol build --json-input '{"xcodeproj": "/path/to/Project.xcodeproj", "scheme": "MyScheme"}'
# Output results in JSON format
xcodecontrol --json health-check
The CLI supports both absolute and relative paths for convenience:
# Absolute paths (traditional)
xcodecontrol build --xcodeproj /Users/dev/MyApp/MyApp.xcodeproj --scheme MyApp
# Relative paths (NEW in v2.0.0)
xcodecontrol build --xcodeproj MyApp.xcodeproj --scheme MyApp
xcodecontrol build --xcodeproj ../OtherProject/OtherProject.xcodeproj --scheme OtherApp
# Works with file paths too
xcodecontrol open-file --filePath src/ViewController.swift --lineNumber 42
Relative paths are resolved from your current working directory, making the CLI much more convenient to use when working within project directories.
Control logging output with verbosity flags:
# Verbose mode (shows INFO and DEBUG logs)
xcodecontrol -v build --xcodeproj /path/to/Project.xcodeproj --scheme MyScheme
# Quiet mode (only errors)
xcodecontrol -q test --xcodeproj /path/to/Project.xcodeproj
# Default mode (warnings and errors only)
xcodecontrol run --xcodeproj /path/to/Project.xcodeproj --scheme MyScheme
# Check system health
xcodecontrol health-check
# Build a project
xcodecontrol build --xcodeproj /Users/dev/MyApp/MyApp.xcodeproj --scheme MyApp
# Run the app
xcodecontrol run --xcodeproj /Users/dev/MyApp/MyApp.xcodeproj --scheme MyApp
# Run tests
xcodecontrol test --xcodeproj /Users/dev/MyApp/MyApp.xcodeproj
# Clean build directory
xcodecontrol clean --xcodeproj /Users/dev/MyApp/MyApp.xcodeproj
# Browse XCResult files
xcodecontrol xcresult-browse --xcresult-path /path/to/result.xcresult
# Get UI hierarchy from test failure
xcodecontrol xcresult-get-ui-hierarchy --xcresult-path /path/to/result.xcresult --test-id "MyTest/testMethod()" --timestamp 30.5
CLI commands use kebab-case instead of underscores:
xcode_build → buildxcode_test → testxcode_build_and_run → build-and-runxcode_health_check → health-checkxcresult_browse → xcresult-browsefind_xcresults → find-xcresultsProject Management:
xcode_open_project - Open projects and workspacesxcode_get_workspace_info - Get workspace status and detailsxcode_get_projects - List projects in workspacexcode_open_file - Open files with optional line numberBuild Operations:
xcode_build - Build with detailed error parsingxcode_clean - Clean build artifactsxcode_test - Run tests with optional argumentsxcode_build_and_run - Build and run the active schemexcode_debug - Start debugging sessionxcode_stop - Stop current operationConfiguration:
xcode_get_schemes - List available schemesxcode_set_active_scheme - Switch active schemexcode_get_run_destinations - List simulators and devicesXCResult Analysis:
xcresult_browse - Browse test results and analyze failuresxcresult_browser_get_console - Get console output for specific testsxcresult_summary - Quick overview of test resultsxcresult_get_screenshot - Extract screenshots from test failuresxcresult_get_ui_hierarchy - Get UI hierarchy as AI-readable JSON with timestamp selectionxcresult_get_ui_element - Get detailed properties of specific UI elements by indexxcresult_list_attachments - List all attachments for a tePrerequisites
Time Estimate
15-60 minutes depending on server complexity
Steps
Troubleshooting
✓ Do
✗ Don't
💡 Pro Tips
Architecture
Model Context Protocol standardizes how AI hosts (Claude, Cursor) communicate with external tools and data sources through server implementations.
Protocols
Compatibility
✓ Use when
Use when you need Claude to access external data, execute actions, or integrate with tools. Best for extending AI capabilities beyond conversation.
✗ Avoid when
Avoid when native integrations exist (use official APIs directly), for real-time critical systems, or when security/compliance requires zero external dependencies.