Integrations
Supports app archiving and IPA export for App Store distribution through export options plist integration
Enables iOS app deployment, testing on iOS simulators, and launching apps on physical iOS devices with log streaming capabilities
Provides macOS-specific tooling for Xcode project management and iOS development workflows
xcode-mcp
Xcode関連の操作ツールを提供するMCP(Model Context Protocol)サーバー。Claude DesktopなどのMCPクライアントからXcodeプロジェクトを簡単に操作できます。このサーバーは、Xcodeプロジェクト管理、ビルド、テスト、アーカイブ、コード署名、そして関連するiOS開発ツールのための様々なユーティリティを提供します。
特徴
- Xcodeプロジェクト情報の取得とスキームの一覧表示
- クリーンなカスタム出力オプションを備えた強化されたビルド機能
- きめ細かな制御による包括的なテスト実行
- アプリのアーカイブと配布用IPAエクスポート
- コード署名とプロビジョニングプロファイル管理
- Swift パッケージ マネージャーの統合
- simctl による iOS シミュレータの管理
- 新機能: 自動 Xcode インストール検出と改善されたデバイス管理によるリアルデバイス アプリの展開と起動
- 自動再試行によるアプリのインストール失敗のインテリジェントな処理
- デバイスとXcode情報をスマートにキャッシュしてパフォーマンスを向上
インストール
使用法
Claude Desktopでの使用
- Claude Desktop の設定ファイルを開きます:Copy
- 次の構成を追加または変更します。Copy
- Claude Desktop を再起動します。
利用可能なツール
1. xcodeプロジェクト情報
ターゲット、構成、スキームなど、Xcode プロジェクトまたはワークスペースに関する詳細情報を取得します。
パラメータ:
projectPath
(必須): Xcode プロジェクト (.xcodeproj) またはワークスペース (.xcworkspace) へのパス
例:
サンプル出力:
2. xcode-list-schemes
Xcode プロジェクトまたはワークスペースで使用可能なすべてのスキーム、ターゲット、および構成の包括的なリストを提供します。
パラメータ:
projectPath
(必須): Xcode プロジェクト (.xcodeproj) またはワークスペース (.xcworkspace) へのパス
例:
サンプル出力:
3. xcodeビルド
拡張オプションを使用してXcodeプロジェクトまたはワークスペースをビルドします。ワークスペースとプロジェクトの両方のビルド、クリーンビルド、カスタム出力ディレクトリをサポートします。
パラメータ:
projectPath
(必須): Xcode プロジェクト (.xcodeproj) またはワークスペース (.xcworkspace) へのパスscheme
(必須): 構築するスキームconfiguration
(オプション):ビルド構成(例:デバッグ、リリース)destination
(オプション):ビルド先(例: 'platform=iOS Simulator,name=iPhone 14')extraArgs
(オプション): 追加の xcodebuild 引数を文字列の配列として指定します。outputDir
(オプション): カスタムビルド出力ディレクトリ (SYMROOT)clean
(オプション): クリーンビルドを実行するかどうか (デフォルト: false)
例:
生成されたコマンド:
4. xcodeテスト
豊富なオプションを使用して、Xcode プロジェクトまたはワークスペースのテストを実行します。特定のテスト、テストプラン、さまざまなテストモードの実行など、テスト実行をきめ細かく制御できます。
パラメータ:
projectPath
(必須): Xcode プロジェクト (.xcodeproj) またはワークスペース (.xcworkspace) へのパスscheme
(必須): テストするスキームdestination
(必須):テストの宛先(例:'platform=iOS Simulator,name=iPhone 14')testPlan
(オプション): 使用するテストプランの名前onlyTesting
(オプション): 実行する特定のテスト識別子の配列skipTesting
(オプション): スキップするテスト識別子の配列resultBundlePath
(オプション): テスト結果バンドルを保存するパスbuildForTesting
(オプション): テストを実行せずにテストのみを目的としてビルドするtestWithoutBuilding
(オプション): ビルドせずにテストを実行する
例:
生成されたコマンド:
5. xcodeアーカイブ
Xcodeプロジェクトのアーカイブ(.xcarchive)を作成し、オプションで配布用のIPAファイルにエクスポートします。エクスポートオプションのplistを通じて、App Store、アドホック、エンタープライズ向けの配布方法をサポートします。
パラメータ:
projectPath
(必須): Xcode プロジェクト (.xcodeproj) またはワークスペース (.xcworkspace) へのパスscheme
(必須): アーカイブするスキームconfiguration
(オプション):ビルド構成(例:リリース)archivePath
(必須): .xcarchive ファイルを保存するパスexportPath
(オプション): アーカイブをエクスポートするパス (例: IPA ファイル)exportOptionsPlist
(オプション): exportOptions.plist ファイルへのパス
例:
生成されたコマンド:
6. xcode-codesign-info
Xcodeプロジェクトの包括的なコード署名およびプロビジョニングプロファイル情報を取得します。システムにインストールされているコード署名ID、プロジェクトのコード署名設定、およびプロビジョニングプロファイルを表示します。
パラメータ:
projectPath
(必須): Xcode プロジェクト (.xcodeproj) またはワークスペース (.xcworkspace) へのパスtarget
(オプション): 特定のターゲット名
例:
サンプル出力:
7. Swift パッケージマネージャー
Swift パッケージを管理するための Swift Package Manager (SPM) 機能へのアクセスを提供します。init、update、resolve、reset、clean などの一般的な SPM コマンドをサポートします。
パラメータ:
command
(必須): 実行する SPM コマンド ("init"、"update"、"resolve"、"reset"、"clean")packageDir
(必須): Swift パッケージのディレクトリ パスextraArgs
(オプション): 追加の SPM 引数 (文字列の配列)
例:
生成されたコマンド:
サンプル出力:
8. simctl-manager
simctl
コマンドラインツールを介してiOSシミュレータの管理機能へのアクセスを提供します。アプリの一覧表示、作成、起動、インストール、シミュレータデバイスの管理をサポートします。
パラメータ:
command
(必須):SimCtlコマンド(「list」、「create」、「boot」、「shutdown」、「erase」、「install」、「launch」、「delete」)extraArgs
(オプション): 追加の simctl 引数を文字列の配列として指定します。
例:
生成されたコマンド:
サンプル出力(省略) :
9. デバイス上で実行
物理iOSデバイス上でアプリをビルド、インストール、実行します。デバイス名(韓国語名を含む)またはUUIDによるデバイス選択、環境変数、ログストリーミングをサポートします。また、bundleIdの直接指定、ビルドスキップオプション、追加の起動引数もサポートします。
パラメータ:
projectPath
(必須): Xcode プロジェクト (.xcodeproj) またはワークスペース (.xcworkspace) へのパスscheme
(必須): ビルドして実行するスキームdevice
(必須): デバイス識別子または名前(韓国語名をサポート)configuration
(オプション):ビルド構成(例:デバッグ、リリース)streamLogs
(オプション): 起動後にデバイスログをストリーミングするかどうかstartStopped
(オプション): デバッガー接続のために一時停止状態でアプリを起動するかどうかenvironmentVars
(オプション): アプリに渡す環境変数 (key1=value1、key2=value2 形式)xcodePath
(オプション): Xcode アプリケーション パス (デフォルト: "/Applications/Xcode-16.2.0.app")listDevices
(オプション): 実行前に検出されたすべてのデバイスとそのIDを表示します。skipBuild
(オプション):すでにインストールされているアプリのビルドとインストールの手順をスキップしますextraLaunchArgs
(オプション): devicectl launch コマンドに渡す追加の引数directBundleId
(オプション): プロジェクトから抽出するのではなく、バンドルIDを直接指定します。
例:
プロセス:
- このツールは指定されたデバイスのXcode UDIDとCoreDevice UUIDの両方を識別します。
- アプリのビルドとインストールにはXcode UDIDを使用します
devicectl
でアプリを起動するためにCoreDevice UUIDを使用する- アプリのバンドル識別子を取得します
- 要求に応じて、デバイスのログをストリーミングします
v0.4.0の主な改善点:
- プロジェクトを必要とせずにbundleIdを直接指定する機能
- すでにインストールされているアプリのビルドとインストールの手順をスキップする
- 追加のdevicectl起動コマンド引数のサポート
- デバイスモデルとOSバージョン情報の表示の改善
- devicectlコマンドのパス処理とログ記録の改善
サンプル出力:
サンプルシナリオ: LLM との使用
以下は、Claude のような LLM にこれらのツールを順番に使用するように指示する方法の例です。
クロードへのユーザープロンプト:
予想されるワークフロー:
- Claude は
xcode-list-schemes
ツールを実行してすべてのスキームを取得します。Copy - Claude は、識別されたスキームを使用して
xcode-test
ツールを実行します。Copy - 次に、Claude は
xcode-archive
ツールを使用してアーカイブを作成します。Copy
このワークフローは、1 つのツールからの出力を使用して別のツールのパラメータに通知し、複数のツールを連結する方法を示します。
例: 実機での実行
クロードへのユーザープロンプト:
予想されるワークフロー:
- クロードはまずデバイスのリストを取得します。Copy
- Claude は物理デバイスを識別し、その上でアプリを実行します。Copy
- 再構築せずにすぐに再起動するには:Copy
セキュリティに関する考慮事項
このツールはXcode関連のコマンドを実行する可能性があり、セキュリティリスクを伴います。ご注意ください。
- 信頼できる Xcode プロジェクトでのみ使用してください。
- 不明なソースからのプロジェクトには注意してください。
- ビルドパラメータに機密情報を含めないでください。
発達
要件
- Node.js 16以上
- npm 6以上
- Xcode 14以上(すべての機能)
- Xcode 16以上(
devicectl
および実デバイス機能に必要)
ローカル開発とテスト
ライセンス
マサチューセッツ工科大学
You must be authenticated.
Tools
Xcode 関連の操作用のツールを提供するモデル コンテキスト プロトコル サーバー。iOS プロジェクト管理、ビルド、テスト、アーカイブ、シミュレータと物理デバイスの両方へのアプリの展開が容易になります。