Xcode: MCP Bridge Wrapper for Cursor

io.github.SoundBlasterPublished by GitHub account SoundBlasterv0.5.0Updated Nov 10, 2026

Python wrapper that makes Xcode's MCP bridge compatible with strict MCP clients like Cursor

VerifiedSTDIODesktop onlyFiles & StorageDeveloper Tools

Overview

AI-generated overview

Python wrapper that connects MCP clients such as Cursor to Xcode's tools via xcrun mcpbridge, repairing malformed tool responses.

What you can do
  • List, open, close and create Xcode workspaces, targets, schemes and test plans
  • Read, write, update, move and delete project files, plus glob, grep and code-issue refresh
  • Build, test, run, stop and debug projects, read build logs and console output, adjust build settings
  • Drive simulators and devices: start sessions, install and run, synthesize input
  • Plan localization and read or edit string catalogs
  • Render previews, search documentation, run code snippets, inspect crash and field performance issues
When to use it
Use it when you work in Xcode on macOS and want an AI client to inspect and modify an Xcode project, run builds and tests, or drive simulators. Broker mode is worth it when several clients should share one persistent Xcode connection.
Requirements
macOS with Xcode 26.3 or newer (27.0 supported), Python 3.9-3.12, and uv/uvx to run the PyPI package. External agents must be allowed in Xcode's Model Context Protocol settings, the target project open in Xcode, and the Xcode access prompt approved. MCP 2026-07-28 is not supported in 0.5.0.
Before you install
Tool calls such as builds, file edits and device interaction change project or device state; start with read-only calls. Xcode may prompt for permission for the broker host process and project folder, identified by Python executable and PID, so approve only expected paths. A green status or successful tool listing does not prove authorization. Stopping the broker daemon disconnects every client using it.

Installation

In SourceWeft

  1. Open Xcode: MCP Bridge Wrapper for Cursor in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

Xcode MCP Bridge Wrapper

[Version]

[Python 3.9+] [License: MIT]

mcpbridge-wrapper connects external MCP clients to Xcode through Apple's xcrun mcpbridge. It repairs Xcode tool responses that declare an outputSchema but omit structuredContent. The repair works in both direct and broker modes. Broker mode also lets several clients share one persistent Xcode connection, reducing repeated connection prompts.

Compatibility

ComponentSupport in 0.5.0
Xcode26.3+ and 27.0 on macOS; Xcode 27.0 handshake and tool discovery verified
MCP clientsClients using the initialize lifecycle; check the protocol used by your client version
MCP 2026-07-28Not supported by 0.5.0; the sessionless implementation remains experimental on a separate branch
Python3.9-3.12; uvx manages its own environment

The wrapper does not bundle Xcode tools. It exposes the catalog returned by the installed Xcode, so tool names and availability can change with Xcode updates and permissions. The Xcode 27.0 catalog observed with build 27A266a is listed below.

Quick Start

  1. Install uv and Xcode 26.3 or newer. Xcode 27.0 is supported.
  2. In Xcode > Settings > Intelligence > Model Context Protocol, enable Allow external agents to use Xcode tools. Open the project you want to use in Xcode. See Apple's setup guide.
  3. Add one of the client configurations below. Pin 0.5.0 to keep the legacy MCP contract when a future major release becomes available.
  4. Start the client and approve the Xcode access prompt if shown. After approval, reload or reconnect the MCP server in the client so it fetches tools/list again, then verify with a real Xcode tool call. A green MCP indicator alone only confirms the handshake.

Broker mode is recommended for multiple clients. All examples use the same per-user daemon. The first client starts it; subsequent clients reuse it.

Cursor

Add to ~/.cursor/mcp.json:

json
{  "mcpServers": {    "xcode-tools": {      "command": "uvx",      "args": ["--from", "mcpbridge-wrapper==0.5.0", "mcpbridge-wrapper", "--broker"]    }  }}

Codex

Add to ~/.codex/config.toml and restart Codex:

toml
[mcp_servers.xcode-tools]command = "uvx"args = ["--from", "mcpbridge-wrapper==0.5.0", "mcpbridge-wrapper", "--broker"]

Zed

Add inside ~/.config/zed/settings.json under the top-level context_servers key, then disable and re-enable the server in Settings > AI > MCP Servers:

