Skip to main content
Glama

Claude Mobile

MCP-Server für Mobil- und Desktop-Automatisierung — Android (via ADB), iOS-Simulator (via simctl), Desktop (Compose Multiplatform) und Aurora OS (via audb). Wie Claude in Chrome, aber für Mobilgeräte und Desktop-Apps.

Steuern Sie Ihr Android-Telefon, Ihren Emulator, den iOS-Simulator, Desktop-Anwendungen oder Ihr Aurora OS-Gerät mit natürlicher Sprache über Claude.

Funktionen

  • Einheitliche API — Dieselben Befehle funktionieren für Android, iOS, Desktop und Aurora OS

  • Intelligente Screenshots — Automatisch komprimiert für optimale LLM-Verarbeitung (keine übergroßen Bilder mehr!)

  • Annotierte Screenshots — Screenshots mit farbigen Begrenzungsrahmen und nummerierten Elementbeschriftungen für visuelles UI-Verständnis

  • Berechtigungsverwaltung — App-Berechtigungen programmgesteuert erteilen, widerrufen und zurücksetzen (Android-Laufzeitberechtigungen, iOS-Datenschutzdienste)

  • Geräteprotokolle — Lesen von logcat/Systemprotokollen mit Filtern für das Debugging

  • UI-Interaktionen — Tippen, langes Drücken, Wischen nach Koordinaten oder Elementtext

  • Texteingabe — Eingabe in fokussierte Felder

  • App-Steuerung — Apps starten, stoppen und installieren

  • Plattformauswahl — Gezielte Auswahl von Android, iOS, Desktop oder Aurora OS

  • Desktop-Unterstützung — Testen von Compose Multiplatform-Desktop-Apps mit Fensterverwaltung, Zwischenablage und Leistungsmetriken

Installation

Native CLI via Homebrew (macOS)

brew tap AlexGladkov/claude-in-mobile https://github.com/AlexGladkov/claude-in-mobile
brew install claude-in-mobile

Die CLI umfasst alle Geräteautomatisierungstools sowie die Store-Verwaltung (Google Play, Huawei AppGallery, RuStore):

claude-in-mobile screenshot android
claude-in-mobile tap android 540 960 --from-size 540x960
claude-in-mobile store upload --package com.example.app --file app.aab
claude-in-mobile huawei upload --package com.example.app --file app.aab
claude-in-mobile rustore upload --package com.example.app --file app.apk

Einzeiler (jeder Client)

Unter Verwendung von add-mcp — erkennt installierte Clients automatisch:

npx add-mcp claude-in-mobile -y

Oder einen bestimmten Client ansteuern:

npx add-mcp claude-in-mobile -a claude-code -y
npx add-mcp claude-in-mobile -a opencode -y
npx add-mcp claude-in-mobile -a cursor -y

Claude Code CLI

claude mcp add --transport stdio mobile -- npx claude-in-mobile@latest

Global hinzufügen (verfügbar in allen Projekten):

claude mcp add --scope user --transport stdio mobile -- npx claude-in-mobile@latest

OpenCode

Verwenden Sie das interaktive Setup:

opencode mcp add

Oder manuell zur opencode.json hinzufügen (Projektstammverzeichnis oder ~/.config/opencode/opencode.json):

{
  "mcp": {
    "mobile": {
      "type": "local",
      "command": ["npx", "-y", "claude-in-mobile"],
      "enabled": true
    }
  }
}

Cursor

Zur .cursor/mcp.json hinzufügen:

{
  "mcpServers": {
    "mobile": {
      "command": "npx",
      "args": ["-y", "claude-in-mobile"]
    }
  }
}

Jeder MCP-Client

Konfigurations-Snippet für Ihren Client ausgeben:

npx claude-in-mobile --init <client-name>
# Supported: opencode, cursor, claude-code

Von npm

npx claude-in-mobile

Aus dem Quellcode

git clone https://github.com/AlexGladkov/claude-in-mobile.git
cd claude-in-mobile
npm install
npm run build:all  # Builds TypeScript + Desktop companion

Hinweis: Für die Desktop-Unterstützung müssen Sie npm run build:desktop (oder build:all) ausführen, um die Desktop-Begleit-App zu kompilieren.

