Skip to main content
Glama

Claude Mobile

MCP-сервер для автоматизации мобильных и настольных систем — Android (через ADB), iOS Simulator (через simctl), Desktop (Compose Multiplatform) и Aurora OS (через audb). Подобно Claude in Chrome, но для мобильных устройств и настольных приложений.

Управляйте своим телефоном на Android, эмулятором, iOS Simulator, настольными приложениями или устройством на Aurora OS с помощью естественного языка через Claude.

Возможности

  • Единый API — одни и те же команды работают для Android, iOS, Desktop и Aurora OS

  • Умные скриншоты — автоматически сжимаются для оптимальной обработки LLM (больше никаких изображений огромного размера!)

  • Аннотированные скриншоты — скриншоты с цветными ограничивающими рамками и пронумерованными метками элементов для визуального понимания интерфейса

  • Управление разрешениями — программное предоставление, отзыв и сброс разрешений приложений (разрешения Android во время выполнения, службы конфиденциальности iOS)

  • Логи устройства — чтение logcat/системных логов с фильтрами для отладки

  • Взаимодействие с UI — нажатие, долгое нажатие, свайп по координатам или тексту элемента

  • Ввод текста — ввод в сфокусированные поля

  • Управление приложениями — запуск, остановка и установка приложений

  • Выбор платформы — явное указание Android, iOS, Desktop или Aurora OS

  • Поддержка Desktop — тестирование настольных приложений Compose Multiplatform с управлением окнами, буфером обмена и показателями производительности

Установка

Нативный CLI через Homebrew (macOS)

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

