# Flutter MCP Toolkit

Управляет отладочными сборками Flutter через семантические снимки, горячую перезагрузку и поиск виджетов. Пригодится при автотестах и интерактивной отладке приложений.

- MCP-сервер · `type=mcp` · Claude Code, Codex, Cursor, GitHub Copilot, Windsurf (Devin Desktop), Cline, Zed · ★ 392
- Автор: Arenukvern
- Лицензия: MIT · policy=link-only · показываем только описание, файл — у автора
- Исходник: https://github.com/Arenukvern/mcp_flutter/tree/HEAD/mcp_server_dart
- Обновлён: 2026-10-17
- HTML: https://affpapa.org/nevibecode/mcp/flutter-mcp-toolkit

## Что делает

Сервер подключается к запущенному в debug-режиме приложению Flutter. Команды агента транслируются через инструменты с префиксом `fmt_`. Сервер снимает семантические слепки интерфейса, нажимает на виджеты и вводит текст. Для действий используется модель ссылок по аналогии с Playwright: агент вызывает `semantic_snapshot`, получает ссылку вида `s_N` и передаёт её в `fmt_tap_widget`.

Внутри находится библиотека `flutter_mcp_core`. Она связывает протокол MCP и CLI-утилиту `fmtk`. Сервер умеет выполнять горячую перезагрузку с одновременным снимком экрана в `fmt_hot_reload_and_capture`. Доступны дампы деревьев рендеринга и вычисление произвольных выражений на Dart прямо в запущенном приложении.

Чтобы сервер работал, в проект добавляют пакет `mcp_toolkit` и вызывают `MCPToolkitBinding.instance.bootstrapFlutter(...)`. Приложение запускают строго в режиме отладки. Без запущенного debug-процесса или установленного Docker сервер бесполезен.

## Требования
- Нужно: Docker

## Установка

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

**Командой платформы**
```bash
claude mcp add mcp_server_dart -- docker run -i --rm ghcr.io/arenukvern/flutter-mcp-toolkit:7.0.1
```

### Codex

**Командой платформы**
```bash
codex mcp add mcp_server_dart -- docker run -i --rm ghcr.io/arenukvern/flutter-mcp-toolkit:7.0.1
```

### Cursor

**Файл настроек**
Файл `.cursor/mcp.json`:
```json
{
    "mcpServers": {
        "mcp_server_dart": {
            "command": "docker",
            "args": [
                "run",
                "-i",
                "--rm",
                "ghcr.io/arenukvern/flutter-mcp-toolkit:7.0.1"
            ]
        }
    }
}
```

### GitHub Copilot

**Файл настроек**
Файл `.vscode/mcp.json`:
```json
{
    "servers": {
        "mcp_server_dart": {
            "type": "stdio",
            "command": "docker",
            "args": [
                "run",
                "-i",
                "--rm",
                "ghcr.io/arenukvern/flutter-mcp-toolkit:7.0.1"
            ]
        }
    }
}
```

### Gemini CLI

**Командой платформы**
```bash
gemini mcp add mcp_server_dart docker run -i --rm ghcr.io/arenukvern/flutter-mcp-toolkit:7.0.1
```

## Когда брать
- находить и нажимать виджеты по семантическим слепкам интерфейса
- выполнять горячую перезагрузку с фиксацией скриншота и свежих ошибок
- прокручивать списки до нужного элемента через поиск reveal_search
- выполнять произвольные Dart-выражения в корневой библиотеке приложения
- снимать дампы деревьев рендеринга, семантики и фокуса для отладки

## Примеры запросов агенту
- Сделай семантический снимок приложения через `fmt_semantic_snapshot` и найди кнопку входа.
- Нажми на элемент с идентификатором `s_1` и проверь появившиеся ошибки в логах.
- Выполни `fmt_hot_reload_and_capture`, чтобы обновить экран и сразу проверить интерфейс.

## Похожие
- [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
