plugins/apple-app-dev/skills/setup-xcodebuildmcp/SKILL.md
XcodeBuildMCP の設定ファイル(.xcodebuildmcp/config.yaml)をプロジェクトに生成・セットアップする。xcodebuildmcp, config, setup, simulator, build, Xcode
npx skillsauth add kentanakae/claude-code-plugins setup-xcodebuildmcpInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
対応 XcodeBuildMCP バージョン: v2.5.1(schemaVersion: 1)。 このバージョン文字列は Step 0-2 で実行される自己更新フロー(詳細手順は
references/self-update.md)から自動更新される。手動編集も可(enabledWorkflows一覧 /sessionDefaultsフィールド / Step 4-2 テンプレート / 上記バージョン記載 を公式ドキュメント https://xcodebuildmcp.com/docs/configuration と突き合わせる)。
プランモードが有効な場合は、ExitPlanMode ツールを呼び出して解除する。プランモードでない場合はスキップ。
$ARGUMENTS[0] が uninstall の場合はこのステップをスキップして Step 1 へ。それ以外は最新版が出ているかをチェックする。
現在バージョン: 本ファイル冒頭の引用ブロック(> 対応 XcodeBuildMCP バージョン: **vX.Y.Z**)から抽出する
最新バージョン: Bash で以下を実行:
gh api repos/cameroncooke/XcodeBuildMCP/releases/latest --jq .tag_name 2>/dev/null
取得した最新タグ(例: v2.5.1 / 2.5.1)と現在バージョンを比較
同一(または最新が現在以下)→ Step 1 へ進む(メッセージ不要)
最新の方が新しい → 以下を表示:
XcodeBuildMCP の新しいバージョンが利用可能です。
現在のスキル対応: v<現在>
最新リリース: v<最新>
続けて AskUserQuestion で 3 択を提示:
question: "スキル定義を最新仕様に更新しますか?"
options:
- label: "今回はスキップ (Recommended)"
description: "今のスキル定義のまま続行する。後で /setup-xcodebuildmcp で再実行すれば再度確認される"
- label: "スキル定義を更新する"
description: "公式ドキュメントを取得し、enabledWorkflows / sessionDefaults / テンプレートを最新化してから続行する"
- label: "キャンセル"
description: "今回の処理を中止する"
references/self-update.md を Read で読み込み、その手順に従って自己更新を実施。完了またはフォールバックしたら Step 1 へ進む(今回のフローは更新前の現在の定義のまま続行する)$ARGUMENTS[0] が install → Step 1-1 → Step 1-2 へ(既存設定があれば「上書き / キャンセル」の 2択のみ を提示。「編集」は出さない)$ARGUMENTS[0] が edit → Step 1-1 を スキップ し直接 Step 5 へ(既存 config.yaml の編集に xcodebuildmcp 本体は不要)。config.yaml が存在しない場合は「設定がありません。/setup-xcodebuildmcp install を実行してください」と案内して終了$ARGUMENTS[0] が uninstall → Step 6 へ直行(前提確認不要)以下の順序で確認する:
which xcodebuildmcp を実行npx -y xcodebuildmcp@latest --version を実行どちらも失敗した場合、以下のインストール方法を案内して終了:
# Homebrew(推奨)
brew tap getsentry/xcodebuildmcp
brew install xcodebuildmcp
# npm
npm install -g xcodebuildmcp@latest
Glob で .xcodebuildmcp/config.yaml が既に存在するか確認する。
install 引数の場合(2択): 「上書き (Recommended) / キャンセル」
カレントディレクトリ直下で以下を Glob で検索する:
*.xcworkspace*.xcodeproj除外ルール: 以下はマッチしても無視する:
Pods.xcworkspace(CocoaPods の内部ワークスペース).xcodeproj 内部の project.xcworkspace(*.xcodeproj/project.xcworkspace パターン)検出結果に基づいて処理を分岐:
.xcworkspace のみ → workspacePath として使用.xcodeproj のみ → projectPath として使用.xcworkspace 側の label に (Recommended) を付与(CocoaPods / SwiftPM 統合プロジェクトでは workspace が必要なため)検出したプロジェクトに対して xcodebuild -list を実行し、利用可能なスキーム一覧を取得する。
-workspace または -project オプションを 2-1 の結果に基づいて付与.xcodeproj / .xcworkspace のベース名)と完全一致するスキームを最優先で先頭にApp-Dev, AppTests)xcodebuild -list の出力順を維持1回目の AskUserQuestion で以下の2問を同時に確認する。
(Recommended) を付与。4つ目は「Other」で手動入力可能)主要ワークフローを4つ提示する(その他は Step 4 生成後に config.yaml を直接編集して追加可能)。simulator の label に (Recommended) を付与する:
| ワークフロー | 説明 | |---|---| | simulator (Recommended) | シミュレータでのビルド・実行 | | device | 実機(iPhone / iPad / Apple Watch / Apple TV / Vision Pro) | | ui-automation | UI 自動化・アクセシビリティテスト | | debugging | LLDB デバッガ連携・ブレークポイント |
参考: 利用可能な全ワークフロー(v2.5.1 時点、enabledWorkflows に追記可能)
simulator — シミュレータ向けビルド・実行device — 実機向けビルド・実行macos — macOS アプリのビルド・テストswift-package — Swift Package Manager プロジェクトui-automation — UI 自動化・アクセシビリティdebugging — LLDB デバッガcoverage — xcresult のコードカバレッジxcode-ide — Xcode 26+ IDE 連携(mcpbridge)simulator-management — シミュレータ起動・消去・環境設定session-management — セッションデフォルト管理project-discovery — プロジェクト・ワークスペース・Swift Package の検出project-scaffolding — テンプレートからの新規プロジェクト生成utilities — ビルド成果物クリーン・管理doctor — 環境・依存関係の診断workflow-discovery — ランタイムでのワークフロー切替Step 3 質問2 の回答に基づき、必要なときのみ 2回目の AskUserQuestion を行う。該当質問が 0 個なら AskUserQuestion を呼ばずに直接 Step 4 へ進む。
simulator ワークフロー選択時のみ)xcrun simctl list devices available を実行し、利用可能なデバイスを抽出してリスト化する。上位3つを選択肢として提示する(最新の iPhone Pro モデルを (Recommended) に)。
simulatorName に格納する。固定 UDID 指定が必要な場合のみ simulatorId に切り替える(通常は simulatorName を推奨)以下のいずれかに該当する場合のみ確認する。それ以外は iOS と仮定して質問しない(platform フィールドは出力から省略する):
xcodebuild -list の SDK 情報に macosx, watchos, xros(visionOS), appletvos 等が含まれる*.xcodeproj のベース名に Mac, Watch, Vision, TV 等が含まれる(弱い根拠なので他と組合せ判断)この質問は iOS 以外がほぼ確実な場合のみ 呼ぶため、選択肢に iOS は含めない(誤判定で iOS と分かった場合は「Other」で iOS を入力可能)。判定根拠から最も濃厚な候補を (Recommended) に付与する:
| platform | 説明 | |---|---| | macOS | Mac アプリ | | watchOS | Apple Watch アプリ | | visionOS | Apple Vision Pro アプリ | | tvOS | Apple TV アプリ |
configuration は install フローでは質問せず、XcodeBuildMCP のデフォルト(Debug)に任せる。Release ビルド検証など必要が生じたら、生成後の config.yaml を直接編集するか /setup-xcodebuildmcp edit で更新する。テンプレートには # configuration: "Release" をコメント例として残す。
Bash で .xcodebuildmcp/ ディレクトリを作成:
mkdir -p .xcodebuildmcp
Write ツールで .xcodebuildmcp/config.yaml を生成する。以下のテンプレート(XcodeBuildMCP v2.5.1 schemaVersion: 1 準拠)を基に、Step 3 / Step 3-2 の回答を反映する:
schemaVersion: 1
# 有効化するワークフロー(必要に応じて追加可能)
# 利用可能: simulator, device, macos, swift-package, ui-automation, debugging,
# coverage, xcode-ide, simulator-management, session-management,
# project-discovery, project-scaffolding, utilities, doctor, workflow-discovery
enabledWorkflows:
- simulator # Step 3 質問2 の選択結果(複数の場合は順に列挙)
# セッションデフォルト(プロジェクト単位の既定値)
sessionDefaults:
scheme: "MyApp" # Step 3 質問1
projectPath: "./MyApp.xcodeproj" # または workspacePath(どちらか一方)
# workspacePath: "./MyApp.xcworkspace"
simulatorName: "iPhone 17" # Step 3-2 質問3(simulator 選択時のみ)
# simulatorId: "<UUID>" # 固定 UDID で指定したい場合
# configuration: "Release" # 既定は Debug。Release 検証時に有効化
# platform: "macOS" # iOS 以外(macOS / watchOS / visionOS / tvOS)を使う場合のみ
# useLatestOS: true # 既定で true。明示的に false にしたい場合のみ
# bundleId: "com.example.MyApp" # device / debugging で必要に応じて
# deviceId: "<UUID>" # device ワークフロー利用時に固定したい場合
# arch: "arm64"
# derivedDataPath: "./.derivedData"
# suppressWarnings: false
# preferXcodebuild: false
# 任意の追加オプション(必要に応じて有効化)
# customWorkflows:
# my-workflow:
# - build_run_sim
# - record_sim_video
# - screenshot
# experimentalWorkflowDiscovery: false
# disableSessionDefaults: false
# incrementalBuildsEnabled: false
# debug: false
# sentryDisabled: false
# filePathRenderStyle: "list" # "list" | "tree"
生成ルール:
enabledWorkflows: Step 3 質問2 で選択されたワークフローを順に列挙sessionDefaults:
scheme: Step 3 質問1 の回答(必須)projectPath または workspacePath: Step 2-1 の検出結果(両方は含めない)simulatorName: Step 3-2 質問3 の回答(simulator ワークフロー選択時のみ実値で出力)platform: Step 3-2 質問4 の回答が iOS 以外の場合のみ実値で出力。iOS の場合はコメント行のままconfiguration / useLatestOS: install フローでは質問しないため、テンプレートのコメント例のまま出力bundleId / deviceId / arch / derivedDataPath / suppressWarnings / preferXcodebuild: コメント例のまま出力customWorkflows / incrementalBuildsEnabled / debug / sentryDisabled / filePathRenderStyle / experimentalWorkflowDiscovery / disableSessionDefaults)はコメント例のまま出力以下を表示する:
.xcodebuildmcp/config.yaml).xcodebuildmcp/config.yaml を Read で読み込み、現在の設定を表示する。
AskUserQuestion(multiSelect: true)で更新したい箇所を選択させる(4択上限のため代表項目を提示。それ以外の項目は「Other」で項目名を直接指定可能):
enabledWorkflows)simulatorName / simulatorId)configuration)「Other」で指定可能な追加項目の例: platform, useLatestOS, bundleId, deviceId, arch, derivedDataPath, suppressWarnings, preferXcodebuild, incrementalBuildsEnabled, debug, sentryDisabled, filePathRenderStyle, customWorkflows。
選択された項目について、Step 3 / Step 3-2 と同じ要領で対話的に新しい値を確認する。
現在値の提示方法: AskUserQuestion にはデフォルト値を渡す機能がないため、各選択肢の description または質問文の末尾に (現在: <現在値>) の形式で現在値を併記する。例:
question: "scheme を更新します。新しい値を選択してください (現在: MyApp)"
options:
- label: "MyApp-Dev"
description: "Dev ターゲット用スキーム"
- label: "MyAppTests"
description: "テスト用スキーム"
Edit ツールで変更箇所のみ更新する。old_string の取り方ガイドライン:
old_string にする。例: scheme: "MyApp" → scheme: "MyApp-Dev"# configuration: "Release" のような行全体を old_string にして、configuration: "Release" に置換sessionDefaults: 等)の直後の最初の子要素を old_string の手がかりにし、そのすぐ前に新しい行を追加する形で挿入enabledWorkflows): 既存の最後の要素行を old_string にして、その下に新要素を追加する形で置換更新後、変更前後の差分を要約して表示し完了。
Glob で .xcodebuildmcp/config.yaml が存在するか確認する。
AskUserQuestion で確認する:
question: ".xcodebuildmcp/ ディレクトリを削除します。よろしいですか?"
options:
- label: "キャンセル (Recommended)"
description: "削除を中止する"
- label: "削除する"
description: ".xcodebuildmcp/ 以下を完全に削除する"
Bash で .xcodebuildmcp/ ディレクトリを削除:
rm -rf .xcodebuildmcp
以下を表示する:
.xcodebuildmcp/ ディレクトリ)tools
--- name: clasp-antigravity description: Antigravity CLI (agy) で別AIの視点を得る。Gemini CLIの後継。コードレビューやタスク実行をAntigravityに依頼する際に使用。multi-agent collaboration。 allowed-tools: Bash(agy:*), Bash(which:*) argument-hint: [review|exec] [prompt] context: fork --- # Antigravity CLI スキル Antigravity CLI(バイナリ名 `agy`)を使って、別のAIエージェントの視点を得る。Google が 2026-05-19 に公開した Gemini CLI の後継。 > **背景**: Gemini CLI は 2026-06-18 に Free/Pro/Ultra ユーザー向けで停止された(Standard/Enterprise ライセンスは継続)。本スキルはその後継として運用する。 ## 前提条件 - Antigravity
tools
ユーザーにフレンドリーな挨拶をする
tools
プラグインのスキル機能を実演するサンプル。デモやサンプルを求められたときに使用。
tools
協働チーム(設計リード・実装担当・調査担当)を起動して大規模タスクに取り組む。複数フェーズにわたる実装・調査・テストの並列連携が必要な場合に使用。