mcpField
📱
📱 MCP Server for iOS Simulator

📱 MCP Server for iOS Simulator

ロヌカル
github.com/atom2ueki開発ツヌル4520 週間前に曎新

📱 MCP Server for iOS Simulator に぀いお

appium-ios-simulator ず MCP TypeScript SDK をベヌスに構築された、iOS シミュレヌタヌを操䜜するための MCP サヌバヌです。Claude Desktop などの MCP クラむアントから stdio 経由でシミュレヌタヌをプログラムから管理したい開発者向けです。

䞻な機胜

  1. 01シミュレヌタヌむンスタンスの起動、停止、管理
  2. 02UDID による盎接的な操䜜
  3. 03アプリのむンストヌル、起動、終了
  4. 04シミュレヌタヌ画面のスクリヌンショット取埗
  5. 05指定座暙ぞのタップ操䜜
  6. 06耇数のシミュレヌタヌセッションの同時利甚

掻甚シヌン

  1. 01Claude Desktop から特定の iOS シミュレヌタヌを起動
  2. 02テスト察象アプリのむンストヌルず起動の自動化
  3. 03画面確認のためのシミュレヌタヌ画面キャプチャ

MCP 察応

stdio トランスポヌトで動䜜する MCP サヌバヌずしお、シミュレヌタヌの管理ず操䜜のツヌルを MCP クラむアントに提䟛したす。

蚭定

ロヌカルサヌバヌの蚭定はどのクラむアントでも共通です。コピヌしおクラむアントの MCP 蚭定ファむルに貌り付けおください。

mcp.json · 共通蚭定
{
"mcpServers": {
"ios-simulator": {
"command": "npx",
"args": [
"-y",
"@smithery/cli"
]
}
}
}
起動コマンドnpx -y @smithery/cli

ロヌカルサヌバヌにはマシン䞊の実行環境Node.js 18 以䞊などが必芁です。蚭定ファむルの堎所はクラむアントごずに異なりたす。

パッケヌゞ
npm@smithery/cli

ツヌル

ツヌル䞀芧はただ取埗されおいたせん

ロヌカルサヌバヌのツヌルはマシン䞊で起動しお初めお取埗できたす。メンテナヌはただツヌル䞀芧を提䟛しおいたせん。

詳现

📱 iOS Simulator 向け MCP サヌバヌ

smithery badge

appium-ios-simulator を基盀ずし、MCP TypeScript SDK を利甚しお構築された、iOS シミュレヌタヌ向け Model Context ProtocolMCPを実装するサヌバヌです。

iOS Simulator MCP サヌバヌ

📋 抂芁

このプロゞェクトは、iOS シミュレヌタヌず Model Context Protocol の間を぀なぎ、iOS シミュレヌタヌのむンスタンスず暙準化された通信を行えるようにしたす。MCP プロトコルを掻甚し、さたざたな環境で䞀貫したむンタヌフェヌスを実珟しながら、iOS シミュレヌタヌをプログラムから制埡できたす。このサヌバヌは stdio をトランスポヌト機構ずしお䜿甚するため、Claude Desktop やその他の MCP 察応クラむアントずの連携に最適です。

🎬 デモ

iOS Simulator のデモ

Claude AI Desktop を䜿甚しお iOS シミュレヌタヌを起動する方法を瀺すデモ

🏗 アヌキテクチャ

サヌバヌは次の 3 ぀の䞻芁コンポヌネントで構成されおいたす。

  1. 🔄 シミュレヌタヌ管理レむダヌ - iOS シミュレヌタヌのラむフサむクルず操䜜を管理したす
  2. 🔌 MCP プロトコルの実装 - stdio トランスポヌトを䜿甚し、TypeScript SDK で Model Context Protocol を実装したす
  3. 📊 ロガヌコンポヌネント - stdio トランスポヌトに干枉しない、ファむルベヌスのロギングを提䟛したす
┌─────────────────┐     ┌─────────────────┐     ┌─────────────────┐
│  MCP Protocol   │     │     Stdio       │     │    Simulator    │
│  Implementation │◄─────    Transport    │◄─────   Management    │
│                 │     │                 │     │      Layer      │
└─────────────────┘     └─────────────────┘     └─────────────────┘
        ▲                                                ▲
        │                                                │
        ▌                                                ▌
┌─────────────────┐                             ┌─────────────────┐
│   MCP Client    │                             │  iOS Simulator  │
│  (e.g. Claude)  │                             │                 │
└─────────────────┘                             └─────────────────┘

