xcode-mcp
Xcode関連の操作ツールを提供するMCP(Model Context Protocol)サーバー。Claude DesktopなどのMCPクライアントからXcodeプロジェクトを簡単に操作できます。このサーバーは、Xcodeプロジェクト管理、ビルド、テスト、アーカイブ、コード署名、そして関連するiOS開発ツールのための様々なユーティリティを提供します。
特徴
- Xcodeプロジェクト情報の取得とスキームの一覧表示
- クリーンなカスタム出力オプションを備えた強化されたビルド機能
- きめ細かな制御による包括的なテスト実行
- アプリのアーカイブと配布用IPAエクスポート
- コード署名とプロビジョニングプロファイル管理
- Swift パッケージ マネージャーの統合
- simctl による iOS シミュレータの管理
- 新機能: 自動 Xcode インストール検出と改善されたデバイス管理によるリアルデバイス アプリの展開と起動
- 自動再試行によるアプリのインストール失敗のインテリジェントな処理
- デバイスとXcode情報をスマートにキャッシュしてパフォーマンスを向上
インストール
使用法
Claude Desktopでの使用
- Claude Desktop の設定ファイルを開きます:
- 次の構成を追加または変更します。
- 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
ツールを実行してすべてのスキームを取得します。 - Claude は、識別されたスキームを使用して
xcode-test
ツールを実行します。 - 次に、Claude は
xcode-archive
ツールを使用してアーカイブを作成します。
このワークフローは、1 つのツールからの出力を使用して別のツールのパラメータに通知し、複数のツールを連結する方法を示します。
例: 実機での実行
クロードへのユーザープロンプト:
予想されるワークフロー:
- クロードはまずデバイスのリストを取得します。
- Claude は物理デバイスを識別し、その上でアプリを実行します。
- 再構築せずにすぐに再起動するには:
セキュリティに関する考慮事項
このツールはXcode関連のコマンドを実行する可能性があり、セキュリティリスクを伴います。ご注意ください。
- 信頼できる Xcode プロジェクトでのみ使用してください。
- 不明なソースからのプロジェクトには注意してください。
- ビルドパラメータに機密情報を含めないでください。
発達
要件
- Node.js 16以上
- npm 6以上
- Xcode 14以上(すべての機能)
- Xcode 16以上(
devicectl
および実デバイス機能に必要)
ローカル開発とテスト
ライセンス
マサチューセッツ工科大学
You must be authenticated.
local-only server
The server can only run on the client's local machine because it depends on local resources.
Tools
Xcode 関連の操作用のツールを提供するモデル コンテキスト プロトコル サーバー。iOS プロジェクト管理、ビルド、テスト、アーカイブ、シミュレータと物理デバイスの両方へのアプリの展開が容易になります。
Related Resources
Related MCP Servers
- -securityFlicense-qualityAn MCP server to control iOS Simulators.Last updated -4122JavaScript
- -securityFlicense-qualityA Model Context Protocol server that enables AI assistants to build and test Xcode projects directly through a standardized interface, with capabilities for running tests, monitoring progress, and accessing logs in real-time.Last updated -29TypeScript
- -securityAlicense-qualityA Model Context Protocol server that enables users to create, check status, and get details of projects on Loveable.dev, a platform for quickly creating applications.Last updated -JavaScriptISC License
- -securityFlicense-qualityA bridge between iOS simulators and the Model Context Protocol, enabling programmatic control of iOS simulators through standardized communication interfaces.Last updated -12TypeScript