@bdayadev/flutter-ultra-mcp 1.10.7 → 1.10.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
{
|
|
11
11
|
"name": "flutter",
|
|
12
12
|
"description": "Durable cross-platform Flutter automation via 8 specialized MCP servers, in-app mixin binding, and an optional DevTools panel. Replaces marionette_mcp and the official dart mcp-server for Claude Code.",
|
|
13
|
-
"version": "1.10.
|
|
13
|
+
"version": "1.10.8",
|
|
14
14
|
"author": {
|
|
15
15
|
"name": "Bdaya-Dev",
|
|
16
16
|
"url": "https://github.com/Bdaya-Dev"
|
|
@@ -23,5 +23,5 @@
|
|
|
23
23
|
"tags": ["flutter", "dart", "mcp", "testing", "automation", "patrol", "cross-platform"]
|
|
24
24
|
}
|
|
25
25
|
],
|
|
26
|
-
"version": "1.10.
|
|
26
|
+
"version": "1.10.8"
|
|
27
27
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://json.schemastore.org/claude-code-plugin-manifest.json",
|
|
3
3
|
"name": "flutter",
|
|
4
|
-
"version": "1.10.
|
|
4
|
+
"version": "1.10.8",
|
|
5
5
|
"description": "Durable cross-platform Flutter automation via 8 specialized MCP servers, in-app mixin binding, and an optional DevTools panel. Replaces marionette_mcp and the official dart mcp-server for Claude Code.",
|
|
6
6
|
"author": {
|
|
7
7
|
"name": "Bdaya-Dev",
|
package/README.md
CHANGED
|
@@ -1,77 +1,240 @@
|
|
|
1
1
|
# flutter-ultra-mcp
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
[](https://www.npmjs.com/package/@bdayadev/flutter-ultra-mcp)
|
|
4
|
+
[](https://pub.dev/packages/ultra_flutter)
|
|
5
|
+
[](https://github.com/Bdaya-Dev/flutter-ultra-mcp/actions/workflows/ci.yml)
|
|
6
|
+
[](LICENSE)
|
|
4
7
|
|
|
5
|
-
|
|
6
|
-
[](https://docs.claude.com/en/docs/claude-code)
|
|
8
|
+
A Claude Code plugin that gives your AI agent full control over Flutter apps across all platforms. 8 isolated MCP servers, 248 tools, 2 Dart packages, and 12 built-in skills — installed with a single command.
|
|
7
9
|
|
|
8
10
|
## Why
|
|
9
11
|
|
|
10
|
-
A monolithic Flutter MCP server crashes badly: a malformed `pubspec.yaml` or a flaky AT-SPI binding takes down hot reload, gestures, browser, **and** native automation.
|
|
12
|
+
A monolithic Flutter MCP server crashes badly: a malformed `pubspec.yaml` or a flaky AT-SPI binding takes down hot reload, gestures, browser, **and** native automation in one shot. flutter-ultra-mcp splits the surface across 8 independent processes so a Playwright timeout can't kill your hot reload, and a broken pubspec can't block your running test.
|
|
11
13
|
|
|
12
|
-
|
|
13
|
-
| ------------------------------ | ------------------------------------------------------------------------- |
|
|
14
|
-
| `flutter-ultra-build` | pubspec, codegen, analyze, format, tests, builds, l10n, assets |
|
|
15
|
-
| `flutter-ultra-runtime` | Attach to `flutter run` debug sessions over DDS; introspect VM Service |
|
|
16
|
-
| `flutter-ultra-gesture` | Tap, text entry, scroll, screenshot via in-app `ultra_flutter` mixin |
|
|
17
|
-
| `flutter-ultra-browser` | Playwright-driven web automation (OAuth redirects, popups, console) |
|
|
18
|
-
| `flutter-ultra-native-mobile` | Native overlays on Android (UIAutomator) + iOS (XCUITest) via adb / xcrun |
|
|
19
|
-
| `flutter-ultra-native-desktop` | Native UI on Windows (UIA), macOS (AX), Linux (AT-SPI) |
|
|
20
|
-
| `flutter-ultra-devtools` | Live MCP activity panel inside Flutter DevTools |
|
|
21
|
-
| `flutter-ultra-patrol` | Orchestrate `patrol_cli` for E2E tests (web + Android + iOS) |
|
|
14
|
+
## Quick start
|
|
22
15
|
|
|
23
|
-
|
|
16
|
+
```bash
|
|
17
|
+
# 1. Install the Claude Code plugin
|
|
18
|
+
/plugin install Bdaya-Dev/flutter-ultra-mcp
|
|
19
|
+
|
|
20
|
+
# 2. Add the Dart package to your Flutter project
|
|
21
|
+
flutter pub add ultra_flutter
|
|
22
|
+
|
|
23
|
+
# 3. Initialize the binding in main.dart
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
```dart
|
|
27
|
+
import 'package:flutter/foundation.dart';
|
|
28
|
+
import 'package:flutter/material.dart';
|
|
29
|
+
import 'package:ultra_flutter/ultra_flutter.dart';
|
|
30
|
+
|
|
31
|
+
void main() {
|
|
32
|
+
if (kDebugMode) {
|
|
33
|
+
UltraFlutterBinding.ensureInitialized();
|
|
34
|
+
} else {
|
|
35
|
+
WidgetsFlutterBinding.ensureInitialized();
|
|
36
|
+
}
|
|
37
|
+
runApp(const MyApp());
|
|
38
|
+
}
|
|
39
|
+
```
|
|
24
40
|
|
|
25
|
-
|
|
41
|
+
Start a debug session (`flutter run -d chrome`), open Claude Code, and ask it to take a screenshot or run `/flutter:tour`.
|
|
42
|
+
|
|
43
|
+
## Architecture
|
|
44
|
+
|
|
45
|
+
Each server runs as its own Node.js process. Crash isolation means a bug in one server cannot affect the others. Servers share session state through small JSON files on disk — if a server restarts, it picks up where it left off.
|
|
46
|
+
|
|
47
|
+
| Server | Tools | What it does |
|
|
48
|
+
| ------------------------------ | ------: | --------------------------------------------------------------------------------------------------------- |
|
|
49
|
+
| `flutter-ultra-build` | 96 | Pub dependencies, code generation, analysis, formatting, tests, platform builds, l10n, assets, signing |
|
|
50
|
+
| `flutter-ultra-runtime` | 55 | Attach to debug sessions, widget tree inspection, performance profiling, design audit, logs, HTTP capture |
|
|
51
|
+
| `flutter-ultra-browser` | 26 | Playwright-driven web automation — OAuth flows, popups, console, network, storage, JS evaluation |
|
|
52
|
+
| `flutter-ultra-native-mobile` | 24 | Android (UIAutomator) + iOS (XCUITest) — permissions, OAuth tabs, accessibility tree, device recording |
|
|
53
|
+
| `flutter-ultra-gesture` | 18 | Tap, swipe, scroll, text input, screenshots, screencast via the in-app `ultra_flutter` mixin |
|
|
54
|
+
| `flutter-ultra-patrol` | 15 | Orchestrate `patrol_cli` for E2E tests across web, Android, and iOS — run, poll, record, screenshot |
|
|
55
|
+
| `flutter-ultra-native-desktop` | 9 | Windows (UIA), macOS (Accessibility), Linux (AT-SPI) — window listing, a11y tree, clicks, file dialogs |
|
|
56
|
+
| `flutter-ultra-devtools` | 5 | Live MCP activity panel inside Flutter DevTools — sessions, tool calls, errors, screenshot grid |
|
|
57
|
+
| **Total** | **248** | |
|
|
58
|
+
|
|
59
|
+
See [docs/architecture.md](docs/architecture.md) for the full design.
|
|
60
|
+
|
|
61
|
+
## Skills
|
|
62
|
+
|
|
63
|
+
Skills teach Claude the correct tool call sequences for common workflows. Invoke them with `/flutter:<name>`.
|
|
64
|
+
|
|
65
|
+
| Skill | Description |
|
|
66
|
+
| ------------------------ | -------------------------------------------------------------------------------------------- |
|
|
67
|
+
| `/flutter:setup` | One-command setup of flutter-ultra in an existing codebase |
|
|
68
|
+
| `/flutter:tour` | Route-by-route screenshot sweep for visual documentation and regression checks |
|
|
69
|
+
| `/flutter:drive` | Multi-step user flow automation (login, checkout, onboarding) |
|
|
70
|
+
| `/flutter:debug` | Attach to a running app and triage errors from stack trace, widget tree, and network traffic |
|
|
71
|
+
| `/flutter:test` | Orchestrate unit, widget, golden, and patrol E2E tests with focused reporting |
|
|
72
|
+
| `/flutter:bisect` | Automated `git bisect` using test results as the oracle |
|
|
73
|
+
| `/flutter:scaffold` | Generate project boilerplate following conventions detected in the existing codebase |
|
|
74
|
+
| `/flutter:design-audit` | Audit the live app for accessibility, layout, spacing, and design-system conformance |
|
|
75
|
+
| `/flutter:design-verify` | Compare the running app against Figma mockups for design-implementation drift |
|
|
76
|
+
| `/flutter:figma-push` | Push Flutter web app UI to Figma as editable layers from live screenshots |
|
|
77
|
+
| `/flutter:record-demo` | Record a video or GIF demo of an app flow (web browser or native device) |
|
|
78
|
+
| `/flutter:devtools` | Wire up and use the DevTools panel for live MCP activity inspection |
|
|
79
|
+
|
|
80
|
+
## Installation
|
|
81
|
+
|
|
82
|
+
### Plugin (required)
|
|
26
83
|
|
|
27
84
|
```bash
|
|
28
85
|
/plugin install Bdaya-Dev/flutter-ultra-mcp
|
|
29
86
|
```
|
|
30
87
|
|
|
31
|
-
|
|
88
|
+
This registers all 8 MCP servers and 12 skills automatically. No manual configuration needed.
|
|
89
|
+
|
|
90
|
+
### Dart package (required for gesture and screencast tools)
|
|
91
|
+
|
|
92
|
+
Add `ultra_flutter` to your app's **dependencies** (not dev_dependencies — the binding must be present in the compiled app):
|
|
93
|
+
|
|
94
|
+
```bash
|
|
95
|
+
flutter pub add ultra_flutter
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
Then initialize the binding in your `main.dart`:
|
|
99
|
+
|
|
100
|
+
```dart
|
|
101
|
+
import 'package:flutter/foundation.dart';
|
|
102
|
+
import 'package:ultra_flutter/ultra_flutter.dart';
|
|
103
|
+
|
|
104
|
+
void main() {
|
|
105
|
+
if (kDebugMode) {
|
|
106
|
+
UltraFlutterBinding.ensureInitialized();
|
|
107
|
+
} else {
|
|
108
|
+
WidgetsFlutterBinding.ensureInitialized();
|
|
109
|
+
}
|
|
110
|
+
runApp(const MyApp());
|
|
111
|
+
}
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
#### Composing with Sentry
|
|
115
|
+
|
|
116
|
+
`UltraFlutterBinding` is a mixin on `WidgetsBinding`, not a subclass. It composes with other binding mixins like Sentry's:
|
|
117
|
+
|
|
118
|
+
```dart
|
|
119
|
+
// ignore: implementation_imports
|
|
120
|
+
import 'package:sentry_flutter/src/binding_wrapper.dart';
|
|
121
|
+
import 'package:ultra_flutter/ultra_flutter.dart';
|
|
122
|
+
|
|
123
|
+
class AppBinding extends WidgetsFlutterBinding
|
|
124
|
+
with SentryWidgetsBindingMixin, UltraFlutterBinding {}
|
|
125
|
+
|
|
126
|
+
void main() {
|
|
127
|
+
if (kDebugMode) {
|
|
128
|
+
AppBinding();
|
|
129
|
+
} else {
|
|
130
|
+
WidgetsFlutterBinding.ensureInitialized();
|
|
131
|
+
}
|
|
132
|
+
// SentryFlutter.init(...) then runApp(...)
|
|
133
|
+
}
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
### DevTools extension (optional)
|
|
137
|
+
|
|
138
|
+
For the live activity panel inside Flutter DevTools:
|
|
32
139
|
|
|
33
140
|
```bash
|
|
34
|
-
|
|
35
|
-
/plugin install flutter
|
|
141
|
+
flutter pub add ultra_flutter_devtools
|
|
36
142
|
```
|
|
37
143
|
|
|
38
|
-
|
|
144
|
+
This adds a DevTools tab showing active sessions, recent tool calls, errors, and a screenshot grid.
|
|
145
|
+
|
|
146
|
+
## Requirements
|
|
147
|
+
|
|
148
|
+
| Dependency | Version | Required |
|
|
149
|
+
| ----------- | --------- | --------------------------------------------- |
|
|
150
|
+
| Flutter SDK | >= 3.27.0 | Yes |
|
|
151
|
+
| Dart SDK | >= 3.6.0 | Yes |
|
|
152
|
+
| Node.js | >= 20 | Yes (plugin runtime) |
|
|
153
|
+
| Claude Code | latest | Yes |
|
|
154
|
+
| `ffmpeg` | any | Optional — video/GIF recording and conversion |
|
|
155
|
+
| Android SDK | any | Optional — native mobile tools for Android |
|
|
156
|
+
| Xcode | any | Optional — native mobile tools for iOS |
|
|
157
|
+
|
|
158
|
+
## Platform support
|
|
39
159
|
|
|
40
|
-
|
|
160
|
+
| Capability | Web | Android | iOS | Windows | macOS | Linux |
|
|
161
|
+
| -------------------- | :-: | :-----: | :------------: | :--------------: | :------------: | :------------: |
|
|
162
|
+
| Build | x | x | x (macOS only) | x (Windows only) | x (macOS only) | x (Linux only) |
|
|
163
|
+
| Runtime attach | x | x | x | x | x | x |
|
|
164
|
+
| Gesture / screenshot | x | x | x | x | x | x |
|
|
165
|
+
| Browser automation | x | - | - | - | - | - |
|
|
166
|
+
| Native UI automation | - | x | x | x | x | x |
|
|
167
|
+
| Patrol E2E tests | x | x | x | - | - | - |
|
|
168
|
+
| DevTools panel | x | x | x | x | x | x |
|
|
169
|
+
|
|
170
|
+
## Dart packages
|
|
171
|
+
|
|
172
|
+
### [`ultra_flutter`](https://pub.dev/packages/ultra_flutter)
|
|
173
|
+
|
|
174
|
+
In-app binding mixin that registers `ext.flutter.ultra.*` VM service extensions for gesture dispatch, screenshots, screencast streaming, widget matching, and log collection. The mixin form (`on WidgetsBinding`) composes with any existing binding — Sentry, Firebase, or custom subclasses.
|
|
175
|
+
|
|
176
|
+
**SDK requirements:** Flutter >= 3.27.0, Dart >= 3.6.0
|
|
177
|
+
|
|
178
|
+
### [`ultra_flutter_devtools`](https://pub.dev/packages/ultra_flutter_devtools)
|
|
179
|
+
|
|
180
|
+
Flutter DevTools extension that renders a live activity panel: active MCP sessions, recent tool calls with timing, error log, and a screenshot grid from tour/drive runs.
|
|
181
|
+
|
|
182
|
+
**SDK requirements:** Flutter >= 3.24.0, Dart >= 3.5.0
|
|
183
|
+
|
|
184
|
+
## Development
|
|
41
185
|
|
|
42
186
|
```bash
|
|
43
|
-
|
|
44
|
-
flutter
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
/flutter:drive # Multi-step user flow automation
|
|
49
|
-
/flutter:debug # Attach + inspect + triage
|
|
50
|
-
/flutter:test # Test orchestration
|
|
51
|
-
/flutter:setup # One-command setup in a new codebase
|
|
187
|
+
git clone https://github.com/Bdaya-Dev/flutter-ultra-mcp.git
|
|
188
|
+
cd flutter-ultra-mcp
|
|
189
|
+
npm install
|
|
190
|
+
npm run build
|
|
191
|
+
npm test
|
|
52
192
|
```
|
|
53
193
|
|
|
54
|
-
|
|
194
|
+
The repo is a monorepo managed by [Turborepo](https://turbo.build/). Each server is a separate package under `packages/`. Dart packages live under `dart/`. Shared TypeScript utilities live under `shared/`.
|
|
55
195
|
|
|
56
|
-
|
|
196
|
+
```
|
|
197
|
+
packages/
|
|
198
|
+
flutter-ultra-build/ # pubspec, codegen, tests, builds
|
|
199
|
+
flutter-ultra-runtime/ # VM service, widget tree, performance
|
|
200
|
+
flutter-ultra-gesture/ # tap, scroll, screenshot via mixin
|
|
201
|
+
flutter-ultra-browser/ # Playwright web automation
|
|
202
|
+
flutter-ultra-native-mobile/ # Android + iOS native
|
|
203
|
+
flutter-ultra-native-desktop/# Windows + macOS + Linux native
|
|
204
|
+
flutter-ultra-patrol/ # patrol_cli orchestration
|
|
205
|
+
flutter-ultra-devtools/ # DevTools panel server
|
|
206
|
+
shared/
|
|
207
|
+
mcp-runtime/ # Shared server base, state, watchdog
|
|
208
|
+
dart/
|
|
209
|
+
ultra_flutter/ # In-app binding mixin (pub.dev)
|
|
210
|
+
ultra_flutter_devtools/ # DevTools extension (pub.dev)
|
|
211
|
+
skills/ # Skill markdown files for Claude
|
|
212
|
+
examples/
|
|
213
|
+
counter-app/ # Minimal example
|
|
214
|
+
oidc-app/ # OIDC auth flow example
|
|
215
|
+
```
|
|
57
216
|
|
|
58
|
-
|
|
217
|
+
### Available scripts
|
|
59
218
|
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
219
|
+
| Command | What it does |
|
|
220
|
+
| ----------------------- | -------------------------------- |
|
|
221
|
+
| `npm run build` | Build all packages via Turborepo |
|
|
222
|
+
| `npm run test` | Run all unit tests |
|
|
223
|
+
| `npm run lint` | Lint all packages |
|
|
224
|
+
| `npm run typecheck` | TypeScript type checking |
|
|
225
|
+
| `npm run format` | Format all files with Prettier |
|
|
226
|
+
| `npm run format:check` | Check formatting without writing |
|
|
227
|
+
| `npm run test:e2e:web` | End-to-end tests (web) |
|
|
228
|
+
| `npm run test:e2e:oidc` | End-to-end tests (OIDC flow) |
|
|
66
229
|
|
|
67
230
|
## Contributing
|
|
68
231
|
|
|
69
|
-
See [CONTRIBUTING.md](CONTRIBUTING.md)
|
|
232
|
+
See [CONTRIBUTING.md](CONTRIBUTING.md) for the development workflow, commit message format, and local test instructions.
|
|
70
233
|
|
|
71
234
|
## Security
|
|
72
235
|
|
|
73
|
-
See [SECURITY.md](SECURITY.md) for the loopback-only design and
|
|
236
|
+
See [SECURITY.md](SECURITY.md) for the loopback-only network design and vulnerability reporting process.
|
|
74
237
|
|
|
75
238
|
## License
|
|
76
239
|
|
|
77
|
-
Apache-2.0
|
|
240
|
+
Apache-2.0 — see [LICENSE](LICENSE).
|
|
@@ -4,7 +4,7 @@ description: >-
|
|
|
4
4
|
extensions (gesture, screenshot, inspector, screencast, log collection)
|
|
5
5
|
for the flutter-ultra-mcp Claude Code plugin. Composable with Sentry and
|
|
6
6
|
other WidgetsFlutterBinding subclasses via the mixin form.
|
|
7
|
-
version: 1.10.
|
|
7
|
+
version: 1.10.8
|
|
8
8
|
homepage: https://github.com/Bdaya-Dev/flutter-ultra-mcp
|
|
9
9
|
repository: https://github.com/Bdaya-Dev/flutter-ultra-mcp
|
|
10
10
|
issue_tracker: https://github.com/Bdaya-Dev/flutter-ultra-mcp/issues
|
|
@@ -2,7 +2,7 @@ name: ultra_flutter_devtools
|
|
|
2
2
|
description: >-
|
|
3
3
|
Flutter DevTools extension showing live MCP activity for the flutter-ultra-mcp
|
|
4
4
|
Claude Code plugin (sessions, recent tool calls, errors, screenshot grid).
|
|
5
|
-
version: 1.10.
|
|
5
|
+
version: 1.10.8
|
|
6
6
|
homepage: https://github.com/Bdaya-Dev/flutter-ultra-mcp
|
|
7
7
|
repository: https://github.com/Bdaya-Dev/flutter-ultra-mcp
|
|
8
8
|
issue_tracker: https://github.com/Bdaya-Dev/flutter-ultra-mcp/issues
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bdayadev/flutter-ultra-mcp",
|
|
3
|
-
"version": "1.10.
|
|
3
|
+
"version": "1.10.8",
|
|
4
4
|
"description": "Flutter Ultra MCP plugin monorepo — 8 MCP servers + ultra_flutter Dart packages + skills for Claude Code.",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"homepage": "https://github.com/Bdaya-Dev/flutter-ultra-mcp",
|