Command Palette

Search for a command to run...

UnylyUnyly
Весь каталог

Android Emulator

БесплатноНе проверен

Controls Android emulators via ADB with structured UI text representation, reducing token usage by 60x compared to screenshots.

GitHubEmbed

Описание

Controls Android emulators via ADB with structured UI text representation, reducing token usage by 60x compared to screenshots.

README

License: MIT

ADB経由でAndroidエミュレータを操作するMCP (Model Context Protocol) サーバー。スクリーンショットの代わりに構造化テキストでUI階層を取得し、トークン消費を約60分の1に削減します。

なぜ必要か

AIアシスタントがAndroidエミュレータを操作する場合、通常はスクリーンショットで画面を「見て」います。1枚あたり約10万トークン消費します。このMCPサーバーは画面状態を構造化テキスト(約3-4千トークン)で提供し、「このボタンを探してタップ」を1回の呼び出しで完結させます。

方式 トークン/操作 ツール呼び出し
スクリーンショット ~245,000 4回
このMCP ~4,000 1回

ツール一覧

ツール 説明
get_ui_tree 画面状態を構造化テキストで取得(スクショの代替)
find_and_tap テキスト/ID/説明で要素を探してタップ、タップ後のUIも返す
tap 座標指定でタップ
type_text テキスト入力(ASCIIは input text で直接入力。日本語等の非ASCIIはデバイスに ADBKeyBoard IME が必要、未インストールならエラー)。clear_first=true でフォーカス中フィールドを Ctrl+A → DEL でクリアしてから入力
press_key キー押下(BACK, HOME, ENTER等)
swipe 方向プリセットまたは座標指定でスワイプ
screenshot 圧縮JPEGスクリーンショット(UIツリーで不十分な場合のみ)
wait_for_element 要素が出現するまでポーリング
device エミュレータ管理:起動/停止、APKインストール、アプリ起動
shell 任意のADBシェルコマンド実行
batch 複数アクションを1回の呼び出しで一括実行(高速)

必要環境

  • Node.js >= 20
  • ADB(Android SDK Platform Tools)
  • Androidエミュレータまたは実機
  • ffmpeg(任意、スクリーンショット圧縮用)

セットアップ

1. インストール

npm install -g android-emulator-mcp

またはクローンしてビルド:

git clone https://github.com/cUDGk/android-emulator-mcp.git
cd android-emulator-mcp
npm install
npm run build

2. MCP設定

Claude Codeの設定ファイル(~/.claude/settings.json)に追加:

{
  "mcpServers": {
    "android": {
      "type": "stdio",
      "command": "node",
      "args": ["/path/to/android-emulator-mcp/dist/index.js"],
      "env": {
        "ADB_PATH": "/path/to/adb",
        "EMULATOR_PATH": "/path/to/emulator",
        "DEFAULT_DEVICE": "emulator-5554"
      }
    }
  }
}

adbemulator がPATHに通っていれば、環境変数は省略可能です。

推奨AVD構成

このMCPはUIツリーをテキストで取得するため、高解像度・高スペックなAVDは不要です。以下は軽量&root可能な推奨構成です。

作成手順

# 1. システムイメージ(google_apis版。playstore版はrootが取れない)
sdkmanager "system-images;android-34;google_apis;x86_64"

# 2. AVD作成
avdmanager create avd -n claude_lite \
  -k "system-images;android-34;google_apis;x86_64" \
  -d pixel_2

config.ini の推奨値

~/.android/avd/<AVD名>.avd/config.ini を編集:

項目 理由
PlayStore.enabled no adb root を通すため
hw.lcd.width / hw.lcd.height 720 / 1280 UIダンプ高速化・bounds計算軽量化
hw.lcd.density 280 720x1280と整合
hw.ramSize 1536M8192M 用途で選択(下表参照)
hw.cpu.ncore 2 大半のアプリで十分
hw.gpu.enabled / hw.gpu.mode yes / auto ブート時間短縮
showDeviceFrame no ウィンドウ縮小
hw.keyboard yes type_text でハードウェアキーボード入力を使うため

RAM サイズの目安

用途 RAM 備考
軽量アプリ・Webブラウジング 1536M デフォルト
一般アプリ・SNS 3072M バランス型
重量アプリ・ゲーム 8192M Unityゲーム等

※ホストメモリの25%以下を目安に。

起動確認

device(action="start_emulator", avd_name="claude_lite")

emulator -list-avds に出ているAVDはMCPから直接 avd_name に渡せます。

UIツリー出力

スクリーンショットの代わりに get_ui_tree が構造化テキストを返します:

[activity=com.android.chrome/.ChromeTabbedActivity]

FrameLayout #content [0,42][720,1238]
  WebView t="Wikipedia" [S] [0,140][720,1155]
    Button #searchIcon t="検索" [C] [600,200][680,260]
  FrameLayout #toolbar_container [0,42][720,140]
    EditText #url_bar t="ja.wikipedia.org" [C][F] [52,56][668,98]

[436 nodes -> 89 shown, filter=visible]

フラグ: [C]=クリック可, [S]=スクロール可, [F]=フォーカス中, [K]=チェック済, [X]=選択中, [!E]=無効, [P]=パスワード

フィルターモード

  • visible(デフォルト): bounds が [0,0][0,0] のノードと空コンテナを除外
  • interactive: クリック可/スクロール可/フォーカス可の要素のみ
  • all: 全ノード表示

使用例

ボタンを探してタップ

find_and_tap(by="text", value="ログイン")

検索欄に入力

find_and_tap(by="id", value="search_bar")
type_text(text="hello world", submit=true)

スクロール

swipe(direction="up")

複数操作を一括実行

batch(actions=[
  {"action":"find_and_tap", "by":"text", "value":"Chrome"},
  {"action":"sleep", "ms":500},
  {"action":"find_and_tap", "by":"id", "value":"url_bar"},
  {"action":"type", "text":"ノネコ wikipedia", "submit":true}
])

注意: batch の action 名は単体ツールと一部異なる(typetype_textkeypress_key)。利用可能な action: tap, find_and_tap, type, key, swipe, sleep, shell

エミュレータ起動

device(action="start_emulator", avd_name="claude_lite")

ライセンス

MIT

from github.com/cudgk/android-emulator-mcp

Установка Android Emulator

У этого сервера нет опубликованного пакета — он собирается из исходников. Открой репозиторий и следуй инструкции в README.

▸ github.com/cudgk/android-emulator-mcp

FAQ

Android Emulator MCP бесплатный?

Да, Android Emulator MCP бесплатный — установка в пару кликов через Unyly без оплаты.

Нужен ли API-ключ для Android Emulator?

Нет, Android Emulator работает без API-ключей и переменных окружения.

Android Emulator — hosted или self-hosted?

Self-hosted: сервер запускается локально на твоей машине командой из раздела установки.

Как установить Android Emulator в Claude Desktop, Claude Code или Cursor?

Открой Android Emulator на unyly.org, выбери вкладку своего клиента (Claude Desktop, Claude Code, Cursor) и нажми Install — конфиг сгенерируется автоматически, без правки JSON.

Похожие MCP

Compare Android Emulator with

Не уверен что выбрать?

Найди свой стек за 60 секунд

Автор?

Embed-бейдж для README

Похожее

Все в категории design