XcodeBuildMCPでできること:AIがアプリ操作からテストまで進める

XcodeBuildMCPでAIは画面要素を見つけ、タップや文字入力まで進められる

XcodeBuildMCPを使うと、AIエージェントはコードを書いたあと、Simulatorで動くアプリまで操作できます。XcodeBuildMCPはアクセシビリティ情報からボタンや入力欄の情報をAIへ返し、ui-automationを有効にすると、AIはtap、type_text、swipe、drag、long pressなどを呼び出せます。v2.7.0のtype_textが扱う文字は、英数字や記号などの印字可能なUSキーボード文字です。操作後は更新後のUI情報の取得も試みます。

たとえば、「検索画面を開き、検索欄へ『Tokyo』と入力し、検索ボタンを押して、結果一覧が表示されたらスクリーンショットを撮る」という流れを、AIエージェントとの同じ会話から進められます。snapshot_uiは、画面要素の役割、ラベル、識別子に加え、操作対象を指定する短い参照を返します。そのため、人が座標を一つずつ教える必要はありません。

SIMULATOR UI AUTOMATION

「検索して結果を確認する」流れをAIが進められる

画面のUI情報から対象を選び、操作後は更新された情報の取得を試みます。

1 LAUNCH

アプリを起動

build_run_simでビルド、インストール、起動まで進めます。

2 READ

ボタンや入力欄を見つける

snapshot_uiで検索欄やボタンを識別します。

3 TYPE

文字を入力

type_textで検索欄へ「Tokyo」と入力します。

4 TAP

ボタンを押す

tapで検索ボタンを押します。

5 VERIFY

結果を確かめる

wait_for_uiとscreenshotで表示結果を確認します。

taptype_textなどの操作を実行したあと、XcodeBuildMCPは更新後のUI情報の取得を試みます。取得できた場合は、その情報に含まれる新しい参照を次の操作に使います。取得できなければ、snapshot_uiで取り直すか、wait_for_uiで対象の表示を待ちます。snapshot_uiとscreenshotは既定のsimulatorワークフローで使えます。taptype_text、swipeなどの操作には、ui-automationワークフローの追加が必要です。

XcodeBuildMCPは、AIエージェントからXcodeのビルド、テスト、Simulator操作、LLDBデバッグなどを呼び出すためのMCPサーバーです。AIがソースコードを変更したあと、ビルド、アプリ起動、画面操作、テスト、失敗箇所の確認まで同じ作業の流れにまとめられます。ターミナルやCIから同じ機能を使えるCLIも1つのパッケージに含まれます。

2026年8月31日時点の最新版は、2026年7月23日に公開されたv2.7.0です。公式ドキュメントは82個のツールを15のワークフローに整理しています。動作条件はmacOS 14.5以降とXcode 16以降で、npm版を使う場合はNode.js 18以降も必要です。

15のワークフローを開発工程ごとに選べる

ツール名を一つずつ覚えるより、「次に何を確認したいか」を基準にワークフローを選ぶほうが、実際の開発工程に合わせやすくなります。公式のWorkflowsページに掲載された15分類は、準備から環境管理までの5つの工程にまとめられます。

15のワークフローを5つの工程で見る

1 準備

プロジェクトを作成・探索・設定

project-discovery、project-scaffolding、session-management

2 実行

ビルドして動かす

simulator、device、macos、swift-package

3 検証

テスト結果を追う

各実行ワークフローのtest、coverage

4 観測

UIと実行状態を見る

ui-automation、debugging、xcode-ide

5 環境管理

実行環境を診断・管理

simulator-management、doctor、utilities、workflow-discovery

プロジェクト探索とセッション既定値

discover_projsは、指定したルート配下から.xcodeproj.xcworkspaceを探します。見つかったプロジェクトのScheme、ビルド設定、bundle IDは、それぞれ専用ツールで取得できます。Swift PackageはpackagePathを指定してSwiftPM用ツールへ渡します。

毎回同じパスや端末名を送る代わりに、session_set_defaultsでプロジェクト、Scheme、ビルド構成、Simulatorを保存できます。モノレポではプロファイルを分けられるため、iOSアプリとwatchOSコンパニオンの設定を切り替えられます。

Simulator・実機・macOS・Swift Packageの実行

Simulator向けのbuild_run_simは、ビルド、インストール、起動を1回の呼び出しで実行します。公式のTools Referenceでは、結果にビルドログが含まれ、利用できる場合は実行時ログ、OSLog、アプリのパス、bundle ID、PIDも返ります。

Apple実機向けには、ビルド、インストール、起動、テストのツールがあります。実機向けの署名設定は、先にXcodeで整えます。macOSアプリには専用のbuild-and-runとtestがあり、Swift Packageではbuild、test、run、停止、coverageまで扱えます。

テスト・coverage・実行時ログ

XcodeBuildMCPは、成功数に加えて、失敗したテスト、所要時間、xcresultの保存先まで構造化して返します。get_coverage_reportではターゲット別、get_file_coverageでは関数と未カバー行まで確認できます。

現行版のログ取得には、build_run_simまたはlaunch_app_simが返すログパスを使います。v2.5.0で旧loggingワークフローとstart/stop型のログ取得ツールが整理されたため、古い導入記事のコマンドを使う前にChangelogで現行名を確認します。

