mcpField
M
Mobile Device Mcp

Mobile Device Mcp

ローカル
github.com/saranshbamaniaAI・エージェント431 週間前に更新

Mobile Device Mcp について

Mobile Device Mcpは、AIコーディングアシスタントからAndroid端末やiOSシミュレーターを確認・操作できるMCPサーバーです。スクリーンショット、UI操作、AIによる画面分析、Flutterウィジェット検査、録画、テストスクリプト生成に対応します。

主な機能

  1. 01スクリーンショットとUIツリーの確認
  2. 02座標や説明による操作
  3. 03ClaudeとGeminiによる画面分析
  4. 04Flutterウィジェットツリーとソース対応付け
  5. 05画面録画とテスト生成

活用シーン

  1. 01アシスタントとモバイルUIの問題を再現
  2. 02Flutterウィジェットとソース位置の確認
  3. 03操作をテストスクリプトとして記録
  4. 04AndroidやiOSシミュレーターで画面を検証

MCP 対応

MCPサーバーは互換性のあるコーディングアシスタントにモバイル端末用ツールを提供し、アシスタントがバックグラウンドプロセスとして起動・管理します。ツールには端末操作、画面分析、Flutter検査、テスト生成があります。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"saranshbamania-mobile-device": {
"command": "npx",
"args": [
"-y",
"mobile-device-mcp"
],
"env": {
"GOOGLE_API_KEY": "<GOOGLE_API_KEY>",
"MOBILE_MCP_LICENSE_KEY": "<MOBILE_MCP_LICENSE_KEY>",
"MCP_ADB_PATH": "<MCP_ADB_PATH>",
"MCP_DEFAULT_DEVICE": "<MCP_DEFAULT_DEVICE>"
}
}
}
}
起動コマンドnpx -y mobile-device-mcp
設定が必要な環境変数
GOOGLE_API_KEYシークレットGoogle API key for AI visual analysis tools. Get a free key at aistudio.google.com/apikey
MOBILE_MCP_LICENSE_KEYシークレットPro license key to unlock all 49 tools (format: MDMCP-XXXXX-XXXXX-XXXXX-XXXXX). Get Pro at rzp.io/rzp/r4ijQsJY
MCP_ADB_PATHCustom path to ADB binary. Auto-detected from PATH if not set.
MCP_DEFAULT_DEVICEDevice serial number to use when multiple devices are connected. Auto-detected if only one device is connected.

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

パッケージ
npmmobile-device-mcp0.2.9

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

モバイルデバイスMCP

mobile-device-mcp

npm バージョン npm ダウンロード数 GitHub スター数 ライセンス:BSL 1.1

AI コーディングアシスタント(Claude Code、Cursor、Windsurf)に、モバイルデバイスを見て操作する機能を提供する MCP サーバーです。スクリーンショット、UI の検査、タッチ操作、AI による視覚分析、Flutter ウィジェットツリーの検査、動画録画、テスト生成に対応する 49 個のツールを備えています。

AI アシスタントはコードを読めても、スマートフォンの画面を見ることはできません。このサーバーがその問題を解決します。

このサーバーを選ぶ理由

機能mobile-device-mcpmobile-next/mobile-mcpappium/appium-mcp
ツールの合計4920約15
セットアップnpx(30秒)npxAppium サーバーが必要
AI 視覚分析12 個のツール(Claude + Gemini)なし視覚ベースの検出
Flutter ウィジェットツリー10 個のツール(Dart VM Service)なしなし
スマートな要素検索4 段階(ローカル検索は1ミリ秒未満)アクセシビリティツリーのみXPath/セレクター
コンパニオンアプリ(UI ツリーが23倍高速)ありなしなし
動画録画ありなしなし
テストスクリプト生成TS、Python、JSONなしJava/TestNG のみ
iOS シミュレーターのサポートありありあり
iOS 実機予定ありあり
スクリーンショット圧縮89%(251KB->28KB)なし50~80%
複数プロバイダーの AIClaude + Gemini該当なし単一プロバイダー
価格無料 + Pro(₹499/月)無料無料

問題点

ウェブ開発者にはブラウザーの DevTools、Playwright、Puppeteer があり、AI アシスタントは画面をクリックして、スクリーンショットを撮り、修正を検証できます。一方、モバイル開発者は手作業でスクリーンショットを撮り、ログをコピーし、画面に何が表示されているかを説明せざるを得ません。AI とデバイスの間を取り持つ人間の仲介役になっています。

このサーバーでできること

Developer: "The login button doesn't work"

