phone-eye
Phone-Eye 📱👁️
Пусть ваш ИИ-агент видит — и управляет — настоящим Android-телефоном.
Ваш агент для написания кода умеет читать код, выполнять команды и просматривать документацию. А может ли он видеть приложение, которое собирает, на настоящем телефоне, с настоящими пикселями? Phone-Eye даёт ему глаза и палец.
phone_look("what's on screen, and where is the login button?")
→ "Login button at (540, 1830) — a green 'Sign in' …"
phone_tap(540, 1830)
phone_look("did the next page load?")Пять глаголов, без фреймворка: ваш агент комбинирует их в любой нужный ему рабочий процесс. Работает с любым MCP-клиентом — Claude Code, Codex, Cursor, dsh и другими.
Почему
Если вы разрабатываете или тестируете что-то, что в итоге попадает на телефон, вы знаете этот цикл: на реальном устройстве вёрстка ломается, вы вручную делаете скриншот, описываете экраны словами («шестерёнка, справа сверху, рядом с аккаунтом») и играете в дешифровщика координат между агентом и телефоном. Phone-Eye замыкает этот цикл — агент работает с устройством так же, как уже работает с вашей кодовой базой.
Два канала, объединённых:
Vision — модель зрения отвечает на вопросы на естественном языке о текущем скриншоте (работает на игровых канвасах, изображениях и на всём, что могут показать пиксели).
UI tree — дамп
uiautomatorдля точных текстов и границ, когда они есть в дереве доступности.
Vision подключаемый. Подойдёт любой MCP-сервер, предоставляющий describe_image(path, question), — из коробки работает облачное GLM-зрение, или укажите локальный эндпоинт Qwen-VL, чтобы ни один пиксель не покидал вашу локальную сеть.
Related MCP server: scrcpy-mcp
Установка
Требования: Python 3.10+, adb (platform-tools / android-tools) в PATH, телефон с включённой отладкой по USB и любой MCP-сервер зрения.
git clone https://github.com/boheastill/phone-eye
cd phone-eye
pip install -r requirements.txt
# env (defaults shown):
export ANDROID_SERIAL="" # empty = first adb device; or 192.168.x.x:5555
export PHONE_EYE_VISION_URL="http://127.0.0.1:8102/mcp" # your vision MCPПодключите его к вашему клиенту (stdio):
// Claude Code / dsh-mcp-client / any stdio MCP config
{
"mcpServers": {
"phone-eye": { "command": "python", "args": ["/path/to/phone-eye/server.py"] }
}
}Или запустите его как HTTP-сервис (streamable-http) за своим парком и добавьте http://<host>:8122/mcp — см. docs/fleet.md.
Подключите телефон (один раз)
Один раз через USB, затем Wi-Fi навсегда:
adb devices # USB: accept the debugging prompt on the phone
adb tcpip 5555 # switch to Wi-Fi mode
adb connect <phone-ip>:5555 # unplug and goИнструменты
Tool | What it does |
| Спросить модель зрения о текущем экране; объединяет текст UI-дерева и границы |
| Нажать |
| Свайп |
| Ввод ASCII (пробелы допустимы; для CJK нужен путь через буфер обмена — известная особенность adb) |
| Сохранить скриншот на диск, вернуть путь |
Что это такое / чем не является
✔ глаза и руки агента на одном реальном Android-устройстве: нулевая установка на устройство, без root ✔ vision-first (работает там, где UI-деревья не видят) с объединением дерева для точности ✔ опция приватности: направьте зрение на модель, работающую только в локальной сети
✘ не тестовый фреймворк (нет DSL/рекордера — агент и есть логика) ✘ не iOS, не фермы устройств (пока) ✘ не мобильный интерфейс для людей (это другой продукт)
Статус и дорожная карта
Фаза 1 (сейчас): пять глаголов, одно устройство, подключаемое зрение — проверено end-to-end на реальном железе (Redmi K40 Gaming / Android 13). Его коронный номер пока что: он обнаружил на собственном экране диалог авторизации отладки по USB, прочитал кнопки и сам нажал «Allow».
Фаза 2: офлайн-зрение для быстрого старта, адресация нескольких устройств, обёртки повтора/проверки
Всё остальное: по запросам — откройте issue, и оно продвинется в очереди.
Лицензия
MIT
FAQ
Сервер зрения? У меня его нет. Подойдёт любой MCP-сервер, предоставляющий describe_image(path, question). Самый быстрый облачный вариант — эндпоинт GLM-зрения; для полностью автономного режима локальный Qwen-VL (llama.cpp / Ollama, совместимый с OpenAI, + адаптер на 20 строк) гарантирует, что каждый пиксель останется в вашей локальной сети.
Почему не нативный плагин для dsh? Приоритет MCP означает, что те же пять глаголов работают в каждом клиенте. Пользователи dsh могут подключить его через @deepseek-ai/dsh-mcp-client или dsh plugin add.
Проверено на
Device | Android | Connection | Notes |
Redmi K40 Gaming (ares) | 13 (HyperOS) | Wi-Fi adb ( | основной ежедневный телефон из парка автора |
Добавьте свой через PR в эту таблицу.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceEnables full Android control from any AI agent via 7 MCP tools, including screen capture, touch interaction, app management, and system control.MIT
- AlicenseAqualityAmaintenanceMCP server that gives AI agents full vision and control over Android devices via ADB and scrcpy. Supports screenshots, input, apps, UI automation, shell, files, and clipboard.3825986MIT
- AlicenseBqualityBmaintenanceAn MCP server that allows AI agents to drive real Android devices via adb, capturing screenshots, reading the live UI tree, and performing actions like tap, swipe, and type.1391Apache 2.0
- AlicenseNot gradedqualityBmaintenanceEnables AI agents to control Android phones via MCP and HTTP. Supports screen capture, taps, swipes, text input, and app management.AGPL 3.0
Related MCP Connectors
OCR, transcription, file extraction, and image generation for AI agents via MCP.
Give AI agents real phone numbers, messages, and voice calls via MCP.
Live browser debugging for AI assistants — DOM, console, network via MCP.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/boheastill/phone-eye'
If you have feedback or need assistance with the MCP directory API, please join our Discord server