phone-eye
Phone-Eye 📱👁️
Lass deinen KI-Agenten sehen – und ein echtes Android-Telefon bedienen.
Dein Coding-Agent kann Code lesen, Befehle ausführen und Dokumentation durchsuchen. Kann er die App, die er baut, auf einem echten Telefon mit echten Pixeln sehen? Phone-Eye gibt ihm Augen und einen Finger.
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?")Fünf Verben, kein Framework: Dein Agent setzt sie zu jedem Workflow zusammen, den er braucht. Funktioniert mit jedem MCP-Client – Claude Code, Codex, Cursor, dsh und anderen.
Warum
Wenn du etwas baust oder testest, das auf einem Telefon landet, kennst du diese Schleife: Das Layout ist auf dem echten Gerät kaputt, du machst Screenshots von Hand, beschreibst Bildschirme in Worten („das Zahnrad, oben rechts, neben dem Konto-Ding“) und spielst Koordinaten-Dolmetscher zwischen deinem Agenten und deinem Telefon. Phone-Eye schließt diese Schleife – der Agent arbeitet mit dem Gerät so, wie er bereits mit deiner Codebasis arbeitet.
Zwei Kanäle, verschmolzen:
Vision – ein Vision-Modell beantwortet Fragen in natürlicher Sprache zum Live-Screenshot (funktioniert auf Spiel-Canvas, Bildern, allem, was Pixel zeigen können).
UI-Baum –
uiautomator-Dump für exakten Text und Grenzen, wenn der Accessibility-Baum sie hat.
Vision ist austauschbar. Jeder MCP-Server, der describe_image(path, question) bereitstellt, funktioniert – Cloud-GLM-Vision sofort einsatzbereit, oder richte es auf einen lokalen Qwen-VL-Endpunkt, damit kein Pixel dein LAN verlässt.
Related MCP server: scrcpy-mcp
Installation
Voraussetzungen: Python 3.10+, adb (platform-tools / android-tools) im PATH, ein Telefon mit aktiviertem USB-Debugging und ein beliebiger MCP-Vision-Server.
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 MCPBinde es in deinen Client ein (stdio):
// Claude Code / dsh-mcp-client / any stdio MCP config
{
"mcpServers": {
"phone-eye": { "command": "python", "args": ["/path/to/phone-eye/server.py"] }
}
}Oder betreibe es als HTTP-Dienst (streamable-http) hinter deiner eigenen Flotte und füge http://<host>:8122/mcp hinzu – siehe docs/fleet.md.
Telefon verbinden (einmalig)
Einmal per USB, dann für immer per WLAN:
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 goWerkzeuge
Werkzeug | Was es tut |
| Fragt ein Vision-Modell zum Live-Bildschirm; verschmilzt UI-Baum-Text + Grenzen |
| Tippen |
| Wischen |
| ASCII eingeben (Leerzeichen ok; CJK braucht Zwischenablage – bekannte adb-Eigenheit) |
| Screenshot auf Disk speichern, Pfad zurückgeben |
Was es ist / nicht ist
✔ Agentenaugen + Hände auf einem echten Android-Gerät, keine Installation auf dem Gerät, kein Root ✔ Vision-first (funktioniert, wo UI-Bäume nicht sehen können) mit Baum-Verschmelzung für Präzision ✔ Datenschutzoption: Vision auf ein LAN-only-Modell richten
✘ kein Test-Framework (kein DSL/Recorder – der Agent ist die Logik) ✘ kein iOS, keine Gerätefarmen (noch nicht) ✘ keine mobile UI für Menschen (das ist ein anderes Produkt)
Status & Fahrplan
Phase 1 (jetzt): die fünf Verben, einzelnes Gerät, austauschbare Vision – Ende-zu-Ende auf echter Hardware verifiziert (Redmi K40 Gaming / Android 13). Sein bisheriger Lieblingstrick: Es hat einen USB-Debugging-Autorisierungsdialog auf dem eigenen Bildschirm entdeckt, die Schaltflächen gelesen und selbst auf „Erlauben“ getippt.
Phase 2: Offline-Vision-Schnellstart, Multi-Geräte-Adressierung, Retry/Verify-Wrapper
Alles andere: anfragegesteuert – öffne ein Issue und es rückt in der Warteschlange auf.
Lizenz
MIT
FAQ
Vision-Server? Ich habe keinen. Jeder MCP-Server, der describe_image(path, question) bereitstellt, funktioniert. Die schnellste Cloud-Option ist ein GLM-Vision-Endpunkt; für vollständig offline hält ein lokales Qwen-VL (llama.cpp / Ollama OpenAI-kompatibel + ein 20-Zeilen-Adapter) jeden Pixel in deinem LAN.
Warum kein dsh-natives Plugin? MCP-first bedeutet, dass dieselben fünf Verben in jedem Client funktionieren. dsh-Nutzer können es über @deepseek-ai/dsh-mcp-client oder dsh plugin add einbinden.
Verifiziert auf
Gerät | Android | Verbindung | Hinweise |
Redmi K40 Gaming (ares) | 13 (HyperOS) | Wi-Fi adb ( | täglicher Begleiter der Flotte des Autors |
Füge deines per PR zu dieser Tabelle hinzu.
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