Skip to main content
Glama
MCP WordPress CrunchTools

MCP WordPress CrunchTools

by crunchtools

Wordpress Update Post

wordpress_update_post

Update an existing WordPress post by ID—change title, content, status, categories, tags, or featured media to revise content in place.

Instructions

Update an existing WordPress post. To change part of the content, use edit_post.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "post_id": "<post_id>"
    },
    "name": "wordpress_update_post"
  }
}

Input Schema

NameRequiredDescriptionDefault
dateNoNew publication date
slugNoNew slug
tagsNoNew tag IDs
titleNoNew title
statusNoNew status
contentNoNew content
excerptNoNew excerpt
post_idYesPost ID to update
categoriesNoNew category IDs
post_formatNoNew post format
featured_mediaNoNew featured image ID
expected_versionNoRefuse the write unless the post is still at this version (get_post)

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changedv0.8.0
    • addedInput schema / properties / expected_version
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Refuse the write unless the post is still at this version (get_post)"
      +}
  2. Changed13 schema fields changedv0.6.1
    • addedInput schema / additionalProperties
      Added value: +false
    • addedInput schema / properties / categories / description
      Added value: +"New category IDs"
    • addedInput schema / properties / content / description
      Added value: +"New content"
    • addedInput schema / properties / date / description
      Added value: +"New publication date"
    • addedInput schema / properties / excerpt / description
      Added value: +"New excerpt"
    • addedInput schema / properties / featured_media / description
      Added value: +"New featured image ID"
    • addedInput schema / properties / post_format / description
      Added value: +"New post format"
    • addedInput schema / properties / post_id / description
      Added value: +"Post ID to update"
    • addedInput schema / properties / post_id / minimum
      Added value: +1
    • addedInput schema / properties / slug / description
      Added value: +"New slug"
    • addedInput schema / properties / status / description
      Added value: +"New status"
    • addedInput schema / properties / tags / description
      Added value: +"New tag IDs"
    • addedInput schema / properties / title / description
      Added value: +"New title"
  3. First observedv0.5.0

TDQS

B3/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full behavioral burden and mostly fails. It never states whether omitted fields are left untouched or cleared, that this is an irreversible write requiring edit permissions, or what role expected_version plays in conflict handling (the schema mentions it, but the description does not surface the concurrency behavior).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, front-loaded with purpose and zero padding. But the brevity is under-specification rather than economy: for a 12-parameter mutation tool, the sentence budget is too small to be genuinely concise-and-complete.

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

Completeness2/5

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

Given a mutation tool with 12 optional parameters, no annotations, and no explanation of partial-update or null-default semantics, the description leaves the agent without what it needs to call safely. An output schema exists so return values need not be described, but the write-behavior gaps are significant.

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 description coverage is 100%, so every one of the 12 parameters is already documented in the schema, which sets the baseline at 3. The description adds no additional meaning about partial-update semantics, null handling, or the expected_version precondition.

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 ('Update an existing WordPress post') that is immediately understandable. It partially differentiates from the sibling wordpress_edit_post via the second sentence, though the boundary between them remains fuzzy since both appear to modify posts.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

One explicit routing rule is given ('To change part of the content, use edit_post'), which implies update_post is a wholesale replacement. However, no guidance is offered for the many other overlapping siblings (wordpress_edit_draft, wordpress_update_page, wordpress_create_post) or for when a post should not be updated.

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