gitnexus-cli
Use when the user needs to run GitNexus CLI commands like analyze/index a repo, check status, clean the index, generate a wiki,…
Read state from a running Flutter app — semantic snapshot, view details, errors, screenshots, VM info. Use when you need to understand what the app is showing.
$ npx -y skills add Arenukvern/mcp_flutter --skill flutter-mcp-toolkit-inspect --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/flutter-mcp-toolkit-inspectContext preview
The summary Claude sees to decide when to auto-load this skill.
Read state from a running Flutter app — semantic snapshot, view details, errors, screenshots, VM info. Use when you need to understand what the app is showing.
name: flutter-mcp-toolkit-inspect description: Read state from a running Flutter app — semantic snapshot, view details, errors, screenshots, VM info. Use when you need to understand what the app is showing.
<!-- @FMT_MODE_PRELUDE -->
Use this skill for read-only state inspection of a running Flutter app: what is shown on screen, recent errors, available debug targets, VM metadata, and widget tree details. Do not use for driving interaction — that is the interact skill. Start with `discover_debug_apps` when no connection target is established. Start with `semantic_snapshot` when you need to know which widgets are on screen.
flutter-mcp-toolkit batch --steps '[
{"name":"semantic_snapshot"},
{"name":"get_app_errors","args":{"count":5}},
{"name":"get_screenshots","args":{"mode":"flutter_layer","compress":true}}
]'Use `mode: flutter_layer` on `get_screenshots` on macOS to avoid Screen Recording permission failures. `capture_ui_snapshot` uses the separate `screenshotMode` field.
1. Call `semantic_snapshot()`. 2. Read `interactionSurface`: `flutter_widgets` (tap-by-ref works), `hybrid` (sparse semantics), `game_canvas` (use `evaluate_dart_expression` + screenshots). 3. Each interactive node has a stable `ref` (`s_0`, `s_1`, …) and the response includes a `snapshot_id`. 4. Pass refs to interaction tools; pass the `snapshot_id` value as `snapshotId` to detect staleness.
Prefer `hot_reload_and_capture` over separate reload + snapshot + screenshot calls.
1. Call `get_app_errors(count: 10)`. 2. Inspect the `errors` array — each entry has message, stack trace, and timestamp. 3. Match on message text to find the source.
1. Call `discover_debug_apps()`. 2. Read the `targetId` (canonical WebSocket URI) for each active target. 3. Pass the chosen URI as `connection.targetId` on subsequent tool calls.
1. Call `inspect_widget_at_point(x: 200, y: 400)`. 2. The response identifies the deepest widget and render node at those global logical pixel coordinates.
1. Call `get_screenshots()`. 2. If `meta.fileUrls` is non-empty, screenshots are on disk at those paths. Otherwise the response contains base64 `ImageContent` blocks — extract and write manually. 3. To force file output, configure an images output directory on the server before calling.
List all active Flutter debug targets with canonical WebSocket URIs.
discover_debug_apps()
Returns: `{"targets": [{"targetId": "ws://127.0.0.1:8181/<token>/ws", "host": "...", "port": 8181}]}`
Retrieve the most recent application errors from the Dart VM.
get_app_errors(count: 5)
Returns: `{"message": "2 errors found", "errors": [{"message": "...", "stack": "..."}]}`
Capture screenshots of all views.
get_screenshots(mode: "flutter_layer", compress: false)
Returns: `ImageContent` blocks (base64 PNG) when no output dir configured, or `TextContent` URL refs + `meta.fileUrls` when file output is enabled.
Get dimensions, device pixel ratio, and display ID for all views.
get_view_details()
Returns: `{"views": [{"id": 0, "width": 1280, "height": 800, "devicePixelRatio": 2.0}]}`
Return Dart VM metadata: version, isolates list, pid, and architecture.
get_vm()
Returns: `{"type": "VM", "name": "vm", "version": "3.x.x", "isolates": [...]}`
List all registered VM service extension RPCs in the running app.
get_extension_rpcs()
Returns: `{"extensionRPCs": ["ext.flutter.inspector.getRootWidget", "ext.mcp.toolkit.semantic_snapshot"]}`
Return a compact accessibility tree of interactive widgets with stable `ref` strings and a `snapshot_id`. A node is listed when it reads (label, value), acts (button, text field, tap, scroll…) or carries a `Semantics(identifier:)`.
Inspect and drive a running Flutter app from your AI assistant. 📖 Docs: docs.page/arenukvern/mcp_flutter 🤝 Contribute: guide · contributors · code of conduct · security flutter-mcp-toolkit is a Dart MCP server + Flutter package for AI agents (Codex, Zed,
Use when the user needs to run GitNexus CLI commands like analyze/index a repo, check status, clean the index, generate a wiki,…
Use when the user is debugging a bug, tracing an error, or asking why something fails. Examples: \"Why is X failing?\", \"Where…
Use when the user asks how code works, wants to understand architecture, trace execution flows, or explore unfamiliar parts of…
Use when the user asks about GitNexus itself — available tools, how to query the knowledge graph, MCP resources, graph schema, or…
Use when the user wants to know what will break if they change something, or needs safety analysis before editing code. Examples:…
Use when the user wants to rename, extract, split, move, or restructure code safely. Examples: \"Rename this function\",…