Skip to main content
Glama

create_cms_post

Create a new CMS blog post.

Args: project_id: The project ID. title: Post title. slug: URL-safe slug for the post. content: Post body as HTML (optional if content_blocks is set). content_blocks: JSON string of the block tree (same shape as get_cms_post data.content_blocks). If set, stored as-is and content HTML is ignored. excerpt: Short excerpt/summary shown in post listings (also flips the post to using a custom excerpt). featured_image: URL of the featured image. featured_image_alt: Alt text for the featured image (counts toward the "images with alt texts" SEO check). keyword: Focus keyword for the post. categories: Comma-separated category names/slugs (e.g. "Technology,News"). Matching categories are fetched and sent as category objects. tags: Comma-separated tags (e.g. "beginner,seo"). Tags are free-form and are created on the fly. seo_meta_title: Custom SEO for search engines (defaults to the post title). Keep under 70 characters. seo_meta_desc: Custom meta description for search engines. Keep under 160 characters — drives the "meta description" SEO check.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
slugYes
tagsNo
titleYes
contentNo
excerptNo
keywordNo
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

A3.8/5.0
Behavior4/5

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

Annotations establish this is a non-destructive write (readOnlyHint=false, destructiveHint=false). The description adds real behavioral context beyond them: content_blocks is stored as-is and overrides content HTML, setting excerpt flips the post to a custom excerpt, tags are created on the fly, and categories are matched and resolved server-side. It stops short of stating slug-uniqueness or permission behavior, keeping it from a 5.

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 one-line purpose is front-loaded, followed by a clean Args list that is appropriately sized for 13 parameters. A few entries run long (e.g., featured_image_alt explaining SEO checks), but no sentence is filler given the parameter count.

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?

With an output schema present, return values need not be described, and the parameter/behavioral coverage is strong. The remaining gap is operational context: no mention of authentication, permissions, or how creation relates to the publish step, which an agent creating content would benefit from.

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%, so the description carries the entire burden for 13 parameters, and it does so thoroughly: each arg's meaning, format (HTML, URL, comma-separated lists, JSON block tree), defaults, and cross-parameter interactions (content vs content_blocks) are explained. This is exactly what a low-coverage schema requires.

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?

"Create a new CMS blog post" gives a specific verb (create) and resource (CMS blog post), cleanly distinguishing it from the many get_/update_/delete_/publish_ siblings. It does not explicitly name which alternative to use instead, but the create semantics are unambiguous.

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

Usage Guidelines2/5

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

The description never states when to use this tool versus update_cms_post or publish_cms_post, nor any prerequisites such as required project access or that publishing is a separate step. The only usage-like hints ("optional if content_blocks is set") are parameter-level, not tool-selection guidance.

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