Skip to main content
Glama

list_document_revisions

Read-only

Lists a document's kept revisions — title, length, date, author, writerKind — without the content (see get_document_revision). writerKind says WHO WROTE the rewrite that triggered the snapshot: human (typed by a person in the interface) or agent (the chat or an MCP client, under the identity of the person who launched it); null = a revision kept before this field existed. A revision is a snapshot taken before a rewrite (coalesced if the same author, through the same kind of writer, rewrites within 10 minutes; a change of writer, human then agent or the reverse, does create one): a document never rewritten, or rewritten only by the same author and writer within that window, may have no revision. Sorted from most recent to oldest; the list is never truncated. ⚠️ A kind: "html" document has NO history at all — the call is REFUSED by naming it, rather than returned as an empty list that would be mistaken for "never rewritten".

Input Schema

NameRequiredDescriptionDefault
documentIdYesDocument identifier, obtained via list_documents.
expectedProjectIdNoUUID of the project targeted by THIS call. ACTUALLY targets this project instead of the session project. Refused without changing anything if access is not granted.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • changedInput schema / properties / documentId / description
      Previous value: -"Identifiant du document, obtenu via list_documents."New value: +"Document identifier, obtained via list_documents."
    • changedInput schema / properties / expectedProjectId / description
      Previous value: -"UUID du projet visé par CET appel. Cible RÉELLEMENT ce projet au lieu du projet de session. Refusé sans rien modifier si l'accès n'est pas accordé."New value: +"UUID of the project targeted by THIS call. ACTUALLY targets this project instead of the session project. Refused without changing anything if access is not granted."
  2. First observed

TDQS

A4.2/5.0
Behavior4/5

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

It goes well beyond the annotations, which only declare readOnlyHint and openWorldHint: it discloses sort order (most recent to oldest), that the list is never truncated (no pagination to handle), the 10-minute coalescing rule that determines whether a revision exists at all, the meaning of `null` writerKind, and the html refusal. The only missing behavioral note is what the refusal looks like as an error versus an empty result for edge cases beyond html.

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?

It is front-loaded with the core purpose and returned fields, and the ⚠️ warning about html documents is placed last where it is most visible. The coalescing parenthetical is dense and takes effort to parse, but it carries genuinely load-bearing information about when a revision exists, so it earns its place.

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?

There is no output schema, so the description carries the burden of describing return values, and it does: field list, ordering, absence of truncation, and the writerKind enumeration including the null case. Combined with the refusal behavior for html documents, an agent has everything needed to call this and interpret the result correctly.

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 `documentId` and `expectedProjectId` are already documented in the schema, and the description adds no further meaning about either parameter. The mentions of `kind: "html"` and `writerKind` refer to document/return data, not to the input parameters, so the baseline of 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?

The description states a specific verb and resource ('Lists a document's kept revisions') and immediately enumerates the returned fields (title, length, date, author, writerKind) while distinguishing itself from get_document_revision, which returns content. An agent can separate this tool from its closest sibling without opening either 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?

It explicitly routes content retrieval to get_document_revision and gives a hard when-not: a `kind: "html"` document has no history and the call is refused rather than returning an empty list. What it does not state is the positive trigger (e.g. inspecting history before restore_document_revision), so the guidance is clear on scope and exclusions but not framed as a task-level recommendation.

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.