Xcode: MCP Bridge Wrapper for Cursor について
Xcode MCP Bridge Wrapper は、Xcode の MCP ブリッジを Cursor などの厳格な MCP クライアントで使えるようにする Python ラッパーです。structuredContent が欠けたツール応答を修復し、デーモン経由で複数のクライアントが一つの Xcode 接続を共有できます。
主な機能
- 01欠落した structuredContent の修復
- 02ダイレクトモードとブローカーモード
- 03複数クライアントで共有する持続接続
- 04インストール済み Xcode のツール一覧をそのまま公開
- 05Cursor、Codex、Zed 向けの設定例
活用シーン
- 01Cursor から Xcode のビルドやテストツールを呼び出す
- 02複数のクライアントで一つの Xcode 接続を共有し、認証プロンプトを減らす
- 03Xcode でプロジェクトファイルの読み書きや診断情報を確認する
MCP 対応
このラッパーは MCP サーバーとして、xcrun mcpbridge 経由の Xcode ツールを外部の MCP クライアントに転送し、応答形式を修正します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Xcode MCP Bridge Wrapper
mcpbridge-wrapper は、Apple の
xcrun mcpbridge を通じて外部 MCP クライアントを Xcode に接続します。outputSchema を宣言しているものの
structuredContent がない Xcode ツールのレスポンスを修復します。この修復は、ダイレクトモードと
ブローカーモードの両方で機能します。ブローカーモードでは、複数のクライアントで 1 つの永続的な Xcode 接続を共有できるため、接続プロンプトの繰り返しを減らせます。
互換性
| コンポーネント | 0.5.0 でのサポート |
|---|---|
| Xcode | macOS 上の 26.3 以降および 27.0。Xcode 27.0 のハンドシェイクとツール検出を検証済み |
| MCP クライアント | initialize ライフサイクルを使用するクライアント。お使いのクライアントバージョンで使用されるプロトコルをご確認ください |
| MCP 2026-07-28 | 0.5.0 ではサポートされていません。セッションレス実装は別ブランチで引き続き実験段階です |
| Python | 3.9-3.12。uvx が独自の環境を管理します |
このラッパーには Xcode ツールは同梱されていません。インストール済みの Xcode から返されるカタログを公開するため、ツール名や利用可能なツールは Xcode のアップデートや権限によって変わる場合があります。ビルド 27A266a で確認された Xcode 27.0 のカタログは以下に記載されています。
クイックスタート
- uv と Xcode 26.3 以降をインストールします。Xcode 27.0 もサポートされています。
- Xcode > Settings > Intelligence > Model Context Protocol で、 Allow external agents to use Xcode tools を有効にします。使用するプロジェクトを Xcode で開きます。 Apple のセットアップガイドを参照してください。
- 以下のクライアント設定のいずれかを追加します。今後メジャーリリースが公開された場合も従来の
MCP 契約を維持できるよう、
0.5.0に固定してください。 - クライアントを起動し、表示された場合は Xcode アクセスプロンプトを承認します。承認後、
クライアントで MCP サーバーを再読み込みするか再接続して、
tools/listを再取得してから、 実際の Xcode ツール呼び出しで動作を確認します。MCP のインジケーターが緑色になっただけでは、 ハンドシェイクが確認できただけです。
複数のクライアントを使用する場合は、ブローカーモードをおすすめします。すべての例で、ユーザーごとに 1 つのデーモンを使用します。最初のクライアントがデーモンを起動し、以降のクライアントはそれを再利用します。
Cursor
~/.cursor/mcp.json に追加します。
{
"mcpServers": {
"xcode-tools": {
"command": "uvx",
"args": ["--from", "mcpbridge-wrapper==0.5.0", "mcpbridge-wrapper", "--broker"]
}
}
}
Codex
~/.codex/config.toml に追加して、Codex を再起動します。
[mcp_servers.xcode-tools]
command = "uvx"
args = ["--from", "mcpbridge-wrapper==0.5.0", "mcpbridge-wrapper", "--broker"]
Zed
~/.config/zed/settings.json のトップレベルの
context_servers キーの下に追加し、Settings > AI > MCP Servers でサーバーを無効にしてから再度有効にします。
{
"context_servers": {
"xcode-tools": {
"command": "uvx",
"args": ["--from", "mcpbridge-wrapper==0.5.0", "mcpbridge-wrapper", "--broker"],
"env": {}
}
}
}
設定 UI とサーバーの状態インジケーターについては、Zed の MCP 設定ガイドを参照してください。
Claude Code
claude mcp add --transport stdio xcode -- uvx --from 'mcpbridge-wrapper==0.5.0' mcpbridge-wrapper --broker
共有デーモンが不要な単一のクライアントでは、コマンドから --broker を削除してダイレクトモードを使用します。手動インストールと Web UI のオプションについては、インストールガイド、
ブローカーモードガイド、Web UI ガイドで説明しています。
Xcode 27.0 の承認と検証
Xcode 27.0 では、ブローカーホストプロセスとプロジェクトフォルダーへのアクセス許可を求められる場合があります。プロンプトにはエディター名ではなく、Python の実行ファイルと PID が表示されます。以前の Python インストールにすでに許可を与えていても、新しい uvx ホスト ID には改めて承認が必要になる場合があります。パスとプロジェクトが想定どおりの場合にのみ、アクセスを承認してください。
ツールからエージェントが承認されていないと報告された場合は、既存の .xcodeproj または .xcworkspace の絶対パスを指定して XcodeOpenWorkspace を使用し、アクセスをリクエストしてください。Xcode でプロンプトを承認したら、読み取り専用ツールを再試行してください。tools/list が成功したことや、クライアントのステータスドットが緑色であることを、Xcode ツールの呼び出しが許可されている証拠と見なさないでください。次のコマンドで Xcode の状態を確認してください。
xcrun mcp-server status
uvx --from 'mcpbridge-wrapper==0.5.0' mcpbridge-wrapper --broker-status
2 つ目のコマンドには、Proxy version: 0.5.0 と Daemon version: 0.5.0 が表示されるはずです。古いデーモンがまだ実行中の場合は、一度停止してからクライアントを再接続してください。
uvx --from 'mcpbridge-wrapper==0.5.0' mcpbridge-wrapper --broker-stop
シングルトンを停止すると、一時的にそれを使用しているすべてのクライアントが切断されます。次の --broker 接続時に新しいデーモンが起動します。長期間安定して使用できるホスト ID については、専用ブローカーホストを参照してください。
Xcode 27.0 のツール
ローカルのスモークテストでは、Xcode 27.0 ビルド 27A266a で tools/list によって54 個のツールが公開されました。これは確認されたカタログであり、ハードコードされたラッパー API ではありません。Xcode 27 では、ワークスペースの作成とオープン、シミュレーター操作、実行とデバッガーの制御、ビルド設定、ローカライズ、クラッシュおよび実環境の分析ツールが追加されています。Apple の Xcode 27 リリースノートを参照してください。
- ワークスペースとターゲット:
XcodeListWorkspaces、XcodeOpenWorkspace、XcodeCloseWorkspace、XcodeNewProject、XcodeNewTarget、XcodeListTargets、XcodeListTemplates、XcodeListSchemes、XcodeSwitchScheme、XcodeListRunDestinations、XcodeSwitchRunDestination、XcodeListTestPlans、XcodeSwitchTestPlan。 - ファイルと診断:
XcodeRead、XcodeWrite、XcodeUpdate、XcodeLS、XcodeGlob、XcodeGrep、XcodeMakeDir、XcodeMV、XcodeRM、XcodeRefreshCodeIssuesInFile。 - ビルド、テスト、実行、デバッグ:
BuildProject、GetBuildLog、GetTestList、RunAllTests、RunSomeTests、RunProject、StopProject、GetConsoleOutput、InvokeDebuggerCommand、GetFileCompilerFlags、UpdateFileCompilerFlags、GetTargetBuildSettings、UpdateTargetBuildSetting。 - デバイス操作:
DeviceInteractionStartSession、DeviceInteractionStartWorkspaceSession、DeviceInteractionInstallAndRun、DeviceInteractionSynthesize、DeviceInteractionEndSession。 - ローカライズ:
LocalizationPlanner、StringCatalogContext、StringCatalogRead、StringCatalogEdit。 - クラッシュと実環境の分析:
GetTopCrashIssues、GetCrashIssueLogs、GetTopFieldPerformanceIssues、GetFieldPerformanceIssueLogs。 - プレビューとリファレンス:
RenderPreview、DocumentationSearch、RunCodeSnippet。 - プロジェクトのメタデータ:
AddEntitlement、AddInfoPlist。
このカタログには、以前の XcodeListWindows という名前は含まれていません。Xcode の承認後にワークスペースを調べるには、XcodeListWorkspaces を使用してください。ビルド、ファイル編集、デバイス操作などのツール呼び出しは、プロジェクトやデバイスの状態を変更する場合があります。新しいセットアップを検証する際は、読み取り専用の呼び出しから始めてください。
開発
ソースからのインストールと品質ゲートについては、コントリビューションを参照してください。パッケージは PyPI および MCP Registryでも入手できます。
MIT ライセンスに基づいてライセンスされています。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。