/ ディレクトリ / プレイグラウンド / Mobile MCP
● コミュニティ mobile-next ⚡ 即起動

Mobile MCP

作者 mobile-next · mobile-next/mobile-mcp

1 つの MCP インターフェイスで iOS および Android デバイス、シミュレータ、エミュレータを操作できます。個別の XCUITest/Espresso の知識は必要ありません。

モバイル MCP は、プラットフォーム固有のモバイル オートメーションを単一のツール サーフェイスの背後に抽象化します。クロードは、USB/Wi-Fi 経由で iOS シミュレーター、Android エミュレーター、または実際のデバイス上でタップ、スワイプ、入力、スクリーンショット、およびアサートを行うことができます。アプリの QA、ユーザー フローのスクリーンショット撮影、自然言語ステップによるデバッグに役立ちます。

なぜ使うのか

主な機能

ライブデモ

実際の動作

mobile-mcp.replay ▶ 準備完了
0/0

インストール

クライアントを選択

~/Library/Application Support/Claude/claude_desktop_config.json  · Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "mobile-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "@mobilenext/mobile-mcp@latest"
      ]
    }
  }
}

Claude Desktop → Settings → Developer → Edit Config を開く。保存後、アプリを再起動。

~/.cursor/mcp.json · .cursor/mcp.json
{
  "mcpServers": {
    "mobile-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "@mobilenext/mobile-mcp@latest"
      ]
    }
  }
}

Cursor は Claude Desktop と同じ mcpServers スキーマを使用。プロジェクト設定はグローバルより優先。

VS Code → Cline → MCP Servers → Edit
{
  "mcpServers": {
    "mobile-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "@mobilenext/mobile-mcp@latest"
      ]
    }
  }
}

Cline サイドバーの MCP Servers アイコンをクリックし、"Edit Configuration" を選択。

~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "mobile-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "@mobilenext/mobile-mcp@latest"
      ]
    }
  }
}

Claude Desktop と同じ形式。Windsurf を再起動して反映。

~/.continue/config.json
{
  "mcpServers": [
    {
      "name": "mobile-mcp",
      "command": "npx",
      "args": [
        "-y",
        "@mobilenext/mobile-mcp@latest"
      ]
    }
  ]
}

Continue はマップではなくサーバーオブジェクトの配列を使用。

~/.config/zed/settings.json
{
  "context_servers": {
    "mobile-mcp": {
      "command": {
        "path": "npx",
        "args": [
          "-y",
          "@mobilenext/mobile-mcp@latest"
        ]
      }
    }
  }
}

context_servers に追加。保存時に Zed がホットリロード。

claude mcp add mobile-mcp -- npx -y @mobilenext/mobile-mcp@latest

ワンライナー。claude mcp list で確認、claude mcp remove で削除。

ユースケース

実用的な使い方: Mobile MCP

1 つのプロンプトから iOS と Android でアプリをスモークテストします

👤 モバイル QA、専任の QA チームを持たない開発者 ⏱ ~20 min intermediate

使うタイミング: ビルドをカットしたばかりですが、サインアップ フローが両方のプラットフォームでまだ機能するかどうかを知りたいと考えています。

前提条件
  • シミュレータが起動しましたxcrun simctl boot "iPhone 16" および emulator -avd Pixel_7
  • アプリがインストールされました — IPA/APKをシミュレーターにドラッグするか、「install_app」ツールを使用します
フロー
  1. セッションを開始する
    Use mobile-mcp. List all available devices.✓ コピーしました
    → iOS simulator + Android emulator listed
  2. フローを実行する
    On both devices in parallel: open my app, tap "Sign Up", enter [email protected] / password123, tap Continue. Screenshot each step.✓ コピーしました
    → Dual-device screenshot sequence
  3. アサート
    On each device, is the "Verify your email" screen visible? If not, report what you see.✓ コピーしました
    → Per-platform pass/fail with evidence

