Skip to main content
Glama

Final POS – Custom POS Builder

Ask the human to store a secret

flow_request_secret

Ask the flow's owner to enter a third-party credential (API key, auth token, webhook secret) into Final's encrypted vault. THIS TOOL TAKES NO VALUE and no tool ever returns one — the human types it into a masked input in the Miami builder, and it goes straight into the vault. Why: flow builds are DISTRIBUTABLE to other companies, so a credential must never be baked into the code (validate_flow and deploy_flow scan for and block hardcoded secrets). Your generated code reads it at RUNTIME with renderClient.getSecretVal({ key }) and must degrade gracefully while the key isn't stored yet (disable the integration + tell the user to configure it — never crash). After calling this: tell YOUR user to open the builder link and enter the value, and poll list_secret_keys to detect when it lands.

Input Schema

NameRequiredDescriptionDefault
keyYesKebab-case vault key the code will read, e.g. 'twilio-auth-token'.
agentNo
labelYesHuman label shown in the builder, e.g. 'Twilio Auth Token'.
flowIdYes
reasonYesWhy the app needs this credential.
docsUrlNoWhere the user can find/generate the credential.
hubTokenNoOrganization JWT fallback, only if the hub rejects your API key for this route.
providerNoThe third-party service, e.g. 'Twilio'.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.8/5.0
Behavior5/5

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

Annotations declare only non-readonly, non-destructive, closed-world. The description goes far beyond that: it takes no secret value, no tool ever returns one, the human types into a masked builder input, the value lands in an encrypted vault, and the code must degrade gracefully until the key exists. That is exactly the operational context annotations cannot carry.

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 justified with the why, the runtime contract, and the post-call steps; nearly every sentence carries new information. It runs long and leans on caps-lock emphasis and a dense final sentence, which costs it the top mark.

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?

For an 8-parameter, no-output-schema tool, the description covers the full lifecycle: why the call is needed, that no value flows through the tool, how generated code consumes the key, the degradation requirement, and the required follow-up (notify the user, poll list_secret_keys). Nothing an agent needs to invoke 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 coverage is 75%, so most parameters are self-documented; the description still adds real meaning by tying 'key' to runtime consumption via renderClient.getSecretVal({ key }) and by implying the credential is never passed in. It does not explain hubToken, agent, docsUrl or provider beyond their schema text, which is the only 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 actor, action and resource: it asks the flow's owner to enter a third-party credential into Final's encrypted vault. It also implicitly separates itself from flow_list_secret_keys, which it names only as a polling detector, so an agent can tell the requesting tool from the reading tool.

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?

The description supplies when to use it (a credential is needed and must not be hardcoded), why not to inline it (builds are distributable and validate_flow/deploy_flow block hardcoded secrets), and what to do afterwards (tell your user to open the builder link and poll list_secret_keys). Alternatives and follow-up actions are explicit rather than inferred.

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.