xcode-cloud-mcp
xcode-cloud-mcp
App Store Connect API を介して、Xcode Cloud のプロダクトを検出し、ワークフローを調査・編集し、ビルド実行を監視し、ビルドの問題、ログ、テスト概要、UI テストアーティファクトを取得するための最小限の MCP サーバー。
機能
機能 | ツール | 使用例 | 戻り値の例 |
プロダクトの検出 |
| "このアカウントで利用可能な Xcode Cloud プロダクトを表示して。" |
|
ワークフローの検出 |
| "プロダクト |
|
ワークフロー設定の確認 |
| " |
|
実行中または最近のビルドの監視 |
| "監視できるように、ワークフロー |
|
ワークフローの有効化・無効化 |
| "新しい設定をテストしている間、ワークフロー |
|
名前・説明・クリーンモードの更新 |
| "ワークフロー |
|
開始条件の明示的な更新 |
| "ワークフロー | 更新された |
ワークフローアクション一覧の置換 |
| "ワークフロー | 削除後は |
ビルドの健全性をすばやく確認 |
| "ワークフロー |
|
コンパクトなビルドログ要約の読み取り |
| "ビルド |
|
ローカル grep 用にログを実体化 |
| "ローカルで grep できるように、ビルド |
|
テスト結果の要約 |
| "最新の失敗ビルドのテスト結果を要約して。" |
|
失敗したテストへ直接ジャンプ |
| "ビルド |
|
UI テストアーティファクトの取得 |
| "最新の失敗した UI テスト実行のスクリーンショットとビデオを表示して。" |
|
ローカル一時ファイルのクリーンアップ |
| "24 時間より古い保存済みログを削除して。" |
|
ビルドの検索はワークフロースコープです。取得ツールは、直接の buildRunId、または workflowId と buildNumber の組み合わせ、あるいは workflowId と buildSelector: "latest" | "latestFailing" の組み合わせを受け付けます。
list_products と list_workflows は、すべての結果を自動的にページネーションします。
list_build_runs は status: "all" | "failed" | "succeeded" | "running" | "pending" とオプションの limit(デフォルトは 20)をサポートしているため、エージェントは各実行をローカルで後処理したり MCP レスポンスサイズを膨張させたりすることなく、アクティブなワークフローをポーリングできます。
Related MCP server: appstore-release-mcp
要件
Node.js
20+Xcode Cloud にアクセスできる App Store Connect API の認証情報
環境変数
主な名前:
APPSTORE_CONNECT_API_KEY_IDAPPSTORE_CONNECT_API_ISSUER_IDAPPSTORE_CONNECT_API_KEY_CONTENT
互換エイリアス:
APP_STORE_KEY_IDAPP_STORE_ISSUER_IDAPP_STORE_PRIVATE_KEY
秘密鍵は、リテラルの複数行 PEM コンテンツとして、または \n をエスケープした文字列として渡すことができます。
Claude のセットアップ
claude mcp add xcode-cloud \
--env APPSTORE_CONNECT_API_KEY_ID="$APPSTORE_CONNECT_API_KEY_ID" \
--env APPSTORE_CONNECT_API_ISSUER_ID="$APPSTORE_CONNECT_API_ISSUER_ID" \
--env APPSTORE_CONNECT_API_KEY_CONTENT="$APPSTORE_CONNECT_API_KEY_CONTENT" \
-- npx -y @thatfactory/xcode-cloud-mcpCodex のセットアップ
codex mcp add xcode-cloud \
--env APPSTORE_CONNECT_API_KEY_ID="$APPSTORE_CONNECT_API_KEY_ID" \
--env APPSTORE_CONNECT_API_ISSUER_ID="$APPSTORE_CONNECT_API_ISSUER_ID" \
--env APPSTORE_CONNECT_API_KEY_CONTENT="$APPSTORE_CONNECT_API_KEY_CONTENT" \
-- npx -y @thatfactory/xcode-cloud-mcp利用可能なツール
list_products()list_workflows(productId)get_workflow_details(workflowId)list_build_runs(workflowId, limit?, status?)set_workflow_enabled(workflowId, enabled)update_workflow_general(workflowId, name?, description?, clean?)update_workflow_start_conditions(workflowId, branchStartCondition?, manualBranchStartCondition?, pullRequestStartCondition?, manualPullRequestStartCondition?, scheduledStartCondition?, tagStartCondition?, manualTagStartCondition?)update_workflow_actions(workflowId, actions)get_build_issues(buildRunId? workflowId? buildNumber? buildSelector?)get_build_logs(buildRunId? workflowId? buildNumber? buildSelector?, maxCharacters?)materialize_build_logs(buildRunId? workflowId? buildNumber? buildSelector?)get_test_results(buildRunId? workflowId? buildNumber? buildSelector?)get_failed_tests(buildRunId? workflowId? buildNumber? buildSelector?)get_test_artifacts(buildRunId? workflowId? buildNumber? buildSelector?)cleanup_saved_logs(buildRunId?, maxAgeHours?)
ログ取得の動作
get_build_logs は、意図的に MCP レスポンスをコンパクトに保ちます:
テキスト形式のビルドログアーティファクトをダウンロードして、一時的なローカルディレクトリに展開します
savedLogsDirectoryとsavedLogsを返すため、ローカルエージェントはrg、grep、またはcatで抽出されたファイルを調査できますコンパクトな
failedTestsの要約、highlights、および上限付きのexcerptを返します呼び出し側が非常に大きな
maxCharactersを渡した場合でも、インラインの excerpt は上限に切り詰められ、過大な MCP レスポンスを回避します
推奨されるエージェントのワークフロー:
get_failed_testsまたはget_build_logsを呼び出します。savedLogsDirectoryを読み取ります。そのディレクトリ内で
rgを使用して、失敗した正確なテストまたはアサーションを調べます。必要に応じて、調査が完了したら
cleanup_saved_logsを呼び出します。
一時ログは、システムの一時ディレクトリ配下の次のようなパスに書き込まれます:
/tmp/xcode-cloud-mcp/build-logs/<buildRunId>macOS では、これは通常 /var/folders/.../T/ 配下のパスに解決されます。
クリーンアップポリシー:
同じ
buildRunIdに対する呼び出しのたびに、そのビルド固有の一時ディレクトリを最初に削除して再作成します24 時間より古いビルドディレクトリは自動的に削除されます
単一の
buildRunIdに対して、または選択した保持期間より古いすべてのディレクトリに対して、cleanup_saved_logsを直接呼び出すこともできます
プロンプト例
Retrieve logs of the latest failing build for workflow abc123.Retrieve logs of build 81, then inspect the returned savedLogsDirectory and grep for Expectation failed.Get the failed tests for build 81, then open the saved logs directory and inspect the failing test in context.Retrieve logs of build number 42 for workflow abc123.Show me the latest failing UI test artifacts for workflow abc123.List the workflows for product def456 and then summarize the latest build.Show me the full workflow details for workflow abc123, including environment, start conditions, actions, and whether it is enabled.Disable workflow abc123, remove the archive action, then restore the original action list after the experiment.ワークフロー詳細の動作
get_workflow_details は、App Store Connect によって公開されている現在のワークフロー設定を返します。次のようにグループ化されます:
generalenvironmentstartConditionsactionspostActions
注記:
environmentには、App Store Connect が返す場合に、リポジトリ、xcodeVersion、macOsVersionが含まれます。actionsには、アクションタイプ、スキーム、プラットフォーム、宛先、合格必須状態、および存在する場合はテストプランの詳細が含まれます。postActionsは現在、注記付きの空の配列として返されます。観測された API レスポンスでは、App Store Connect のワークフローペイロードが個別のポストアクションを公開しないためです。
ワークフロー更新の動作
ワークフロー更新ツールは、意図的に明示的です:
set_workflow_enabledはisEnabledのみを切り替えますupdate_workflow_generalはname、description、cleanのみを変更しますupdate_workflow_start_conditionsは、渡した開始条件オブジェクトのみを変更しますupdate_workflow_actionsはactions配列全体を置き換えるため、呼び出し側は最初に現在のワークフローを取得し、その後で最終的に望むアクションリストを送信する必要があります
重要な制限:
Xcode Cloud でワークフローに
Restrict Editingが有効になっている場合、App Store Connect API キーにApp Managerアクセス権があっても編集が失敗することがありますMCP による編集を確実に機能させるには、書き込みツールを使用する前に、そのワークフローの
Restrict Editingチェックボックスをオフにしてくださいそれでも Apple がリクエストを拒否する場合は、
Adminなどより強力な API キーロールを使用してください
ローカル開発
依存関係をインストール:
npm installテストを実行:
npm testパッケージをビルド:
npm run buildMaintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseBqualityFmaintenanceAn MCP server to communicate with the App Store Connect API for iOS Developers2582330MIT
- AlicenseAqualityBmaintenanceAn MCP server that drives the full App Store release cycle for iOS and macOS apps: version bump, archive + TestFlight upload, metadata, review submission, and status.8228MIT
- AlicenseNot gradedqualityAmaintenanceApp Store Connect MCP Server (Swift) that manages apps, builds, TestFlight, metadata, reviews natively on macOSMIT
- AlicenseNot gradedqualityAmaintenanceThis MCP server provides access to Apple's App Store Connect API. It allows users to inspect apps, versions, builds, TestFlight groups, sales, users, and optionally edit metadata and manage testers.566MIT
Related MCP Connectors
MCP server for Appcircle mobile CI/CD platform.
MCP server for interacting with the Supabase platform
An MCP server that let you interact with Cycloid.io Internal Development Portal and Platform
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/thatfactory/xcode-cloud-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server