結果: 両方のプラットフォームのスクリーンショットを含む合否レポートを 2 分で作成します。

注意点
  • Test account gets locked by anti-spam — Use per-build throwaway emails; rotate test accounts
組み合わせ: ファイルシステム

5 つのデバイス サイズにわたって App Store のスクリーンショットを生成

👤 App Store に提出するインディーズ開発者 ⏱ ~25 min intermediate

使うタイミング: 6.5 インチ、6.7 インチ、5.5 インチのスクリーンショットが必要ですが、手動で行う必要はありません。

前提条件
  • 必要なサイズごとのシミュレータ — 適切なデバイスタイプを使用して「xcrun simctl」経由で作成します
フロー
  1. 構築マトリックス
    Boot iPhone 15 Pro Max, iPhone 15, iPhone SE simulators. Install my app on each.✓ コピーしました
    → All three devices ready with app installed
  2. キャプチャフロー
    On each device, navigate to the 5 key screens (onboarding, feed, detail, settings, upgrade). Screenshot each at full resolution.✓ コピーしました
    → Screenshots saved per-device with naming convention

結果: 1 回の実行で、必要なすべてのサイズの App Store 対応スクリーンショット。

注意点
  • Screenshots include simulator status bar — Use --status-bar-style=overridden or post-process with crop
組み合わせ: ファイルシステム

組み合わせ

他のMCPと組み合わせて10倍の力を

mobile-mcp + filesystem

Save screenshots into versioned QA folders

すべてのスクリーンショットをテスト名を付けて /qa/$(date)/ に保存します。✓ コピーしました
mobile-mcp + xcodebuild

Build, install, and test in one flow

xcodebuild を介して iOS アプリをビルドし、mobile-mcp を介してインストールし、スモーク テストを実行します。✓ コピーしました

ツール

このMCPが提供する機能

ツール入力呼び出すタイミングコスト
list_devices none 常に最初に — 何が利用可能かを知る free
launch_app device_id, bundle_id デバイス上でアプリを開きます free
tap device_id, selector|coords ボタン/コントロールを操作する free
type_text device_id, text: str テキストフィールドに入力します(最初にフォーカスする必要があります) free
get_view_hierarchy device_id 画面に何が表示されているかを理解する free
screenshot device_id, path?: str 目視による検証 free

コストと制限

運用コスト

APIクォータ
地元
呼び出しあたりのトークン
ビュー階層は 10,000 個以上のトークンにすることができます。スクリーンショットはbase64です
金額
Free
ヒント
トークンを節約するには、完全なビュー階層ダンプよりもセレクターベースのタップを優先します。

セキュリティ

権限、シークレット、影響範囲

最小スコープ: device access (physical USB requires trust dialog)
認証情報の保管: None
データ送信先: MCP からは何もありません。共有されている場合、スクリーンショットは LLM プロバイダーに送信されます
絶対に付与しない: production device access with PII

トラブルシューティング

よくあるエラーと対処法

デバイスがリストされていません

最初にシミュレータを起動します: xcrun simctl boot / emulator -avd X

確認: `xcrun simctl list | grep Booted`
Tap_at_coords が失敗しました

「get_view_hierarchy」を実行し、セレクターベースのタップを使用します。座標は画面サイズ間で分割されます。

実デバイスが信頼されていません

iOS の場合: [設定] → [一般] → [デバイス管理] → [信頼]。 Android の場合: USB デバッグを有効にします。

代替案

Mobile MCP 他との比較

代替案代わりに使う場面トレードオフ
XcodeBuildMCPクロスプラットフォームの UI 自動化ではなく、iOS のみのビルドとテストが必要ですアンドロイドはありません。ビルドツールが重い
Appium完全な CI グレードのモバイル テスト フレームワークが必要な場合さらにセットアップが簡単です。 MCP ネイティブではない

その他

リソース

📖 GitHub の公式 README を読む

🐙 オープンな issue を見る

🔍 400以上のMCPサーバーとSkillsを見る