Verwendung eines lokalen Builds mit MCP-Clients

Nach dem Build aus dem Quellcode verweisen Sie Ihren MCP-Client auf die lokale dist/index.js, anstatt npx zu verwenden:

{
  "mcpServers": {
    "mobile": {
      "command": "node",
      "args": ["/path/to/claude-in-mobile/dist/index.js"]
    }
  }
}

Für OpenCode (opencode.json):

{
  "mcp": {
    "mobile": {
      "type": "local",
      "command": ["node", "/path/to/claude-in-mobile/dist/index.js"],
      "enabled": true
    }
  }
}

Manuelle Konfiguration

Zu Ihren Claude Code-Einstellungen hinzufügen (~/.claude.json oder Projekteinstellungen):

{
  "mcpServers": {
    "mobile": {
      "command": "npx",
      "args": ["-y", "claude-in-mobile"]
    }
  }
}

Windows

claude mcp add --transport stdio mobile -- cmd /c npx claude-in-mobile@latest

Anforderungen

Android

  • ADB installiert und im PATH

  • Verbundenes Android-Gerät (USB-Debugging aktiviert) oder Emulator

iOS

  • macOS mit installiertem Xcode

  • iOS-Simulator (noch keine Unterstützung für physische Geräte)

  • WebDriverAgent für vollständige UI-Inspektion und elementbasierte Interaktion:

    npm install -g appium
    appium driver install xcuitest

    Oder setzen Sie die Umgebungsvariable WDA_PATH auf den benutzerdefinierten WebDriverAgent-Speicherort

Desktop

  • macOS (Unterstützung für Windows/Linux geplant)

  • JDK 17+ zum Erstellen des Desktop-Begleiters

  • Compose Multiplatform-Desktop-Anwendung zum Testen

Aurora OS

  • audb CLI installiert und im PATH (cargo install audb-client)

  • Verbundenes Aurora OS-Gerät mit aktiviertem SSH

  • Python auf dem Gerät erforderlich für Tippen/Wischen: devel-su pkcon install python

Verfügbare Tools

Core-Tools (Alle Plattformen)

Tool

Android

iOS

Desktop

Aurora

Beschreibung

list_devices

Alle verbundenen Geräte auflisten

set_device

Aktives Gerät auswählen

screenshot

Screenshot erstellen

tap

⚠️

Tippen an Koordinaten oder nach Text/Label (iOS: WDA für Element-Tippen erforderlich)

long_press

Geste für langes Drücken

swipe

⚠️

Wischen in Richtung oder an Koordinaten (erfordert Python auf Aurora)

input_text

Text eingeben

press_key

Hardware-Tasten drücken

launch_app

App starten

stop_app

App stoppen

install_app

APK/.app/.rpm installieren

list_apps

Installierte Apps auflisten (nur Aurora)

get_ui

UI-Hierarchie abrufen (iOS: erfordert WebDriverAgent)

find_element

Elemente nach Text/ID/Label finden (iOS: erfordert WebDriverAgent)

annotate_screenshot

Screenshot mit farbigen Begrenzungsrahmen und nummerierten Elementbeschriftungen

grant_permission

App-Berechtigung erteilen (Android: Laufzeit, iOS: Datenschutzdienst)

revoke_permission

App-Berechtigung widerrufen

reset_permissions

Alle Berechtigungen für eine App zurücksetzen

get_current_activity

Vordergrundaktivität abrufen

open_url

URL im Browser öffnen (auf Aurora noch nicht implementiert)

shell

Shell-Befehl ausführen

wait

Dauer warten

get_logs

Geräteprotokolle abrufen (logcat/Systemprotokoll)

clear_logs

⚠️

Protokollpuffer leeren

get_system_info

Akku-, Speicherinformationen

wait_for_element

Auf Erscheinen eines Elements warten (Polling + Timeout)

assert_visible

Sicherstellen, dass Element sichtbar ist (bestanden/nicht bestanden)

assert_not_exists

Sicherstellen, dass Element NICHT existiert (bestanden/nicht bestanden)

batch_commands

