Skip to main content
Glama

Update a dochost page

update_page
Destructive

Replace the content of one of your pages in place. The URL, view/like counts, and expiry stay the same; only the body, format, and title change. Resending identical content is a no-op. Prefer this over publishing again whenever the user is revising something you already published for them — a second publish creates a second link and strands the one they already shared. This replaces the WHOLE body, so unless you wrote the live content yourself in this conversation, call get_page_content first and pass its version/sha256 back as ifVersion/ifSha — the write is then refused with the current version instead of overwriting an edit you never saw.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
bodyYes
slugYes
ifShaNoWrite only if the live body still hashes to this (from get_page_content).
titleNo
formatNo
ifVersionNoWrite only if the page is still at this version (from get_page_content). Omit and the write always wins.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
okYes
slugYes
titleNo
formatNo
versionNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • addedInput schema / properties / ifSha
      Added value: +{
      +  "description": "Write only if the live body still hashes to this (from get_page_content).",
      +  "type": "string"
      +}
    • addedInput schema / properties / ifVersion
      Added value: +{
      +  "description": "Write only if the page is still at this version (from get_page_content). Omit and the write always wins.",
      +  "minimum": 1,
      +  "type": "integer"
      +}
  2. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "properties": {
      +    "format": {
      +      "enum": [
      +        "markdown",
      +        "html"
      +      ],
      +      "type": "string"
      +    },
      +    "ok": {
      +      "type": "boolean"
      +    },
      +    "slug": {
      +      "type": "string"
      +    },
      +    "title": {
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "version": {
      +      "type": "integer"
      +    }
      +  },
      +  "required": [
      +    "ok",
      +    "slug"
      +  ],
      +  "type": "object"
      +}
  3. First observed

TDQS

A4.9/5.0
Behavior5/5

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

The annotations already mark this as destructive and read-write, and the description builds on that by stating exactly what changes (body, format, title) and what stays the same (URL, counts, expiry). It also discloses the no-op behavior and the overwrite-protection semantics of ifVersion/ifSha, which goes well beyond the structured fields.

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?

The description is longer than average but every sentence earns its place: it front-loads the core action, then covers side-effect preservation, no-op behavior, selection over publish, and the overwrite warning. There is no filler or repetition of schema fields.

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 destructive write operation with six parameters and no reference documentation, this description provides all necessary context: when to use it, what it changes, what it preserves, and how to avoid clobbering unseen edits. The presence of an output schema means return-value details do not need to be repeated.

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?

Schema description coverage is only 33%, so the description must compensate. It does for the riskiest parameters by explaining ifVersion/ifSha as conditional overwrite guards and warning that body replacement is whole-page. It adds less detail for slug, title, and format, though those are largely inferable from the schema and the tool's purpose.

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 opens with a precise verb and resource: 'Replace the content of one of your pages in place.' It clearly distinguishes this tool from the sibling 'publish' by explaining that this edits an existing page rather than creating a second link, so an agent can instantly tell them apart.

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?

The description explicitly says to prefer this over publishing when revising already-published content, and explains why publishing again is worse. It also gives a concrete precondition: call get_page_content first and pass back the version/sha256 unless the agent wrote the live content itself.

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.