Skip to main content
Glama

Show a document's history

tp_document_versions
Read-onlyIdempotent

Returns a document's history: its earlier texts, kept as revisions each time tp_update_document replaces the text (the ten most recent, newest first), and any documents linked to it as versions through tp_save_document's replaces (oldest first). Use it when the user asks what changed in a document, what it said before, or for an earlier draft. Pass a revision id as revision to get that earlier text as Markdown.

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": {
      "id": "<id>"
    },
    "name": "tp_document_versions"
  }
}

Input Schema

NameRequiredDescriptionDefault
idYesDocument id. Any document in a version chain can be used.
revisionNoA revision id from this tool's list, to return that earlier text as Markdown.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already cover safety (readOnly, idempotent, non-destructive, closed-world), and the description adds real behavior: a cap of ten revisions, newest-first ordering for revisions versus oldest-first for linked versions, and Markdown output when a `revision` is supplied. It stops short of describing what metadata each history entry carries (author, timestamp), which matters since there is no output schema.

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?

Three sentences, each carrying distinct information: what is returned, when to call it, and how to drill into a specific revision. Front-loaded with the return contents so the agent knows the payoff immediately.

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 no output schema, the description does the necessary work of explaining that two separate collections come back with opposite sort orders and a size limit. A brief note on entry shape (e.g., revision ids plus timestamps) would close the remaining gap, but an agent can call this correctly as written.

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 both parameters are already documented, and the description largely restates them ('pass a revision id as `revision`'; 'any document in a version chain'). The only value added is implicit sequencing — that the revision id comes from this tool's own list — which the schema also states.

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 resource ('Returns a document's history') and then enumerates exactly what that history consists of: prior texts kept as revisions, plus documents linked via `replaces`. This clearly separates it from tp_get_document, which would return current content.

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?

Gives concrete trigger conditions ('when the user asks what changed in a document, what it said before, or for an earlier draft') and explains the two-step retrieval pattern: list first, then pass a `revision` id to fetch that earlier text. It also traces where the history comes from (tp_update_document, tp_save_document's `replaces`), orienting the agent in the sibling set.

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.