Skip to main content
Glama

Final POS – Custom POS Builder

Get the app scaffold contract

flow_get_scaffold
Read-only

The contract every Final flow app is built against: which files the ENGINE owns (never write them — they are re-asserted verbatim), the baseline package.json (Vite + React 19 + TS + Tailwind + command-frame), the rules your files must follow, and the runtime contracts that compile and preview fine but fail on a real device (money in minor units, the first-load handshake, getX response unwrapping, tender success semantics). Call this once before writing any files; pass device for layout guidance.

Input Schema

NameRequiredDescriptionDefault
deviceNoTarget surface — "portrait-handheld", "counter-tablet", "wall-kiosk" or "tv-display". Approximate words work ("kiosk", "phone", "menu board"); an unrecognized value just returns the device-agnostic contract.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.6/5.0
Behavior5/5

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

Annotations already declare readOnlyHint/openWorldHint=false/destructiveHint=false, and the description goes well beyond them: it warns that engine-owned files are re-asserted verbatim (never write them), and that certain runtime contracts compile and preview fine but fail on a real device, naming concrete traps (money in minor units, first-load handshake, getX unwrapping, tender semantics). That is unusually rich behavioral context.

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?

The core purpose is front-loaded in the first clause, followed by a dense but informative enumeration, then the imperative call-to-action. It is long but every clause carries distinct information; the packed runtime-contract list is the only mild density cost.

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?

With no output schema, the description carries the burden of describing the return and does so thoroughly (engine-owned files, baseline package.json contents, file rules, runtime contracts), while annotations already cover the safety profile. Nothing needed to call it correctly is missing.

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

Parameters4/5

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

Schema description coverage is 100% and the schema already lists the accepted device values plus the fallback behavior for unrecognized input. The description adds the param's intent ('for layout guidance'), which the schema does not state, so it contributes a little beyond the structured field.

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?

The description states a specific verb+resource (retrieve the scaffold contract every Final flow app is built against) and then enumerates the contract's contents, so an agent knows exactly what it gets. It is clearly distinguishable from siblings like flow_get_blueprint or flow_lookup_engine_component, which serve different lookup purposes.

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

Usage Guidelines4/5

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

It gives explicit timing ('Call this once before writing any files') and a conditional ('pass `device` for layout guidance'), which is strong usage direction. It stops short of naming alternatives or stating when not to call it, so it is not a full 5.

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.