MCPXcode について
MCPXcodeはXcode向けのオープンソースMCP実装です。xcrunやxctraceなどのコマンドラインツールを包み、AIアシスタントに構造化された開発・性能分析機能を提供します。開発は継続中です。
主な機能
- 01xcrunコマンドのラップ
- 02xctraceによるプロファイリング
- 03構造化されたツール出力
- 04意味情報を含むエラーと診断
- 05シミュレーターとSDKの管理
活用シーン
- 01スキームの一覧表示とXcodeプロジェクトのビルド
- 02シミュレーターへのアプリのインストールや起動
- 03アプリの性能トレースの記録と分析
MCP 対応
MCPツールとしてAIアシスタントにXcodeの操作を公開し、シミュレーター、SDK、ビルド、性能トレース機能を提供します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
MCPXcode
!!! このプロジェクトは現在開発中のため、予期しない問題が発生する可能性があります
はじめに
MCPXcode は、Xcode 向けの Model Context Protocol (MCP) のオープンソース実装です。Xcode 環境内でコンテキストを交換し、ツールを実行するための構造化されたプロトコルを提供することで、Xcode と AI アシスタントをシームレスに連携させます。
MCP 仕様に準拠するこのプロジェクトは、Xcode の開発環境と AI ツールをつなぐブリッジを構築します。コンテキストの理解とプログラム可能なインタラクションを通じて、開発者のワークフローを強化できます。一般的なコマンドラインツール(xcrun、xctrace)をラップし、macOS のアクセシビリティ機能を活用することで、Xcode の操作を AI で自動化できます。
スクリーンショット
インストール
# Install uv
curl -LsSf https://astral.sh/uv/install.sh | sh
# Clone the repository
git clone https://github.com/everettjf/MCPXcode.git
cd MCPXcode
source .venv/bin/activate
uv add "mcp[cli]"
設定
{
"mcpServers": {
"MCPXcode": {
"command": "uv", # may use full path
"args": [
"--directory",
"<Path>/MCPXcode", # change to your full path
"run",
"main.py"
]
}
}
}
機能
現在の MCP ツール連携
-
xcrun ツール拡張
- 一般的な xcrun コマンド向けの、コンテキストを考慮したインターフェース
- AI が利用しやすい構造化された出力形式
- 意味的なエラー処理と診断レポート
-
xctrace ツール拡張
- iOS/macOS アプリケーション向けの、コンテキストを強化したプロファイリングとトレース
- AI 分析向けの、構造化されたパフォーマンス指標の収集
- 意味的なコンテキストを含むトレースデータ処理
拡張予定
-
アクセシビリティツール拡張
- Xcode 内での、コンテキストを考慮した UI 操作
- ビルド、実行、テスト操作のための意味的なトリガー
- 構造化されたプロジェクトナビゲーション機能
- Xcode UI からのコンテキスト抽出の強化
-
MCP HTTP サーバー
- HTTP 経由での MCP 仕様への完全準拠
- 標準化されたツール実行プロトコル
- ビルドイベントのコンテキストを保持する Webhook
- AI を活用した CI/CD パイプラインとのシームレスな連携
-
MCP クライアントライブラリ
- MCP 仕様を実装した、言語別の SDK
- AI アシスタントと Xcode 間のコンテキスト交換の簡素化
ツールドキュメント
シミュレーター制御ツール
| ツール | 説明 | プロンプトの例 |
|---|---|---|
list_devices | 利用可能なシミュレーターデバイスをすべて、詳細情報とともに一覧表示します | "利用可能な iOS シミュレーターデバイスとその状態をすべて表示してください。" |
boot_device | UDID で指定されたシミュレーターデバイスを起動します | "UDID A1B2C3D4-E5F6-7890-1234-567890ABCDEF の iPhone 14 Pro シミュレーターを起動してください。" |
shutdown_device | 実行中のシミュレーターデバイスを終了します | "UDID A1B2C3D4-E5F6-7890-1234-567890ABCDEF の、現在実行中の iPhone シミュレーターを終了してください。" |
install_app | シミュレーターデバイスにアプリケーションをインストールします | "パス /Users/username/MyApp.app にあるアプリを iPhone 14 シミュレーターにインストールしてください。" |
launch_app | シミュレーターデバイスにインストールされているアプリケーションを起動します | "バンドル ID com.example.myapp のアプリを iPhone 14 シミュレーターで起動してください。" |
SDK ツール
| ツール | 説明 | プロンプトの例 |
|---|---|---|
get_sdk_path | 現在の SDK のパスを取得します | "現在の iOS SDK のパスを教えてください。" |
get_sdk_version | 現在の SDK のバージョンを取得します | "使用中の iOS SDK のバージョンを教えてください。" |
get_sdk_platform_path | 現在の SDK のプラットフォームパスを取得します | "iOS のプラットフォームファイルはどこにありますか?" |
find_developer_tool | 指定した開発者ツールのパスを検索します | "Xcode ツールチェーン内の 'lldb' バイナリはどこにありますか?" |
run_tool_with_sdk | 指定した SDK を使って開発者ツールを実行します | "iOS SDK を使って 'clang' ツールを実行し、ソースファイルをコンパイルしてください。" |
xcrun ツール
| ツール | 説明 | プロンプトの例 |
|---|---|---|
xcrun_list_sdks | 利用可能なすべての SDK を詳細情報とともに一覧表示します | 「ビルドに使用できる SDK をすべて表示してください。」 |
xcrun_list_schemes | 指定した Xcode プロジェクト内のすべてのスキームを一覧表示します | 「MyApp.xcodeproj プロジェクトのすべてのビルドスキームを教えてください。」 |
xcrun_build | 指定したスキームと構成で Xcode プロジェクトをビルドします | 「iPhone シミュレーター向けに、Debug 構成を使って MyApp.xcodeproj プロジェクトをビルドしてください。」 |
xcrun_validate_app | App Store への提出前にアプリを検証します | 「App Store に提出する前に、MyApp.ipa ファイルを検証してください。」 |
xcrun_upload_app | アプリを App Store Connect にアップロードします | 「検証済みの MyApp.ipa ファイルを App Store Connect にアップロードして、審査に提出してください。」 |
xcrun_swift_symbols | バイナリファイルから Swift シンボルを抽出します | 「アプリのバイナリからすべての Swift シンボルを抽出して表示してください。」 |
xcrun_otool_headers | バイナリファイルの Mach-O ヘッダーを表示します | 「アプリのバイナリファイルの Mach-O ヘッダーを表示してください。」 |
xcrun_otool_libraries | バイナリファイルのリンク済みライブラリを表示します | 「アプリのバイナリはどのライブラリとリンクされていますか?」 |
xcrun_nm_symbols | バイナリファイル内のシンボルを表示します | 「アプリのバイナリファイル内のすべてのシンボルを表示してください。」 |
xctrace ツール
| ツール | 説明 | プロンプトの例 |
|---|---|---|
xctrace_devices | トレースに利用できるデバイスを一覧表示します | 「パフォーマンストレースを実行できるデバイスをすべて表示してください。」 |
xctrace_templates | トレースに利用できるテンプレートを一覧表示します | 「パフォーマンスプロファイリングに利用できるトレーステンプレートを教えてください。」 |
xctrace_record | 指定したテンプレートを使ってアプリのパフォーマンスを記録します | 「Time Profiler テンプレートを使って、アプリのパフォーマンストレースを記録してください。」 |
xctrace_record_advanced | 高度なオプションを指定してアプリのパフォーマンスを記録します | 「カスタムのテンプレートオプションを指定し、環境変数 DEBUG=1 を設定してパフォーマンストレースを記録してください。」 |
xctrace_attach_process | 実行中のプロセスにアタッチしてトレースします | 「プロセス ID 12345 で実行中のアプリにパフォーマンストレーサーをアタッチしてください。」 |
xctrace_export | トレースデータを指定した形式にエクスポートします | 「分析用に trace.trace ファイルを JSON 形式にエクスポートしてください。」 |
xctrace_diagnose | トレースアーカイブの問題を診断します | 「トレースファイルを分析して、パフォーマンス上の問題やその他の問題がないか確認してください。」 |
xctrace_document | テンプレートのドキュメントを生成します | 「メトリクスを理解できるように、Allocations テンプレートのドキュメントを作成してください。」 |
xctrace_analyze | トレースファイルを分析し、パフォーマンスレポートを生成します | 「Time Profiler のトレースファイルからパフォーマンスレポートを生成してください。」 |
xctrace_compare | 2 つのトレースファイルを比較し、比較レポートを生成します | 「アプリのバージョン 1.0 と 2.0 のトレースファイルを比較してください。」 |
プロジェクトのロードマップ
フェーズ 1:MCP コアの実装(2025 年第 2 四半期)
- ✅ 基本的なプロジェクト構成
- ⬜ コンテキスト処理を備えた、主要な xcrun コマンド向けのツール拡張
- ⬜ コンテキスト処理を備えた、基本的な xctrace 機能向けのツール拡張
- ⬜ MCP 準拠の CLI インターフェイス
フェーズ 2:MCP サーバーの実装(2025 年第 3 四半期)
- ⬜ MCP 仕様に完全準拠した HTTP サーバー
- ⬜ コンテキストを考慮した認証とセキュリティ
- ⬜ 構造化されたコンテキスト交換プロトコル
- ⬜ 拡張可能なツールレジストリアーキテクチャ
フェーズ 3:MCP アクセシビリティ拡張(2025 年第 4 四半期)
- ⬜ セマンティックコンテキストを備えた macOS アクセシビリティ統合
- ⬜ コンテキストを考慮した Xcode UI の自動化
- ⬜ セマンティックイベントの監視とコンテキストに応じた反応
フェーズ 4:高度な MCP 機能(2026 年第 1 四半期)
- ⬜ MCP 準拠の Python クライアントライブラリ
- ⬜ AI を活用した CI/CD ツールとの、コンテキストを考慮した統合
- ⬜ セマンティックコンテキストの監視ダッシュボード
ライセンス
このプロジェクトは MIT ライセンスの下でライセンスされています。詳細については LICENSE ファイルを参照してください。
貢献
貢献を歓迎します!Pull Request をお気軽に送信してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。