Agent tooling
README · Tool reference · Headless mode · Agent tooling · Schemas · Changelog
Around the MCP server Xcode 27 ships a launcher for coding agents, an exporter for its own skills, and a second MCP server for LLDB.
Connecting through mcpbridge
xcrun mcpbridge is the stdio MCP server your agent connects to. It uses the Xcode selected by xcode-select; MCP_XCODE_PID targets a specific instance, and MCP_XCODE_SESSION_ID passes a session UUID. With headless mode enabled, the same command reaches the headless service.
Its run-agent subcommand launches a coding agent with Xcode tools configured. The skills and plugin subcommands export Xcode’s skills, as described below.
run-agent — launch an agent the way Xcode does
xcrun mcpbridge run-agent claude # or: xcrun agent claude
xcrun agent --dry-run claude # print the resolved command, launch nothing
xcrun agent is a shim for mcpbridge run-agent. Agents: antigravity, claude, claude-ext, codex, mock-agent.
It launches Xcode’s own copy of the agent (~/Library/Developer/Xcode/CodingAssistant/Agents/, version-pinned per Xcode build), checks its code signature, passes a temp --mcp-config with the xcode-tools server (--no-xcode-tools omits it), and injects Xcode’s environment — MCP_XCODE_PID binds the session to that Xcode instance, CLAUDE_CONFIG_DIR points at a config dir separate from your own. It does not pass --plugin-dir, so the agent starts without Xcode’s skills.
plugin / skills — Xcode’s skills
Xcode keeps its skills inside IDEIntelligenceChat.framework and renders them on demand into an agent plugin (xcode-integration, 15 skills):
xcrun agent plugin path --plugin-format claude|codex|gemini
claude --plugin-dir "$(xcrun agent plugin path --plugin-format claude)"
The path is ~/Library/Developer/Xcode/CodingAssistant/ExportedPlugins/<build>/<format> — cached, and versioned per Xcode build. Each format differs only in packaging (.claude-plugin/plugin.json + an .mcp.json wired to mcpbridge, .codex-plugin/plugin.json, gemini-extension.json); the skills themselves are the same. Rendering needs a running Xcode or Xcode Service, otherwise you get an empty scaffold.
skills export writes bare skill directories instead, but only 10 of the 15 — without the three accessibility-* skills and the two localization ones:
xcrun agent skills export --replace-existing ~/my-skills # default: ./xcode-skills
lldb-mcp
xcrun lldb-mcp is a separate stdio MCP server (lldb-mcp 0.1.0) exposing LLDB rather than Xcode, with two tools: command (run an lldb command; optional debugger id or session URI) and debugger_list. To drive the debugger through Xcode instead, use InvokeDebuggerCommand.