Skip to main content
Glama

update_cms_post

Destructive

Update an existing CMS blog post.

Only the fields you pass are changed — everything else (categories, tags, excerpt, featured image, content, ...) keeps its current value.

Args: project_id: The project ID. post_id: The ID of the post to update (UUID from list response, or full SK like cms-post-data-). title: New title (leave empty to keep current). slug: New slug (leave empty to keep current). content: New content HTML (leave empty to keep current; ignored if content_blocks is set). content_blocks: JSON string of the block tree to replace post body (leave empty to keep current). excerpt: New excerpt/summary (leave empty to keep current). featured_image: New featured image URL (leave empty to keep current). featured_image_alt: New alt text for the featured image (leave empty to keep current). keyword: New focus keyword (leave empty to keep current). categories: Comma-separated category names/slugs (e.g. "Technology,News"). Replaces the post's categories; leave empty to keep current. tags: Comma-separated tags (e.g. "beginner,seo"). Replaces the post's tags; leave empty to keep current. seo_meta_title: New SEO (leave empty to keep current). Keep under 70 characters. seo_meta_desc: New meta description (leave empty to keep current). Keep under 160 characters.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
slugNo
tagsNo
titleNo
contentNo
excerptNo
keywordNo
post_idYes
categoriesNo
project_idYes
seo_meta_descNo
content_blocksNo
featured_imageNo
seo_meta_titleNo
featured_image_altNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=false, destructiveHint=true and openWorldHint=true, so the mutation/open-world profile is covered. The description adds genuinely new behavioral context beyond that: only passed fields are mutated, empty string means 'keep current', and content is ignored when content_blocks is set — all non-obvious mutation semantics that prevent accidental overwrites.

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?

The partial-update rule is front-loaded in the first paragraph, and the Args list is long but justified given 14 undocumented parameters. Every line earns its place; the only mild redundancy is the repeated '(leave empty to keep current)' pattern, which could have been stated once.

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?

With an output schema present, return values need not be described, and all 14 parameters plus the content/content_blocks interaction are covered. For a mutation tool with zero schema documentation and three annotations, nothing an agent needs 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.

Parameters5/5

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

Schema description coverage is 0% (all 14 params have titles only), so the description carries the full burden — and it does: every parameter is documented with meaning, format hints (post_id as UUID or full SK, comma-separated categories/tags with examples), keep-current semantics, and length constraints for SEO fields. This is model compensation for the coverage gap.

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 ('Update an existing CMS blog post') and immediately defines the scope of that update as a partial patch, which is the key thing distinguishing it from create_cms_post/delete_cms_post. An agent knows exactly what 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 Guidelines3/5

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

Usage is implied by 'Update an existing' and the partial-patch semantics, and the content-vs-content_blocks precedence rule is useful invocation guidance. However, it never names an alternative or states when not to use it — e.g. it doesn't clarify the relationship to publish_cms_post or update_page, so routing guidance is left to inference.

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