Skip to main content
Glama

Edit an article

update_article_draft
DestructiveIdempotent

Save a new version of an article, as the console’s Save does: only the fields given change, over the article’s own (null clears one). A draft changes at once. A live (or scheduled) article changes at once for a key whose account may publish (modified: true moves its visible “Updated” date); for any other key the save waits for a publisher, and readers keep the words they see now. The slug of an article that has been published changes only with change_article_slug. Audited with the key and the tool. Dry run by default: it shows what changes, the cleaned HTML of a new body, its links and what the allowlist took out, and whether the save would wait.

Input Schema

NameRequiredDescriptionDefault
dekNo
bodyNoThe article’s text, in Markdown by default (body_format). A link to an entry is [Name](/<VHID>): it shows the entry’s current name while its text is that name. A heading “#” becomes a second-level heading (the title is the first). Raw HTML in Markdown is shown as text.
slugNoThe address’s last part: lower-case letters and digits in words split by single hyphens (e.g. "x-drops-legacy-checkmarks"), at most 80, never 11 digits.
titleNo
topicNoA News article’s one topic: "verification" (Verification), "impersonation" (Impersonation and scams), "official-accounts" (Official accounts), "vh-data" (VH data), "vh-updates" (VH updates); or a guide’s group on the guides page: "check" (Check an account), "use" (Use Verified Handles), "contribute" (Get listed and help keep it right), "developers" (Developers and AI). null for none.
articleYesThe article: its id (list_articles), its address ("/news/<slug>", "/guides/<slug>" or the full URL), or its slug alone.
authorsNoThe byline, in order: each author is an entry (VHID, short name or QID), at most 10. Whoever publishes may pick it again then.
dry_runNotrue (the default): write nothing — show the change and the exact request it would send. false: make the change.
summaryNoWhy, in a few plain words, kept with the revision in the article’s history. Never an internal tracking ID.
hero_altNoThe hero image’s alt text: what it shows, for a reader who cannot see it. Only with a hero image.
modifiedNoA live article, saved by a publisher: true when this change matters to a reader, so its “Updated” date moves.
body_formatNo"markdown" (the default) or "html": how `body` is written. Either is stored as cleaned HTML, through the site’s allowlist.markdown
hero_media_idNoThe hero image: an uploaded image’s media id (upload_image, or media_catalog); null for none.

Output Schema

NameRequiredDescriptionDefault
noteNoA dry run: what to do next to make the change, in words.
resultNoA real run: the route’s own answer, where the tool adds facts of its own beside it.
confirmNoA dry run of a change that needs it: the exact target to send back as `confirm` with dry_run: false.
dry_runNotrue: a dry run, which wrote nothing. Absent from a real run.
replayedNoA real run with an idempotency_key already used for this change: the first call’s answer, given back; nothing was written now.
would_sendNoA dry run: the exact request the real run would send (`method`, `path`, any `headers` such as an Idempotency-Key, and its `body`, `form` or `query`), or the requests, in order.
may_edit_liveNoA dry run of a live edit: whether this key’s account may edit this entry live.
refused_becauseNoA dry run the real run would be refused for: why, in words.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A4.7/5.0
Behavior5/5

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

The description adds substantial behavior beyond the annotations: partial updates only, null clearing fields, draft versus live/scheduled save behavior, publisher-gated changes, audit logging with key and tool, and the dry-run preview including cleaned HTML, links, allowlist removals, and whether the save would wait. This is rich transparency for a destructive mutation 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?

The description is dense but front-loaded and every sentence carries relevant operational meaning. For a 13-parameter destructive tool with dry-run, publishing, slug, and audit behavior, the length is justified and there is no obvious 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?

Given the annotations, output schema, and high schema coverage, the description supplies the missing operational context an agent needs: save semantics, authorization/waiting behavior, slug restriction, audit behavior, and dry-run output. Nothing critical is omitted 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 high at 85%, so the schema already documents most parameters. The description still adds valuable semantics beyond the schema: only provided fields change, null clears a field, modified controls the visible Updated date for publishers, and dry_run defaults to true.

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 gives a specific verb and resource: it saves a new version of an article, with partial-update semantics matching the console's Save. It clearly frames the tool as an edit/save operation rather than a creation or listing tool, which helps separate it from siblings such as draft_article and get_article.

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 explains important usage conditions: dry run is the default, draft articles change immediately, live/scheduled articles may wait for a publisher, and slug changes must go through change_article_slug. It does not explicitly contrast with draft_article for creating new drafts, so it is strong but not fully exhaustive on alternatives.

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.