Skip to main content
Glama

Write workspace file (approval required)

filesystem.write_file
Destructive

Creates a pending approval request for writing a UTF-8 text file; the write executes only after an administrator approves the stored snapshot.

Instructions

Create a PENDING approval request for writing a UTF-8 text file.

The write happens only after a trusted administrator approves the request out-of-band and filesystem.write_file_approved executes the stored snapshot.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
pathYes
contentYes
expected_hashNo
create_parentsNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
pathYes
errorNo
createdNo
messageNo
outcomeYes
approvalNo
executedYes
new_hashNo
trace_idYes
request_idNo
bytes_writtenNo
previous_hashNo
approval_statusNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.4/5.0
Behavior5/5

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

Annotations only convey destructiveHint=true and readOnlyHint=false; the description adds the crucial behavioral facts the annotations cannot: the operation is deferred, produces a pending request, requires out-of-band admin approval, and is enacted by a separate tool. That is well beyond the structured safety hints and materially changes how an agent should reason about the call.

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?

Two sentences, front-loaded with the key fact that this creates a pending request rather than writing immediately. No filler, though the second sentence's clause structure could be tightened slightly.

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 deferred-mutation tool the approval workflow is fully explained, and an output schema exists so return values need not be described. The remaining shortfall is the undocumented parameter semantics (expected_hash, create_parents), which leaves an agent guessing about concurrency and directory creation behavior.

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

Parameters2/5

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

Schema description coverage is 0% and there are four parameters, yet the description never explains expected_hash (likely an optimistic-concurrency guard) or create_parents, and it does not clarify path scoping or content encoding beyond 'UTF-8'. With the schema carrying no parameter documentation, the description fails to compensate for the 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 verb and effect ('Create a PENDING approval request for writing a UTF-8 text file'), naming the exact artifact produced rather than just 'write a file'. It also names the sibling filesystem.write_file_approved, so an agent can distinguish this deferred-approval tool from the one that actually executes the write.

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?

Explicitly states the condition under which the write occurs ('only after a trusted administrator approves the request out-of-band and filesystem.write_file_approved executes the stored snapshot'), which tells the agent this call is a request, not a completed write. It routes the agent to the correct follow-up tool rather than leaving the workflow to inference.

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