Skip to main content
Glama

protect-page

Destructive

Set or update a wiki page's protection by specifying levels for actions like edit or move, with expiry and optional cascade to control who can modify or create the page.

Instructions

Changes the protection of a wiki page and returns its title, its own protections afterwards with their expiries, and whether cascading is on. Each action named in protections is set to its level until expiry. Actions left out keep their current protection, so lifting all protection means naming every action the page takes with "all". Protection the page inherits from a cascade-protected page that transcludes it is neither changed nor listed. Fails if the authenticated user lacks the protect permission, if the wiki does not accept an action or level for this page, or if the expiry is invalid or in the past.

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.
titleYesWiki page title
expiryNoWhen the protections named in protections end: infinite, a relative time such as "1 week", or a timestamp such as 2026-10-01T00:00:00Z.infinite
cascadeNoAlso protect every page transcluded into this one against editing. Applies only while edit protection is at a cascading level, sysop by default. Omit to keep the current setting.
commentNoReason for changing the protection
protectionsYesProtection level for each action, e.g. {"edit": "autoconfirmed", "move": "sysop"}. The actions are edit and move, plus upload on a File page; a page that does not exist takes only create, which limits who can create the title. Levels are the wiki's own; MediaWiki's defaults are autoconfirmed (semi-protection) and sysop (full protection). "all" lifts the action's protection.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv0.19.0

TDQS

A4.7/5.0
Behavior5/5

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

Annotations are present (readOnlyHint=false, destructiveHint=true), and the description adds substantial context beyond them: the exact return payload, partial-update behavior, the inherited-protection exclusion, and three distinct failure modes (missing protect permission, unsupported action/level, invalid or past expiry). This is rich behavioral disclosure that no annotation field captures.

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?

At roughly five sentences, the description is dense but every sentence carries unique information: return value, partial-update rule, lifting procedure, inherited-protection exclusion, and failure conditions. The action and resource are front-loaded in the first clause, and the subtle semantics are ordered before the error conditions. No filler or repetition of schema content.

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?

This is a high-complexity tool (6 params, nested protections object, partial-update semantics, multiple failure modes) with no output schema, yet the description covers everything an agent needs: what is returned, how the core parameter behaves, edge cases (inherited protection, non-existent pages via the schema's create action), and when it fails. Nothing material is missing for correct invocation.

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 the baseline is 3. The description exceeds it by explaining the critical semantics of the protections object that the schema does not: actions named are set until expiry, omitted actions retain current protection, and 'all' lifts protection. This is essential meaning beyond the schema, though other parameters (wiki, expiry, cascade, comment) are already well documented there.

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 specific verb and resource: 'Changes the protection of a wiki page.' It also states what it returns (title, protections with expiries, cascade state), which pins down the tool's scope precisely. This distinguishes it from content-editing siblings like update-page and lifecycle tools like create-page/delete-page without ambiguity.

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?

The description gives clear operational context: partial-update semantics ('Actions left out keep their current protection'), how to lift protection by naming every action 'all', and the caveat that inherited cascade protection is 'neither changed nor listed' — which implicitly sets expectations for when the tool cannot do what a caller might want. However, it never explicitly names alternatives or when-not-to-use conditions relative to sibling tools, so it stops short of a 5.

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