json
{  "context_servers": {    "xcode-tools": {      "command": "uvx",      "args": ["--from", "mcpbridge-wrapper==0.5.0", "mcpbridge-wrapper", "--broker"],      "env": {}    }  }}

See Zed's MCP configuration guide for the settings UI and server status indicator.

Claude Code

bash
claude mcp add --transport stdio xcode -- uvx --from 'mcpbridge-wrapper==0.5.0' mcpbridge-wrapper --broker

For a single client that does not need the shared daemon, remove --broker from its command to use direct mode. Manual installation and Web UI options are covered in the installation, broker, and Web UI guides.

Xcode 27.0 Approval and Verification

Xcode 27.0 may ask for permission for the broker host process and for the project folder. The prompt identifies the Python executable and PID, not the editor name. A new uvx host identity may need a fresh approval even if an older Python installation was already permitted. Approve access only when the path and project are expected.

If a tool reports that the agent is not approved, use XcodeOpenWorkspace with the absolute path of an existing .xcodeproj or .xcworkspace to request access, approve the prompt in Xcode, then retry the read-only tool. Do not treat a successful tools/list or a green client status dot as proof that Xcode tool calls are authorized. Check Xcode's state with:

bash
xcrun mcp-server statusuvx --from 'mcpbridge-wrapper==0.5.0' mcpbridge-wrapper --broker-status

The second command should show Proxy version: 0.5.0 and Daemon version: 0.5.0. If an older daemon is still running, stop it once and reconnect the clients:

bash
uvx --from 'mcpbridge-wrapper==0.5.0' mcpbridge-wrapper --broker-stop

Stopping the singleton temporarily disconnects every client using it. The next --broker connection starts a new daemon. For a stable long-lived host identity, see the dedicated broker host.

Xcode 27.0 Tools

tools/list exposed 54 tools on Xcode 27.0 build 27A266a during a local smoke test. This is an observed catalog, not a hard-coded wrapper API. Xcode 27 adds workspace creation/opening, simulator interaction, run and debugger control, build configuration, localization, and crash/field insight tools. See Apple's Xcode 27 release notes.

  • Workspaces and targets: XcodeListWorkspaces, XcodeOpenWorkspace, XcodeCloseWorkspace, XcodeNewProject, XcodeNewTarget, XcodeListTargets, XcodeListTemplates, XcodeListSchemes, XcodeSwitchScheme, XcodeListRunDestinations, XcodeSwitchRunDestination, XcodeListTestPlans, XcodeSwitchTestPlan.
  • Files and diagnostics: XcodeRead, XcodeWrite, XcodeUpdate, XcodeLS, XcodeGlob, XcodeGrep, XcodeMakeDir, XcodeMV, XcodeRM, XcodeRefreshCodeIssuesInFile.
  • Build, test, run, and debug: BuildProject, GetBuildLog, GetTestList, RunAllTests, RunSomeTests, RunProject, StopProject, GetConsoleOutput, InvokeDebuggerCommand, GetFileCompilerFlags, UpdateFileCompilerFlags, GetTargetBuildSettings, UpdateTargetBuildSetting.
  • Device interaction: DeviceInteractionStartSession, DeviceInteractionStartWorkspaceSession, DeviceInteractionInstallAndRun, DeviceInteractionSynthesize, DeviceInteractionEndSession.
  • Localization: LocalizationPlanner, StringCatalogContext, StringCatalogRead, StringCatalogEdit.
  • Crash and field insights: GetTopCrashIssues, GetCrashIssueLogs, GetTopFieldPerformanceIssues, GetFieldPerformanceIssueLogs.
  • Previews and reference: RenderPreview, DocumentationSearch, RunCodeSnippet.
  • Project metadata: AddEntitlement, AddInfoPlist.

In this catalog, the older XcodeListWindows name is absent; use XcodeListWorkspaces to inspect workspaces after Xcode approval. Tool calls such as builds, file edits, and device interaction can change project or device state. Start with read-only calls when validating a new setup.

Development

For source installation and quality gates, see Contributing. The package is also available on PyPI and in the MCP Registry.

Licensed under the MIT License.

Source: README.md at commit 20b17fa

Tools

0
SourceWeft has not started this package in its sandbox yet, so its tools are not known.

Version history

2
  1. v0.5.0LatestSep 23, 2026
  2. v0.4.5Sep 16, 2026

Score

50% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts

    Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.

  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts