Skip to main content
Glama

compare-pages

Read-onlyIdempotent

Compare two wiki page versions using revision IDs, titles, or wikitext to get a compact text diff, or detect changes without the full diff. Returns an error if a revision or title is missing; set includeDiff=false to skip rendering.

Instructions

Returns the changes between two versions of a wiki page as a compact text diff. Each side accepts a revision ID, page title (latest revision), or supplied wikitext; text-vs-text is rejected. Only the changes are returned over the wire. For the full text of both sides, fetch with get-page instead. If a title or revision ID does not exist, an error is returned. Set includeDiff=false for a cheap change-detection response that skips diff rendering and returns just the change flag, revision metadata, and size delta. Diff output is truncated at 75000 bytes by default, with a marker reporting how much of it was returned; a narrower revision range or includeDiff=false avoids truncation.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
wikiNoWiki to target, as a key from the mcp://wikis/ resources (e.g. en.wikipedia.org), or the full mcp://wikis/ URI. Omit to use the default wiki.
toTextNoSupplied wikitext for the "to" side
toTitleNoWiki page title for the "to" side (latest revision is used)
fromTextNoSupplied wikitext for the "from" side
fromTitleNoWiki page title for the "from" side (latest revision is used)
toRevisionNoRevision ID for the "to" side
includeDiffNoInclude the diff body (default true). Set false for a cheap change-detection response.
fromRevisionNoRevision ID for the "from" side

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changedv0.15.0
    • changedInput schema / $schema
      Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
  2. Changed1 schema field changedv0.10.0
    • addedInput schema / properties / wiki
      Added value: +{
      +  "description": "Wiki to target, as a key from the mcp://wikis/ resources (e.g. en.wikipedia.org), or the full mcp://wikis/ URI. Omit to use the default wiki.",
      +  "type": "string"
      +}
  3. Addedv1.0.2

TDQS

A4.9/5.0
Behavior5/5

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

Beyond the readOnly/idempotent/non-destructive annotations, the description discloses concrete behavioral details: diff output truncates at 75,000 bytes with a completion marker, nonexistent titles/revision IDs produce errors, and includeDiff=false changes the response to just a change flag, revision metadata, and size delta. These details are not present in annotations and materially affect how an agent should call the tool.

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?

Four dense sentences, each carrying a distinct piece of information: core result, side types and constraints, alternative, and truncation/mode behavior. The most important information is front-loaded and there is no filler.

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?

The tool has 8 parameters, no output schema, and no required fields, yet the description covers accepted input forms, invalid combinations, error behavior, response size limits, and the alternative response mode. It also points to get-page for full text, making the description sufficient for correct invocation even without an output schema.

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?

With 100% schema coverage, the schema already documents each parameter, so the baseline is 3. The description adds combinatorial semantics by explaining that each side can be specified as revision ID, page title, or wikitext but text-vs-text is invalid, and clarifies the behavioral impact of includeDiff=false. This elevates it above schema-only documentation.

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 opening sentence names the exact operation (returns changes between two versions) and resource (wiki page), and qualifies it as a 'compact text diff'. It also distinguishes itself from get-page by noting that only changes are transmitted, so an agent can select it over the full-text sibling.

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 explicitly routes agents needing full text to get-page instead, and outlines when to switch includeDiff=false for a cheap change-detection request. It also states an important exclusion (text-vs-text is rejected) and gives guidance on avoiding truncation via a narrower revision range or includeDiff=false.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.