Skip to main content
Glama
praxisgaurdrails

Praxis Lite

Official

fs_write

Write UTF-8 text to a new file or append to an existing one, with an error on conflict to prevent data loss.

Instructions

Write UTF-8 bytes to a file.

Args: path: Destination file. content: The text to write. if_exists: One of "error" (default — refuse), "append" (add to end). Overwriting an existing file is a T2 op — use fs_overwrite.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
pathYes
contentYes
if_existsNoerror

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.2

TDQS

A4.6/5.0
Behavior4/5

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

With no annotations provided, the description carries the behavioral burden. It discloses important traits: UTF-8 encoding, default refusal on existing files, append behavior, and the write-vs-overwrite distinction. It omits minor details such as success/error shapes, but the output schema covers return values.

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 description is short and front-loaded with a one-line purpose before the parameter details. It is slightly less polished than ideal because of the inline formatting and the unexplained 'T2 op' phrase, but it has no filler.

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

Completeness4/5

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

For a three-parameter file-writing tool, this covers the essential call contract: destination, content, and existence behavior, plus the overwrite alternative. The lack of an example or explicit error conditions is a minor gap, and the output schema covers return values.

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

Parameters5/5

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

Schema coverage is 0%, and the description compensates fully: path is identified as the destination file, content as the text to write, and if_exists is explained with its default ('error' means refuse) and alternative ('append' means add to end). This is effectively the only source of parameter meaning.

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 opening line states a concrete verb and resource: 'Write UTF-8 bytes to a file.' It also distinguishes itself from the closest sibling by explicitly saying that overwriting an existing file is a T2 op and should be handled by fs_overwrite, so an agent can tell it apart without opening the 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?

The description gives explicit routing guidance: overwriting an existing file should go to fs_overwrite, not this tool. It also clarifies the two intended usage modes through if_exists: refuse by default or append. This is enough for an agent to decide when to select fs_write versus the overwrite alternative.

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