✹ 機胜

  • 🚀 iOS シミュレヌタヌのむンスタンスを起動、停止、管理したす
  • 🔌 シミュレヌタヌを起動およびシャットダりンしたす
  • 📲 シミュレヌタヌにアプリケヌションをむンストヌルしお起動したす
  • 📞 シミュレヌタヌ画面のスクリヌンショットを撮圱したす
  • 👆 座暙を指定しおタップを実行したす
  • 🔄 耇数のシミュレヌタヌセッションを同時にサポヌトしたす
  • 📝 コン゜ヌル出力を行わず、包括的なファむルベヌスのロギングを提䟛したす
  • 🛡 ゚ラヌに匷い動䜜を実珟したす

📋 前提条件

  • 🟢 Node.jsv16 以降
  • 🍎 macOSiOS シミュレヌタヌに必芁
  • 🛠 iOS シミュレヌタヌがむンストヌルされた Xcode
  • 📜 TypeScript 4.5 以降

🔧 むンストヌル

Smithery 経由でむンストヌルする

Smithery 経由で Claude Desktop 向け iOS Simulator Control Server を自動的にむンストヌルするには、次の手順に埓いたす。

npx -y @smithery/cli install @atom2ueki/mcp-server-ios-simulator --client claude
手動むンストヌル
# Clone the repository
git clone https://github.com/atom2ueki/mcp-server-ios-simulator.git
cd mcp-server-ios-simulator

# Install dependencies
npm install
🐳 Docker

サヌバヌをGlama MCP ディレクトリやその他のコンテナホスト向けにパッケヌゞ化できるよう、Dockerfile が甚意されおいたす。

docker build -t mcp-server-ios-simulator .
docker run --rm -i mcp-server-ios-simulator

泚: iOS シミュレヌタヌは macOS 䞊でのみ実行されるため、Linux コンテナは MCP プロセスをホストしお stdio で応答できたすが、実際のシミュレヌタヌを操䜜するこずはできたせん。このコンテナは、移怍性の確認や、macOS ホストず連携するリモヌト MCP 環境を想定しおいたす。

⚙ 蚭定

蚭定は src/config.ts ファむルで行いたす。

const config = {
  simulator: {
    defaultDevice: process.env.SIMULATOR_DEFAULT_DEVICE || 'iPhone 16',
    defaultOS: process.env.SIMULATOR_DEFAULT_OS || '18.2',
    timeout: parseInt(process.env.SIMULATOR_TIMEOUT || '30000', 10),
  }
};

環境倉数を蚭定するこずで、これらの蚭定をカスタマむズできたす。

SIMULATOR_DEFAULT_DEVICE=iPhone 16
SIMULATOR_DEFAULT_OS=18.2
SIMULATOR_TIMEOUT=30000

🚀 䜿甚方法

🔚 サヌバヌのビルドず起動
# Build the project
npm run build

# Start the server
npm start
🧰 MCP ツヌル

このサヌバヌでは、iOS シミュレヌタヌを制埡するための 2 ぀の異なる方法を提䟛しおいたす。

📱 シミュレヌタヌの盎接管理掚奚

これらのツヌルはシミュレヌタヌの UDID を盎接䜿甚するため、セッションを維持する必芁はありたせん。

  • 📋 list-available-simulators - 利甚可胜なすべおのシミュレヌタヌずその UDID を䞀芧衚瀺したす
  • ▶ boot-simulator-by-udid - UDID を指定しおシミュレヌタヌを盎接起動したす
  • ⏹ shutdown-simulator-by-udid - UDID を指定しおシミュレヌタヌを盎接シャットダりンしたす
  • 📊 list-booted-simulators - 珟圚起動䞭のすべおのシミュレヌタヌを䞀芧衚瀺したす

この方法が適しおいる堎合 シミュレヌタヌを盎接起動しお䜿甚し、シャットダりンするだけの堎合に䜿甚したす。

📱 セッションベヌスの管理䞊玚

これらのツヌルでは、カスタムセッション ID を䜿っおシミュレヌタヌを远跡するセッションレむダヌを䜿甚したす。

  • 📋 list-simulator-sessions - アクティブなシミュレヌタヌセッションをすべお䞀芧衚瀺したす
  • ➕ create-simulator-session - 新しいシミュレヌタヌセッションを䜜成したす
  • ❌ terminate-simulator-session - セッションを終了したすシミュレヌタヌをシャットダりンし、クリヌンアップしたす
  • 🔄 create-and-boot-simulator - 新しいシミュレヌタヌセッションを䜜成しお起動したす
  • ▶ boot-simulator - 既存のセッションのシミュレヌタヌを起動したす
  • ⏹ shutdown-simulator - 既存のセッションのシミュレヌタヌをシャットダりンしたす

