FlutterSDK Dusk logo

FlutterSDK Dusk

Drive live Flutter apps through Semantics snapshots, gestures, screenshots, state observation, and MCP tools.

Install FlutterSDK Dusk

Pick your client, then add it in one click or paste the config.

STDIONode.js
~/Library/Application Support/Claude/claude_desktop_config.json
claude_desktop_config.json
{
  "mcpServers": {
    "fluttersdk-dusk": {
      "command": "npx",
      "args": [
        "-y",
        "@fluttersdk/mcp"
      ]
    }
  }
}

Settings → Developer → Edit Config, merge this into mcpServers, then fully quit and reopen Claude Desktop.

Automated check passed— started and listed 1 tools correctly (20d ago).

Overview

FlutterSDK Dusk MCP server connects AI agents to running Flutter applications through a stdio MCP server and a VM Service extension family. It exposes tools for reading the Semantics tree, locating widgets, performing gestures, capturing screenshots, observing state, and inspecting exceptions. Install the Dart package in a Flutter project, run its installer, and attach the server to a debug or profile app. Reach for it when an agent needs unscripted interaction with a live Flutter app rather than an authored integration test.

Use cases

  • Inspect a running Flutter app before acting on its widgets
  • Drive UI interactions from an AI coding agent
  • Capture screenshots after live app changes
  • Collect Flutter exceptions during exploratory sessions
  • Measure widget frame attribution around an interaction

Key features

  • Semantics snapshots with e<N> references
  • 39 stdio MCP tools
  • Gesture actionability checks and auto-scroll
  • Hot reload and screenshot workflows
  • CDP viewport and device emulation
  • Flutter exception and performance inspection

Tools1

What FlutterSDK Dusk lets your agent do. Expand a tool for its parameters.

Verified live~250 tokens of context

Security & health

What it can reach and how reliably it runs — from our own checks, not the maintainer’s claims.

ActiveLast checked 1d ago

Recent health check succeeded.

10/10 checks healthy over the last 44d

What it can do

From the 1 tool this server returned when we ran it; 1 declare their own safety hints.

Handles credentials · 1Read-only tools · 1
Network at startup5 connections
Files written at startupNone
Install scriptsNone
npm provenanceSigned build
Package age149 days
Maintainers1

Observed 2026-10-23 in an isolated sandbox. A description of reach, not a security audit.

Supply-chain signal

No high-severity advisories surfaced by our automated scan.

Critical 0High 0Medium 0Low 0

Scanned 14d ago via OSV.dev · @fluttersdk/mcp (npm)

Adoption & maintenance

Factual signals from GitHub, npm, and our automated checks — not a rating.

GitHub stars3Stargazers on the source repository.
npm downloads17kPackage downloads in the last 30 days.
Last commit4d agoMost recent push to the default branch.
Availability100%Our rolling endpoint + install checks that succeeded.
Install checkPassedOur sandbox started it and listed its tools.
Tools exposed1Callable tools this server registers over MCP.
Directory activity4 viewsConfig copies, upvotes, and views on AllMCPs.

How FlutterSDK Dusk works

What FlutterSDK Dusk MCP server does

FlutterSDK Dusk MCP server drives a running Flutter application through a single stdio MCP endpoint. It gives an agent a structured view of the UI through Semantics snapshots, then lets the agent act on referenced nodes instead of relying on guessed coordinates or XPath expressions. The same underlying operations are available from the command line and MCP, so terminal-driven and agent-driven workflows use matching behavior.

The package is intended for live, unscripted automation. It can inspect the current interface, interact with controls, capture visual output, observe state, navigate routes, collect exceptions, and run performance-related commands. It complements integration_test, which is designed around authored test files and WidgetTester.

How it works

Dusk adds a family of ext.dusk.* VM Service extensions to the Flutter application. Its CLI and MCP server route commands to those extensions, allowing an attached debug or profile app to be driven without creating a separate test harness or test file.

