AIエージェントがコードを書くだけで終わらず、実機やシミュレータ上で動作を確認できるようになった。

この記事では、Xcode 27に同梱されたxcode-tools MCP serverの概要と、外部エージェントからシミュレータを操作して機能検証する仕組みを整理します。

この記事でわかること

  • xcode-tools MCP serverが何を提供するか
  • 外部エージェントとの接続手順
  • Device Hubとdevice-interactionスキルによる検証の流れ
  • サードパーティ製MCPサーバーとの使い分け

Xcode 27で追加された検証の柱

WWDC 2026で発表されたXcode 27は、コーディングエージェントが自分の作業を検証できる仕組みを大幅に拡張しました。Appleの公式発表では、テストの作成と実行、Playgroundsでの試行、プレビューによる見た目の確認に加え、新しいDevice Hub経由でのシミュレータ操作が挙げられています(参考)。

開発者Beto氏のデモでは、Xcode 27に同梱されるxcode-tools MCP serverを使い、エージェントがシミュレータと対話して機能が実際に動くかを確認する様子が公開されています(参考)。ビルドが通っただけでは足りない場面で、エージェントが画面を見て操作まで行える点が実用性の核です。

エージェントが抱えていた検証の壁

これまでターミナル上のコーディングエージェントは、xcodebuildを呼び出してビルドログを解析する方法が中心でした。コンパイルエラーの取得はできても、SwiftUIプレビューの描画結果や実行中の診断情報、シミュレータ上のタップ操作までは届きませんでした。

Xcode 26.3でプレビューとして登場したmcpbridgeは、Model Context Protocol(MCP)のリクエストをXcodeプロセスへのXPC呼び出しに変換するバイナリです。ネットワーク越しではなくローカルプロセス間通信を使うため、IDEのライブな状態に直接アクセスできます。Xcode 27ではこの仕組みが本番品質に引き上げられ、シミュレータ操作を含む検証ループが外部エージェントからも使えるようになりました。

xcode-tools MCP serverの中身

xcode-tools MCP serverは、Xcodeが提供するMCPサーバーです。外部のコーディングエージェントはxcrun mcpbridge経由で接続し、プロジェクトの読み書き、ビルド、テスト実行、診断情報の取得、SwiftUIプレビューの描画、Apple公式ドキュメントの検索など、構造化されたJSONで応答が返るツール群を呼び出せます。Xcode 26.3時点で約20種のツールが公開されており、Xcode 27ではデバッガ操作、スキームや実行先の切り替え、ビルド設定やエンタイトルメントの参照・変更などが追加されています(参考)。

シミュレータ連携はDevice Hubと組み合わさります。Device HubはXcode 27と一緒に配布される独立アプリで、実機とシミュレータを一覧管理し、ウィンドウサイズの変更やスクリーンショット取得などを一つのワークスペースで行えます。エージェントはここを操作面として使い、アプリの起動から画面操作までを自動化します。

AppleがXcode 27向けに同梱するdevice-interactionスキルは、スクリーンショット取得、UI階層の読み取り、座標指定のタップやスワイプといった合成タッチ操作でアプリの挙動を検証する手順を定義しています(参考)。UI階層に含まれる要素の中心座標を使ってタップする設計になっており、スクリーンショットだけから位置を推測するより信頼性が高くなっています。

外部エージェントとの接続手順

https://developer.apple.com/documentation/xcode/giving-external-agents-access-to-xcode

Apple公式ドキュメントに沿った設定は次の3段階です。

  1. Xcodeを起動し、対象プロジェクトを開く
  2. Xcode > Settings > Intelligenceで「Allow external agents to use Xcode tools」をオンにする
  3. ターミナルでエージェントにMCPサーバーを登録する

Claude Codeの場合は次のコマンドです。

claude mcp add --transport stdio xcode -- xcrun mcpbridge

OpenAI Codex CLIの場合は次のとおりです。


codex mcp add xcode -- xcrun mcpbridge

登録後はclaude mcp listcodex mcp listで接続を確認できます。Cursorなど他のMCPクライアントでは、サーバー名をxcode-tools、コマンドをxcrun、引数をmcpbridgeとするstdio構成が一般的です。mcpbridgeはXcodeのプロセスIDを自動検出するため、手動でPIDを指定する必要はありません。

接続が成功すると、Xcode側で外部エージェントの接続と稼働状態が通知されます。エージェントに作業を依頼する前に、必ずXcodeでプロジェクトを開いた状態にしておく点が前提条件です。

サードパーティMCPとの使い分け

コミュニティ製のXcodeBuildMCP(Sentry保守)やios-simulator-mcpは、ヘッドレスなCI環境でもxcodebuildやSimulator CLIをラップして動かせる利点があります。一方、xcode-tools MCP serverはXcodeが起動している対話的な開発環境向けです。ライブ診断、SwiftUIプレビュー、Device Hub経由のシミュレータ操作など、IDE内部の状態に触れる必要がある検証では、Apple純正のブリッジが優位です。

device-interactionスキルはXcode 27のエージェントが提供するツールに依存するため、Xcodeを起動せずCursorだけで動かすことはできません。ソースコードの編集だけが目的なら、エクスポート可能なswiftui-specialistなど知識系スキルを他IDEで使う方が現実的です(参考)。

エージェント主導の検証が変える開発フロー

典型的な流れは、エージェントがコードを修正してビルドし、Device Hubでシミュレータにアプリを起動し、UI階層とスクリーンショットで画面状態を確認し、必要ならタップやスワイプを送ってから再度キャプチャする、というループです。ボタンが反応しない、レイアウトが崩れる、想定画面に遷移しないといった不具合を、人間がシミュレータを触る前にエージェント側で検出できます。

AppleはXcode 27でエージェントがより長く自律的に動けるよう、検証ツールをIDEに組み込む方針を明言しています。コード生成と実行確認が一つの会話の中で閉じることで、「動くはずのコード」が実際には画面で破綻している、というギャップを縮められます。

利用時の前提とセキュリティ

xcode-tools MCP serverはローカル接続のみを想定しており、外部からネットワーク経由で操作される設計ではありません。それでもビルドやテスト実行、シミュレータ操作を外部プロセスに許可するため、機密プロジェクトでは接続するエージェントを選ぶ必要があります。ヘッドレスなCIランナーではXcodeのGUIが使えないため、xcode-toolsではなくxcodebuildベースのツールを選ぶのが実務的です。

Xcode 27のxcode-tools MCP serverは、MCPというオープンなプロトコルでAppleプラットフォーム開発の検証ループをエージェントに開放する機能です。シミュレータ操作まで含めた自己検証が標準装備になったことで、iOS・macOS開発でも「書いて終わり」ではなく「動くまで任せる」ワークフローが現実的になっています。