Skip to main content
Glama

Final POS – Custom POS Builder

List the org's custom data tables

flow_list_custom_tables
Read-only

List your organization's custom data tables with their column schemas. Custom tables are Final's built-in, station-syncing database — data written on one station is automatically synced to every other station running the flow, and keeps working OFFLINE at the point of sale. They are the ONLY sanctioned persistence for generated apps (browser storage is per-device, never syncs, and is wiped on real Render terminals — validate_flow rejects it). Call this before create_custom_table to reuse an existing table instead of duplicating one. For NEW functionality, check search_blueprints before designing tables — a vetted blueprint may already provide the feature, and a selfPersisting blueprint's tables may NOT appear in this list (often extension-owned, resolved by name at runtime): their absence is never a reason to create lookalikes. Generated code reads/writes rows at runtime via renderClient.getCustomTableData / upsertCustomTableData (ground with lookup_command_frame).

Input Schema

NameRequiredDescriptionDefault
hubTokenNoOrganization JWT fallback, only if the hub rejects your API key for this route.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, yet the description still adds meaningful behavioral context: tables sync across stations and work OFFLINE, they are the only sanctioned persistence (browser storage is rejected by validate_flow), and some blueprint-owned tables are invisible here. It does not disclose result size, pagination, or ordering, which keeps it short of a 5 for a listing endpoint.

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 action, then layered caveats in descending priority. The sentences each carry information, though the domain primer on what custom tables are and the closing renderClient API note are somewhat tangential to a pure listing call, making it longer than strictly necessary.

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?

No output schema exists, and the description compensates by stating what is returned ('tables with their column schemas') plus the important caveat that the list can be incomplete for selfPersisting blueprints. Combined with annotations covering the safety profile and full schema coverage on the one parameter, an agent has everything needed to call this correctly.

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

Parameters3/5

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

There is a single optional parameter (hubToken) with 100% schema description coverage, so the schema already explains it fully. The description adds no parameter-level detail, which is the expected baseline of 3 when the schema does the heavy lifting and the parameter is a fallback auth token.

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 first sentence gives a precise verb+resource+payload: 'List your organization's custom data tables with their column schemas.' It is clearly distinguishable from siblings flow_create_custom_table, flow_update_custom_table, and flow_list_extension_custom_tables, which the description implicitly scopes away from by talking about org-owned tables.

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?

It states exactly when to call it ('Call this before create_custom_table to reuse an existing table instead of duplicating one') and routes to alternatives for adjacent needs (search_blueprints for new functionality, lookup_command_frame for runtime data access). It even covers the when-not case: a selfPersisting blueprint's tables may be absent, and 'their absence is never a reason to create lookalikes.'

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.