A snapshot returns a YAML representation of the Semantics tree with stable-looking e<N> references. The dusk_find capability also supports q<N> handles that are resolved against the live tree for each action. Before a gesture runs, Dusk checks conditions including whether the target is enabled, has a usable rectangle, is visible, remains stable across frames, and receives pointer events. It can scroll an off-viewport target into view as part of this process.

Setup and configuration

Add the package with:

bash
flutter pub add fluttersdk_dusk
dart run fluttersdk_dusk dusk:install

The installer patches lib/main.dart, creates the ./bin/fsa fast CLI when possible, and registers the Dusk plugin. The MCP endpoint can then be registered with:

bash
dart run fluttersdk_dusk mcp:install

When the fast CLI is unavailable, the generated MCP configuration uses dart run fluttersdk_dusk mcp:serve. Dusk requires Dart SDK 3.4.0 or newer and Flutter 3.22.0 or newer. The plugin installation should be guarded with !kReleaseMode; release builds tree-shake the driver for mobile, desktop, and web.

Tools and capabilities

FlutterSDK Dusk MCP server exposes 39 MCP tools, covering the CLI surface plus evaluation support. Supported operations include:

  • Snapshotting and observing the Semantics tree
  • Tapping, typing, filling, scrolling, dragging, hovering, clicking, focusing, and clearing
  • Setting checkboxes, selecting options, pressing keys, and waiting
  • Finding nodes, navigating routes, handling modals, and resetting overlays
  • Capturing screenshots, hot reloading, and returning a combined reload-and-snapshot result
  • Resizing Chrome viewports and applying device profiles through CDP
  • Reading console output, collecting non-fatal Flutter errors, and running performance sessions

The web screenshot path has an important distinction: the CLI can use CDP Page.captureScreenshot when started with --cdp-port, while the MCP screenshot tool dispatches in-process.

Limitations and notes

Dusk is debug-only and requires a live attachable Flutter app. It is not a replacement for authored integration tests or native-dialog automation. The web screenshot fallback applies to the CLI, not the MCP screenshot tool. The standard server transport is stdio, and the documented client integrations include Claude Code, Cursor, Windsurf, VS Code Copilot, Gemini CLI, Codex CLI, Cline, and Roo Code.

Reviews

No reviews yet — be the first to share how it worked for you.

Frequently Asked Questions about FlutterSDK Dusk

FlutterSDK Dusk is an MCP server that connects AI agents to live Flutter apps through VM Service extensions and stdio JSON-RPC. Its main tools snapshot the Semantics tree, find widgets, perform gestures, type text, scroll, capture screenshots, observe state, collect exceptions, and run performance or navigation commands.

Install it with `flutter pub add fluttersdk_dusk`, then run `dart run fluttersdk_dusk dusk:install` and `dart run fluttersdk_dusk mcp:install`. The installer patches `lib/main.dart`, scaffolds the fast CLI when possible, and writes MCP wiring automatically when needed.

Yes, FlutterSDK Dusk supports Cursor through its stdio MCP server. Run the package installer and MCP installer in the Flutter project, then use the generated configuration to expose the Dusk tools to Cursor.

Yes, it is designed for unscripted interaction with a running Flutter app and does not require a separate test harness or authored test file. The agent can snapshot the Semantics tree, act on references, observe state, and capture screenshots through MCP.

The CLI supports a CDP screenshot fallback when Artisan is started with `--cdp-port`. The `dusk_screenshot` MCP tool uses the in-process path instead, so web agents should use the CLI when that fallback is needed.

Related MCP servers

Add a badge to your READMEShow it’s listed — live SVG, Markdown or HTML.

AllMCPs Directory Badge

Full Badge Customizer

Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.

Badge Style:
Live Dynamic SVG PreviewFlutterSDK Dusk AllMCPs Directory Badge
Markdown (GitHub README)
[![AllMCPs](https://allmcps.com/api/badge/fluttersdk-dusk?style=directory)](https://allmcps.com/mcp/fluttersdk-dusk)
HTML Embed
<a href="https://allmcps.com/mcp/fluttersdk-dusk"><img src="https://allmcps.com/api/badge/fluttersdk-dusk?style=directory" alt="FlutterSDK Dusk on AllMCPs" /></a>