Skip to main content
Glama

Final POS – Custom POS Builder

Write files into a flow

flow_write_flow_files
Destructive

Create or overwrite files in a flow's tree (full contents, not diffs). Engine-owned paths are rejected — see get_scaffold. Every write lands as a restorable checkpoint and is narrated in the builder chat. If a live preview is running, follow up with start_preview to sync it. Validate with validate_flow before deploying. If a call returns an error the files may STILL have landed (and a very large payload can truncate mid-file) — re-read with read_flow_files before retrying, never blind-retry. Because writes replace whole files, keep files small and single-purpose so an edit can't clobber unrelated working code.

Input Schema

NameRequiredDescriptionDefault
noteNoOne-line summary of the change, shown in the builder chat.
agentNo
filesYes
flowIdYes

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 flag destructiveHint=true and readOnlyHint=false, but the description adds substantial context beyond them: writes land as restorable checkpoints, are narrated in the builder chat, and carry non-obvious failure semantics (files may still have landed on error, large payloads can truncate mid-file). It also discloses the whole-file replacement model and the engine-owned path restriction.

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 purpose and then layered with behavior; nearly every sentence carries operational value rather than filler. It is dense and fairly long, but the density is justified for a destructive write tool with tricky error semantics.

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 a destructive mutation tool with no output schema, the description covers everything an agent needs: mutation semantics, checkpoint/rollback behavior, engine-owned path rejection, preview-sync follow-up, validation step, error-recovery guidance, and safe file-sizing advice. Only the per-parameter docs are thin, which the schema partially covers.

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?

Schema description coverage is only 25% (just the 'note' field), so the description is expected to compensate. It clarifies the semantics of the files payload (full contents, whole-file replacement, keep files small, engine-owned paths rejected) and indirectly explains 'note' via chat narration, but it never addresses the 'agent' or 'flowId' parameters, leaving part of the coverage gap unfilled.

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 ('Create or overwrite files in a flow's tree') and immediately scopes it ('full contents, not diffs'), which separates it from a diff/patch tool. It also names related siblings (get_scaffold, read_flow_files, validate_flow, start_preview), so an agent can place it in the workflow without opening any schema.

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 when/when-not and follow-up routing: engine-owned paths are rejected and redirected to get_scaffold, validation should happen via validate_flow before deploying, and a live preview requires a follow-up start_preview call. It even prescribes the correct recovery path (re-read with read_flow_files, never blind-retry), which is unusually actionable.

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.