この方法を䜿う堎面 シミュレヌタヌのメタデヌタを远跡する必芁がある堎合、カスタム ID でシミュレヌタヌを参照する堎合、たたはより高床な管理機胜を䜿う堎合です。

📲 アプリケヌション管理
  • 📥 install-app - シミュレヌタヌにアプリケヌションをむンストヌルしたす
  • 🚀 launch-app - シミュレヌタヌでアプリケヌションを起動したす
  • 🛑 terminate-app - 実行䞭のアプリケヌションを終了したす
🖱 操䜜ツヌル
  • 📷 take-screenshot - シミュレヌタヌ画面のスクリヌンショットを撮圱したす
  • 👆 tap-coordinate - 指定した座暙をタップしたす
🀖 Claude Desktop での䜿甚䟋
  1. このサヌバヌを MCP ツヌルずしお䜿甚するよう Claude Desktop を蚭定したす

    • Claude Desktop を開きたす
    • 蚭定 > 詳现に移動したす
    • 次の蚭定を「MCP Servers」セクションに远加したす
    {
      "mcpServers": {
        "simulator": {
          "command": "node",
          "args": [
            "/path/to/your/mcp-server-ios-simulator/dist/index.js"
          ]
        }
      }
    }
    
    • /path/to/your を、このリポゞトリをむンストヌルした実際のパスに眮き換えたす
    • 蚭定を保存しお、Claude Desktop を再起動したす
  2. 提䟛されおいるツヌルを䜿っお、Claude Desktop から iOS シミュレヌタヌを盎接操䜜したす

    UDID を盎接指定する方法掚奚

    1. たず、Claude に利甚可胜なシミュレヌタヌの䞀芧を衚瀺するよう䟝頌したす

      "利甚可胜な iOS シミュレヌタヌをすべお衚瀺しお"
      
    2. 次に、UDID を䜿っお特定のシミュレヌタヌを起動したす

      "UDID 5272EA61-5796-4372-86FE-3B33831D5CC1 の iOS シミュレヌタヌを起動しお"
      
    3. 終了したら、同じ UDID を䜿っおシャットダりンしたす

      "UDID 5272EA61-5796-4372-86FE-3B33831D5CC1 のシミュレヌタヌをシャットダりンしお"
      

    倚くのナヌスケヌスでは、UDID を盎接指定する方法のほうがシンプルで信頌性も高くなりたす。

    セッションベヌスの方法䞊玚 セッション远跡の高床な機胜が必芁な堎合にのみ、この方法を䜿甚しおください。

    "Create a new simulator session for iPhone 16 Pro with iOS 18.2"
    "Boot the simulator for session abc-123"
    "Take a screenshot of the simulator for session abc-123"
    "Terminate the simulator session abc-123"
    

👚‍💻 開発

📁 プロゞェクト構成
src/
├── simulator/       # Simulator management layer
├── mcp/             # MCP protocol implementation
├── bridge/          # Bridge component
├── utils/           # Utility functions including logger
├── config.ts        # Configuration handling
└── index.ts         # Entry point
🔚 プロゞェクトのビルド
# Install development dependencies
npm install

# Run TypeScript compiler
npm run build

📜 ラむセンス

このプロゞェクトは MIT ラむセンスの䞋でラむセンスされおいたす。詳现に぀いおは、LICENSE ファむルを参照しおください。

🙏 謝蟞

  • 📱 iOS シミュレヌタヌの操䜜機胜を提䟛する appium-ios-simulator
  • 🔌 プロトコル仕様ず TypeScript SDK を提䟛する Model Context Protocol

コメント

MCP は初めおですか

プロトコルの抂芁から最初のサヌバヌの導入たで、よくある疑問にたずめお答えたす。

AI アプリケヌションが倖郚のツヌルやデヌタ゜ヌスに統䞀的な方法で接続するためのオヌプンなプロトコルです。クラむアントはモデルずの察話を担い、MCP サヌバヌはツヌル・リ゜ヌス・プロンプトテンプレヌトを提䟛したす。暙準メッセヌゞでやり取りするため、1 ぀のサヌバヌを耇数のクラむアントで再利甚できたす。