XcodeMCPKit runs Xcode's MCP tools through one server, using saved workspace models headlessly or an open Xcode window.
- An Apple silicon Mac running macOS 15.4+
- An Xcode installation with native MCP tools
- Homebrew for installation
For a new installation:
brew install lynnswap/tap/xcode-mcpkitNote
If you previously installed XcodeMCPKit with the shell installer or from source,
run this command once to migrate to Homebrew, even if you have already run brew install:
curl -fsSL https://github.com/lynnswap/XcodeMCPKit/releases/latest/download/install.sh | shRestart the server and connected MCP clients afterward.
With Homebrew set up, no additional PATH setting is needed.
xcode-mcp-proxy-serverKeep this terminal open while using MCP. You can leave Xcode closed.
To also automatically allow MCP connections to the Xcode app, start the server
with --auto-approve. This includes other agents connecting directly to Xcode:
xcode-mcp-proxy-server --auto-approveGrant macOS Accessibility access to the server's host process when prompted. Without the flag, GUI connection dialogs require manual approval.
In another terminal, run the command for your client.
Codex
codex mcp add xcode --url http://localhost:8765/mcpClaude Code
claude mcp add --transport http xcode http://localhost:8765/mcpFor other MCP clients, connect to http://localhost:8765/mcp using Streamable HTTP.
Replacing an existing MCP registration
If your client already has an xcode registration, remove it before running the
connection command above:
codex mcp remove xcode
# Or, for Claude Code:
claude mcp remove xcodeRestart clients that are already running after changing their configuration.
Clients that require STDIO
Keep the HTTP server running and register the bundled STDIO adapter:
codex mcp add xcode -- xcode-mcp-proxy
# Or, for Claude Code:
claude mcp add --transport stdio xcode -- xcode-mcp-proxyFor a source installation, use the adapter's full path in the chosen installation
directory in place of xcode-mcp-proxy.
Build from source
To build main locally, use a Swift 6.3+ toolchain and install it in a separate
directory:
git clone https://github.com/lynnswap/XcodeMCPKit.git
cd XcodeMCPKit
swift run -c release xcode-mcp-proxy-install --bindir "$HOME/.local/opt/xcode-mcpkit-dev/bin"Stop any running proxy server, then start this build by its full path:
"$HOME/.local/opt/xcode-mcpkit-dev/bin/xcode-mcp-proxy-server"Connect your client using the HTTP commands in Quick start. No PATH change is
needed. The two commands and XcodeMCPNativeHost.app are installed together;
keep the helper app beside the commands.
Without --bindir, the source installer defaults to ~/.local/bin and replaces
existing commands there, including links created by the Homebrew migration.
Using a separate directory keeps development builds independent of that installation.
The installer also accepts --prefix directory to install into its bin
subdirectory. Run swift run -c release xcode-mcp-proxy-install --help for details.
Migration from a custom installation directory
For an old custom location, use the same --prefix or --bindir; for example:
curl -fsSL https://github.com/lynnswap/XcodeMCPKit/releases/latest/download/install.sh | sh -s -- --bindir /path/to/binOnly the specified old installation directory is migrated. If you keep copies
in multiple locations, repeat the migration with each location's --bindir.
Stop the server before updating, then start it again:
brew update
brew upgrade lynnswap/tap/xcode-mcpkit
xcode-mcp-proxy-serverTo uninstall, stop the server and run brew uninstall xcode-mcpkit.