From flutter-mcp-toolkit
Inspects, interacts with, and live-edits running Flutter apps via MCP toolkit server. Covers preflight checks, snapshots, taps, scrolls, hot-reloads, and error parsing.
npx claudepluginhub arenukvern/mcp_flutter --plugin flutter-mcp-toolkitThis skill uses the workspace's default tool permissions.
<!-- @FMT_MODE_PRELUDE -->
Entry point for AI-driven inspection, control, debugging, and custom tooling of running Flutter apps; performs preflight check and routes to task-specific skills.
Configures Flutter Driver extension for app interaction and converts MCP actions into permanent integration tests using integration_test package. Use for adding integration testing, UI exploration via MCP, or automating user flows.
Provides expert guidance on Flutter 3.x and Dart 3.x for multi-platform apps, including advanced widgets, state management (Riverpod, Bloc), animations, testing, architecture, and performance optimization.
Share bugs, ideas, or general feedback.
Golden path for agents driving a live Flutter app via the flutter-mcp-toolkit MCP server entry. Older configs may use the legacy flutter-inspector mcpServers registry id for the same binary (that id is not the Claude subagent flutter-mcp-toolkit-runtime).
ws://127.0.0.1:8181/.../ws) or mentions port 8181.Before any VM-dependent call:
doctor (or run flutter-mcp-toolkit doctor --json) — parses env, ports, app reachability.ext.mcp.toolkit.app_errorsext.mcp.toolkit.view_detailsext.mcp.toolkit.view_screenshotsext.mcp.toolkit.inspect_widget_at_pointIf missing, stop and report the instrumentation gap — do not guess:
mcp_toolkit to pubspec.yaml.MCPToolkitBinding.instance..initialize()..initializeFlutterToolkit(); runs before runApp.All MCP tools surface under the fmt_ capability prefix
(fmt_tap_widget, fmt_hot_reload_and_capture, etc.). The prefix is
mandatory in tools/call. Skill-local references below use the bare name
for readability — when invoking, prepend fmt_. Dynamic-registry host
tools (fmt_list_client_tools_and_resources, fmt_client_tool,
fmt_client_resource) use the same prefix for a single consistent surface.
fmt_semantic_snapshot → returns s_0..s_N refs + snapshot_id.fmt_tap_widget / fmt_enter_text / fmt_scroll / fmt_swipe / fmt_long_press / fmt_drag — act on a ref. Always pass snapshotId — you get a structured stale_snapshot error if the tree moved, instead of a silent wrong tap.fmt_evaluate_dart_expression — read state directly (e.g. AgentState.instance.counter).fmt_hot_reload_and_capture — after a code edit, returns reload status + screenshot + fresh snapshot + errors in one response. Prefer this over manual reload + separate capture.Errors are {code, message, details, descriptor, recovery}. Parse error.descriptor (not the top-level object) for the machine-readable shape. Strict schemas default to additionalProperties: false — unknown params reject.
Common codes and recovery:
connection_selection_required — retry with arguments.connection.targetId or exact arguments.connection.uri from app.debugPort.wsUri.target_not_found — refresh targets, then prefer exact arguments.connection.uri.stale_snapshot — call fmt_semantic_snapshot again, then retry the action with the new snapshot_id.tool_not_found — confirm the prefixed name (fmt_<tool>); v3.0.0 dropped legacy unprefixed names.--no-images.--no-resources.fmt_capture_ui_snapshot (or one of the visual://localhost/... resources), edit, fmt_hot_reload_and_capture, compare.fmt_inspect_widget_at_point output.fmt_get_app_errors top stack frame (file, line, column) when available.fmt_debug_dump_* unless explicitly requested (server must be started with --dumps; high token cost).Screen Recording permission belongs to the process running flutter-mcp-toolkit (or the MCP server host). If visual capture is denied:
flutter-mcp-toolkit permissions status
flutter-mcp-toolkit permissions request
flutter-mcp-toolkit permissions open-settings
If the target app cannot be instrumented (third-party binary, restricted env), report flutter-mcp as unavailable for that app. Do not claim screenshot/layout/error inspection success.
flutter-mcp-toolkit-custom-tools skill.flutter-mcp-toolkit-guide.