CLI объединяет все инструменты автоматизации устройств, а также управление магазинами приложений (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

Одной командой (любой клиент)

Используя add-mcp — автоматически определяет установленные клиенты:

npx add-mcp claude-in-mobile -y

Или укажите конкретный клиент:

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

Для глобального добавления (доступно во всех проектах):

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

OpenCode

Используйте интерактивную настройку:

opencode mcp add

Или добавьте вручную в opencode.json (корень проекта или ~/.config/opencode/opencode.json):

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

Cursor

Добавьте в .cursor/mcp.json:

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

Любой MCP-клиент

Выведите фрагмент конфигурации для вашего клиента:

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

Из npm

npx claude-in-mobile

Из исходного кода

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

Примечание: Для поддержки Desktop необходимо выполнить npm run build:desktop (или build:all) для компиляции сопутствующего настольного приложения.

Использование локальной сборки с MCP-клиентами

После сборки из исходного кода укажите вашему MCP-клиенту путь к локальному dist/index.js вместо использования npx:

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

Для OpenCode (opencode.json):

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

Ручная настройка

Добавьте в настройки Claude Code (~/.claude.json или настройки проекта):

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

Windows

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

Требования

Android

  • ADB установлен и добавлен в PATH

  • Подключенное устройство Android (включена отладка по USB) или эмулятор

iOS

  • macOS с установленным Xcode

  • iOS Simulator (поддержка физических устройств пока отсутствует)

  • WebDriverAgent для полноценного инспектирования UI и взаимодействия на основе элементов:

    npm install -g appium
    appium driver install xcuitest

    Или установите переменную окружения WDA_PATH на путь к вашему WebDriverAgent

Desktop

  • macOS (поддержка Windows/Linux планируется)

  • JDK 17+ для сборки сопутствующего настольного приложения

  • Настольное приложение Compose Multiplatform для тестирования

Aurora OS

  • audb CLI установлен и добавлен в PATH (cargo install audb-client)

  • Подключенное устройство Aurora OS с включенным SSH

  • Для работы тапов/свайпов на устройстве требуется Python: devel-su pkcon install python

Доступные инструменты

Основные инструменты (все платформы)

Инструмент

Android

iOS

Desktop

Aurora

Описание

list_devices

Список всех подключенных устройств

set_device

Выбор активного устройства

screenshot

Сделать скриншот

tap

⚠️

Нажатие по координатам или тексту/метке (iOS: требуется WDA для нажатия по элементу)

long_press

Жест долгого нажатия

swipe

⚠️

Свайп в направлении или по координатам (требуется Python на Aurora)

input_text

Ввод текста

press_key

Нажатие аппаратных кнопок

launch_app

Запуск приложения

stop_app

Остановка приложения

install_app

Установка APK/.app/.rpm

list_apps

Список установленных приложений (только Aurora)

get_ui

Получение иерархии UI (iOS: требуется WebDriverAgent)

find_element

Поиск элементов по тексту/id/метке (iOS: требуется WebDriverAgent)

annotate_screenshot

Скриншот с цветными рамками и пронумерованными метками элементов

grant_permission

Предоставление разрешения приложению (Android: runtime, iOS: служба конфиденциальности)

revoke_permission

Отзыв разрешения приложения

reset_permissions

Сброс всех разрешений приложения

get_current_activity

Получение активного окна (activity)

open_url

Открытие URL в браузере (пока не реализовано на Aurora)

shell

Выполнение shell-команды

wait

Ожидание в течение заданного времени

get_logs

Получение логов устройства (logcat/системный лог)

clear_logs

⚠️

Очистка буфера логов

get_system_info

Информация о батарее, памяти

wait_for_element

Ожидание появления элемента (опрос + таймаут)

assert_visible

Проверка видимости элемента (успех/провал)

assert_not_exists

Проверка отсутствия элемента (успех/провал)

batch_commands

Выполнение нескольких команд за один запрос

get_webview

Инспектирование WebView через Chrome DevTools Protocol

push_file

Загрузка файла (только Aurora)

pull_file

Скачивание файла (только Aurora)

Инструменты для Desktop

Инструмент

Описание

set_target

Установка целевой платформы (android/ios/desktop)

get_target

Получение текущей целевой платформы

launch_desktop_app

Запуск настольного приложения Compose

stop_desktop_app

Остановка запущенного настольного приложения

get_window_info

Получение позиции и размера окна

focus_window

Вывод окна на передний план

resize_window

Изменение размера окна

get_clipboard

Получение содержимого буфера обмена

set_clipboard

Установка содержимого буфера обмена

get_performance_metrics

Получение данных о потреблении CPU/памяти настольным приложением

Подробную документацию по API Desktop см. в Desktop Specification

Примеры использования

Просто общайтесь с 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"

Управление разрешениями

"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"

Аннотированные скриншоты

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

Выбор платформы

Вы можете явно указать платформу:

"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

Или установить активное устройство:

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

Примеры для Desktop

"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

"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"

Нативный CLI

Нативный бинарный файл на Rust размером 2 МБ со всеми теми же командами. Никакого Node.js, никаких зависимостей.

Установка CLI

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

Или скачайте из Releases.

Преимущества перед MCP

  • Простая установкаbrew install или копирование одного файла размером 2 МБ

  • Нет зависимостей — нет Node.js, нет npm, ничего

  • Использование из терминала — выполнение команд напрямую, Claude Code или MCP-клиент не нужны

  • Автоматизация тестирования — написание универсальных .sh скриптов для любой платформы без изучения внутренних механизмов

  • Экономия токенов — документация навыков загружается только при использовании; MCP загружает все схемы инструментов в каждый запрос, что быстро накапливается в течение сессии

  • Быстрота — запуск команды ~5 мс (Rust) против ~500 мс (Node.js MCP)

  • Готовность к CI/CD — коды выхода, stdout/stderr, работает везде

Пример тестового скрипта

#!/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

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

После установки Claude Code управляет устройствами с помощью естественного языка. Навык загружается в контекст только по требованию — никакой нагрузки на токены, когда он не используется.

См. cli/README.md для полной документации CLI.

Настройка iOS WebDriverAgent

Для полноценного инспектирования UI iOS и взаимодействия на основе элементов требуется WebDriverAgent. Он обеспечивает:

  • get_ui - инспектирование дерева доступности JSON

  • tap с параметрами label или text - нажатие по элементу

  • find_element - обнаружение и запрос элементов

  • swipe - улучшенная симуляция жестов

Установка

Автоматически (через Appium):

npm install -g appium
appium driver install xcuitest

Вручную: Установите переменную окружения WDA_PATH на путь к вашему WebDriverAgent:

export WDA_PATH=/path/to/WebDriverAgent

Первое использование

При первом использовании WebDriverAgent будет автоматически:

  1. Обнаружен из установки Appium или WDA_PATH

  2. Собран с помощью xcodebuild (однократно, ~2 минуты)

  3. Запущен в iOS-симуляторе

  4. Подключен через HTTP на порту 8100+

Устранение неполадок

Ошибка сборки:

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

# Accept license
sudo xcodebuild -license accept

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

Ошибка сессии:

  • Убедитесь, что симулятор запущен: xcrun simctl list | grep Booted

  • Проверьте доступность порта: lsof -i :8100

  • Попробуйте перезапустить симулятор

Ручной тест:

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>'

Как это работает

┌─────────────┐     ┌──────────────────┐     ┌─────────────────┐
│ 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 отправляет команды через протокол MCP

  2. Сервер направляет их на соответствующую платформу (ADB, simctl+WDA, Desktop companion или audb)

  3. Команды выполняются на вашем устройстве или настольном приложении

  4. Результаты (скриншоты, данные UI, метрики) возвращаются в Claude

Лицензия

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