Skip to main content
Glama

Final POS – Custom POS Builder

Validate a flow against the platform contract

flow_validate_flow
Read-only

Deterministic STATIC checks against the platform contract: (1) guardrails — fabricated renderClient methods, forbidden browser APIs/imports, engine-file writes; (2) a REAL TypeScript check of command-frame usage against the PINNED .d.ts the app installs (the version is stamped in the result) — this proves TYPES, never runtime behaviour and never device parity; (3) a hardcoded-credentials scan; (4) flowTypeErrors — a whole-tree tsc against REAL react types, which catches what (2) cannot see (e.g. a useEffect cleanup that returns a value, a hard TS2345 the builder's in-chat gate will report to whoever opens this flow); plus advisory warnings (client money math, hardcoded catalog data, missing station-home/data-test, tip-as-cart-fee) that don't affect clean but each predict a real on-device failure. secretFindings BLOCK deploy_flow; everything else is advisory. Run it after each write batch, before start_preview.

Input Schema

NameRequiredDescriptionDefault
flowIdYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, openWorldHint=false, destructiveHint=false, so the safety profile is covered. The description goes well beyond that: it clarifies the checks are deterministic/static, that the TS check proves types but never runtime behavior or device parity, that a version is stamped in the result, and which findings block deploy vs. remain advisory.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core claim ('Deterministic STATIC checks against the platform contract') then enumerates the checks in order. The content is dense and warranted by the tool's complexity, though the single run-on sentence with nested parentheticals hurts readability.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema, so the description must explain returns, and it does: it names flowTypeErrors, warnings, secretFindings, and the stamped .d.ts version, and explains what each means for the agent's next action. Nothing needed to interpret the result is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% for the single required parameter flowId, and the description never mentions the parameter or what value it expects. Though flowId is inferable from the tool name, the description adds no semantic meaning beyond the obvious, so it fails to compensate for the coverage gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ('Validate a flow') and immediately enumerates the exact checks performed (guardrails, real tsc against pinned .d.ts, credential scan, whole-tree type check, advisory warnings). This is unmistakably distinct from siblings like flow_deploy_flow or flow_start_preview.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives explicit workflow timing ('Run it after each write batch, before start_preview') and a routing rule tied to a sibling ('secretFindings BLOCK deploy_flow; everything else is advisory'). The agent knows both when to call it and how its result gates another tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.