mcpField
X
Xcode Simctl

Xcode Simctl

ローカル
github.com/nzrsky開発ツール175 週間前に更新

Xcode Simctl について

Xcode Simctlは、`xcrun simctl`を通じてiOSシミュレーターを管理するMCPサーバーです。iOS開発者向けに、デバイス、アプリ、メディア、テスト環境を操作するツールを提供します。

主な機能

  1. 01シミュレーターの一覧表示、起動、終了、作成、削除
  2. 02アプリのインストール、起動、終了
  3. 03スクリーンショットの撮影と動画の録画
  4. 04位置情報、権限、UI外観の設定
  5. 05プッシュ通知の送信とステータスバーの変更

活用シーン

  1. 01iOSアプリのテスト用にシミュレーターを準備
  2. 02テスト実行用のアプリをインストールして起動
  3. 03シミュレーターの画像や動画を保存
  4. 04UIテスト用の位置情報と権限を設定

MCP 対応

stdio経由で、シミュレーター管理ツールをMCPクライアントに公開します。クライアントからツールを呼び出し、`xcrun simctl`でiOSシミュレーターを操作できます。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"simctl": {
"command": "uvx",
"args": [
"simctl-mcp-server"
]
}
}
}
起動コマンドuvx simctl-mcp-server

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
pypisimctl-mcp-server

ツール

15

掲載時のツール一覧 · 2 週間前に更新

パラメーター型必須説明
filteranyいいえ
formatstringいいえ

詳細

SimCtl MCP サーバー

xcrun simctl コマンドを介して、iOS シミュレーターの管理に構造化されたアクセスを提供する Model Context Protocol(MCP)サーバーです。

インストール

方法 1:uvx を使用
  1. 前提条件:

    • Python 3.13+
    • Command Line Tools がインストールされた Xcode
    • uvx:curl -LsSf https://astral.sh/uv/install.sh | sh
  2. uvx で直接実行:

    uvx simctl-mcp-server
    
方法 2:ローカル開発用インストール
  1. 前提条件:

    • Python 3.13+
    • Command Line Tools がインストールされた Xcode
  2. クローンしてインストール:

    git clone https://github.com/nzrsky/simctl-mcp-server
    cd simctl-mcp-server
    pip install .
    
  3. サーバーを実行:

    simctl-mcp-server
    
方法 3:ソースからビルド
  1. 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 の場合
  1. VS Code のマーケットプレイスから MCP 拡張機能をインストールします
  2. VS Code の設定(settings.json)にサーバー設定を追加します:
{
  "mcp.servers": {
    "simctl": {
      "command": "simctl-mcp-server",
      "args": [],
      "env": {}
    }
  }
}

uvx を使用する場合:

{
  "mcp.servers": {
    "simctl": {
      "command": "uvx",
      "args": ["simctl-mcp-server"],
      "env": {}
    }
  }
}
  1. MCP サーバーを読み込むため、VS Code を再起動します
  2. コマンドパレット(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+ のシミュレーター機能に対応しています

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。