Reducing the friction of using Xcode’s MCP bridge from external coding agents

Hi all,

I’ve been working on xcodecli, a small macOS tool intended to make Xcode’s MCP bridge easier to use from external coding agents such as Codex, Claude Code, and Gemini CLI.

Project: https://github.com/oozoofrog/xcodecli

I’m sharing it here because I suspect I’m not the only one who ran into friction when trying to use Xcode MCP in repeated, real-world workflows.

The biggest issue for me was that Xcode authorization prompts could repeatedly interrupt the flow, especially when reconnecting, switching clients, or falling back into a fresh setup path. Around that, there were a few related problems:

  • MCP client setup had to be repeated too often

  • registrations could become stale when the stored executable path was unstable

  • reconnecting after local changes or restarts was more manual than it should be

  • when something failed, it was not obvious whether the problem was client config, bridge startup, or local runtime state

So the goal of xcodecli is not to replace Xcode’s MCP bridge, but to reduce the repeated setup and reconnect work around it.

What it does

The tool tries to improve that in a few practical ways:

  • reproducible client registration

    • xcodecli mcp codex

    • xcodecli mcp claude

    • xcodecli mcp gemini

    Instead of repeatedly wiring raw bridge commands into each client by hand, it gives a consistent registration path for each client.

  • protection against stale registrations

    • preserve stable executable paths

    • avoid saving unstable paths into client configs

    • reject temporary build outputs so they do not get persisted accidentally

  • less repeated local setup churn

    • reuse a longer-lived local runtime/session path for repeated convenience operations

    • avoid rebuilding the same local bridge setup over and over

  • better failure inspection and recovery

    • explicit diagnostics

    • explicit reset/recovery commands

    • a more inspectable local bridge state

To be precise: this does not remove Xcode’s security model and it does not bypass authorization prompts.

What it tries to do is reduce how often I end up back in a fragile fresh-setup path by making registration more stable, reconnects less repetitive, and failures easier to inspect and reset.

That has made repeated Xcode MCP usage much less disruptive for me.

I’d be interested to hear from others using Xcode MCP from external tools:

  • Are you seeing the same authorization / reconnect friction?

  • Does this seem like the right layer to improve the experience?

  • If you are using external agents with Xcode MCP, what part of the workflow feels most awkward today?

Thanks!