Skip to main content
Glama

Preview SEO title and description changes

fleet__update_seo_meta

Preview changes to SEO titles, meta descriptions, focus keywords, noindex or canonical on up to 100 posts or pages of one site, through the site's own SEO plugin (SEObolt, Yoast, Rank Math, SEOPress or AIOSEO, as Royally detected it; if that plugin is no longer the active one, the site's active SEO plugin is used and fallback_from names the one on record). Returns the exact before and after of every post that would change, how many rows would not change, approve_url and approve_before. Nothing is written by this tool: show the person the diff and give them approve_url, where they review it and apply it in Royally before approve_before (a preview applies once). You cannot apply it yourself. When the site is in a site group the team set to apply changes without approval, the change needs no typed confirmation and no two-person approval covers the site, Royally applies it at once instead: state is success, applied_by_rule names the groups, and preview_url replaces approve_url. Once they have applied it, find its receipt with fleet__list_recent_receipts (site_id filter) and read it with fleet__get_receipt. It can be undone for 168 hours with Undo on that receipt in Royally. A field left out of an update is not touched; null clears a value back to the plugin's default.

Input Schema

NameRequiredDescriptionDefault
site_idYesThe site to change.
updatesYesOne entry per post or page; include only the fields to change.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.9/5.0
Behavior5/5

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

With annotations already declaring openWorldHint and non-idempotency, the description adds the context that matters: preview applies once, writes are only triggered via approve_url or the site-group auto-apply rule (where preview_url replaces approve_url and applied_by_rule names the groups), and undo is available for 168 hours. This also reconciles readOnlyHint=false with 'nothing is written by this tool' – the write path exists but is not the tool's own call.

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?

Purpose and the no-write guarantee are front-loaded, and almost every sentence carries operational information. It is a single dense paragraph of roughly 200 words with nested parentheticals (the plugin roster, the fallback_from aside) that would read faster as short bullets, but nothing is truly wasted.

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?

For a mutation-adjacent, open-world tool with no output schema, the description covers the return payload (before/after per changing post, unchanged count, approve_url, approve_before), the auto-apply variant response shape, the follow-up receipt lookup, and the undo window. Nothing an agent needs to call it correctly or explain the result 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 coverage is 100%, so the baseline would be 3, but the description genuinely adds semantics the schema cannot express: 'A field left out of an update is not touched; null clears a value back to the plugin's default.' That distinction between omitted and null is the single most error-prone aspect of this payload and it is spelled out, along with the 100-post cap and the plugin-detection fallback affecting where the values land.

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 first sentence names a specific verb and resource (preview changes to SEO titles, meta descriptions, focus keywords, noindex, canonical) scoped to up to 100 posts of one site. It also resolves the tension between the tool name (update_seo_meta) and its actual behavior by stating explicitly that nothing is written. An agent can distinguish it from royal-mcp__wp_update_seo_meta or mcp-easy-ai__wp_ability_rank_math_get_post_seo_meta without opening a schema.

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

Usage Guidelines5/5

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

It prescribes the full workflow: show the diff, hand over approve_url, and it states the exclusion outright ('You cannot apply it yourself'). It also names the sibling follow-up path (fleet__list_recent_receipts with site_id filter, then fleet__get_receipt), so an agent knows exactly what to do before and after.

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