AgentStack
MCP verified Apache-2.0 Self-run

Marionette Mcp

mcp-leancodepl-marionette-mcp · by leancodepl

MCP server enabling AI agents to interact with Flutter apps at runtime - let them inspect widgets, simulate taps, enter text, scroll, and take screenshots.

No reviews yet
0 installs
22 views
0.0% view→install

Install

$ agentstack add mcp-leancodepl-marionette-mcp

✓ scanned · ✓ verified — works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.0 How review works →

  • Prompt-injection patterns
  • Secret / credential exfiltration
  • Dangerous shell & filesystem operations
  • Untrusted network calls
  • Known-malicious package signatures

What it can access

  • Network access No
  • Filesystem access No
  • Shell / process execution No
  • Environment & secrets No
  • Dynamic code execution No

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

Are you the author of Marionette Mcp? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

Marionette MCP

[](https://pub.dev/packages/marionette_mcp)

"Playwright MCP/Cursor Browser, but for Flutter apps"

Marionette MCP enables AI agents (Claude Code, Copilot, Cursor, Gemini CLI, and more) to inspect and interact with running Flutter applications. It connects your AI agent directly to a running app via the Model Context Protocol (MCP), so it can see the widget tree, tap elements, enter text, scroll, and capture screenshots for automated AI-driven smoke testing and interaction.

Marionette MCP keeps the surface area intentionally small. It exposes only a handful of high-signal actions and returns the minimum actionable data, which helps keep prompts focused and context sizes under control.

Marionette MCP vs Flutter MCP

The official Dart & Flutter MCP server focuses on development-time tasks: searching pub.dev, managing dependencies, analyzing code, and inspecting runtime errors. It can also drive the UI, but it does so through Flutter Driver, which introduces extra instrumentation in your app. Marionette MCP focuses solely (and in an opinionated way) on runtime interaction: tapping buttons, entering text, scrolling, and taking screenshots, while requiring minimal changes to your app. Use Flutter MCP to build your app, use Marionette MCP to test and interact with it with minimal code changes.

Quick Start

> [!NOTE] > Your Flutter app must be prepared to be compatible with Marionette. The steps below are the short version — the Getting Started guide walks through each one.

  1. Prepare your app — add marionette_flutter and initialize MarionetteBinding in main.dart:

``bash flutter pub add marionette_flutter ``

``dart void main() { if (kDebugMode) { MarionetteBinding.ensureInitialized(); } else { WidgetsFlutterBinding.ensureInitialized(); } runApp(const MyApp()); } ``

  1. Install the bridge — activate the MCP server (for the CLI alternative, see the CLI guide):

``bash dart pub global activate marionette_mcp ``

  1. Configure your AI tool — e.g. for Claude Code:

``bash claude mcp add --transport stdio marionette -- marionette_mcp ``

Other tools (Cursor, Gemini CLI, Copilot, Antigravity): see Configuring your AI tool.

  1. Run your app in debug modeflutter run, then copy the VM service URI from the console (e.g. ws://127.0.0.1:9101/ws).
  1. Connect and interact — ask your agent to connect using that URI and start driving the app.

> [!IMPORTANT] > Standard Material widgets work out of the box. If your app uses a custom design system, configuration is required — otherwise the agent can't see or tap your custom buttons and fields. Start with the Production Setup Checklist.

What you can do

Once connected, an agent can drive your app with a small, focused toolset: inspect the widget tree (get_interactive_elements), tap / secondary_tap / double_tap / long_press / swipe / pinch_zoom / scroll_to, enter_text, press_back_button, take_screenshots, read get_logs, and hot_reload. Full list: MCP Tools.

Your app can also expose its own actions to the agent via Custom Extensions — navigate by route name, seed test data, toggle feature flags, and more.

Some real-world prompts:

> "I implemented the Forgot Password screen — connect, navigate to login, tap 'Forgot Password', enter a valid email, submit, and check the logs that the API call fired."

> "I refactored the routing. Run a smoke test: cycle through all bottom-nav tabs and verify each screen loads without exceptions in the logs."

> "Investigate the unresponsive 'Clear Cache' button on Settings — find it via get_interactive_elements, tap it, and analyze the logs."

Documentation

| Guide | What's inside | | --- | --- | | Getting Started | Zero-to-driving in 5 steps. | | Flutter Setup | The binding, debug-only init, the single-binding rule. | | Configuration | Custom design systems, production checklist, complete main.dart. | | Log Collection | Wire up get_logs (logging, logger, or custom). | | Semantics | Make custom-painted / rich content readable to agents. | | MCP Tools | Full tool reference + AI-tool configuration. | | Custom Extensions | Expose app-specific actions as agent tools via registerMarionetteExtension. | | CLI | Drive Marionette from any shell-capable agent. | | Troubleshooting | Common gotchas and limitations. |

Packages

| Package | Role | | --- | --- | | marionette_flutter | The binding you add to your Flutter app. Required. | | marionette_mcp | MCP server bridging AI agents to your running app. | | marionette_cli | CLI alternative for shell-only / restricted environments. | | marionette_logging | LogCollector adapter for the logging package. | | marionette_logger | LogCollector adapter for the logger package. |


🛠️ Maintained by LeanCode

This package is built with 💙 by LeanCode. We are top-tier experts focused on Flutter Enterprise solutions.

Why LeanCode?

  • Creators of Patrol – the next-gen testing framework for Flutter.
  • Production-Ready – We use this package in apps with millions of users.
  • Full-Cycle Product Development – We take your product from scratch to long-term maintenance.

Need help with your Flutter project?

👉 Hire our team   •   Check our other packages

Source & license

This open-source MCP server is cataloged on AgentStack and links to its original source — we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet — be the first.

Versions

  • v0.1.0 Imported from the upstream source.