Skip to main content
Glama

Save a template

save_template
DestructiveIdempotent

Save a form for later, only when the person asks to keep one: without template_id a new template with name and content; with template_id and the revision of your get_template, a change of that one, only what you send (name, content or both). A name another template has answers name_taken with details.template_id: choose another name, or change that template. stale_revision: it changed since your read, read it again. lossy_markdown: Markdown would drop the template's formatting; send {"document": …}. limit_reached: the workspace holds 100. Can add notes changes only the templates this connection saved; Can edit and organize, any. Templates are deleted only by the person. Answers a receipt with the template's id (entity_id), revision and url; the same operation_id answers it again and never saves twice.

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": {
      "operation_id": "<operation_id>"
    },
    "name": "save_template"
  }
}

Input Schema

NameRequiredDescriptionDefault
nameNo1–80 characters. A new template needs it; a change sends it to rename.
contentNoThe form, as create_note takes content: Markdown, {"text": …} or {"document": …}. No images or files, and checklist items unticked (- [ ]). A new template needs it; a change sends it to change the form.
revisionNoWith template_id: the revision get_template answered.
template_idNoTo change a template: its id. Omit it to save a new one.
operation_idYesA new UUID for each write. After a lost answer, send the identical call with the same one, or check get_operation before writing again.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A4.4/5.0
Behavior4/5

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

Annotations declare destructiveHint=true and idempotentHint=true, and the description earns its keep by adding permission scope ('Can add notes changes only the templates this connection saved; Can edit and organize, any'), the 100-template workspace ceiling, and the fact that templates are only deleted by the person. The only thin spot is that 'only what you send' does not fully clarify whether a content update replaces or merges the existing form, which matters given the destructive hint.

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?

Purpose and mode split are front-loaded, and every clause carries information — error codes, permissions, idempotency — with no filler. It is written in a telegraphic, clause-chained style that takes a careful read, but nothing is redundant.

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 five-parameter write tool with no output schema, the description covers what is returned (a receipt with entity_id, revision and url), the idempotency contract, permission boundaries, the workspace limit, and each error code's remedy. An agent has everything needed to call it correctly and recover from failure.

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%, so the schema already documents name, content, revision, template_id and operation_id, and the description largely restates those roles (template_id selects change vs create, revision comes from get_template). It adds marginal value by tying revision to the get_template answer and operation_id to get_operation, but nothing the schema does not already carry.

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 first sentence names the verb and resource ('Save a form for later') and immediately splits the two modes: without template_id a new template, with template_id plus revision a change to that one. That distinction lets an agent separate this from get_template and list_templates without opening any 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?

It states the gating condition ('only when the person asks to keep one') and gives explicit branches for each failure: name_taken means pick another name or change that template, stale_revision means re-read via get_template, lossy_markdown means resend as {"document": …}. It also names get_operation as the recovery path after a lost answer, so alternatives are identified rather than left to inference.

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.