UI操作・LLDB・Xcode内蔵MCPとの橋渡し

snapshot_uiはアクセシビリティ階層を読み、role、label、value、identifier、frame、実行できる操作を整理します。ui-automationを有効にすると、AIエージェントはtap、type_text、swipe、drag、long press、wait_for_uiを実行できます。tapやtype_textでは画面要素のelementRefを指定し、swipeで対象範囲を指定するときはwithinElementRefを使います。wait_for_uiでは複数のselector(待機条件)を指定できます。batchは、同じ画面で複数のtapをまとめるときに使えます。

elementRefは、そのUI情報を取得した時点で使う短い参照です。画面遷移、検索結果の表示、sheetの開閉などでUIが変わったあと、操作結果から新しいUI情報を取得できた場合は、その情報を使います。取得できなければ、snapshot_uiで取り直すか、wait_for_uiで対象の表示を待ちます。対象が見つからない場合、XcodeBuildMCPは別の要素を選ぶ代わりに、再取得などの回復手順を返します。

LLDBワークフローでは、Simulator上のアプリへ接続(attach)し、breakpoint、continue、call stack、frame variables、LLDB command、detachを扱います。Xcode 26.3以降では、Xcode IDE Bridgeを通じてPreview表示、Issue Navigator、ドキュメント検索、Project Navigator操作などのXcode内蔵MCP機能にも接続できます。

MCPに表示される機能は有効なワークフローで変わる

MCPサーバーは、既定でsimulatorワークフローだけを表示し、session-managementを自動追加します。作業に必要なツールだけを有効にすると、AIが一度に読むツール説明の量を抑えられます。

ワークフローは、プロジェクトルートの.xcodebuildmcp/config.yamlまたはMCPクライアント側の環境変数で選びます。たとえばSimulator上で画面操作とデバッグまで行う構成は次の形です。

schemaVersion: 1
enabledWorkflows:
  - simulator
  - project-discovery
  - ui-automation
  - debugging
sessionDefaults:
  projectPath: "./MyApp.xcodeproj"
  scheme: "MyApp"
  simulatorName: "iPhone 17 Pro"

必要になった作業だけ追加する

画面をタップする・文字を入力する

ui-automationを追加し、snapshot_uiで取得したelementRefを指定して操作します。

停止位置の変数とスタックを見る

debuggingを追加し、LLDBでアプリに接続(attach)します。

署名済みアプリを端末で試す

deviceを追加し、XcodeでDevelopment Teamを設定して署名を整えます。

XcodeのPreviewやIssue Navigatorへ接続する

xcode-ideを追加し、Xcode 26.3以降のBridgeを使います。

MCPサーバーの実行中にワークフローを変える実験機能もあります。Codexなど、MCPのツール一覧を動的に更新しないクライアントでは、設定変更後にMCPセッションを再起動すると新しいツールが表示されます。CLIではワークフローの有効設定にかかわらず、すべてのコマンドを必要に応じて呼び出せます。

導入はSimulatorのbuild-and-runから始める

インストールにはHomebrewとnpmの2つの方法があります。Homebrew版はbrew tap getsentry/xcodebuildmcpを実行し、続けてbrew install xcodebuildmcpで導入できます。Node.jsは使いません。npm版はNode.js 18以降で動きます。Codexにnpm版を接続する公式例は次の1行です。

codex mcp add XcodeBuildMCP -- npx -y xcodebuildmcp@latest mcp

@latestはその時点の最新版を使います。この記事と同じv2.7.0を使う場合は、xcodebuildmcp@2.7.0に置き換えます。

接続後は、まずプロジェクト、Scheme、Simulatorを確認し、既定値に保存します。Simulator名やScheme名が分からない場合は、list_simsで利用可能なSimulatorを、list_schemesでSchemeを調べられます。設定を保存したら、そのSimulatorでbuild-and-runを1回成功させます。そのあとで必要なワークフローを追加すると、問題が起きた設定を切り分けやすくなります。

最初の5ステップ

STEP 1

既定値を表示

session_show_defaultsで設定済みのプロジェクト、Scheme、Simulatorを確認します。

STEP 2

既定値を保存

projectまたはworkspace、Scheme、Simulatorを保存します。

STEP 3

ビルドして起動

build_run_simでビルド、起動、ログ取得まで実行します。

STEP 4

テストを実行

test_simで失敗箇所とxcresultを取得します。

STEP 5

UI操作を有効にする

ui-automationを有効にしてから、snapshot_uiで対象を選び、tapやtype_textのあとに表示結果を確認します。

XcodeBuildMCPはAIの作業をコード変更から実行確認へ広げる

コード変更、ビルド、アプリ起動、画面操作、テスト、デバッグを一続きにすると、AIエージェントはコンパイル成功で作業を終えず、ユーザーが触る画面まで確認できます。対象が見つからないときはUI情報の再取得などの回復手順を受け取れるため、意図しない要素の操作を避けやすくなります。

まずSimulatorワークフローでプロジェクト、Scheme、Simulatorを既定値へ保存し、build-and-runを成功させます。続いてテストを実行し、ui-automationを有効にします。snapshot_uiで見つけたボタンを1つタップするところまで進めると、XcodeBuildMCPが担う範囲を具体的につかめます。その後、coverage、LLDB、実機へ必要な範囲だけ広げられます。

参考資料