@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.7",
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.7"
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.7",
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
- > Durable cross-platform Flutter automation for Claude Code — 8 specialized MCP servers, an in-app Dart mixin binding, and an optional DevTools panel. Replaces `marionette_mcp` and the official `dart mcp-server` with a crash-resilient multi-process architecture.
3
+ [![npm](https://img.shields.io/npm/v/@bdayadev/flutter-ultra-mcp)](https://www.npmjs.com/package/@bdayadev/flutter-ultra-mcp)
4
+ [![pub.dev](https://img.shields.io/pub/v/ultra_flutter)](https://pub.dev/packages/ultra_flutter)
5
+ [![CI](https://github.com/Bdaya-Dev/flutter-ultra-mcp/actions/workflows/ci.yml/badge.svg)](https://github.com/Bdaya-Dev/flutter-ultra-mcp/actions/workflows/ci.yml)
6
+ [![License](https://img.shields.io/github/license/Bdaya-Dev/flutter-ultra-mcp)](LICENSE)
4
7
 
5
- [![License: Apache 2.0](https://img.shields.io/badge/License-Apache_2.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)
6
- [![Plugin: Claude Code](https://img.shields.io/badge/Claude_Code-plugin-7C3AED.svg)](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. We split the surface across **8 MCP servers** so a Linux AT-SPI regression cannot stop your Android tests, and a broken pubspec cannot block your hot reload.
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
- | Server | Purpose |
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
- ## Install
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
- This is a Claude Code plugin. Install with:
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
- Or add via the marketplace:
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
- /plugin marketplace add Bdaya-Dev/flutter-ultra-mcp
35
- /plugin install flutter
141
+ flutter pub add ultra_flutter_devtools
36
142
  ```
37
143
 
38
- After install, the 8 MCP servers register automatically. Drop into any Flutter project, start a debug session, and ask Claude to take a screenshot, scroll a list, or run your patrol suite.
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
- ## Quick tour
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
- # In a Flutter project
44
- flutter run -d chrome
45
-
46
- # Claude Code session — invoke any included skill
47
- /flutter:tour # Route-by-route screenshot tour
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
- ## Architecture
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
- See [docs/architecture.md](docs/architecture.md) for the full design.
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
- ## Documentation
217
+ ### Available scripts
59
218
 
60
- - [Architecture](docs/architecture.md)
61
- - [Contracts](docs/contracts/)
62
- - [Platform matrix](docs/platform-matrix.md)
63
- - [Migration from marionette_mcp](MIGRATION-marionette.md)
64
- - [Discovery empirics](docs/discovery-empirics.md)
65
- - [Upstream patrol PRs](docs/UPSTREAM-PATROL-PRS.md)
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) commit message format, monorepo layout, local test workflow.
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 the vulnerability reporting process.
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. See [LICENSE](LICENSE) and the upstream notices in `NOTICE` (where applicable).
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
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.7
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.7",
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",