Axiom Xcode MCP
Use when connecting to Xcode via MCP, using xcrun mcpbridge or the headless mcp-server...
Install
npx skills add CharlesWiltgen/Axiom --skill axiom-xcode-mcp -g -a claude-code -y- Repository
- CharlesWiltgen/Axiom1.2k
- Category
- AI and agents
- Updated
- 4d ago
- License
- MIT
- Context cost
- Mediumabout 1,775 tokens
- Runs scripts
- No, instructions only
What it does
Use when connecting to Xcode via MCP, using xcrun mcpbridge or the headless mcp-server, or working with ANY Xcode MCP tool (XcodeRead, BuildProject, RunSomeTests, RenderPreview). Covers setup, tool reference, workflows, troubleshooting.
Xcode MCP
You MUST use this skill for ANY Xcode MCP interaction, setup, tool usage, workflow patterns, or troubleshooting.
Bundled tools on Claude Code: if command -v <tool> finds nothing (hooks off or --bare), use <plugin-root>/tools/<tool> in place of the bare name; <plugin-root> is two levels above this skill's Base directory for this skill: path.
Xcode ships an MCP server exposing IDE tools to external AI clients. xcrun mcpbridge is the stdio transport clients register, available since Xcode 26.3. Xcode 27 adds an explicit "Allow External Agents to Use Xcode Tools" setting, the run-agent launch path, an agent-extension model (custom MCP servers, skills, plug-ins), and a headless server. This skill suite covers setup, tool reference, workflow patterns, and troubleshooting.
On Xcode 26.x, mcpbridge requires a running Xcode with a project open. If that's a liability, the device/simulator half of these operations has a fully Xcode-independent CLI path: devicectl + simctl + Axiom's xcui/xclog/xcsym/xcprof. See axiom-tools (skills/device-control-ref.md).
That constraint is gone on Xcode 27. xcrun mcp-server runs the tool service with Xcode.app closed, sudo xcrun mcp-server enable, then xcrun mcp-server open <project-or-workspace-path>, which launches the service if needed. Clients still register xcrun mcpbridge; the bridge is the transport, mcp-server is the service. Apple's tool schemas describe workspaceIdentifier as "used in headless mode", so headless is a supported model rather than a workaround.

