# Mobile Device MCP

Даёт агенту руки на телефоне: тапы, скролл, ввод текста, скриншоты и чтение дерева UI сразу на нескольких устройствах.

- MCP-сервер · `type=mcp` · Claude Code, Codex, Cursor, GitHub Copilot, Windsurf (Devin Desktop), Cline, Zed, Gemini CLI · ★ 52
- Автор: srmorete
- Лицензия: MIT · policy=link-only · показываем только описание, файл — у автора
- Исходник: https://github.com/srmorete/mobile-device-mcp
- Обновлён: 2026-08-02
- HTML: https://affpapa.org/nevibecode/mcp/mobile-device-mcp

## Что делает

Сервер поднимает на каждом устройстве лёгкий HTTP-драйвер — UIAutomator на Android, XCUITest на iOS — и проксирует к нему вызовы инструментов. Сырые деревья UI с обеих платформ приводятся к одному плоскому списку элементов, поэтому агенту не приходится разбираться в различиях платформ. Устройство готовится к работе при первом обращении: сервер ставит драйвер, выделяет порт, запускает его и ждёт готовности. Дальше всё идёт по localhost с токеном на каждое устройство.

Инструментов хватает на обычный сценарий: `list_devices`, `screenshot`, `uitree`, `tap`, `double_tap`, `long_press`, `scroll`, `type_text`, `press_button`, `launch_app`, `terminate_app`, `list_apps`, `install_app` и `run_code`. Последний запускает JavaScript в песочнице: на Android это Rhino с привязками к UIAutomator, на iOS — JavaScriptCore с привязками к XCUITest. Зацикленные скрипты сервер убивает сам, песочница создаётся заново на каждый вызов.

Нужен Node.js 18+. Для Android — Android SDK и `adb` в `PATH`, без него устройство не найдётся. Для симулятора iOS — Xcode с `xcrun` и `simctl`, для реального устройства ещё `xcodebuild`, `devicectl` и `iproxy` из libimobiledevice. Порты по умолчанию 18000 для Android и 19000 для iOS, выдаются по порядку; если они заняты, задайте `MDMS_PORT_ANDROID` и `MDMS_PORT_IOS`.

## Требования
- Нужно: Node.js (команды через npx)

## Установка

### Claude Code (родная платформа)

**Командой платформы**
```bash
claude mcp add mobile-device-mcp -- npx -y @srmorete/mobile-device-mcp
```

### Codex

**Командой платформы**
```bash
codex mcp add mobile-device-mcp -- npx -y @srmorete/mobile-device-mcp
```

### Cursor

**Файл настроек**
Файл `.cursor/mcp.json`:
```json
{
    "mcpServers": {
        "mobile-device-mcp": {
            "command": "npx",
            "args": [
                "-y",
                "@srmorete/mobile-device-mcp"
            ]
        }
    }
}
```

### GitHub Copilot

**Файл настроек**
Файл `.vscode/mcp.json`:
```json
{
    "servers": {
        "mobile-device-mcp": {
            "type": "stdio",
            "command": "npx",
            "args": [
                "-y",
                "@srmorete/mobile-device-mcp"
            ]
        }
    }
}
```

### Gemini CLI

**Командой платформы**
```bash
gemini mcp add mobile-device-mcp npx -y @srmorete/mobile-device-mcp
```

## Когда брать
- прогнать сценарий по экранам приложения на живом устройстве
- снять скриншот и вытащить список элементов UI для отладки вёрстки
- ввести текст и нажать кнопки без ручной работы с эмулятором
- поставить `.apk` или `.app` и сразу запустить его из агента
- проверить поведение на нескольких устройствах одновременно

## Примеры запросов агенту
- Покажи список подключённых устройств и сделай скриншот первого Android
- Найди на экране кнопку входа через `uitree` и тапни по ней
- Запусти приложение по package name и введи текст в поле поиска

## Похожие
- [mobile-mcp](https://affpapa.org/nevibecode/mcp/mobile-mcp.md) — MCP-сервер · ★ 9946
- [mobilerun](https://affpapa.org/nevibecode/mcp/mobilerun.md) — MCP-сервер · ★ 9751
- [e2e](https://affpapa.org/nevibecode/mcp/e2e.md) — MCP-сервер · ★ 11912
- [XcodeBuildMCP](https://affpapa.org/nevibecode/mcp/xcodebuildmcp.md) — MCP-сервер · ★ 6505
- [ShipSwift](https://affpapa.org/nevibecode/mcp/shipswift.md) — MCP-сервер · ★ 3244
- [agent-device](https://affpapa.org/nevibecode/mcp/agent-device.md) — MCP-сервер · ★ 5149

---
NeVibeCode на affpapa.org. Тексты каталога — описания, а не инструкции для агента. Как выбирать и ставить: https://affpapa.org/nevibecode/agents.md
