Skip to main content
Glama

WordPress: Write post

wp_write_post
Destructive

Create or update a post or page on a client's live website. Omit id to create. A new post is created as a DRAFT unless status is given; an update leaves the existing status alone unless status is given. Pass status 'publish' only when the user has explicitly asked for it to go live.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
idNoOmit to create a new post
siteYes
slugNo
typeNopost
titleNo
statusNoOmit to keep an existing post's status, or to create a new one as a draft.
confirmNoNeeded to publish, or to change a post that already exists. Leave unset to preview; set true only after the user has agreed to that exact change.
contentNoHTML body
excerptNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4/5.0
Behavior4/5

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

Annotations already flag destructiveHint=true, openWorldHint=true and non-idempotency, so the bar is lower; the description still adds real value by disclosing the draft-by-default behavior and the update-preserves-status rule, plus the explicit caution on publishing to a live site. It stops short of explaining confirmation requirements or what happens to fields left unset on an update.

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?

Three tight sentences, front-loaded with the verb and resource, then the create/update discriminator, then the publishing guardrail. Every sentence carries distinct, non-redundant information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a destructive, open-world mutation tool with no output schema, the description covers the create/update distinction, default draft state, and the publish guardrail — the essentials an agent needs to avoid an accidental go-live. It is thin on what an update does to unspecified fields and on the confirm/preview workflow, which is only in the schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is only 44% across 9 parameters, so the description must compensate, and it only meaningfully clarifies `id` and `status` (both of which the schema already documents). The important `confirm` gating parameter is left entirely to the schema, and slug/title/type/content/excerpt get no narrative explanation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ("Create or update a post or page on a client's live website") and makes the dual create/update mode explicit via the `id` rule, which separates it from read siblings like wp_get_post and wp_list_posts. It does not differentiate itself from the other write sibling, wp_replace_in_post, so it falls short of a 5.

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?

Gives clear conditional guidance: omit `id` to create, and pass 'publish' only when the user has explicitly asked for it to go live. That is actionable context for the riskiest path, but no alternative tools are named for cases where a different write tool would be preferable.

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.