flutter-skill MCP
MCP-сервер для сквозных тестов: агент управляет запущенным приложением на Flutter, React Native, Electron или сайтом
- 401 ★ репозитория
- Последний коммит
- MIT
Широкий доступ
Почему такой уровень
- Инструмент нажимает кнопки, вводит текст и выполняет JavaScript в приложении, а значит способен менять данные
- Куки, локальное хранилище, сетевые запросы и скриншоты экрана доступны инструменту для чтения
- Сессии и коды подтверждения можно подставлять, поэтому запускайте инструмент на тестовых аккаунтах
Установка
- Работает в
Ручная установка
npm install -g flutter-skillЕсть также Homebrew, Scoop, Docker и pub.dev.
Доступ и проверки
Как мы проверяемШирокий доступИнструмент может менять данные, выполнять команды или работать с секретами.
- Инструмент нажимает кнопки, вводит текст и выполняет JavaScript в приложении, а значит способен менять данные
- Куки, локальное хранилище, сетевые запросы и скриншоты экрана доступны инструменту для чтения
- Сессии и коды подтверждения можно подставлять, поэтому запускайте инструмент на тестовых аккаунтах
Это чужой код. Посмотрите файлы в репозитории перед установкой.
Что делает
`flutter-skill` подключает ИИ-агента к запущенному приложению через MCP. Агент делает скриншоты, нажимает кнопки, вводит текст, прокручивает экран, читает дерево элементов и проверяет состояние. Задачу для интерактивной проверки формулируют обычным языком, например «проверь вход с неверным паролем». Автор насчитывает десять платформ: Flutter (iOS, Android и веб), React Native, Electron, Tauri, Android на Kotlin, iOS на Swift, Kotlin Multiplatform для десктопа и .NET MAUI, а для сайтов есть вариант с SDK и вариант без него через Chrome DevTools Protocol. В приложение на Flutter добавляют две строки с `FlutterSkillBinding`, для сайтов SDK не нужен. Вместо скриншотов сервер может отдавать компактный снимок доступности, его можно использовать для анализа структуры интерфейса. Режим `server` предоставляет инструменты для следующих задач: взаимодействие, ожидания и проверки, визуальные эталоны, подмена сети, API-тесты, покрытие, аудит доступности, проверка переводов, замеры производительности и запись сценариев с экспортом в Playwright, Cypress и другие. Отдельные команды CLI запускают автономное исследование приложения (`explore`), случайное тестирование (`monkey`) и параллельный прогон по платформам.
Для кого. Для разработчиков и тестировщиков мобильных, десктопных и веб-приложений, которые хотят проверять сценарии разговором с Claude, Cursor, Windsurf или Copilot.
Подходит, если
- Нужно прогнать сценарий оформления заказа на запущенном приложении Flutter без написания тестового кода
- Нужно, чтобы агент обошел все экраны приложения и перечислил найденные ошибки
- Нужен случайный прогон с фиксированным зерном (команда `monkey` с флагом `--seed`) для поиска падений
- Нужно сравнить одно и то же приложение на нескольких платформах, например на web, Electron и Android
- Нужно проверить доступность, контраст и переводы интерфейса, не подключая отдельные инструменты
Не подходит, если
- Нужны юнит-тесты и тесты виджетов в составе CI: сервер управляет работающим приложением
- Приложение нельзя запускать в режиме отладки и подключать к нему SDK
- Нужно проверять логику на уровне функций: сервер действует через интерфейс приложения
- Нужно проверять боевую систему: инструмент нажимает и вводит данные от вашего имени
Пример запроса к агенту
Запусти приложение, пройди оформление заказа с пустой корзиной, затем добавь три товара и доведи заказ до оплаты. Сделай скриншоты каждого шага.MCP
- Транспорт
- stdio
- Авторизация
- не нужна
Ограничения
Для Flutter нужны зависимость `flutter_skill` и подключение `FlutterSkillBinding` в режиме отладки до запуска приложения. Другим платформам требуются свои SDK; веб-страницы подключаются через браузер без SDK. Набор команд зависит от платформы и состояния приложения, одинаковое покрытие всех функций не гарантируется.
Команда `flutter-skill init` меняет исходники, поэтому сначала сохраните рабочую версию проекта. Используйте тестовые аккаунты: действия в интерфейсе могут записывать реальные данные. Скриншоты, дерево элементов и сессии получает агент, а результат может обрабатываться его провайдером. Авторизацию отдельного HTTP-режима перед внешним доступом нужно проверить самостоятельно.
Как отключить. Уберите сервер из конфигурации MCP-клиента и удалите пакет командой `npm uninstall -g flutter-skill`. В приложении удалите строки с `FlutterSkillBinding` и зависимость.
Частые вопросы
Как подключить `flutter-skill` к Cursor или Claude Desktop?
Установите пакет командой `npm install -g flutter-skill` и добавьте в файл конфигурации сервер с командой `flutter-skill` и аргументом `server`. Для Cursor это `.cursor/mcp.json`, для Claude Desktop `claude_desktop_config.json`.
Что нужно добавить в приложение на Flutter?
Зависимость `flutter_skill` в `pubspec.yaml` и вызов `FlutterSkillBinding.ensureInitialized()` в `main`, внутри проверки `kDebugMode`. Команда `flutter-skill init` умеет сама находить приложение и править его.
Чем режимы `server` и `serve` отличаются?
Режим `server` работает по MCP через `stdio` и подходит для IDE, он сам запускает Chrome. Режим `serve` поднимает HTTP-сервер для скриптов, CI и команд вроде `flutter-skill tap`, ему нужен уже запущенный Chrome.
Чем `flutter-skill` отличается от Playwright MCP?
Playwright MCP работает только с вебом. `flutter-skill` управляет мобильными, десктопными и веб-приложениями десяти платформ, а для сайтов использует Chrome DevTools Protocol без SDK.
Какие команды CLI есть кроме запуска сервера?
Команда `explore` обходит приложение и ищет ошибки, `monkey` запускает случайные действия с фиксированным зерном, `test` гоняет сценарии параллельно по платформам, `serve` поднимает HTTP-сервер для сайтов. Для простых действий есть `nav`, `snap`, `screenshot`, `tap`, `type` и `eval`.
Обсуждение
Вопросов и отзывов пока нет.
Похожие
MCP-серверыПроверяет пакеты Agent Skills: структуру, ссылки, объем в токенах и качество инструкций с оценкой моделью-судьей
Marionette MCP — агент внутри Flutter-приложения
Marionette MCP
MCP-сервер для Flutter: агент подключается к запущенному приложению, смотрит дерево виджетов, нажимает, вводит текст, прокручивает и снимает экран
Скилл noqa-testing учит агента тестировать iOS и Android: читать экран, нажимать, писать кейсы и гонять их на реальном телефоне
Около 70 скиллов для автотестов: Selenium, Playwright, Cypress, Appium, JUnit, pytest и другие, с запуском на облаке TestMu AI
CLI для оценки и доработки скиллов агентов: декларативные тесты в YAML, запуск на разных движках и структурированные отчеты
CLI, MCP-сервер и типизированный Node.js API, чтобы агент проверял свои правки в живом мобильном приложении на iOS, Android и других платформах
Сравнение с похожими
Карточки с тем же главным запросом: чем они отличаются.
| Инструмент | Официальный | Авторизация | Звезды репозитория | Главное отличие |
|---|---|---|---|---|
| flutter-skill (эта карточка) | нет | не нужна | 401 | |
| Marionette MCP — агент внутри Flutter-приложения | нет | не нужна | 500 | MCP-сервер только для Flutter: читает дерево виджетов и нажимает на элементы |
| agent-device | нет | 5 281 | CLI и MCP для проверки правок в живом мобильном приложении, без десктопа и веба | |
| Buoy MCP | да | OAuth | 695 | читает запущенное приложение на React Native или Flutter и нажимает на экран |
Коротко о README
Проект содержит Dart-пакет и консольные команды для запуска и исследования приложений. Пакет Dart требует Dart 3 и Flutter 3 или новее в пределах версий, указанных в манифесте пакета; это отдельные требования, не связанные с установкой npm-обертки.