Mehrere Befehle in einem Round-Trip ausführen

get_webview

WebView über Chrome DevTools Protocol inspizieren

push_file

Datei hochladen (nur Aurora)

pull_file

Datei herunterladen (nur Aurora)

Desktop-spezifische Tools

Tool

Beschreibung

set_target

Zielplattform festlegen (android/ios/desktop)

get_target

Aktuelle Zielplattform abrufen

launch_desktop_app

Compose Desktop-Anwendung starten

stop_desktop_app

Laufende Desktop-Anwendung stoppen

get_window_info

Position und Größe des Desktop-Fensters abrufen

focus_window

Desktop-Fenster in den Vordergrund bringen

resize_window

Desktop-Fenster in der Größe ändern

get_clipboard

Inhalt der Systemzwischenablage abrufen

set_clipboard

Inhalt der Systemzwischenablage festlegen

get_performance_metrics

CPU-/Speicherauslastung der Desktop-App abrufen

Für eine detaillierte Desktop-API-Dokumentation siehe Desktop Specification

Anwendungsbeispiele

Sprechen Sie einfach natürlich mit Claude:

"Show me all connected devices"
"Take a screenshot of the Android emulator"
"Take a screenshot on iOS"
"Tap on Settings"
"Swipe down to scroll"
"Type 'hello world' in the search field"
"Press the back button on Android"
"Open Safari on iOS"
"Switch to iOS simulator"
"Run the app on both platforms"

Berechtigungsverwaltung

"Grant camera permission to com.example.app on Android"
"Revoke location access from com.example.app"
"Reset all permissions for com.apple.Maps on iOS"

Annotierte Screenshots

"Take an annotated screenshot"  → Screenshot with green (clickable) and red (non-clickable) bounding boxes + numbered element index

Plattformauswahl

Sie können die Plattform explizit angeben:

"Screenshot on android"     → Uses Android device
"Screenshot on ios"         → Uses iOS simulator
"Screenshot on desktop"     → Uses Desktop app
"Screenshot on aurora"      → Uses Aurora OS device
"Screenshot"                → Uses last active device

Oder das aktive Gerät festlegen:

"Use the iPhone 15 simulator"
"Switch to the Android emulator"
"Switch to desktop"
"Switch to Aurora device"

Desktop-Beispiele

"Launch my desktop app from /path/to/app"
"Take a screenshot of the desktop app"
"Get window info"
"Resize window to 1280x720"
"Tap at coordinates 100, 200"
"Get clipboard content"
"Set clipboard to 'test text'"
"Get performance metrics"
"Stop the desktop app"

Aurora-Beispiele

"List all Aurora devices"
"Take a screenshot on Aurora"
"Tap at coordinates 100, 200 on Aurora"
"Launch ru.example.app on Aurora"
"List installed apps on Aurora device"
"Get logs from Aurora device"
"Push file.txt to /home/defaultuser/ on Aurora device"

Native CLI

Ein 2 MB großes natives Rust-Binary mit denselben Befehlen. Kein Node.js, keine Abhängigkeiten.

CLI installieren

brew tap AlexGladkov/claude-in-mobile
brew install claude-in-mobile

Oder von Releases herunterladen.

Vorteile gegenüber MCP

  • Einfache Installationbrew install oder Kopieren eines einzelnen 2 MB-Binaries

  • Keine Abhängigkeiten — kein Node.js, kein npm, nichts

  • Vom Terminal aus nutzbar — Befehle direkt ausführen, kein Claude Code oder MCP-Client erforderlich

  • Testautomatisierung — universelle .sh-Skripte für jede Plattform schreiben, ohne Plattform-Interna lernen zu müssen

  • Token-effizient — Skill-Dokumentation wird nur bei Verwendung geladen; MCP lädt alle Tool-Schemas in jede Anfrage, was sich während einer Sitzung schnell summiert

  • Schnell — ~5ms Befehlsstart (Rust) vs ~500ms (Node.js MCP)

  • CI/CD-bereit — Exit-Codes, stdout/stderr, läuft überall

Beispiel für ein Testskript

