Claude Mobile
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-mobileCLI объединяет все инструменты автоматизации устройств, а также управление магазинами приложений (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 -yClaude 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@latestOpenCode
Используйте интерактивную настройку:
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 | Описание |
| ✅ | ✅ | ✅ | ✅ | Список всех подключенных устройств |
| ✅ | ✅ | ✅ | ✅ | Выбор активного устройства |
| ✅ | ✅ | ✅ | ✅ | Сделать скриншот |
| ✅ | ✅ | ✅ | ⚠️ | Нажатие по координатам или тексту/метке (iOS: требуется WDA для нажатия по элементу) |
| ✅ | ✅ | ✅ | ✅ | Жест долгого нажатия |
| ✅ | ✅ | ✅ | ⚠️ | Свайп в направлении или по координатам (требуется Python на Aurora) |
| ✅ | ✅ | ✅ | ❌ | Ввод текста |
| ✅ | ✅ | ✅ | ✅ | Нажатие аппаратных кнопок |
| ✅ | ✅ | ❌ | ✅ | Запуск приложения |
| ✅ | ✅ | ❌ | ✅ | Остановка приложения |
| ✅ | ✅ | ❌ | ✅ | Установка APK/.app/.rpm |
| ❌ | ❌ | ❌ | ✅ | Список установленных приложений (только Aurora) |
| ✅ | ✅ | ✅ | ❌ | Получение иерархии UI (iOS: требуется WebDriverAgent) |
| ✅ | ✅ | ✅ | ❌ | Поиск элементов по тексту/id/метке (iOS: требуется WebDriverAgent) |
| ✅ | ✅ | ❌ | ❌ | Скриншот с цветными рамками и пронумерованными метками элементов |
| ✅ | ✅ | ❌ | ❌ | Предоставление разрешения приложению (Android: runtime, iOS: служба конфиденциальности) |
| ✅ | ✅ | ❌ | ❌ | Отзыв разрешения приложения |
| ✅ | ✅ | ❌ | ❌ | Сброс всех разрешений приложения |
| ✅ | ❌ | ❌ | ❌ | Получение активного окна (activity) |
| ✅ | ✅ | ❌ | ❌ | Открытие URL в браузере (пока не реализовано на Aurora) |
| ✅ | ✅ | ❌ | ✅ | Выполнение shell-команды |
| ✅ | ✅ | ✅ | ✅ | Ожидание в течение заданного времени |
| ✅ | ✅ | ❌ | ✅ | Получение логов устройства (logcat/системный лог) |
| ✅ | ⚠️ | ❌ | ✅ | Очистка буфера логов |
| ✅ | ❌ | ❌ | ✅ | Информация о батарее, памяти |
| ✅ | ✅ | ❌ | ❌ | Ожидание появления элемента (опрос + таймаут) |
| ✅ | ✅ | ❌ | ❌ | Проверка видимости элемента (успех/провал) |
| ✅ | ✅ | ❌ | ❌ | Проверка отсутствия элемента (успех/провал) |
| ✅ | ✅ | ✅ | ✅ | Выполнение нескольких команд за один запрос |
| ✅ | ❌ | ❌ | ❌ | Инспектирование WebView через Chrome DevTools Protocol |
| ❌ | ❌ | ❌ | ✅ | Загрузка файла (только Aurora) |
| ❌ | ❌ | ❌ | ✅ | Скачивание файла (только Aurora) |
Инструменты для Desktop
Инструмент | Описание |
| Установка целевой платформы (android/ios/desktop) |
| Получение текущей целевой платформы |
| Запуск настольного приложения Compose |
| Остановка запущенного настольного приложения |
| Получение позиции и размера окна |
| Вывод окна на передний план |
| Изменение размера окна |
| Получение содержимого буфера обмена |
| Установка содержимого буфера обмена |
| Получение данных о потреблении 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- инспектирование дерева доступности JSONtapс параметрамиlabelилиtext- нажатие по элементуfind_element- обнаружение и запрос элементовswipe- улучшенная симуляция жестов
Установка
Автоматически (через Appium):
npm install -g appium
appium driver install xcuitestВручную:
Установите переменную окружения WDA_PATH на путь к вашему WebDriverAgent:
export WDA_PATH=/path/to/WebDriverAgentПервое использование
При первом использовании WebDriverAgent будет автоматически:
Обнаружен из установки Appium или
WDA_PATHСобран с помощью xcodebuild (однократно, ~2 минуты)
Запущен в iOS-симуляторе
Подключен через 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) │
└──────────────────┘ └─────────────────┘Claude отправляет команды через протокол MCP
Сервер направляет их на соответствующую платформу (ADB, simctl+WDA, Desktop companion или audb)
Команды выполняются на вашем устройстве или настольном приложении
Результаты (скриншоты, данные UI, метрики) возвращаются в Claude
Лицензия
MIT
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