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,…
Verify the flutter-mcp-toolkit install, run doctor preflight, troubleshoot connection issues. Use when the toolkit isn't responding or first-time setup.
$ npx -y skills add Arenukvern/mcp_flutter --skill flutter-mcp-toolkit-setup --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/flutter-mcp-toolkit-setupContext preview
The summary Claude sees to decide when to auto-load this skill.
Verify the flutter-mcp-toolkit install, run doctor preflight, troubleshoot connection issues. Use when the toolkit isn't responding or first-time setup.
name: flutter-mcp-toolkit-setup description: Verify the flutter-mcp-toolkit install, run doctor preflight, troubleshoot connection issues. Use when the toolkit isn't responding or first-time setup.
<!-- @FMT_MODE_PRELUDE -->
Use this skill when:
---
flutter-mcp-toolkit --help fmtk --help
Expected output: command help from both names. `flutter-mcp-toolkit` is the canonical long name; `fmtk` is the compact alias for day-to-day terminal loops.
If you get `command not found`, the binary is not on PATH:
# Binary is built to mcp_server_dart/build/ inside the repo export PATH="$PATH:/path/to/mcp_flutter/mcp_server_dart/build" # Or rebuild from source cd /path/to/mcp_flutter && make build
Then verify with `flutter-mcp-toolkit --help` and `fmtk --help`.
---
Always run doctor before any VM-dependent command:
fmtk doctor --json
Flags: `--target <ws_uri>` (test a specific URI), global `--vm-service-uri <ws_uri>` (same as `--target` when omitted on `doctor`), `--timeout-ms <n>` (default: 2500).
# Global URI works for doctor (same as validate-runtime) fmtk --vm-service-uri 'ws://127.0.0.1:8181/<token>/ws' doctor --json
Sample green output:
{
"summary": { "criticalFailures": 0 },
"checks": [
{ "id": "vm_target_reachable", "status": "pass", "critical": true },
{ "id": "mcp_toolkit_extensions", "status": "pass", "critical": true },
{ "id": "dynamic_registry_available", "status": "pass", "critical": false }
]
}**Triage:** `criticalFailures > 0` means VM/setup is blocked — not that every tool is broken. `dynamic_registry_available: pass` with `vm_target_reachable: fail` usually means a stale URI after hot restart; run `discover_debug_apps` and pass the new `targetId`.
Read `error.descriptor` (not top-level) for retry policy and exit codes. Each check includes `fix_command` — run it directly.
---
Binary missing or not on PATH. Rebuild and add to PATH:
cd /path/to/mcp_flutter && make build export PATH="$PATH:/path/to/mcp_flutter/mcp_server_dart/build"
Flutter app not running, stale token after restart, or URI not resolved:
fmtk exec --name discover_debug_apps --args '{}'
fmtk exec --name status --args '{}'
fmtk doctor --json --target ws://127.0.0.1:8181/<new-token>/wsAfter a successful auto re-attach, `meta.recovery.reattachedTo` shows the new endpoint.
Wrong port, app not started, or stale token. Pass explicit URI from `app.debugPort.wsUri`:
fmtk exec --name get_vm --args '{"connection":{"uri":"ws://127.0.0.1:8181/<token>/ws"}}'Multiple debug targets detected. List with `discover_debug_apps`, then pass the chosen URI from `details.availableTargets` explicitly to `get_vm`.
Dart compilation error or VM disconnected. Check errors, fix, then retry:
fmtk exec --name get_app_errors --args '{}'macOS screen recording permission not granted or unsupported platform:
fmtk permissions request --kind visual_capture
---
**Port conflicts**: VM service defaults to 8181. Override if another process holds it:
flutter run --debug --host-vmservice-port=8182 -d macos fmtk --dart-vm-port 8182 doctor --json
Use `flutter run --machine` and copy `app.debugPort.wsUri` when you need the exact websocket URI (recommended for `validate-runtime` and `exec`).
**Flutter app not in debug mode**: Release/profile builds don't expose the VM service. Always use `flutter run --debug`.
**`mcp_toolkit` not initialized**: Doctor's `mcp_toolkit_extensions` check will fail. Add before `runApp` — use `flutter-mcp-toolkit codegen-init` to generate the boilerplate (see CLI surface below). After adding, hot restart (not hot reload — binding init requires a full restart).
**Multiple apps / wrong target**: Pass `--target` with the exact websocket URI:
fmtk doctor --json --target ws://127.0.0.1:8181/<token>/ws
---
The canonical binary is `flutter-mcp-toolkit` (built to `mcp_server_dart/build/`). Packaged installs also include `fmtk`, a short alias to the same entrypoint. Use `fmtk` in quick loops; keep the long name in install, onboarding, PATH, and MCP configuration docs.
| Subcommand | Purpose | Minimal example | | --------------------------- | ------------------------------------------------------- | ------------------------------------------------------------------------------ | | `exec` | Run a single named command against the VM | `fmtk exec --name get_vm --args '{}'` | | `batch` | Run multiple commands in one call | `fmtk batch --steps '[{"name":"get_vm"},{"name":"status"}]'` | | `schema` | Print the JSON schema for a named command | `fmtk schema --name hot_reload_flutter` | | `capabilities` | List all registered capabilities | `fmtk capabilities` | | `serve` | Start the MCP server (stdio transport) | `fmtk serve`
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\",…