LM

leancodepl/marionette_mcp

Developer tools

Эта страница переведена автоматически. Технические детали смотрите в оригинале. Открыть оригинал

498 stars 54 forks Качество 73 Тренд 41Apache-2.0

MCP-сервер, позволяющий агентам ИИ взаимодействовать с приложениями Flutter во время выполнения — пусть они инспектируют виджеты, имитируют нажатия, вводят текст, прокручивают и делают скриншоты.

Обзор

Marionette MCP позволяет агентам ИИ (Claude Code, Copilot, Cursor, Gemini CLI и другим) инспектировать и взаимодействовать с запущенными приложениями Flutter. Он напрямую подключает вашего AI-агента к запущенному приложению через протокол Model Context Protocol (MCP), чтобы он мог видеть дерево виджетов, нажимать на элементы, вводить текст, прокручивать и делать скриншоты для автоматизированного тестирования и взаимодействия с дымом под руководством ИИ. Marionette MCP намеренно сохраняет площадь поверхности небольшой. Она открывает лишь несколько действий с высоким сигналом и возвращает минимальные рабочие данные, что помогает контролировать подсказки и контроль размеров контекста. - Видео: Переход по вашему приложению с Marionette MCP - Статья: Marionette MCP — ваш агент Flutter AI, взаимодействующий с запущенными приложениями Официальный сервер Dart & Flutter MCP сосредоточен на задачах: поиске pub.dev, управлении зависимостями, анализе кода и проверке ошибок во время выполнения. Он также может управлять интерфейсом, но делает это через Flutter Driver, который добавляет дополнительные инструменты в вашем приложении.

Обзор (машинный перевод)

Руки и глаза вашего агента на работе приложения Flutter.

Marionette подключает Claude Code, Cursor, Codex, Gemini CLI, Copilot или любой MCP-клиент к приложению Flutter, которое вы запускаете в режиме отладки. Агент видит экран, нажимает, печатает, прокручивает, читает логи, загружает горячую загрузку и пишет отчёт о том, что он сделал. Если вы знаете Playwright MCP: это именно он для Flutter.

Веб-сайт · Документы · Видео · Статья

Быстрый старт

  1. Добавьте пакет в приложение и инициализируйте связывание в отладочных сборках:

  2. Дайте своему агенту мост: сервер MCP или marionette CLI, в зависимости от того, что вы предпочитаете (каждый агент):

  3. Запустите приложение с помощью flutter run и вставьте URI сервиса виртуальной машины [ws://…/ws, которую оно печатает в подсказку, или попросите агента запустить само приложение:

Подключиться к ws://127.0.0.1:9101/…/ws. В профиле неправильное письмо должно показывать ошибку и оставать отключённым Отправить, а действительное письмо должно быть отправлено.

[! ВАЖНО] Собственные виджеты Flutter работают как есть. Для кастомной системы проектирования требуется один шаг настройки, иначе агент не видит ваши кнопки и поля: см. Конфигурировать.

Что может сделать агент

Инструменты
*См. get_interactive_elements, take_screenshots

Эта страница переведена автоматически. Технические детали смотрите в оригинале.

README

Показан фрагмент оригинального README. Открыть оригинал.

Marionette MCP

Your agent’s hands and eyes on a running Flutter app.

Marionette connects Claude Code, Cursor, Codex, Gemini CLI, Copilot or any MCP client to the Flutter app you run in debug mode. The agent sees the screen, taps, types, scrolls, reads the logs, hot reloads, and writes a report of what it did. If you know Playwright MCP: this is that, for Flutter.

Website · Docs · Video · Article

Quick start

  1. Add the package to your app and initialize the binding in debug builds:

    flutter pub add marionette_flutter
    
    void main() {
      if (kDebugMode) {
        MarionetteBinding.ensureInitialized();
      } else {
        WidgetsFlutterBinding.ensureInitialized();
      }
      runApp(const MyApp());
    }
    
  2. Give your agent a bridge: the MCP server or the marionette CLI, whichever you prefer (every agent):

    # MCP server, registered with Claude Code
    dart pub global activate marionette_mcp
    claude mcp add --transport stdio marionette -- marionette_mcp
    
    # or the CLI
    dart pub global activate marionette_cli
    
  3. Run the app with flutter run and paste the ws://…/ws VM service URI it prints into the prompt, or ask the agent to run the app itself:

    Connect to ws://127.0.0.1:9101/…/ws. On Profile, a malformed email must show an error and keep Submit disabled, and a valid one must submit.

[!IMPORTANT] Flutter’s own widgets work as is. A custom design system needs one configuration step, or the agent cannot see your buttons and fields: see Configure.

What the agent can do

Tools
See get_interactive_elements, take_screenshots
Act tap, enter_text, scroll_to, swipe, long_press, double_tap, pinch_zoom, press_key, press_back_button
Verify get_logs, set_device_config (text scale, bold text, dark mode)
Iterate hot_reload, hot_restart
Extend your app’s own actions, registered with registerMarionetteExtension
Открыть полный README на GitHub

Установка

npx skills add leancodepl/marionette_mcp # without the Dart toolchain
Новичок в MCP? Начните с руководства на mcpskill.org →