Without this tool:                    With this tool:
  1. Manually screenshot              1. AI calls take_screenshot -> sees the screen
  2. Paste into AI chat               2. AI calls smart_tap("login button") -> taps it
  3. AI guesses what's wrong          3. AI calls verify_screen("error message shown") -> sees result
  4. Apply fix, rebuild               4. AI calls visual_diff -> confirms fix worked
  5. Repeat 4-5 times                 5. Done.

クイックスタート

インストール
npx mobile-device-mcp

グローバルインストールは不要です。npx から直接実行できます。

前提条件
  • Node.js 18 以降
  • ADB 経由で接続された Android デバイス/エミュレーター
  • ADB がインストールされていること(Android SDK Platform Tools)
セットアップ(初回のみ、30秒)
  1. Google AI キーを取得します(無料枠あり):aistudio.google.com/apikey

  2. プロジェクトのルートに .mcp.json を追加します:

macOS / Linux:

{
  "mcpServers": {
    "mobile-device": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "mobile-device-mcp"],
      "env": {
        "GOOGLE_API_KEY": "your-google-api-key"
      }
    }
  }
}

Windows:

{
  "mcpServers": {
    "mobile-device": {
      "type": "stdio",
      "command": "cmd",
      "args": ["/c", "npx", "-y", "mobile-device-mcp"],
      "env": {
        "GOOGLE_API_KEY": "your-google-api-key"
      }
    }
  }
}

Pro ライセンスキーを使用する場合(Pro の購入後):

macOS / Linux(Pro)
{
  "mcpServers": {
    "mobile-device": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "mobile-device-mcp"],
      "env": {
        "GOOGLE_API_KEY": "your-google-api-key",
        "MOBILE_MCP_LICENSE_KEY": "MDMCP-XXXXX-XXXXX-XXXXX-XXXXX"
      }
    }
  }
}
Windows(Pro)
{
  "mcpServers": {
    "mobile-device": {
      "type": "stdio",
      "command": "cmd",
      "args": ["/c", "npx", "-y", "mobile-device-mcp"],
      "env": {
        "GOOGLE_API_KEY": "your-google-api-key",
        "MOBILE_MCP_LICENSE_KEY": "MDMCP-XXXXX-XXXXX-XXXXX-XXXXX"
      }
    }
  }
}
  1. そのディレクトリからAI コーディングアシスタントを開きます。これで完了です。

サーバーは自動的に起動・停止するため、手動で実行する必要はありません。AI アシスタントが MCP プロトコルを介してバックグラウンドプロセスとして管理します。

動作確認

Claude Code: /mcp と入力すると、mobile-device: Connected と表示されます。

Cursor: 設定の MCP パネルを確認してください。

あとはスマートフォンに話しかけるだけです。

You: "Open my app, tap the login button, type [email protected] in the email field"
AI:  [takes screenshot -> sees the screen -> smart_tap("login button") -> smart_type("email field", "[email protected]")]

You: "Find all the bugs on this screen"
AI:  [analyze_screen -> inspects layout, checks for overflow, missing labels, broken states]

You: "Navigate to settings and verify dark mode works"
AI:  [smart_tap("settings") -> take_screenshot -> smart_tap("dark mode toggle") -> visual_diff -> reports result]

テストスクリプトも、手動のスクリーンショットも不要です。やりたいことを自然な言葉で伝えるだけです。

あらゆる AI コーディングアシスタントに対応
ツール設定ファイルドキュメント
Claude Codeプロジェクトルートの .mcp.jsonclaude.ai/docs
Cursor.cursor/mcp.jsoncursor.com/docs
VS Code + CopilotMCP の設定code.visualstudio.com
WindsurfMCP の設定windsurf.com

いずれも同じ JSON 設定を使います。エディターに対応するファイルに配置するだけです。

あらゆるプロジェクトに導入

.mcp.json を Flutter、React Native、Kotlin、Swift など、任意のモバイルプロジェクトにコピーすると、そのディレクトリ内で AI アシスタントがデバイスの機能を活用できるようになります。グローバルインストールは不要です。

Free と Pro の比較

Free(14 個のツール)-- ライセンスキーは不要
ツール機能
list_devices接続されている Android デバイス/エミュレーターをすべて一覧表示します
get_device_infoモデル、メーカー、Android バージョン、SDK レベルを取得します
get_screen_size画面解像度をピクセル単位で取得します
take_screenshotスクリーンショットを撮影します(PNG または JPEG、画質とサイズ変更の設定が可能)
get_ui_elementsアクセシビリティ/UI 要素のツリーを構造化 JSON として取得します
tap指定した座標をタップします
double_tap指定した座標をダブルタップします
long_press指定した座標を長押しします
swipe2 点間をスワイプします
type_textフォーカス中のフィールドにテキストを入力します
press_keyキーを押します(ホーム、戻る、Enter、音量など)
list_appsインストール済みアプリを一覧表示します
get_current_appフォアグラウンドのアプリを取得します
get_logsフィルタリングした logcat エントリーを取得します
Pro(追加で 35 個のツール)-- ₹499/月