#!/bin/bash
claude-in-mobile launch android com.example.app
claude-in-mobile wait 2000
claude-in-mobile tap android 0 0 --text "Login"
claude-in-mobile input android "test@example.com"
claude-in-mobile screenshot android -o result.png
claude-in-mobile ui-dump android | grep "Welcome" && echo "PASS" || echo "FAIL"

Claude Code-Plugin

claude plugin marketplace add AlexGladkov/claude-in-mobile
claude plugin install claude-in-mobile@claude-in-mobile

Nach der Installation steuert Claude Code Geräte mit natürlicher Sprache. Der Skill wird nur bei Bedarf in den Kontext geladen — kein Token-Overhead bei Nichtgebrauch.

Siehe cli/README.md für die vollständige CLI-Dokumentation.

iOS WebDriverAgent-Setup

Für die vollständige iOS-UI-Inspektion und elementbasierte Interaktion ist WebDriverAgent erforderlich. Es ermöglicht:

  • get_ui - JSON-Barrierefreiheitsbaum-Inspektion

  • tap mit label- oder text-Parametern - Elementbasiertes Tippen

  • find_element - Elementerkennung und -abfrage

  • swipe - Verbesserte Gestensimulation

Installation

Automatisch (via Appium):

npm install -g appium
appium driver install xcuitest

Manuell: Setzen Sie die Umgebungsvariable WDA_PATH auf Ihren WebDriverAgent-Speicherort:

export WDA_PATH=/path/to/WebDriverAgent

Erste Verwendung

Bei der ersten Verwendung wird WebDriverAgent automatisch:

  1. Von der Appium-Installation oder WDA_PATH erkannt

  2. Mit xcodebuild erstellt (einmalig, ~2 Minuten)

  3. Auf dem iOS-Simulator gestartet

  4. Über HTTP auf Port 8100+ verbunden

Fehlerbehebung

Build schlägt fehl:

# Install Xcode command line tools
xcode-select --install

# Accept license
sudo xcodebuild -license accept

# Set Xcode path
sudo xcode-select -s /Applications/Xcode.app

Sitzung schlägt fehl:

  • Stellen Sie sicher, dass der Simulator gestartet ist: xcrun simctl list | grep Booted

  • Überprüfen Sie die Portverfügbarkeit: lsof -i :8100

  • Versuchen Sie, den Simulator neu zu starten

Manueller Test:

cd ~/.appium/node_modules/appium-xcuitest-driver/node_modules/appium-webdriveragent
xcodebuild test -project WebDriverAgent.xcodeproj \
  -scheme WebDriverAgentRunner \
  -destination 'platform=iOS Simulator,id=<DEVICE_UDID>'

Funktionsweise

┌─────────────┐     ┌──────────────────┐     ┌─────────────────┐
│ Claude Code │────▶│                  │────▶│  Android (ADB)  │
├─────────────┤     │  Claude Mobile   │     └─────────────────┘
│  OpenCode   │────▶│   MCP Server     │     ┌─────────────────┐
├─────────────┤     │                  │────▶│ iOS (simctl+WDA)│
│   Cursor    │────▶│  (auto-detects   │     └─────────────────┘
├─────────────┤     │   client via     │     ┌─────────────────┐
│  Any MCP    │────▶│   MCP protocol)  │────▶│ Desktop (Compose)│
│   Client    │     │                  │     └─────────────────┘
└─────────────┘     │                  │     ┌─────────────────┐
                    │                  │────▶│ Aurora (audb)   │
                    └──────────────────┘     └─────────────────┘
  1. Claude sendet Befehle über das MCP-Protokoll

  2. Der Server leitet an die entsprechende Plattform weiter (ADB, simctl+WDA, Desktop-Begleiter oder audb)

  3. Befehle werden auf Ihrem Gerät oder Ihrer Desktop-App ausgeführt

  4. Ergebnisse (Screenshots, UI-Daten, Metriken) werden an Claude zurückgegeben

Lizenz

MIT

Install Server
A
security – no known vulnerabilities
F
license - not found
-
quality - not tested

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

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/AlexGladkov/claude-in-mobile'

If you have feedback or need assistance with the MCP directory API, please join our Discord server