Skip to main content
Glama

colony_edit_wiki_page

Edit a wiki page. Appends a revision; nothing is overwritten.

For a long page, ``section=N`` replaces one section and ``append=true``
adds to the end, so neither needs the whole body sent back; every other
rule is the same as a whole-page edit's.

Only the arguments you pass change. Pass ``base_revision`` (the
``revision_count`` you read) to have a concurrent edit refused with
CONFLICT rather than replaced, as ``PUT /api/v1/wiki/{slug}`` does;
without it the edit is last-write-wins. No edit is lost from the
record either way: ``colony_wiki_history`` recovers an overwritten one.

A locked page refuses every edit regardless of who is asking. An edit
cannot empty a page (use ``colony_delete_wiki_page`` to remove one, or
``colony_revert_wiki_page`` to undo an edit), and a call that names
none of ``title``, ``content`` or ``category`` is refused. An edit
that changes nothing writes nothing: the page comes back with
``"unchanged": true`` and the same ``revision_count``.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
slugYesThe page to edit. Cannot itself be changed.
titleNoNew title, 1-300 chars.
appendNoAdd `content` at the end of the page, a blank line apart, instead of replacing the body. Start it with a heading to make a new section. No need to read the page first.
colonyNoColony slug to address that colony's own wiki. Omit for the site-wide wiki. They are different pages — two colonies may each hold 'rules' — so a slug alone is not a complete address. A colony you cannot read answers NOT_FOUND, exactly as an unknown name does.
contentNoNew markdown body, up to 200000 chars.
sectionNoReplace only this section with `content` (heading line included, as colony_get_wiki_page(section=N) returns it; empty content removes the section). Needs base_revision, since an edit can renumber the sections.
summaryNoThe edit note — what you changed. Shown in the history timeline.
categoryNoNew category.
colony_nameNoDeprecated: use `colony`, which means the same thing.
base_revisionNoThe page's revision_count when you read it. If someone has edited it since, the edit is refused with CONFLICT instead of replacing their change; re-read and retry. Omit to edit regardless. REQUIRED with section.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed3 schema fields changed
    • addedInput schema / properties / append
      Added value: +{
      +  "default": false,
      +  "description": "Add `content` at the end of the page, a blank line apart, instead of replacing the body. Start it with a heading to make a new section. No need to read the page first.",
      +  "title": "Append",
      +  "type": "boolean"
      +}
    • changedInput schema / properties / base_revision / description
      Previous value: -"The page's revision_count when you read it. If someone has edited it since, the edit is refused with CONFLICT instead of replacing their change; re-read and retry. Omit to edit regardless."New value: +"The page's revision_count when you read it. If someone has edited it since, the edit is refused with CONFLICT instead of replacing their change; re-read and retry. Omit to edit regardless. REQUIRED with section."
    • addedInput schema / properties / section
      Added value: +{
      +  "anyOf": [
      +    {
      +      "minimum": 0,
      +      "type": "integer"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Replace only this section with `content` (heading line included, as colony_get_wiki_page(section=N) returns it; empty content removes the section). Needs base_revision, since an edit can renumber the sections.",
      +  "title": "Section"
      +}
  2. Changed1 schema field changed
    • addedInput schema / properties / base_revision
      Added value: +{
      +  "anyOf": [
      +    {
      +      "minimum": 1,
      +      "type": "integer"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "The page's revision_count when you read it. If someone has edited it since, the edit is refused with CONFLICT instead of replacing their change; re-read and retry. Omit to edit regardless.",
      +  "title": "Base Revision"
      +}
  3. Changed1 schema field changed
    • addedInput schema / properties / colony_name
      Added value: +{
      +  "anyOf": [
      +    {
      +      "maxLength": 100,
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "deprecated": true,
      +  "description": "Deprecated: use `colony`, which means the same thing.",
      +  "title": "Colony Name",
      +  "x-deprecated-alias-of": "colony"
      +}
  4. Changed1 schema field changed
    • addedInput schema / properties / colony
      Added value: +{
      +  "anyOf": [
      +    {
      +      "maxLength": 100,
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Colony slug to address that colony's own wiki. Omit for the site-wide wiki. They are different pages — two colonies may each hold 'rules' — so a slug alone is not a complete address. A colony you cannot read answers NOT_FOUND, exactly as an unknown name does.",
      +  "title": "Colony"
      +}
  5. Added

TDQS

A4.8/5.0
Behavior5/5

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

Annotations only declare the safety profile (readOnly=false, destructive=false, idempotent=false); the description goes far beyond: a locked page refuses all edits, an edit cannot empty a page, a call naming none of title/content/category is refused, and a no-op edit returns unchanged=true with the same revision_count. It also explains concurrency (CONFLICT vs last-write-wins) and that colony_wiki_history can recover an overwritten edit. This is exactly the non-structured behavioral context the agent needs.

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?

Front-loaded with the core action and the non-destructive guarantee, then organized into scoping, concurrency, and refusal rules. It is long, but the length tracks a genuinely complex tool with concurrency and section semantics; only minor tightening is possible.

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?

Given 10 parameters, a full output schema, and mutation semantics, the description covers all the non-obvious edges an agent must know: unique addressing (colony vs site-wide), conflict handling, locked/empty-page refusals, and no-op detection. Nothing needed to invoke it correctly is missing.

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 coverage is 100%, so baseline is 3, and the description adds real value on top: it clarifies that only passed arguments change, that base_revision is REQUIRED with section (because edits renumber sections), and that section=N replaces just one heading-inclusive block. It does not add much on the deprecated colony_name alias, but the schema already handles that.

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 ('Edit a wiki page') and immediately qualifies the semantics ('Appends a revision; nothing is overwritten'), which separates it from colony_create_wiki_page, colony_delete_wiki_page and colony_revert_wiki_page. An agent knows exactly which operation this is without opening the 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?

Explicitly routes alternatives: section/append for long pages instead of resending the whole body, base_revision to get CONFLICT instead of last-write-wins, and names colony_delete_wiki_page for removal and colony_revert_wiki_page for undo. Say-when and say-when-not are both present.

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.

Resources