flutter-skill MCP
An MCP server for end-to-end testing: the agent sees a running Flutter, React Native, Electron or other app and drives it
- 401 ★ on the repository
- Last commit
- MIT
Broad access
Why this level
- Taps buttons, types text and runs JavaScript in the app, so it can change data
- Reads cookies, local storage, network requests and screenshots
- Can inject sessions and verification codes, so run it against test accounts
Install
- Works in
Manual install
npm install -g flutter-skillHomebrew, Scoop, Docker and pub.dev are also available.
Access and checks
How we reviewBroad accessThe tool can change data, run commands or handle secrets.
- Taps buttons, types text and runs JavaScript in the app, so it can change data
- Reads cookies, local storage, network requests and screenshots
- Can inject sessions and verification codes, so run it against test accounts
This is third-party code. Review the repository files before installing.
What it does
flutter-skill connects an AI agent to a running app over MCP. The agent takes screenshots, taps buttons, types text, scrolls, reads the element tree and checks state. You describe an interactive check in plain language, for example «check login with a wrong password». The author counts ten platforms: Flutter (iOS, Android and web), React Native, Electron, Tauri, Kotlin Android, Swift iOS, Kotlin Multiplatform desktop and .NET MAUI, with websites covered both with an SDK and without one through the Chrome DevTools Protocol. A Flutter app needs two lines with FlutterSkillBinding, and websites need no SDK. Instead of screenshots the server can return a compact accessibility snapshot, which supports structural UI analysis. In server mode there are tools: interaction, waits and assertions, visual baselines, network mocking, API tests, coverage, accessibility audits, translation checks, performance measurements and scenario recording with export to Playwright, Cypress and others. Separate CLI commands run autonomous app exploration (explore), random testing (monkey) and parallel runs across platforms.
Who it is for. For developers and testers of mobile, desktop and web apps who want to check scenarios by talking to Claude, Cursor, Windsurf or Copilot.
Good fit when
- You want to run a checkout flow on a running Flutter app without writing test code
- You want an agent to walk through every screen of an app and list the bugs it finds
- You need a random run with a fixed seed (the monkey command with --seed) to look for crashes
- You compare one app across several platforms, for example web, Electron and Android
- You need to check accessibility, contrast and translations of an interface without wiring up separate tools
Not a fit when
- You need unit and widget tests inside CI: the server drives a running app
- The app cannot run in debug mode or take an SDK
- You need to check logic at function level: the server acts through the app interface
- You need to test a production system: the tool taps and types on your behalf
Example request
Launch the app, go through checkout with an empty cart, then add three items and take the order through to payment. Take screenshots of each step.MCP
- Transport
- stdio
- Authentication
- not required
Limitations
Flutter requires the flutter_skill dependency and FlutterSkillBinding initialization in debug mode before the app starts. Other platforms need their own SDKs; web pages connect through the browser without an SDK. Available commands depend on platform and app state, with no guarantee of identical coverage.
The init command edits sources, so save the current project first. Use test accounts because UI actions can write real data. The agent receives screenshots, element trees and session information, which its provider may process. Check authentication separately before exposing the standalone HTTP mode externally.
How to disable. Remove the server from the MCP client configuration and uninstall the package with npm uninstall -g flutter-skill. In the app, delete the FlutterSkillBinding lines and the dependency.
FAQ
How do I connect flutter-skill to Cursor or Claude Desktop?
Install the package with npm install -g flutter-skill and add a server to the config file with the command flutter-skill and the argument server. For Cursor that is .cursor/mcp.json, for Claude Desktop claude_desktop_config.json.
What do I add to a Flutter app?
The flutter_skill dependency in pubspec and a FlutterSkillBinding.ensureInitialized() call in main, inside a kDebugMode check. The flutter-skill init command can find the app and patch it for you.
How do server and serve modes differ?
Server mode speaks MCP over stdio and suits IDEs, and it launches Chrome itself. Serve mode starts an HTTP server for scripts, CI and commands like flutter-skill tap, and it connects to an already running Chrome.
How does flutter-skill differ from Playwright MCP?
Playwright MCP covers the web only. flutter-skill drives mobile, desktop and web apps across ten platforms and uses the Chrome DevTools Protocol for websites with no SDK.
Which CLI commands exist besides starting the server?
explore walks the app and looks for bugs, monkey fires random actions with a fixed seed, test runs scenarios in parallel across platforms and serve starts an HTTP server for websites. Simple actions have nav, snap, screenshot, tap, type and eval.
Discussion
No questions or reviews yet.
Related
MCP serversValidates Agent Skills packages: structure, links, token weight and instruction quality, with optional LLM-as-judge scoring
Marionette MCP: an agent inside a Flutter app
Marionette MCP
An MCP server for Flutter: the agent connects to a running app, reads the widget tree, taps, types, scrolls and takes screenshots
The noqa-testing skill teaches an agent to test iOS and Android: read the screen, tap, write cases and run them on a real phone
About 70 test automation skills: Selenium, Playwright, Cypress, Appium, JUnit, pytest and more, with runs on the TestMu AI cloud
A CLI to evaluate and evolve agent skills: declarative YAML cases, runs across engines and structured reports
CLI, MCP server and typed Node.js API so an agent can verify its changes in a live mobile app on iOS, Android and more
Comparison with similar tools
Cards that share the main search query, and how they differ.
| Tool | Official | Authentication | Repository stars | Main difference |
|---|---|---|---|---|
| flutter-skill (this card) | no | not required | 401 | |
| Marionette MCP: an agent inside a Flutter app | no | not required | 500 | an MCP server for Flutter only: reads the widget tree and taps elements |
| agent-device | no | 5,281 | a CLI and MCP for verifying changes in a live mobile app, with no desktop or web | |
| Buoy MCP | yes | OAuth | 695 | reads a running React Native or Flutter app and taps the screen |
README in short
The project includes a Dart package and CLI commands for launching and exploring applications. The Dart package requires Dart 3 and Flutter 3 or later within its declared version bounds; these are separate from npm-wrapper requirements.