Pro ライセンスを取得 -- 49 個すべてのツールを利用できます。お支払い後、1 時間以内にライセンスキーがメールで届きます。.mcp.json に追加してください。

{
  "mcpServers": {
    "mobile-device": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "mobile-device-mcp"],
      "env": {
        "GOOGLE_API_KEY": "your-google-api-key",
        "MOBILE_MCP_LICENSE_KEY": "your-license-key"
      }
    }
  }
}
AI による視覚分析(12 個のツール)

AI の視覚認識(Claude または Gemini)を使って、画面上の内容を理解します。

ツール機能
analyze_screenAI が画面を説明します:アプリ名、画面の種類、操作可能な要素、表示テキスト、提案
find_element説明をもとに UI 要素を検索します:「ログインボタン」、「メールアドレス入力フィールド」
smart_tap説明をもとに要素を検索し、1 ステップでタップします
smart_type説明をもとに入力フィールドを検索し、フォーカスしてテキストを入力します
suggest_actions目標を達成するための操作を計画します:「アプリにログインする」、「商品をカートに追加する」
visual_diff現在の画面と以前のスクリーンショットを比較し、変更点を確認します
extract_text画面上に表示されているすべてのテキストを抽出します(AI による OCR)
verify_screen「ログインに成功した」、「エラーメッセージが表示されている」 といった条件を確認します
wait_for_settle画面の変化が止まるまで待機します
wait_for_element特定の要素が画面に表示されるまで待機します
handle_popupポップアップ、ダイアログ、権限リクエストを検出して閉じます
fill_form複数のフォームフィールドに 1 ステップで入力します
Flutter ウィジェットツリー(10 個のツール)

Dart VM Service Protocol 経由で、実行中の Flutter アプリに接続します。すべてのウィジェットをソースコード上の位置(file:line)に対応付けます。

ツール機能
flutter_connectデバイス上で実行中の Flutter アプリを検出して接続します
flutter_disconnectFlutter アプリとの接続を切断し、リソースをクリーンアップします
flutter_get_widget_treeウィジェットツリー全体を取得します(概要または詳細)
flutter_get_widget_detailsID を指定して、特定のウィジェットのプロパティを詳しく取得します
flutter_find_widget型、テキスト、説明でウィジェットツリーを検索します
flutter_get_source_mapすべてのウィジェットをソースコード上の位置(file:line:column)に対応付けます
flutter_screenshot_widget特定のウィジェットを切り離した状態でスクリーンショットを撮影します
flutter_debug_paintデバッグ用のペイントオーバーレイを切り替えます(ウィジェットの境界とパディングを表示)
flutter_hot_reloadFlutter アプリをホットリロードします(状態を保持)
flutter_hot_restartFlutter アプリをホットリスタートします(状態をリセット)
iOS シミュレーター(4 個のツール)

macOS 専用です。xcrun simctl 経由で iOS シミュレーターを操作します。

ツール機能
ios_list_simulators利用可能な iOS シミュレーターを一覧表示します
ios_boot_simulator名前または UDID を指定してシミュレーターを起動します
ios_shutdown_simulator実行中のシミュレーターをシャットダウンします
ios_screenshotシミュレーターのスクリーンショットを撮影します
動画録画(2 個のツール)
ツール機能
record_screenデバイス画面の録画を開始します
stop_recording録画を停止して動画を保存します
テスト生成(3 個のツール)
ツール機能
start_test_recordingMCP ツールの呼び出しの記録を開始します
stop_test_recording記録を停止してテストスクリプトを生成します
get_recorded_actions記録されたアクションを TypeScript、Python、または JSON 形式で取得します
アプリ管理(4 個のツール)
ツール機能
launch_appパッケージ名を指定してアプリを起動します
stop_appアプリを強制停止します
install_appAPK をインストールします
uninstall_appアプリをアンインストールします

パフォーマンス

このサーバーは、レイテンシーと AI トークンコストを最小限に抑えるよう最適化されています。

  • 4 段階の要素検索:コンパニオンアプリ(即時) -> ローカルのテキスト一致(1 ミリ秒未満) -> キャッシュ済み AI -> 新規 AI。smart_tap は、単純な AI 呼び出しより 35 倍高速です(205 ミリ秒対 7.6 秒)。
  • コンパニオンアプリ:AccessibilityService ベースの Android アプリが、UIAutomator の 2448 ミリ秒に対して 105 ミリ秒(23 倍高速)で UI ツリーを提供します。初回使用時に自動インストールされます。
  • スクリーンショット圧縮:AI ツールは JPEG q=60、400w に自動圧縮します。AI の品質を損なうことなく 89% 小さくなります(251KB -> 28KB)。
  • 並列キャプチャ:スクリーンショットと UI ツリーを Promise.all() で同時に取得します。
  • TTL キャッシュ:5 秒間のキャッシュにより、ツールを連続して使用した際の重複した ADB 呼び出しを回避します。

