xClaude Plugin
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@xClaude PluginBuild and run MyApp on iPhone 15"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Note: This was built back when MCPs used to take up a bunch of context even when unused. The idea was that you could quickly toggle modular plugins on and off as you needed them. Since then MCP has evolved to use very little context when not in use - so I'm not maintaining this any more. You can use my xc-mcp or ios-simulator-skill repos instead to do the same thing.
xClaude Plugin
/plugin marketplace add conorluddy/xclaude-pluginModular iOS development automation for Claude Code
Build, test, and automate iOS apps through natural conversation with Claude. 8 workflow-specific MCP servers with 24 tools across Xcode, Simulator, and IDB.
Enable only what you need. Each MCP is purpose-built for specific workflows, keeping your context window lean. Plus, our tools intelligently encapsulate Xcode output (errors, test results, build logs) so Claude processes structured JSON instead of raw 50+ line logsβsaving significant tokens and enabling faster feedback loops.
Features
π― Modular Architecture
8 workflow-specific MCP servers (600-3500 tokens each)
Enable only what you need - Ultra-minimal to full-featured
23 shared tools across Xcode, Simulator, and IDB
Single source of truth - tools defined once, imported by MCPs
π₯ Surgical MCPs (Ultra-Focused)
xc-build (~600 tokens) - Build validation, errors, clean, list schemes
xc-launch (~400 tokens) - Simulator app lifecycle: install and launch
xc-interact (~900 tokens) - Pure UI interaction, no build
π¦ Core Workflow MCPs
xc-ai-assist (~1400 tokens) - Build + UI automation + screenshots
xc-setup (~800 tokens) - Environment configuration and validation
xc-testing (~1200 tokens) - Test execution + UI flows
xc-meta (~700 tokens) - Project maintenance and housekeeping
π Full Access
xc-all (~3500 tokens) - All 24 tools for complex workflows
π 8 Procedural Skills (Loaded On-Demand)
xcode-workflows - Build system guidance and result analysis
simulator-workflows - Device and app lifecycle patterns
ui-automation-workflows - Accessibility-first automation
accessibility-testing - WCAG compliance and quality checks
ios-testing-patterns - Test execution and flaky test detection
crash-debugging - Crash log analysis and symbolication
performance-profiling - Instruments integration
state-management - Cache and configuration management
Related MCP server: Xcode-Studio-MCP
Installation
From GitHub (Recommended)
/plugin marketplace add conorluddy/xclaude-plugin
/plugin install xclaude-pluginFrom Local Development
/plugin marketplace add /path/to/xclaude-plugin
/plugin install xclaude-pluginFirst 60 Seconds
Just installed? Enable xc-build and xc-launch for rapid development:
1. In Claude settings, enable "xc-build" and "xc-launch" MCPs
2. Ask Claude: "Build and run MyApp on iPhone 15"
3. Done! β¨That's it. xc-build + xc-launch gives you a composable development loop: build with xc-build, then install & launch with xc-launch. Claude orchestrates the two-step workflow. If you need other workflows (testing, setup, UI automation), see Choosing the Right MCP below.
Requirements
macOS 13.0+ or Linux
Xcode 15.0+ (macOS only, for iOS development)
Node.js 18+
Optional: IDB (Facebook iOS Development Bridge) for advanced UI automation
Migration Guide (v0.4.0)
If you're upgrading from an earlier version, note these breaking changes:
Renamed Server: xc-build-and-launch β xc-launch
What changed:
Server renamed from xc-build-and-launch to xc-launch for clarity
Removed:
xcode_build_and_launchmonolithic tool (withskip_buildflag), plusxcode_build,xcode_clean,xcode_list(moved to xc-build)Now contains: Only
simulator_install_appandsimulator_launch_appPhilosophy: Use xc-build + xc-launch together for development loop
Why: The monolithic xcode_build_and_launch tool coupled build, install, and launch into a single operation. The new architecture separates build concerns (xc-build) from simulator lifecycle (xc-launch), enabling:
Better error recovery (retry individual steps)
Clearer mental model (build β install β launch)
No
skip_buildcode smellFollows Single Responsibility Principle
Action required:
Update your
.mcp.jsonconfiguration:- "xc-build-and-launch": { - "command": "node", - "args": ["${CLAUDE_PLUGIN_ROOT}/mcp-servers/xc-build-and-launch/dist/index.js"] + "xc-launch": { + "command": "node", + "args": ["${CLAUDE_PLUGIN_ROOT}/mcp-servers/xc-launch/dist/index.js"]In Claude settings, enable "xc-launch" instead of "xc-build-and-launch"
Previous versions:
v0.3.0:xc-runβxc-build-and-launchv0.3.0:xc-compileβxc-build,xc-hybridβxc-all
See .mcp.json.example for the current configuration.
Choosing the Right MCP
Enable the Right MCP for Your Task
IMPORTANT: Enable ONE MCP at a time for optimal token efficiency. Choose based on your current workflow:
β xc-build # Build validation, errors, clean? (~600 tokens)
β xc-launch # Simulator lifecycle: install + launch? (~400 tokens)
β xc-interact # Testing UI with app already built? (~900 tokens)
β xc-ai-assist # AI-driven UI iteration? (~1400 tokens)
β xc-setup # First time setup? (~800 tokens)
β xc-testing # Running test suites? (~1200 tokens)
β xc-meta # Maintenance tasks? (~700 tokens)
β xc-all # Complex workflow needing everything? (~3500 tokens)
π‘ Tip: Enable xc-build + xc-launch together for development loop (~1000 tokens total)Example Workflows
Scenario 1: Build and fix errors
Enable: xc-build (~600 tokens)
"Build the project and show me the errors"
β Uses xcode_build with automatic error extraction
β Returns up to 10 errors for quick fixes
β 87% less tokens than old architecture!Scenario 2: Rapid development - build and run
Enable: xc-build + xc-launch (~1000 tokens)
"Build and run MyApp on iPhone 15"
β Claude orchestrates: build (xc-build) β install & launch (xc-launch)
β Composable two-server workflow
β Better error recovery (retry individual steps)
β Perfect for iterative developmentScenario 3: Testing UI flows (app already built)
Enable: xc-interact (~900 tokens)
"Tap the Login button, then check if the profile screen appears"
β Queries accessibility tree (3-4x faster than screenshots)
β Taps elements by coordinates
β Validates UI state without rebuildingScenario 4: AI-driven UI iteration
Enable: xc-ai-assist (~1400 tokens)
"Update the button color to blue, rebuild, and show me a screenshot"
β Modifies code, builds, captures screenshot
β Complete workflow in one MCP
β Includes visual feedback (screenshots)Architecture
Modular MCP Design
βββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Shared Tool Library (24 tools) β
β ββ Xcode (6): build, build+run, clean, test, list, version β
β ββ Simulator (12): boot, install, screenshot, etc.β
β ββ IDB (6): describe, tap, input, gesture, etc. β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Tools imported by MCP servers β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β 8 Workflow-Specific MCP Servers β
β ββ xc-build: 3 tools (~600 tokens) β
β ββ xc-launch: 2 tools (~400 tokens) β
β ββ xc-interact: 6 tools (~900 tokens) β
β ββ xc-ai-assist: 7 tools (~1400 tokens) β
β ββ xc-setup: 5 tools (~800 tokens) β
β ββ xc-testing: 6 tools (~1200 tokens) β
β ββ xc-meta: 6 tools (~700 tokens) β
β ββ xc-all: 24 tools (~3500 tokens) β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββKey Benefits
For Users:
Enable only what you need (300-3500 tokens)
Clear mental model (workflow-based naming)
No tool duplication confusion
Easy to toggle on/off in Claude settings
For Developers:
Single source of truth (shared tools)
Easy testing (isolated functions)
Simple maintenance (update once)
Type-safe throughout (zero
anyusage)
MCP Server Reference
π₯ Surgical MCPs
MCP | Tools | Token Cost | Use When |
xc-build | 3 | ~600 | Build validation with clean/scheme discovery |
xc-launch | 2 | ~400 | Simulator lifecycle: install and launch app |
xc-interact | 6 | ~900 | Testing UI flows with app already built |
π¦ Core Workflow MCPs
MCP | Tools | Token Cost | Use When |
xc-ai-assist | 7 | ~1400 | AI UI iteration with visual feedback |
xc-setup | 5 | ~800 | Initial setup, environment validation |
xc-testing | 6 | ~1200 | Running test suites + UI automation |
xc-meta | 6 | ~700 | Maintenance, housekeeping, environment checks |
π Full Access
MCP | Tools | Token Cost | Use When |
xc-all | 23 | ~3500 | Complex workflows needing everything |
Pro tip: Don't enable multiple MCPs simultaneously - tool duplication will increase token usage! Use xc-all instead for multi-workflow sessions.
Cheat Sheet - Which Tools Are in Which MCP?
Quick reference to find which MCP has the tools you need:
Xcode Tools
Tool | xc-build | xc-launch | xc-interact | xc-ai-assist | xc-setup | xc-testing | xc-meta | xc-all |
| β | β | β | |||||
| β | |||||||
| β | β | β | |||||
| β | β | ||||||
| β | β | β | |||||
| β | β | β |
Simulator Tools
Tool | xc-build | xc-launch | xc-interact | xc-ai-assist | xc-setup | xc-testing | xc-meta | xc-all |
| β | β | ||||||
| β | β | ||||||
| β | β | ||||||
| β | β | ||||||
| β | β | ||||||
| β | β | ||||||
| β | β | ||||||
| β | |||||||
| β | β | β | |||||
| β | |||||||
| β | |||||||
| β | β | β |
IDB Tools
Tool | xc-build | xc-launch | xc-interact | xc-ai-assist | xc-setup | xc-testing | xc-meta | xc-all |
| β | β | β | β | ||||
| β | β | β | β | ||||
| β | β | β | β | ||||
| β | β | β | |||||
| β | β | β | |||||
| β | β | β |
Tool Library (24 Total)
Xcode Tools (6)
xcode_build- Build with automatic error extractionxcode_build_and_launch- Build, install, and launch on simulatorxcode_clean- Clean build artifactsxcode_test- Run XCTest suitesxcode_list- List schemes/targetsxcode_version- Check Xcode installation
Simulator Tools (12)
simulator_list- Enumerate simulatorssimulator_boot- Boot devicesimulator_shutdown- Shutdown devicesimulator_create- Create new simulatorsimulator_delete- Delete simulatorsimulator_install_app- Install appsimulator_launch_app- Launch appsimulator_terminate_app- Terminate appsimulator_screenshot- Capture screenshotsimulator_openurl- Open URL/deep linksimulator_get_app_container- Get app container pathsimulator_health_check- Validate environment
IDB Tools (6)
idb_describe- Query accessibility tree (accessibility-first!)idb_tap- Tap coordinatesidb_input- Type text or press keysidb_gesture- Swipes and hardware buttonsidb_find_element- Search by label (semantic)idb_check_quality- Assess accessibility data richness
Configuring Your Project
Add this section to your project's .claude/CLAUDE.md file. This guides Claude on when and why to use the xclaude-plugin tools instead of directly calling Xcode or shell commands:
## xclaude-plugin: Why and When to Use These Tools
The xclaude-plugin provides 8 modular MCPs with 24 specialized iOS tools. **Always prefer these over raw `xcodebuild` or shell commands** for iOS development tasks. Here's why:
### Why These Tools Trump Raw Commands
| Task | Direct Bash | xclaude-plugin | Why Plugin Wins |
| -------------------- | -------------------------------------------------------------- | -------------------------------- | ------------------------------------------------------------------------- |
| Build + get errors | `xcodebuild -scheme Foo 2>&1` (50+ lines of parsing) | `xcode_build` tool | Auto-extracts up to 10 errors, structured JSON, 87% fewer tokens |
| Test suite execution | `xcodebuild test` + manual parsing | `xcode_test` tool | Parses results, reports failures, timing, code coverage |
| Simulator screenshot | `xcrun simctl io booted screenshot /tmp/x.png` + file handling | `simulator_screenshot` tool | Auto-saves, encoded output, accessible in response |
| UI automation | Manual coordinate finding + shell taps | `idb_describe` + `idb_tap` tools | Queries accessibility tree (120ms), semantic element finding, 3-4x faster |
| App installation | `xcrun simctl install booted App.app` | `simulator_install_app` tool | Builds, finds app, installs, validatesβone command |
### When to Use Each MCP
**Use `xc-build`** (~600 tokens) when:
- Building and fixing errors
- Need to clean build artifacts
- Discovering schemes/targets in project
- Build validation and configuration
**Use `xc-launch`** (~400 tokens) when:
- Installing and launching an app on the simulator
**Use `xc-interact`** (~900 tokens) when:
- Testing UI flows with app already built
- Automating screen validation without code changes
- Need accessibility-first element querying
**Use `xc-ai-assist`** (~1400 tokens) when:
- Iterating on UI with live feedback (code change β screenshot)
- Need visual validation of changes
- Combining code modification with testing
**Use `xc-testing`** (~1200 tokens) when:
- Running test suites and analyzing results
- Need both unit tests and UI automation
- Debugging test failures
**Use `xc-setup`** (~800 tokens) when:
- First-time environment validation
- Checking Xcode/simulator health
- Discovering project structure (schemes, targets)
**Use `xc-meta`** (~700 tokens) when:
- Maintenance tasks (clearing derived data, managing simulators)
- Non-coding iOS project operations
- Environment housekeeping
**Use `xc-all`** (~3500 tokens) when:
- Complex workflows requiring multiple tool categories
- Don't know which single MCP fits the task
- Need flexibility to pivot between workflows
### Critical: Prefer Plugin Tools Over Bash
When you encounter a task that could use either approach, **always choose the plugin tool**.
**Don't do this:**
# Manual build parsing
> `xcodebuild -scheme MyApp 2>&1 | grep -A5 "error:" | sed ...`
**Do this instead:** Use the `xcode_build` tool from `xc-build` MCP.
---
**Don't do this:**
# Manual screenshot saving
> `xcrun simctl io booted screenshot /tmp/screenshot.png`
> `cat /tmp/screenshot.png | base64`
**Do this instead:** Use the `simulator_screenshot` tool from `xc-interact` MCP.
---
**Don't do this:**
# Finding UI elements by trial and error
> `xcrun simctl spawn booted launchctl list | grep bundleid`
**Do this instead:** Use `idb_describe` tool to query accessibility tree, then `idb_tap` to interact.
### When Bash IS Still Appropriate
Use Bash for tasks outside iOS development:
- File operations: `mkdir`, `cp`, `rm`, `ls`
- Version control: `git status`, `git diff`, `git commit`
- General scripting: `jq`, `sed`, `awk`
- Environment setup: `npm install`, `brew install`
**Never use Bash for iOS-specific tasks** when a plugin tool exists.Simulator Configuration
xclaude-plugin automatically tracks your simulator usage and supports configuration files for default simulators.
Config File Locations
Project-level (recommended for team consistency):
# .xcplugin in your project root
{
"defaultSimulator": "platform=iOS Simulator,name=iPhone 15",
"maxRecentHistory": 10
}User-level (personal defaults across all projects):
# ~/.xcplugin/config.json
{
"defaultSimulator": "platform=iOS Simulator,name=iPhone 15 Pro",
"maxRecentHistory": 10
}Precedence: Project config overrides user config.
How It Works
Auto-resolution: Partial destinations like
"platform=iOS Simulator,name=iPhone 15"automatically resolve to the latest OS version availableUsage tracking: Every build/test automatically tracks which simulators you use
Smart defaults: When no config exists, the plugin remembers your most recent simulator
Destination Format
The xcode_build and xcode_test tools accept three destination formats:
# 1. Auto-resolve (recommended) - finds latest OS automatically
"platform=iOS Simulator,name=iPhone 15"
# 2. Explicit - specify exact OS version
"platform=iOS Simulator,name=iPhone 15,OS=18.0"
# 3. UDID - direct device identifier
"id=ABC-123-DEF-456"Quick Setup
Create a config file (choose one):
# Project-level echo '{"defaultSimulator": "platform=iOS Simulator,name=iPhone 15"}' > .xcplugin # User-level mkdir -p ~/.xcplugin echo '{"defaultSimulator": "platform=iOS Simulator,name=iPhone 15"}' > ~/.xcplugin/config.jsonFind your available simulators:
xcrun simctl list devices availableUse the
simulator_listtool to see your devices:Ask Claude: "Show me available simulators"
Example Config
See .xcplugin.example in the plugin directory for a complete example.
Enable Minimal MCPs for Token Efficiency
Token efficiency: xc-build (~600 tokens) is 83% cheaper than xc-all (3500 tokens)
Mental clarity: Focused tools per workflow phase
Composable workflows: Enable xc-build + xc-launch together (~1000 tokens) for development loop
Guidelines:
Single workflow: Enable one focused MCP (e.g., xc-interact for UI testing only)
Development loop: Enable xc-build + xc-launch together for build β install β launch
Complex workflows: Enable xc-all when you
This server cannot be deployed
Maintenance
Related MCP Connectors
Cloud Macs with Xcode for AI agents: run commands, build and test iOS apps, see and use the screen.
Claude Code / MCP skills for the dev pipeline: discover, spec, design, build, ship, operate.
Build, run, and inspect iOS apps in disposable hosted Simulators from cloud coding agents.
- MaShop MCPOAuthapp.mashop
Build, deploy and manage MaShop e-commerce projects from Claude, Cursor or any MCP client.
Related MCP Servers
AlicenseNot gradedqualityCmaintenanceBlitz-mcp gives AI agents full control over iOS/macOS development β boot simulators, interacts with physical iPhones, browse databases, trigger builds, and submit apps to App Store Connect via 30+ MCP tools.1,760Apache 2.0- AlicenseAqualityDmaintenanceUnified MCP server for Xcode + iOS Simulator β build, deploy, screenshot, and interact with your iOS app from Claude Code, Cursor, or any MCP client. Built in Swift. Single binary. No Node/Python runtime required.610MIT
- AlicenseNot gradedqualityBmaintenanceMCP server and CLI for iOS development β build, test, automate, and diagnose from any AI agent or terminal.2MIT
- FlicenseNot gradedqualityDmaintenanceEnables AI to control iOS simulators through the MCP protocol. Supports device management, UI automation, and network interception including screenshot capture, text input, and HTTP request mocking.-