marrionate_extended_mcp 0.1.0 copy "marrionate_extended_mcp: ^0.1.0" to clipboard
marrionate_extended_mcp: ^0.1.0 copied to clipboard

Unified Flutter end-to-end automation toolkit: MCP server, app-side bindings, scenario model, replay runtime, key injection builder, and vendored marionette/flutter-skill drivers behind a single package.

marrionate_extended_mcp #

Unified Flutter end-to-end automation in a single package: MCP server, app-side bindings, scenario model, replay runtime, key-injection builder, and the vendored marionette / flutter-skill drivers behind one import.

See doc/mcp-instructions.md for the MCP wire format and how to attach exported instructions to a running debug app.

Install #

dependencies:
  marrionate_extended_mcp: ^0.1.0

While it is not yet on pub.dev, depend on it by path or git:

dependencies:
  marrionate_extended_mcp:
    path: ../marrionate_extended_mcp
    # or:
    # git:
    #   url: https://github.com/your-org/marrionate_extended_mcp.git

What's inside #

Module (lib/src/...) Origin Provides
flutter_e2e_toolkit first-party app-side bindings, scenario model, validator, recorder
flutter_e2e_mcp first-party unified MCP server + replay CLI
e2e_key_generator first-party build_runner builder injecting ValueKey<String>
marionette_mcp vendored (Apache-2.0) MCP server, session/step logging, stdio + WS transports
marionette_flutter vendored (Apache-2.0) ext.flutter.marionette.* service extensions
marionette_cli vendored (Apache-2.0) command-line client
marionette_logger / marionette_logging vendored (Apache-2.0) structured logging
flutter_skill vendored (MIT) JS/CDP bridge for web apps

Everything is exported from the single barrel file:

import 'package:marrionate_extended_mcp/marrionate_extended_mcp.dart';

Individual modules are importable as package:marrionate_extended_mcp/src/<module>/<file>.dart if you need something the barrel file hides to avoid name clashes.

Command-line entry points #

The package ships these executables (bin/):

dart run marrionate_extended_mcp:marionette_mcp   # MCP server (stdio)
dart run marrionate_extended_mcp:replay           # scenario replay CLI
dart run marrionate_extended_mcp:marionette       # marionette CLI
dart run marrionate_extended_mcp:server           # flutter-skill server
dart run marrionate_extended_mcp:flutter_skill    # flutter-skill CLI

Wire the MCP server into an agent (stdio transport by default; pass --sse-port N for SSE):

{
  "mcpServers": {
    "marrionate-extended-mcp": {
      "command": "dart",
      "args": ["run", "marrionate_extended_mcp:marionette_mcp"]
    }
  }
}

Replay recorded scenarios from the command line:

dart run marrionate_extended_mcp:replay --scenarios path/to/scenarios --format text
# --stop-on-failure, --list-only, --format {text,json,junit}

Platform behaviour #

Marionette registers ext.flutter.marionette.* service extensions and flutter-skill registers ext.flutter.flutter_skill.*. Both are reached over the Dart VM service, which does not exist in a browser.

Native (Windows/macOS/Linux/Android/iOS) Web (Chrome)
Marionette tools 18 available withheld, -32001 with an explanation
Flutter-skill tools available available via JS/CDP bridge
Transport Dart VM service window.__FLUTTER_SKILL_DART_CALL__ + CDP

E2eBinding.ensureInitialized installs the right transport for the target, and E2eCapability reports what works so callers fail fast instead of hanging.

The ValueKey rule #

Anything a tool can interact with, or an assertion can observe, carries a stable ValueKey<String>. Scenarios target keys exclusively — never text or coordinates — so a copy change cannot silently break a test.

The e2e_key_generator builder injects missing keys:

dart run build_runner build

Development #

dart analyze      # 0 issues
flutter test      # full suite
dart pub publish --dry-run

License #

MIT for first-party code. Vendored dependencies keep their upstream licenses — MIT (flutter-skill) and Apache-2.0 (marionette_*). See NOTICE.md.

0
likes
120
points
237
downloads

Documentation

API reference

Publisher

verified publisherrajkavadia.dev

Weekly Downloads

Unified Flutter end-to-end automation toolkit: MCP server, app-side bindings, scenario model, replay runtime, key injection builder, and vendored marionette/flutter-skill drivers behind a single package.

Repository (GitHub)
View/report issues

Topics

#testing #e2e #flutter #automation #mcp

License

MIT (license)

Dependencies

analyzer, args, build, crypto, flutter, http, logger, logging, mcp_dart, meta, path, stack_trace, vm_service, web, web_socket_channel, yaml

More

Packages that depend on marrionate_extended_mcp