環境変数

変数説明デフォルト
GOOGLE_API_KEY or GEMINI_API_KEYGemini の視覚認識用 Google API キー(推奨)--
ANTHROPIC_API_KEYClaude の視覚認識用 Anthropic API キー--
MOBILE_MCP_LICENSE_KEYPro ツールのロックを解除するライセンスキー--
MCP_AI_PROVIDERAI プロバイダーを指定します:"anthropic" または "google"自動検出
MCP_AI_MODELAI モデルを上書きしますgemini-2.5-flash / claude-sonnet-4-20250514
MCP_ADB_PATHカスタム ADB バイナリのパス自動検出
MCP_DEFAULT_DEVICEデフォルトのデバイスシリアル自動検出
MCP_SCREENSHOT_FORMAT"png" または "jpeg"jpeg
MCP_SCREENSHOT_QUALITYJPEG 品質(1~100)80
MCP_SCREENSHOT_MAX_WIDTHスクリーンショットの最大幅720

アーキテクチャ

src/
|-- index.ts              # CLI entry point (auto-discovery, env config)
|-- server.ts             # MCP server factory
|-- license.ts            # License validation and tier gating
|-- types.ts              # Shared interfaces
|-- drivers/android/      # ADB driver (DeviceDriver implementation)
|   |-- adb.ts            # Low-level ADB command wrapper
|   |-- companion-client.ts # TCP client for companion app
|   +-- index.ts          # AndroidDriver class (4-strategy UI element retrieval)
|-- drivers/flutter/      # Dart VM Service driver
|   |-- index.ts          # FlutterDriver (discovery, inspection, source mapping, hot reload)
|   +-- vm-service.ts     # JSON-RPC 2.0 WebSocket client (DDS redirect handling)
|-- drivers/ios/          # iOS Simulator driver (macOS only)
|   |-- index.ts          # IOSSimulatorDriver via xcrun simctl
|   +-- simctl.ts         # Low-level simctl command wrapper
|-- tools/                # MCP tool registrations (free + pro gating)
|   |-- device-tools.ts   # Device management
|   |-- screen-tools.ts   # Screenshots & UI inspection
|   |-- interaction-tools.ts # Touch, type, keys
|   |-- app-tools.ts      # App management
|   |-- log-tools.ts      # Logcat
|   |-- ai-tools.ts       # AI-powered tools
|   |-- flutter-tools.ts  # Flutter widget inspection
|   |-- ios-tools.ts      # iOS simulator tools
|   |-- video-tools.ts    # Screen recording
|   +-- recording-tools.ts # Test generation
|-- recording/            # Test script generation
|   |-- recorder.ts       # ActionRecorder (records MCP tool calls)
|   +-- generator.ts      # TestGenerator (TypeScript/Python/JSON output)
|-- ai/                   # AI visual analysis engine
|   |-- client.ts         # Multi-provider client (Anthropic + Google)
|   |-- prompts.ts        # System prompts & UI element summarizer
|   |-- analyzer.ts       # ScreenAnalyzer orchestrator (caching, parallel capture)
|   +-- element-search.ts # Local element search (text/alias matching, no AI needed)
+-- utils/
    |-- discovery.ts      # ADB auto-discovery
    +-- image.ts          # PNG parsing, JPEG compression, bilinear resize

companion-app/            # Android companion app (Kotlin)
                          # AccessibilityService + TCP JSON-RPC for fast UI tree

ロードマップ

  • iOS 物理デバイスのサポート
  • マルチデバイスのオーケストレーション
  • CI/CD 統合
  • クラウドデバイスファームのサポート

テスト済み環境

  • デバイス:Pixel 8(Android 16)、Samsung Galaxy シリーズ、Android エミュレーター
  • アプリ:Telegram、Instagram、Spotify、WhatsApp、YouTube、Chrome、Settings、Flutter アプリ
  • AI プロバイダー:Google Gemini 2.5 Flash、Anthropic Claude
  • プラットフォーム:Windows 11、macOS(iOS シミュレーター)
  • 接続:USB およびワイヤレス ADB

ライセンス

Business Source License 1.1

  • 個人利用および非商用利用は無料です
  • 商用利用には有料ライセンスが必要です
  • 2030年3月23日に Apache 2.0 に切り替わります

詳細な条件については、LICENSE をご覧ください。

コメント

MCP は初めてですか?

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

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