Skip to main content
Glama

write_project_files

DestructiveIdempotent

Create, update or delete files in a project (1–100 per call, each up to 1 MB; paths are relative, no ..). Other files are left as they are. Overwrites and deletes are applied to the working files immediately — confirm with the user, and use list_checkpoints/restore_checkpoint to undo. Pass version (from get_project) to refuse the write if anything changed since you read it. The published site does not change until you deploy again.

Input Schema

NameRequiredDescriptionDefault
idYesProject UUID
filesYesFiles to write
versionNoOptional: the project version you last read

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.7/5.0
Behavior5/5

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

Goes well past the destructiveHint=true annotation by spelling out what is actually destroyed (overwrites and deletes hit working files immediately), what is preserved (other files untouched), how to recover (checkpoints), the optimistic-concurrency behavior of `version`, and the fact that the published site is unaffected until redeploy. Each sentence adds context an agent cannot get from structured fields.

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?

Five tight sentences, front-loaded with the capability, then constraints, then the safety and recovery path, then the deploy caveat. No restatement of the tool name or filler; every clause carries operational information.

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 multi-file mutation with no output schema, the description covers limits, path rules, partial-application scope, reversibility, concurrency, and downstream deployment effects — everything needed to invoke it safely without reading other docs.

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 already 100%, so the baseline would be 3, but the description adds constraints absent from the schema: the 1 MB per-file cap, the ban on `..` in paths, and the refuse-if-changed semantics of `version`. It does not explain the `action` default or content-for-delete convention, which the schema already covers.

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?

Opens with a specific verb set and resource: 'Create, update or delete files in a project', plus concrete scope (1–100 files, 1 MB each, relative paths). This clearly separates it from read-side siblings like get_project_files and from deploy_project, which the description explicitly says is unaffected.

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?

Gives actionable routing: confirm with the user before applying overwrites/deletes, use list_checkpoints/restore_checkpoint to undo, and pass `version` from get_project to guard against concurrent changes. It stops short of explicitly naming a read alternative (e.g. 'use get_project_files to read'), so the contrast is implied rather than stated.

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.