Xcode Simctl について
Xcode Simctlは、`xcrun simctl`を通じてiOSシミュレーターを管理するMCPサーバーです。iOS開発者向けに、デバイス、アプリ、メディア、テスト環境を操作するツールを提供します。
主な機能
- 01シミュレーターの一覧表示、起動、終了、作成、削除
- 02アプリのインストール、起動、終了
- 03スクリーンショットの撮影と動画の録画
- 04位置情報、権限、UI外観の設定
- 05プッシュ通知の送信とステータスバーの変更
活用シーン
- 01iOSアプリのテスト用にシミュレーターを準備
- 02テスト実行用のアプリをインストールして起動
- 03シミュレーターの画像や動画を保存
- 04UIテスト用の位置情報と権限を設定
MCP 対応
stdio経由で、シミュレーター管理ツールをMCPクライアントに公開します。クライアントからツールを呼び出し、`xcrun simctl`でiOSシミュレーターを操作できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
15掲載時のツール一覧 · 2 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| filter | any | いいえ | |
| format | string | いいえ |
詳細
SimCtl MCP サーバー
xcrun simctl コマンドを介して、iOS シミュレーターの管理に構造化されたアクセスを提供する Model Context Protocol(MCP)サーバーです。
インストール
方法 1:uvx を使用
-
前提条件:
- Python 3.13+
- Command Line Tools がインストールされた Xcode
- uvx:
curl -LsSf https://astral.sh/uv/install.sh | sh
-
uvx で直接実行:
uvx simctl-mcp-server
方法 2:ローカル開発用インストール
-
前提条件:
- Python 3.13+
- Command Line Tools がインストールされた Xcode
-
クローンしてインストール:
git clone https://github.com/nzrsky/simctl-mcp-server cd simctl-mcp-server pip install . -
サーバーを実行:
simctl-mcp-server
方法 3:ソースからビルド
- wheel をビルド:
python -m build --wheel pip install dist/simctl_mcp_server-0.1.0-py3-none-any.whl
設定
Claude Desktop の場合
~/Library/Application Support/Claude/claude_desktop_config.json に追加します:
{
"mcpServers": {
"simctl": {
"command": "simctl-mcp-server",
"args": [],
"env": {}
}
}
}
uvx を使用する場合:
{
"mcpServers": {
"simctl": {
"command": "uvx",
"args": ["simctl-mcp-server"],
"env": {}
}
}
}
MCP 拡張機能を使用する VS Code の場合
- VS Code のマーケットプレイスから MCP 拡張機能をインストールします
- VS Code の設定(
settings.json)にサーバー設定を追加します:
{
"mcp.servers": {
"simctl": {
"command": "simctl-mcp-server",
"args": [],
"env": {}
}
}
}
uvx を使用する場合:
{
"mcp.servers": {
"simctl": {
"command": "uvx",
"args": ["simctl-mcp-server"],
"env": {}
}
}
}
- MCP サーバーを読み込むため、VS Code を再起動します
- コマンドパレット(
Cmd+Shift+P)を開き、「MCP」コマンドを検索して、シミュレーターのツールを操作します
その他の MCP クライアントの場合
サーバーは stdio で動作するため、直接呼び出すことができます:
インストール済みのパッケージを使用:
simctl-mcp-server
uvx を使用:
uvx simctl-mcp-server
利用可能なツール
デバイス管理
simctl_list_devices- すべてのシミュレーターとその状態を一覧表示simctl_boot_device- シミュレーターを起動simctl_shutdown_device- シミュレーターをシャットダウンsimctl_create_device- 新しいシミュレーターを作成simctl_delete_device- シミュレーターを削除
アプリ管理
simctl_install_app- アプリ(.app バンドルまたは .ipa)をインストールsimctl_launch_app- オプションを指定してアプリを起動simctl_terminate_app- 実行中のアプリを終了
メディアとスクリーンショット
simctl_screenshot- スクリーンショットを撮影simctl_record_video- 動画を録画(録画を開始)
テストと開発
simctl_push_notification- プッシュ通知を送信simctl_privacy_control- アプリの権限を管理simctl_set_location- デバイスの位置情報/GPS を設定simctl_status_bar_override- ステータスバーの表示を上書きsimctl_ui_appearance- ライトモード/ダークモードを制御
使用例
基本的なデバイス操作
# List all devices
"List all available iOS simulators"
# Boot a specific device
"Boot the iPhone 15 Pro simulator"
# Create a new simulator
"Create a new iPhone 14 simulator named 'Test Device' with iOS 17.0"
アプリのテスト
# Install and launch an app
"Install MyApp.app on the booted simulator and launch it"
# Take a screenshot
"Take a screenshot of the current simulator and save it to ~/Desktop/screenshot.png"
# Send a push notification
"Send a push notification with title 'Hello' and body 'Test message' to com.example.myapp"
UI テストのセットアップ
# Set up a controlled testing environment
"Set the simulator to dark mode, override the status bar to show full battery and strong WiFi, and set the time to 9:41 AM"
# Grant permissions for testing
"Grant photo library access to com.example.myapp on the booted simulator"
位置情報のテスト
# Set specific location
"Set the simulator location to Apple Park (37.334606, -122.009102)"
# Clear location
"Clear the simulated location on the booted device"
エラー処理
このサーバーには、包括的なエラー処理が含まれています:
- コマンドの失敗:simctl から詳細なエラーメッセージを返します
- Xcode が見つからない場合:xcrun simctl を利用できないことを検出します
- 無効なパラメーター:実行前に入力パラメーターを検証します
- ファイル操作:プッシュ通知用の一時ファイルを安全に処理します
セキュリティに関する考慮事項
- このサーバーが公開するのは、読み取り操作とシミュレーター管理操作のみです
- 指定されたアプリのパス以外からホストのファイルシステムにアクセスすることはありません
- プッシュ通知のペイロードは構造を検証します
- プライバシー権限の変更は明示的に行われ、ログに記録されます
開発に関する注意事項
- iOS 開発のワークフロー向けに特化して構築されています
- 一般的なシミュレーター管理タスクに最適化されています
- JSON レスポンスを構造化して解析します
- 個別操作と一括操作の両方をサポートします
- Xcode 15+ のシミュレーター機能に対応しています
コメント
Markdown 対応
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。