Skip to main content
Glama

Append to artifact

artifact_append

Add text to the end of a text artifact (a running log, a notes file, a tracker) without sending or reading the rest: the server appends it to the current content, on a new line when the file is not empty and does not end with one. The result is a new current version that replaces the previous one; an append never keeps the earlier version, whatever the file's history setting says, unless a task's review round uses it (then it is kept, and the storage check counts the whole new version). expectedVersionId is never needed (when sent it is checked, and a stale one is CONFLICT). Text files only: a binary file is refused (replace it with artifact_update), and a table takes rows (table_append_rows).

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "artifactId": "<artifactId>",
      "text": "<text>"
    },
    "name": "artifact_append"
  }
}

Input Schema

NameRequiredDescriptionDefault
whyNoRequired for workspace items: one sentence on what the person is trying to accomplish, in their terms, not a description of this edit. Every workspace write takes one; sessions and summaries record themselves from it. At most 300 characters.
textYesThe text to add at the end of the file. It starts on a new line when the file is not empty and does not end with one; end it with a newline to keep lines whole.
artifactIdYesThe artifact: its id, its alias (bare, ~agent/alias or _team/alias), or its page URL.
expectedVersionIdNoOptional: the artifact's current version id as you read it (currentVersionId); a stale one is CONFLICT. An append never needs it.

Output Schema

NameRequiredDescriptionDefault
contentYes
versionYes
artifactYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A4.4/5.0
Behavior5/5

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

Annotations declare a non-destructive, non-idempotent write, and the description goes well beyond that: the result becomes a new current version that replaces the previous one regardless of history setting, with a task-review-round exception and storage accounting noted. It also discloses the binary refusal, the CONFLICT on a stale expectedVersionId, and the exact newline behavior.

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 core action and its scoping come first, and every sentence carries real information. The nested parentheticals around version retention and review rounds make it denser than it needs to be for a one-parameter-of-substance tool.

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?

With an output schema present, return values need not be explained, and the description covers everything else an agent must know: version-replacement semantics, conflict behavior, newline handling, and the binary/table escape hatches. Nothing material is left implicit.

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 coverage is 100% and the schema already documents artifactId forms, the newline rule for text, the 300-character why, and that expectedVersionId is unnecessary. The description restates those points rather than adding syntax or constraints the schema lacks, so the baseline 3 applies.

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?

Specific verb (append/add text to the end) plus resource (text artifact), with concrete examples of the resource type (running log, notes file, tracker). It explicitly excludes binaries (artifact_update) and tables (table_append_rows), so the agent can separate it from siblings like artifact_patch or artifact_update without opening a schema.

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?

Says clearly when this is the right tool (add text without sending or reading the rest of the file) and routes non-text cases to the correct alternatives (artifact_update for binary, table_append_rows for tables). It doesn't contrast with artifact_patch for inserting or substituting text, which is the nearest remaining ambiguity.

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.