CA

cursortouch/android-mcp

Developer tools

Эта страница переведена автоматически. Технические детали смотрите в оригинале. Открыть оригинал

906 stars 127 forks Качество 76 Тренд 43MIT

MCP Server для взаимодействия с устройствами на Android.

Обзор

это лёгкий инструмент с открытым исходным кодом, который объединяет агентов ИИ и устройствами на Android. Работая как MCP-сервер, он позволяет агентам LLM выполнять реальные задачи, например, без использования традиционных конвейеров компьютерного зрения или заранее запрограммированных скриптов. https://github.com/user-attachments/assets/cf9a5e4e-b69f-46d4-8487-0f61a7a86d67 - Взаимодействовать с элементами интерфейса через ADB и API доступности Android: запускать приложения, касаться, свайпать, вводить текст и читать иерархии просмотра. - Работает с любой языковой моделью, не требуется тонкая настройка CV или OCR-конвейер. - Готовые инструменты для жестов, нажатий клавиш, захвата, состояния устройства, выполнения команд shell. - Типичная задержка между действиями (например, два касания) варьируется в зависимости от характеристик устройства и нагрузки. - Python 3.13 - ADB (Android Debug Bridge) - Android 10+ (эмулятор/Android-устройство) Перед запуском сервера убедитесь, что ваше Android-устройство подключено и распознано ADB:

Обзор (машинный перевод)

Ререализация Android-MCP в чистой комнате: MCP сервер, который позволяет агенту ИИ управлять устройством Android поверх ADB.

Ему нужен только adb. На устройство ничего не установлено, и нет никакой зависимости от uiautomator2.

Беги

Требуется Python 3.13 и adb (платформенные инструменты для Android).

Сервер говорит на MCP на stdio. В конфигурации клиента:

Устройство подключается при первом вызове инструмента, поэтому сервер начинает работу независимо от того, есть ли он Всё ещё привязано.

Выбор устройства

Без вариантов используется первое физическое устройство или эмулятор, когда его нет.

Вариант Окружение Значение
--device SERIAL ANDROID_MCP_DEVICE Последовательный номер, или host:port для устройства в сети
--connection auto|usb|wifi (псевдоним --transport) ANDROID_MCP_CONNECTION Как выбрать, когда ни одно устройство не названо
--wifi [HOST] ANDROID_MCP_HOST ADB через Wi-Fi; HOST или HOST:PORT, порт 5555 по умолчанию
--usb [SERIAL] ADB через USB, опционально специальный последовательный

Опционы побеждают окружающую среду. Другие переменные:

  • ANDROID_MCP_ADB_PATH называет бинарный adb. В противном случае adb искается на PATH, затем в

Эта страница переведена автоматически. Технические детали смотрите в оригинале.

README

Показан фрагмент оригинального README. Открыть оригинал.

android-mcp-beta

Clean-room reimplementation of Android-MCP: an MCP server that lets an AI agent operate an Android device over ADB.

It needs only adb. Nothing is installed on the device, and there is no dependency on uiautomator2.

Run

Requires Python 3.13 and adb (Android platform-tools).

uv run android-mcp-beta

The server speaks MCP on stdio. In a client’s config:

{
  "mcpServers": {
    "android-mcp-beta": {
      "command": "uv",
      "args": ["--directory", "D:/Projects/android-mcp-beta", "run", "android-mcp-beta"]
    }
  }
}

The device is connected on the first tool call, so the server starts whether or not one is attached yet.

Choosing the device

With no options it uses the first physical device, or an emulator when there is none.

Option Environment Meaning
--device SERIAL ANDROID_MCP_DEVICE A serial, or host:port for a device on the network
--connection auto|usb|wifi (alias --transport) ANDROID_MCP_CONNECTION How to pick when no device is named
--wifi [HOST] ANDROID_MCP_HOST ADB over Wi-Fi; HOST or HOST:PORT, port 5555 by default
--usb [SERIAL] ADB over USB, optionally a specific serial

Options win over the environment. Other variables:

  • ANDROID_MCP_ADB_PATH names the adb binary. Otherwise adb is looked for on PATH, then in ANDROID_HOME, ANDROID_SDK_ROOT and the default Android Studio SDK folders.
  • SCREENSHOT_QUANTIZED=true reduces screenshots to 256 colours, which makes them smaller.

Tools

Tool Does
ListDevices, ConnectDevice, Device List, choose, or disconnect the device
Snapshot The interactive elements, each with a label and tap coordinates. use_vision adds a screenshot with the labels drawn on it; use_annotation=false leaves it clean
Click, LongClick, Swipe, Drag Touch input by coordinates
ClickBySelector Tap an element found by text, resourceId, className or description (exact match; resourceId may be the part after the slash), with index for the nth match
Type Type into a field. x and y tap it first; clear empties it first. Other scripts and emoji need the optional ADBKeyboard app (below)
Press A button: back, home, recent, volume up, enter, and so on
Notification Pull down the notification shade
Wait, WaitForElement Pause, or wait for an element to appear

Typing other scripts (optional)

Type uses adb shell input text, so on its own it types printable ASCII and the accented Latin letters Android can compose (é ñ ü ÿ and 107 others, not ç ß å ø). A newline presses Enter and a tab presses Tab. For anything else (CJK, Cyrillic, Arabic, emoji, ç), install the ADBKeyboard app on the device once:

adb install keyboardservice-debug.apk
Открыть полный README на GitHub

Установка

This server does not publish a one-line install command.

Open the repository installation guide Новичок в MCP? Начните с руководства на mcpskill.org →

Конфигурация

{ "mcpServers": { "android-mcp-beta": { "command": "uv", "args": ["--directory", "D:/Projects/android-mcp-beta", "run", "android-mcp-beta"] } } }