Orbit command-palette MCP server for FlutterFlow projects
The server defines 4 tools with partial schema coverage. The primary tool 'orbit' has a well-structured input schema (cmd, args, snapshot, format) with type definitions and descriptions, but lacks documented output schema. Three supporting tools (orbit_policy_get, orbit_policy_set, orbit_export_changeset) have minimal or missing parameter descriptions. Tool descriptions are present but generic, they state WHAT the tool does but lack WHEN to use it or what the LLM should expect in return. No tool descriptions explain error recovery paths or prerequisites. Parameter descriptions are sparse: 'Optional command arguments' and 'Policy configuration object' are too vague for LLM reasoning. The codebase shows sophisticated internal logic (ChangesetService, PolicyEngine, SnapshotRepo) but this complexity is not surfaced in tool contracts, forcing LLMs to guess at semantics.
Primary command palette for FlutterFlow project discovery, querying, and safe ChangeSet editing. Start with cmd='help'.
Exports a manual apply payload JSON for offline/app-manual pushes
Returns merged Orbit policy (file + env overrides)
Writes orbit.policy.json when ORBIT_ALLOW_POLICY_WRITE=1
Output schemas not documented. Tools return results but LLMs cannot plan downstream calls without knowing response structure. E.g., orbit returns what fields? Does it include changeset_id for orbit_export_changeset to consume?
Parameter descriptions are generic placeholders. 'Optional command arguments' and 'Policy configuration object' do not explain what keys/values are valid, what constraints apply, or what happens on invalid input. LLMs cannot self-correct.
Tool descriptions lack recovery guidance. No description explains what to do if a command fails, which errors are retryable, or how to debug. E.g., 'orbit' says 'Start with cmd=help' but does not explain what help returns or how to interpret errors.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 43 | 2026-07-28+ | v2 |
orbit_policy_get and orbit_policy_set lack descriptions of when to use them vs. the main orbit tool. Are they low-level utilities? Prerequisites? This ambiguity forces LLMs to guess at tool selection.
No error handling guidance in any tool description. The code references FlutterFlowApiError, rate limiting (429), and validation errors (400), but tool descriptions do not tell LLMs how to handle these or what to retry.