Flow MCP: smarter flow generation, validation warnings, and clearer preview limits
The Final Flows MCP server update (2026-08-07) adds TypeScript types to the scaffold baseline, surfaces validate_flow advisory warnings to external agents, blocks deploy_flow on hardcoded credentials, and emits a preview-limitations manifest from start_preview. All changes are live on build.finalpos.com and flow.finalpos.com with no client configuration needed.
What changed
On 2026-08-07 we shipped a set of improvements to the Final Flows MCP server, the Flow project, and the Cursor plugin — all live now on flow.finalpos.com. The changes fall into four areas.
1. TypeScript types ship with the scaffold baseline
Before: The first time you ran validate_flow or synced a new scaffold, you'd hit a wall of TS7016 / TS7026 errors because @types/react and @types/react-dom were missing from the preview scaffold's devDependencies. The tool looked broken before you'd written a single line.
After: @types/react, @types/react-dom, and typescript are now part of the scaffold baseline and kept in sync with the seed template automatically. First-time syncs are clean.
2. validate_flow now returns advisory warnings
validate_flow has been upgraded to v2. It now returns a warnings[] array that surfaces four existing guardrail checks — previously only visible inside the in-app fix loop — directly to your MCP client:
Client money math — flags flows that perform payment calculations client-side instead of on the server.
Hardcoded catalog data — catches product IDs, prices, or SKUs baked into the flow code rather than fetched from the catalog.
Missing `StationHomeButton` — warns when the station-home navigation anchor is absent.
Missing `data-test` attributes — flags components that can't be targeted by automated tests.
Tip/gratuity as cart fee — a new lint that catches the common mistake of adding a tip as a line-item cart fee instead of using the correct gratuity field.
validate_flow also now:
Reports
typechecker: okortypechecker: unavailableexplicitly, instead of returning a silently clean result when the type checker couldn't run.Stamps
pinnedCommandFrameVersionandcurrentVersionin the response so you can see immediately if your scaffold has drifted from the deployed command frame.
3. deploy_flow blocks on hardcoded credentials
If your flow source contains hardcoded secrets or credentials, deploy_flow now refuses to proceed and returns an actionable error. Because a built flow can be distributed to other organisations, a leaked credential is an irreversible harm — this check runs before any deployment attempt.
4. start_preview emits a preview-limitations manifest
The preview environment has always had constraints that weren't documented anywhere an external agent could read them. start_preview now emits a version-stamped manifest that lists exactly what the preview does and does not simulate:
Instant always-success tenders (no real payment processing)
Canned card totals
Cart appends that do not read back
Query filters that are ignored
The
?finoodle_mockdataset selector for switching mock datasets
This means your AI agent knows the preview's limits before it starts testing — not after it's confused by unexpected behaviour.
5. Rate budget disclosure in server instructions
The MCP server instructions now include per-key hourly rate budgets, interpolated directly from the enforcement constants. The prose and the enforcement can no longer drift apart.
Who benefits
These changes apply to every MCP client: Claude Code, Cursor, Gemini CLI, ChatGPT, and any other client connecting to the Final Flows MCP server. No configuration changes are needed on your end — the improvements are live in the server and scaffold baseline.
If you previously worked around the old behaviour with a custom skill or prompt file, you can simplify or remove those workarounds. The guardrails that required manual instruction are now built into the server.
