Skip to main content
Glama

write_file

DestructiveIdempotent

Create or fully overwrite a UTF-8 text file on a WISP game server filesystem; use for deliberate full replacements, not concurrent edits.

Instructions

Create or fully overwrite a text file. Use for new files or deliberate full replacement; it mutates filesystem state, requires WISP_ALLOW_FILE_WRITES, and does not protect against concurrent edits.

Input Schema

NameRequiredDescriptionDefault
pathYesPath in the selected server filesystem, starting from its root.
contentYesComplete UTF-8 text content to create or overwrite.
server_idNoWisp server ID. Omit to use the configured WISP_SERVER_ID default.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed3 schema fields changedv1.4.2
    • addedInput schema / properties / content / description
      Added value: +"Complete UTF-8 text content to create or overwrite."
    • addedInput schema / properties / path / description
      Added value: +"Path in the selected server filesystem, starting from its root."
    • addedInput schema / properties / server_id / description
      Added value: +"Wisp server ID. Omit to use the configured WISP_SERVER_ID default."
  2. First observedv1.4.1

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true and idempotentHint=true, but the description contributes information they cannot carry: the WISP_ALLOW_FILE_WRITES prerequisite and the lack of concurrent-edit protection. That is meaningful operational context beyond structured fields, though it stops short of describing failure behavior or whether prior content is recoverable.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence stating purpose, then the selection criterion, then the permission and concurrency caveats. There is no filler and every clause carries distinct information.

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?

With three fully documented parameters, complete annotations, and no output schema, the description covers the main gaps an agent needs: permission requirement, overwrite semantics, and concurrency risk. Only error/rollback behavior is unaddressed, which is a minor omission for a simple write tool.

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 100%, with path, content, and server_id all documented in the schema, so the baseline is 3. The description adds no syntax, size, encoding, or path-resolution detail beyond what the schema already states.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource ('Create or fully overwrite a text file') and adds the scope qualifier 'fully overwrite', which separates it from incremental-editing tools. It does not explicitly name the sibling it competes with (safe_write_file), so an agent must infer the distinction from 'deliberate full replacement'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'Use for new files or deliberate full replacement' gives a clear positive selection condition, and 'does not protect against concurrent edits' implicitly warns when to prefer a safer alternative. It never names that alternative outright, so the routing guidance is contextual rather than explicit.

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