SwiftlyMCP : Wordpress MCP Server
Server Details
Manage WordPress and WooCommerce sites from any AI assistant. 150+ tools for creating posts, managing products and orders, monitoring site health, updating plugins and themes, working with Elementor and Divi page builders, and full WP-CLI emulation. Connect Claude, ChatGPT, Cursor, or any MCP client via OAuth.
- Status
- Healthy
- Uptime
- 38.7% over 23 days
- OAuth
- Works in Glama
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 111 tools
Tools are grouped by clear prefixes (wp_, woo_, elementor_, etc.) and each has a distinct verb+noun, but there is notable overlap in post-type CRUD (wp_create_post/page/custom_post) and content retrieval (wp_get_post/page/custom_post, wp_get_page_html, wp_navigate), which may require careful selection.
Consistent snake_case with verb_noun pattern across most tools, but a few outliers like wp_site_health and woo_sales_report omit the verb, slightly breaking the convention.
111 tools is far too many for a single MCP server; while comprehensive, it overwhelms the agent's selection process and violates the recommended 3-15 range, scoring lowest.
Covers a vast domain (WP core, WooCommerce, page builders, ACF, SEO, workflow), but lacks permanent delete, user creation/update, and menu creation, leaving minor gaps.
Available Tools
111 toolsacf_get_field_groupGet Field GroupARead-onlyInspect
Get a specific ACF field group with all its field definitions (name, type, label, required, choices, etc.).
| Name | Required | Description | Default |
|---|---|---|---|
| key | Yes | Field group key (e.g. "group_abc123") or post ID | |
| site_id | No | Site ID to target (optional if you have only one connected site) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=true, so the safety profile is covered without the description. The description adds genuine value by enumerating the returned field attributes (name, type, label, required, choices), but says nothing about failure behavior for an invalid key or how the key/post-ID duality resolves.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single tight sentence that front-loads the action and resource before the parenthetical detail. Nothing is padded or redundant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only lookup with full annotation coverage and no output schema, the description adequately conveys what is retrieved and the shape of the returned field definitions. Minor gaps remain around invalid-key handling, but the essential information an agent needs to call it is present.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both the 'key' format (group_abc123 or post ID) and the optional 'site_id' are already documented in the schema. The description adds no meaning beyond that, making the baseline 3 appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Get a specific ACF field group') and clarifies the payload ('all its field definitions'). The word 'specific' hints at single-item retrieval, but it does not name or contrast with the sibling acf_list_field_groups, so differentiation is left to inference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: the requirement of a 'key'-based lookup suggests retrieving one known group, and the sibling list tool is never mentioned. No explicit when-to-use or when-not-to-use guidance is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
acf_get_optionsGet OptionsARead-onlyInspect
Get all ACF options page field values. Requires ACF Pro with options pages registered.
| Name | Required | Description | Default |
|---|---|---|---|
| site_id | No | Site ID to target (optional if you have only one connected site) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=true, so the safety profile is covered. The description adds the ACF Pro/options-page prerequisite, but says nothing about behavior when no options pages exist or how many values come back.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, front-loaded with the operation and followed by the only prerequisite. Nothing is wasted, though it is on the terse side.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-optional-parameter read tool with no output schema, the description covers the operation, scope, and prerequisite. It could note what is returned when no options pages are registered, but otherwise an agent has enough to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only one optional parameter (site_id) and schema description coverage is 100%, so the schema fully documents it including the single-site fallback. The description adds no syntax or behavioral detail beyond the schema, making baseline 3 appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Get') and resource ('all ACF options page field values'), which is clearly distinct from sibling ACF tools like acf_get_field_group and acf_get_post_fields. The scope word 'all' signals it returns the full set rather than a filtered lookup.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The second sentence gives a real precondition (ACF Pro with options pages registered), which is more than nothing, but the description never says when to choose this over acf_get_field_group or acf_get_post_fields or what to do if the precondition fails.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
acf_get_post_fieldsGet Post FieldsBRead-onlyInspect
Get all ACF custom field values for a specific post/page. Returns field name => value pairs including repeaters, groups, and relationship fields.
| Name | Required | Description | Default |
|---|---|---|---|
| post_id | Yes | Post/page ID to get ACF field values for | |
| site_id | No | Site ID to target (optional if you have only one connected site) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, openWorldHint=true, so safety is covered. The description adds useful return-shape context (name => value pairs, repeaters, groups, relationships) that annotations do not provide, but says nothing about value formatting (raw vs. formatted) or permission requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences with zero waste: the action and scope are front-loaded, then the return shape adds value. Every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description usefully characterizes the returned data (field name => value pairs, including repeaters/groups/relationships), and annotations cover the safety profile. Minor gaps remain around value formatting and multi-site behavior, but it is largely complete for a read tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both post_id and site_id are already documented in the schema. The description only restates the post/page targeting for post_id without adding syntax, format, or fallback behavior beyond the schema, making the baseline 3 appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Get') and resource ('ACF custom field values for a specific post/page'), and the scoping to a single post reasonably distinguishes it from acf_get_field_group (group config) and acf_get_options (options pages) by implication. The sibling differentiation is implicit rather than named, 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use, prerequisites, or alternatives are stated. The agent is not told when to prefer this over acf_get_field_group or acf_get_options, nor what 'ACF' context prerequisites exist. Usage is only faintly implied by 'for a specific post/page'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
acf_list_field_groupsList Field GroupsARead-onlyInspect
List all ACF field groups with their key, title, active status, location rules, field count, and REST visibility. Use this to discover what custom fields are configured on the site.
| Name | Required | Description | Default |
|---|---|---|---|
| site_id | No | Site ID to target (optional if you have only one connected site) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, openWorldHint=true, destructiveHint=false, covering the safety profile. The description adds genuinely new context by enumerating the returned fields (location rules, REST visibility, field count), which matters because there is no output schema. It does not mention pagination or scale limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences with zero filler: the first front-loads what is returned, the second supplies the use case. Nothing could be removed without losing information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the return-field enumeration is what makes this definition callable and interpretable, and annotations cover safety. Only minor gaps remain (ordering, whether inactive groups are included, large-site behavior).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
One optional parameter with 100% schema description coverage, so the schema already documents site_id fully. The description adds no format, default, or multi-site behavior detail beyond the schema; baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (list) and resource (ACF field groups) and enumerates exactly what each entry contains: key, title, active status, location rules, field count, REST visibility. It distinguishes itself from acf_get_field_group by implication only (list-all vs. fetch-one), so it is clear but does not explicitly name the singular sibling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
"Use this to discover what custom fields are configured on the site" gives a clear context for invocation. It does not name alternatives or exclusions (e.g., use acf_get_field_group when you already know the key), so it falls short of full routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
acf_update_post_fieldsUpdate Post FieldsAIdempotentInspect
Update ACF custom field values for a specific post/page. Pass field_name => value pairs. Use acf_get_field_group to discover valid field names and types. Supports text, number, select, image (pass attachment ID), repeater (pass array of rows), and other ACF field types.
| Name | Required | Description | Default |
|---|---|---|---|
| fields | Yes | Object of field_name => value pairs to update | |
| post_id | Yes | Post/page ID to update | |
| site_id | No | Site ID to target (optional if you have only one connected site) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, idempotentHint=true and destructiveHint=false, so the safety profile is covered. The description adds genuine behavioral context beyond them — the value conventions for image fields (attachment ID) and repeaters (array of rows) — but does not say whether unspecified fields are left untouched or what a bad field name does.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with the operation before the workflow hint and the value-format list. No sentence is redundant and nothing is buried.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description carries the return burden implicitly and annotations cover the safety profile. Field discovery and value formats are covered, but a mutation tool arguably should state merge semantics and whether missing field names are created or ignored.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and post_id/fields/site_id are self-documenting, so the baseline of 3 would apply. The description exceeds it by explaining the free-form 'fields' object, which the schema can only describe as 'additionalProperties', and by giving per-type value formats.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a specific verb and resource: 'Update ACF custom field values for a specific post/page.' The 'ACF custom field' qualifier separates it from core-field writers like wp_update_post and from the read sibling acf_get_post_fields, though no sibling is named explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a concrete workflow pointer: 'Use acf_get_field_group to discover valid field names and types.' That tells the agent how to prepare the call and routes it to a sibling tool. It stops short of stating when not to use this tool or what happens relative to the core wp_update_post path.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
divi_get_page_dataGet Page DataARead-onlyInspect
Get the Divi layout data for a specific page/post. For Divi 4: returns shortcode-based layout in post_content (format: "divi4"). For Divi 5: returns JSON element tree (format: "divi5").
| Name | Required | Description | Default |
|---|---|---|---|
| post_id | Yes | Post/page ID to get Divi data for | |
| site_id | No | Site ID to target (optional if you have only one connected site) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=true, so the safety profile is covered. The description adds genuinely new behavioral context with no output schema present: the return format differs by Divi version ('divi4' shortcode in post_content vs 'divi5' JSON element tree). It stops short of covering failure cases such as a page with no Divi layout.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, front-loaded with the core action and then the version-dependent output formats. Every sentence carries distinct information and there is no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description correctly supplies the return shape (divi4 vs divi5), and annotations cover the read-only safety profile while the schema fully documents both parameters. Minor gaps remain around edge cases (page without Divi layout, multi-site ambiguity when site_id is omitted).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% with only two parameters, both documented in the schema (post_id and optional site_id), so the baseline of 3 applies. The description's 'specific page/post' phrasing loosely reinforces post_id but adds no syntax, constraints, or defaults beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Get the Divi layout data for a specific page/post'), which cleanly separates it from sibling lookalikes like elementor_get_page_data and wp_get_page. It also names the two possible payload shapes (shortcode layout vs JSON element tree), so an agent knows exactly what kind of artifact it retrieves.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use or when-not-to-use guidance and no routing against alternatives such as wp_get_page (generic page content) or elementor_get_page_data. The Divi 4 vs Divi 5 format notes describe what comes back, not when to pick this tool, so an agent must infer its applicability from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
divi_list_layoutsList LayoutsBRead-onlyInspect
List all saved Divi layouts from the Divi Library. Returns layout ID, title, type (section/fullwidth/module/layout), and category.
| Name | Required | Description | Default |
|---|---|---|---|
| site_id | No | Site ID to target (optional if you have only one connected site) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=true, so the safety profile is covered. The description adds the returned field set, which is useful, but says nothing about pagination, result limits, or whether an empty library returns an empty list.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences with zero filler; the action is front-loaded and the return-value summary is compact. Nothing could be cut without losing information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description correctly compensates by enumerating returned fields. For a zero-required-param read tool with full schema coverage, this is nearly complete; only pagination/empty-result behavior is unaddressed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the single site_id parameter is fully documented in the schema, so baseline 3 applies. The description adds no additional meaning about site_id's behavior or default.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('List all saved Divi layouts from the Divi Library'), which clearly separates it from page-oriented siblings like divi_list_pages and divi_get_page_data. It stops short of explicitly naming those alternatives, so sibling differentiation is implied rather than stated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to call this versus divi_list_pages or divi_get_page_data, and no exclusions or prerequisites. Usage must be inferred entirely from the tool name and the phrase 'from the Divi Library'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
divi_list_pagesList PagesARead-onlyInspect
List all pages/posts built with Divi Builder. Returns post ID, title, type, status, and Divi version.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number (default 1) | |
| site_id | No | Site ID to target (optional if you have only one connected site) | |
| per_page | No | Results per page (default 20) | |
| post_type | No | Filter by post type (e.g. "page", "post"). Default: all types. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=true, so the safety profile is covered. The description adds the return field list but says nothing about pagination behavior, site scoping, or result ordering that goes beyond the structured data.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two lean sentences: the first states scope, the second states the return shape, with zero filler. Information is front-loaded and every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description usefully enumerates returned fields and the read-only nature is covered by annotations. It is complete enough to call correctly, though pagination and multi-site targeting behavior are left to the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all four parameters are already documented in the schema with defaults and constraints. The description adds no parameter-level meaning (e.g., how post_type interacts with the 'Divi Builder' filter), so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (List) and a clearly scoped resource (pages/posts built with Divi Builder), and enumerates what each result contains. The 'built with Divi Builder' qualifier differentiates it from the generic wp_list_pages sibling, though it never names that sibling explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the name and description, but there is no explicit when-to-use, when-not, or comparison against close siblings like divi_get_page_data, divi_list_layouts, or wp_list_pages. An agent must infer the routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
elementor_get_page_dataGet Page DataARead-onlyInspect
Get the Elementor element tree (sections, columns, widgets) for a specific page/post. Returns the full JSON structure used by Elementor.
| Name | Required | Description | Default |
|---|---|---|---|
| post_id | Yes | Post/page ID to get Elementor data for | |
| site_id | No | Site ID to target (optional if you have only one connected site) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=true, so the safety profile is covered. The description adds that the return is the full JSON structure Elementor stores, which is useful context, but says nothing about size/pagination, permission requirements, or behavior when a page has no Elementor data.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, front-loaded with the verb and resource, no filler or boilerplate. The second sentence partly restates the first (JSON structure = element tree), so it is efficient but not maximally tight.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read tool with 100% schema coverage and read-only annotations, the description supplies the essential missing piece – what the response actually contains (raw Elementor JSON tree). No output schema exists, yet the return shape is described adequately; only edge-case behavior remains unexplained.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and both parameters (post_id, site_id) are documented in the schema itself. The description's phrase 'a specific page/post' loosely mirrors post_id but adds no format, ID-source, or site-selection guidance, so it stays at the baseline for a fully documented schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb ('Get') plus resource ('Elementor element tree'), with concrete scope ('sections, columns, widgets') and target ('a specific page/post'). It is clearly distinct from generic siblings like wp_get_page, but it never names or contrasts with the closest alternatives (divi_get_page_data, elementor_list_pages, elementor_get_widget_schema).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied by 'for a specific page/post' – the agent can infer you call this when you need a page's Elementor structure. There is no explicit when-to-use, when-not-to-use, or named alternative (e.g., use wp_get_page_html for rendered markup or elementor_get_widget_schema for widget definitions).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
elementor_get_widget_schemaGet Widget SchemaARead-onlyInspect
Get the control/prop schema for a specific Elementor widget or element. For v4 atomic widgets: returns props with types. For classic widgets: returns controls (name, type, options, defaults). Use elementor_list_widgets first to find available widget slugs.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | Widget/element slug (e.g. "heading", "image", "container", "button") | |
| site_id | No | Site ID to target (optional if you have only one connected site) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=true, so safety is covered. The description adds genuine context beyond that: the return shape differs by widget generation (props+types vs controls with name/type/options/defaults), which is important since no output schema exists. It doesn't cover error behavior for an invalid slug.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, no filler, front-loaded with the core action and immediately followed by the two return variants and the discovery prerequisite. Every sentence carries information an agent needs.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description correctly takes on the burden of describing what comes back in each widget generation, which is the key unknown for a schema-lookup tool. It is essentially complete for a read-only getter; only failure/not-found handling is unaddressed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and both parameters are documented there (slug with examples like 'heading'/'image'/'container', plus the optional site_id). The description only refers to the slug obliquely via the list_widgets prerequisite, adding no format or constraint detail beyond the schema, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource (get the control/prop schema for a specific widget/element) and splits the behavior into two clearly-named cases: v4 atomic widgets return props with types, classic widgets return controls. It also names elementor_list_widgets as the discovery sibling, so an agent can separate it from that tool without reading either schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit sequencing guidance ('Use elementor_list_widgets first to find available widget slugs'), which routes the agent to the right sibling before calling this one. It does not state when NOT to use it or what to do with an unknown slug, so it falls just short of the top band.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
elementor_list_global_widgetsList Global WidgetsBRead-onlyInspect
List all Elementor global widgets (reusable widget instances saved in the Elementor Library).
| Name | Required | Description | Default |
|---|---|---|---|
| site_id | No | Site ID to target (optional if you have only one connected site) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=true, so the safety profile is covered without the description. The description adds the domain clarification that these are reusable library instances, but says nothing about result size, pagination, or ordering, which is a modest gap for a list operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single tight sentence that front-loads the action and resource with zero filler. Nothing to trim and nothing buried.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple zero-required-parameter read-only list tool, the definition is nearly sufficient, and annotations carry the safety profile. The only shortfall is the absence of any return-shape hint, which matters slightly more here since no output schema exists.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There is exactly one parameter (site_id) with 100% schema description coverage, so the schema fully documents the optional target-site behavior. The description adds nothing about site_id or its multi-site semantics, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('List all Elementor global widgets') and adds a clarifying parenthetical that defines global widgets as reusable instances from the Elementor Library. This partly distinguishes it from the sibling elementor_list_widgets, but the differentiation is implicit rather than explicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance is provided. The description gives no indication of when an agent should reach for this versus elementor_list_widgets, elementor_list_templates, or elementor_get_widget_schema, all of which sit in the same sibling family.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
elementor_list_pagesList PagesBRead-onlyInspect
List all pages/posts built with Elementor. Returns post ID, title, type, status, and Elementor template type.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number (default 1) | |
| site_id | No | Site ID to target (optional if you have only one connected site) | |
| per_page | No | Results per page (default 20) | |
| post_type | No | Filter by post type (e.g. "page", "post"). Default: all types. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=true, so the safety profile is covered upstream. The description adds the useful detail that the payload includes Elementor template type, but says nothing about pagination behavior beyond the schema, result caps, or whether unpublished/draft items appear.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences with zero filler. The scope constraint comes first and the return-field inventory second, which is exactly the order an agent needs for a list operation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a no-required-parameter list tool whose annotations carry the safety profile, the description covers what the tool returns and what it covers. It is slightly thin on routing versus the many sibling list tools, but nothing critical for invoking it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so page, site_id, per_page, and post_type are already documented in-schema; the baseline is 3. The description adds nothing about parameter semantics beyond listing output fields, so no credit above baseline is warranted.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (List) and a scoped resource (pages/posts built with Elementor), and enumerates the returned fields, which lets an agent distinguish it from the generic wp_list_pages at a glance. It never names the sibling, so differentiation is implied by the Elementor qualifier rather than stated explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to pick this over wp_list_pages, divi_list_pages, or elementor_list_templates, which all return page-like resources. The description never states prerequisites, exclusions, or the alternative to choose for non-Elementor content, so the agent must infer selection from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
elementor_list_templatesList TemplatesBRead-onlyInspect
List all saved Elementor templates (sections, pages, headers, footers, etc. from the Elementor Library).
| Name | Required | Description | Default |
|---|---|---|---|
| site_id | No | Site ID to target (optional if you have only one connected site) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safe-read profile is covered. The description adds the source scope (the Elementor Library) but says nothing about return volume, pagination, or filtering behavior. With annotations carrying the safety profile, this is adequate but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler; the resource and its scope appear immediately. Nothing extraneous is included.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only list tool with annotations covering the safety profile and a fully documented single parameter, the description is nearly sufficient. A brief note on the multi-site targeting (site_id) would round it out, but no critical element is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There is only one optional parameter (site_id) and schema description coverage is 100%, so the schema fully documents it. The description adds no parameter meaning beyond that, which is the expected baseline when the schema does the work.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (List) and resource (saved Elementor templates) and enumerates the covered template types (sections, pages, headers, footers), which anchors the scope clearly. It does not explicitly distinguish itself from siblings like elementor_list_pages or elementor_list_global_widgets, so an agent must infer the boundary, keeping it 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description only says what the tool returns; it gives no when-to-use context and names no alternatives, despite several close siblings (elementor_list_global_widgets, elementor_list_pages, divi_list_layouts) that could easily be confused with it. An agent gets no routing help.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
elementor_list_widgetsList WidgetsARead-onlyInspect
List all registered Elementor widgets and structural elements (container, section, column). Returns slug, title, categories, and whether the widget uses v4 atomic props.
| Name | Required | Description | Default |
|---|---|---|---|
| site_id | No | Site ID to target (optional if you have only one connected site) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=true, so the safety profile is covered. The description adds value the annotations do not: the scope of what is listed (registered widgets plus structural elements) and the exact return fields, including the v4 atomic-props flag, which is particularly helpful since no output schema exists.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences with the scope front-loaded and no filler. The return-field enumeration in the second sentence is dense but earns its place given the absence of an output schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple, side-effect-free list tool with one optional parameter and full annotation coverage, the description supplies what matters: scope and return shape. Minor gaps remain around whether results are paginated/filterable and what 'v4 atomic props' implies for the caller.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There is only one optional parameter (site_id) and schema description coverage is 100%, so the schema fully documents it. The description adds no additional meaning about site_id or multi-site behavior, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('List all registered Elementor widgets'), and even enumerates the structural elements included (container, section, column) plus the returned fields. It is clearly distinguishable from generic list tools, though it never contrasts itself with close siblings like elementor_list_global_widgets or elementor_get_widget_schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: an agent can infer this is a discovery call made before building or inspecting an Elementor page. There is no explicit when-to-use, no when-not-to-use, and no named alternative such as elementor_get_widget_schema for per-widget detail.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
seo_analyze_contentAnalyze ContentARead-onlyInspect
Analyze a post/page for SEO best practices. Checks title length, meta description, keyword usage, content length, and heading structure. Returns actionable recommendations. Works without an SEO plugin (meta description/focus keyword checks are skipped if no plugin is active).
| Name | Required | Description | Default |
|---|---|---|---|
| post_id | Yes | The post/page ID to analyze | |
| site_id | No | Site ID to target (optional if you have only one connected site) | |
| post_type | No | Post type (default: post) | |
| focus_keyword | No | Focus keyword to check for (optional, will use stored keyword if available) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnlyHint=true, destructiveHint=false and openWorldHint=true, so safety is covered. The description adds genuinely useful behavioral context beyond that: the tool degrades gracefully without an SEO plugin, skipping meta description and focus keyword checks. It does not mention rate limits, auth requirements, or what the recommendations payload looks like.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences: purpose first, then the checks, then the plugin-optional caveat. Every sentence carries information and nothing is padded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only analysis tool with full schema coverage and no output schema, the description covers purpose, scope of checks and the plugin-conditional behavior. The only gap is that it promises 'actionable recommendations' without any hint of their shape or severity grading, which would help an agent know what to do with the result.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so post_id, site_id, post_type and focus_keyword are all documented in the schema itself, including the 'optional if you have only one connected site' and 'will use stored keyword if available' fallbacks. The description's mention of focus keyword checks adds only marginal meaning beyond the schema, so the baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Analyze a post/page for SEO best practices') and enumerates the exact checks performed (title length, meta description, keyword usage, content length, headings). It is clearly distinct from the read-only sibling seo_get_post_meta, though it never names or contrasts that sibling explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage by describing what gets checked and notes the plugin-optional behavior, but gives no explicit when-to-use/when-not guidance and never routes the agent between this tool and seo_get_post_meta or the wp_* content tools. Usage must be inferred from the enumerated checks.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
seo_get_post_metaGet Post MetaARead-onlyInspect
Get SEO metadata for a post, page, or product (title, meta description, focus keyword, canonical URL). Works with Yoast SEO, RankMath, and AIOSEO — auto-detects which plugin is installed.
| Name | Required | Description | Default |
|---|---|---|---|
| post_id | Yes | The post/page/product ID | |
| site_id | No | Site ID to target (optional if you have only one connected site) | |
| post_type | No | Post type (default: post) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=true, so the safety profile is covered. The description adds genuine value by disclosing auto-detection across Yoast, RankMath, and AIOSEO, but says nothing about what happens when no plugin is installed or whether output is cached/limited.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences: the capability and returned fields come first, the compatibility/auto-detection note second. Nothing is redundant with the title or schema, and there is no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description usefully enumerates the return values and explains multi-plugin support, which is the main ambiguity for this tool. It falls short only on edge cases (no SEO plugin installed, missing metadata) that an agent might reasonably need to know.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so post_id, site_id, and the post_type enum are already documented in the schema. The description restates the post/page/product scope but adds no format, default, or constraint detail beyond the structured fields, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb + resource ('Get SEO metadata for a post, page, or product') with the exact returned fields enumerated (title, meta description, focus keyword, canonical URL). This clearly separates it from sibling reads like wp_get_post or seo_analyze_content, which cover content rather than SEO metadata.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the phrasing 'for a post, page, or product', and the plugin-compatibility sentence tells the agent it can call this regardless of which SEO plugin is active. However, there is no explicit when-to-use vs. when-not-to-use guidance and no named alternative (e.g., seo_analyze_content), so routing 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.
stock_photo_searchSearchARead-onlyInspect
Search for free stock photos. Returns image URLs, preview links, photographer credits, and download links. Supports Unsplash and Pexels. Use wp_upload_media to add a photo to the WordPress media library after finding one you like.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Search term (e.g. "coffee shop", "mountain landscape", "team meeting") | |
| source | No | Photo source. "auto" tries available providers (default) | |
| site_id | No | Site ID to target (optional if you have only one connected site) | |
| per_page | No | Number of results (default 10, max 30) | |
| orientation | No | Photo orientation filter |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=true, so the safety profile is covered. The description adds real value beyond that by enumerating the returned fields and the supported providers, which matters because there is no output schema. It does not mention auth requirements or rate limits, so it is good rather than exhaustive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, front-loaded with the core action and returns, followed by provider scope and the follow-up tool. No filler, no restatement of the title, and each sentence introduces distinct information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and five parameters, the description helpfully compensates by describing return values and the downstream wp_upload_media step. The remaining gaps (pagination behavior, whether results are deduplicated across providers) are minor given the schema already documents per_page bounds and orientation filters.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so every parameter (query, source, site_id, per_page, orientation) is already documented with examples, defaults, and enums. The description's only parameter-adjacent content is 'Supports Unsplash and Pexels,' which restates the source enum values rather than adding syntax or behavior. Baseline 3 is correct when the schema carries the burden.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Search for free stock photos') and enumerates what it returns (image URLs, preview links, photographer credits, download links). It also scopes the tool to two concrete providers (Unsplash, Pexels), so an agent can distinguish it from the nearby swiftly_photo_gallery sibling without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives a clear follow-on workflow: 'Use wp_upload_media to add a photo to the WordPress media library after finding one you like,' which tells the agent how this tool fits into a sequence. It does not, however, give explicit when-not guidance or explain when to prefer one provider over another, so it stops short of full routing instructions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
swiftly_check_approvalCheck Approval StatusARead-onlyInspect
Check the status of a pending approval. Returns whether the user approved, declined, or if the action has been executed with its result.
| Name | Required | Description | Default |
|---|---|---|---|
| approval_id | Yes | The approval ID returned by swiftly_request_approval |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=true, so the safety profile is covered. The description then adds genuinely useful behavioral context by enumerating the possible states (approved, declined, not yet executed, executed with result), which the annotations do not convey.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences, with purpose front-loaded and the return-value clarification second. Nothing is redundant or padding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description carries the burden of explaining returns and does so adequately for a simple one-parameter lookup, covering the meaningful state outcomes. It could add polling/timing guidance, but nothing essential to invoking it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the single approval_id parameter is already tied to swiftly_request_approval in the schema. The description adds no format, source, or validation detail beyond that, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Check the status of a pending approval') and scopes it to pending approvals, which separates it from request_approval and execute_approved. It stops short of naming those siblings, so the differentiation is implicit rather than explicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: an agent can infer this is the polling call after swiftly_request_approval, but the description never states when to call it versus swiftly_execute_approved or swiftly_decline_action. No prerequisites or exclusions are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
swiftly_check_uploadCheck Upload StatusARead-onlyInspect
Check the status of a pending upload. Returns uploaded file details once complete.
| Name | Required | Description | Default |
|---|---|---|---|
| upload_id | Yes | The upload ID returned by swiftly_request_upload |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=true, so the safety profile is covered. The description adds that results only materialize once the upload completes, but says nothing about what a still-pending response contains, whether polling is required, or any rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, front-loaded with the core action and followed immediately by the return behavior. No filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter read tool with annotations covering the safety profile and no output schema, the description is nearly sufficient, telling the agent what it gets back. It stops short of describing the pending-state response, which an agent polling this endpoint would benefit from knowing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With a single parameter at 100% schema description coverage, the schema already explains that upload_id comes from swiftly_request_upload. The description adds no additional meaning about the identifier's format or lifecycle, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('check the status of a pending upload') and clarifies the outcome ('returns uploaded file details once complete'). It does not explicitly distinguish itself from the closely related siblings swiftly_request_upload, swiftly_process_upload, or swiftly_check_approval, 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied by the word 'pending' – an agent can infer this is a polling call after swiftly_request_upload, but the description never says when to call it, how often, or how it relates to swiftly_process_upload.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
swiftly_command_centerCommand CenterARead-onlyInspect
Open the SwiftlyMCP Command Center — an interactive dashboard for all connected WordPress sites. Returns site health scores (good/acceptable/critical), pending plugin and theme updates with version numbers, WordPress core update status, and detected features (WooCommerce, Yoast, etc.). Use this proactively when the user asks about site status, updates, or health. If the dashboard shows pending updates, offer to run wp_update_plugin or wp_update_theme to apply them.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=true, so the safety profile is covered. The description adds genuine context beyond that: the aggregated cross-site scope and the specific contents returned, which tells the agent this is a broad read-and-recommend tool rather than a mutator. No rate-limit or freshness caveats, hence not 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with what the tool is, then its payload, then when to invoke it and what to do next. Every sentence carries distinct information with no repetition of annotations or schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description carries the burden of describing returns and does so concretely (good/acceptable/critical health scores, version numbers for pending updates, core update status, detected features). Combined with the annotation-covered safety profile and zero parameters, nothing needed to call it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so per the rubric the baseline is 4. No input semantics are needed beyond the empty schema, and the description correctly spends no words on inputs.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Open the SwiftlyMCP Command Center') and immediately qualifies scope as 'an interactive dashboard for all connected WordPress sites', which distinguishes it from per-site siblings like wp_site_health. The enumerated return contents (health scores, pending updates, core status, detected features) make the resource unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says to use it proactively when the user asks about site status, updates, or health, and routes follow-up work to wp_update_plugin/wp_update_theme. It lacks an explicit 'when not to use this' alternative (e.g., for a single site's details use wp_site_health, for plugin inventory use wp_list_plugins), so it falls just short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
swiftly_connect_siteConnect WordPress SiteAIdempotentInspect
Connect a WordPress site. Returns a one-click authorization link — the user clicks it, approves in WordPress admin, and the site is connected automatically. No passwords needed.
| Name | Required | Description | Default |
|---|---|---|---|
| site_url | Yes | The WordPress site URL (e.g. https://example.com) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, idempotentHint=true and openWorldHint=true, but the description adds real value beyond them: it discloses the return value (a one-click authorization link) and the out-of-band flow where the user approves in WordPress admin. This is exactly the kind of behavioral context the structured fields can't convey, though it doesn't address re-connect behavior or link expiry.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two front-loaded sentences with zero waste: the first states the action, the second explains the mechanism and the key benefit. Every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter connect tool with no output schema, the description covers the action, the returned link, and the human-approval step, and annotations carry the safety profile. Minor gaps remain (what happens on re-connect, link lifetime) but nothing essential to invoking it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for the single required site_url parameter, so the schema already documents format and example. The description adds nothing about parameter interpretation; baseline 3 applies when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Connect) and resource (a WordPress site), so an agent can immediately tell it apart from the read-only siblings like swiftly_list_sites. It does not explicitly contrast with swiftly_disconnect_site, but the verb direction makes the distinction obvious.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implies usage by describing the connect flow and noting 'No passwords needed', which hints at why this is preferred over a credentials-based approach. However, it never states when to use this versus siblings or any preconditions (e.g. must the site not already be connected), leaving selection to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
swiftly_decline_actionDecline ActionBInspect
Decline a pending destructive action.
| Name | Required | Description | Default |
|---|---|---|---|
| approval_id | Yes | The approval ID to decline |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare destructiveHint=false and readOnlyHint=false, which is consistent with declining (a state mutation that prevents rather than performs destruction). The description adds the useful qualifier that the target is a 'pending destructive action', clarifying eligibility, but says nothing about reversibility, whether the approval record is deleted, or error behavior on a stale ID. With annotations covering the safety profile, this is adequate but thin.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One short, front-loaded sentence with zero padding — appropriate for a single-parameter tool. It is efficient, though the terseness borders on under-specification rather than economy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter mutation with no output schema, the description gives the minimum needed to call it, but omits what happens after a decline (does the action become permanently rejected, can it be re-requested?) and how it relates to the approval family of tools. Slightly incomplete for a workflow tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% with a single parameter whose meaning ('The approval ID to decline') is fully self-documenting. The description adds no syntax, format, or sourcing detail beyond the schema, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (decline) and resource (a pending destructive action), and the word 'pending' correctly scopes it to actions awaiting approval. It does not distinguish itself from siblings like swiftly_execute_approved beyond the opposite verb, but an agent can still infer the intent.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit guidance on when to use this versus the sibling swiftly_execute_approved, nor any statement of prerequisites (e.g., that the approval must still be pending, or that an approval_id must come from swiftly_request_approval). The agent must infer the workflow entirely from the sibling names.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
swiftly_disconnect_siteDisconnect SiteCDestructiveIdempotentInspect
Disconnect a WordPress site from SwiftlyMCP.
| Name | Required | Description | Default |
|---|---|---|---|
| site_id | Yes | The site ID to disconnect (use swiftly_list_sites to find it) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, idempotentHint=true, openWorldHint=true, and readOnlyHint=false, so the safety profile is fully covered without the description. The description adds no behavioral context of its own — it doesn't say what is removed, whether credentials are revoked, whether site data is preserved, or any auth requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence with no waste and the action front-loaded. It is appropriately sized for a one-parameter tool, though it is arguably too sparse for a destructive operation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive, irreversible-sounding operation with no output schema, the description should clarify consequences (what happens to the site, its data, or stored credentials) and any preconditions. As written, an agent cannot tell what disconnecting actually does.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single site_id parameter is already documented in the schema, including the pointer to swiftly_list_sites. The description adds nothing beyond the schema, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Disconnect') and resource ('a WordPress site from SwiftlyMCP'), which is unambiguous. It does not explicitly contrast with the sibling swiftly_connect_site or mention that it reverses the connection, but the name and verb are clear enough to distinguish it.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this versus alternatives, no prerequisites (e.g., whether the site must be currently connected), and no mention of related tools like swiftly_list_sites or swiftly_connect_site. The agent must infer all of this.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
swiftly_execute_approvedExecute Approved ActionAInspect
Execute a previously approved destructive action. This is called by the approval panel when the user clicks Approve. Pass the approval_id that was returned.
| Name | Required | Description | Default |
|---|---|---|---|
| approval_id | Yes | The approval ID from swiftly_request_approval |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description declares the executed action is 'destructive', while the annotations set destructiveHint=false, giving the agent a materially wrong safety signal before an irreversible operation. The only genuine addition, that this is invoked by the approval panel, is outweighed by the contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences with no filler; the action and its trigger are front-loaded before the parameter instruction. Nothing could be cut without losing information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive, no-output-schema tool, the description covers the trigger and parameter but omits failure modes (expired/consumed/unknown approval_id), what actually happens on success, and any permission expectations. The safety mismatch with annotations compounds the gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the single parameter is already documented as 'The approval ID from swiftly_request_approval'. The description restates that provenance ('the approval_id that was returned') without adding format, expiry, or reuse constraints, so the schema carries the load.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Execute) on a specific resource (a previously approved destructive action) and names the trigger context (called by the approval panel on Approve). This clearly separates it from siblings like swiftly_request_approval, swiftly_check_approval, and swiftly_decline_action.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explains when it fires (approval panel on user clicking Approve) and what to pass, which is useful invocation context. It stops short of explicit when-not-to-use guidance, e.g. that an agent should not call it outside the approved flow or that the ID must be unconsumed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
swiftly_list_sitesList Connected SitesARead-onlyInspect
List all WordPress/WooCommerce sites connected to your SwiftlyMCP session.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=true, so the safety profile is fully covered by structured data. The description adds only the session-scoping constraint; it says nothing about result shape, ordering, or whether the list can be empty.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with zero filler; the resource and scope come first and nothing is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a no-parameter, read-only list tool with annotations covering safety, the definition is nearly sufficient. The one modest gap is that no output schema exists and the description does not indicate what a returned site entry contains (ID, URL, status), which an agent may need for follow-up calls.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so the baseline is 4. There is nothing for the description to clarify beyond confirming that no filtering input is accepted.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (List) and resource (sites) with a scoping qualifier, 'connected to your SwiftlyMCP session', which separates it from site-mutating siblings like swiftly_connect_site and swiftly_disconnect_site. It never explicitly names a sibling, but the resource is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The purpose implies the usage (discover which sites are available before acting on them), but there is no explicit when-to-use statement, no exclusions, and no pointer to alternatives such as wp_get_site_info for details about a single connected site.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
swiftly_photo_galleryPhoto GalleryBInspect
Open a visual photo gallery inline in the chat. Users can browse stock photo thumbnails and click to upload their favorites directly to WordPress. Use this when the user wants to visually browse and choose photos.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Search term for stock photos (e.g. "coffee shop", "mountain landscape") | |
| source | No | Photo source (default: auto) | |
| site_id | No | Site ID to upload photos to | |
| per_page | No | Number of photos to show (default 9, max 12) | |
| orientation | No | Photo orientation filter |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=false, openWorldHint=true, idempotentHint=false and destructiveHint=false. The description usefully adds that this renders an interactive inline component where the user clicks to upload, which explains why it is not a read-only operation. It does not say whether the uploads go through the approval flow implied by the `swiftly_*` approval siblings, nor what the call itself returns.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, zero filler, with the interactive behavior front-loaded ahead of the usage trigger. Slightly more compact routing guidance could have displaced nothing, but nothing is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description should carry the return behavior; it gestures at an inline gallery UI but not at what tool output the agent receives or how the subsequent upload is confirmed. With five parameters and a mutation-adjacent flow, the definition is adequate but leaves the post-browse sequence underspecified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% with 5 well-documented parameters including enums, so the schema carries the parameter burden. The description adds no syntax, default, or format detail beyond the schema — baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource — 'Open a visual photo gallery inline in the chat' — plus the downstream effect of uploading favorites to WordPress. It is clear on its own, but it never distinguishes itself from the sibling `stock_photo_search`, which an agent could easily confuse with this tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Use this when the user wants to visually browse and choose photos' gives an implied trigger condition for the browse-and-pick case. However, it names no alternatives and offers no exclusion criteria against `stock_photo_search`, `swiftly_request_upload`, or `wp_upload_media`, so the routing decision is left partly to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
swiftly_plan_infoPlan InfoARead-onlyInspect
Show the user's current SwiftlyMCP plan, available tools, and upgrade options.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=true, so the safety profile is covered. The description adds that the payload contains plan details, tool availability, and upgrade options, but says nothing about freshness, auth requirements, or formatting.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler; the informational payload is listed immediately and nothing is repeated from structured fields.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter informational tool with annotations carrying the safety profile and no output schema, the description tells the agent what it will get back. Only minor context (e.g., when in a workflow to call it) is absent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, which is the baseline-4 case. There are no argument semantics to explain and the description introduces none.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Show') and concrete resources (current plan, available tools, upgrade options), so the agent knows exactly what it returns. It is the only plan-related tool among the siblings, though the description never explicitly contrasts itself with alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to call this versus other swiftly_* tools, nor any prerequisites or exclusions. Usage is only weakly implied by the name and content.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
swiftly_process_uploadProcess UploadAInspect
Process files from the upload panel and add them to WordPress media library. Called by the upload UI (not by the model). The upload_id comes from swiftly_request_upload. Use wp_upload_media for URL-based uploads without the drag-and-drop panel.
| Name | Required | Description | Default |
|---|---|---|---|
| files | Yes | Files to upload | |
| upload_id | Yes | The upload ID returned by swiftly_request_upload |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=false, openWorldHint=true, destructiveHint=false, covering the safety profile. The description adds valuable context beyond that: the upload_id comes from swiftly_request_upload, and importantly that this tool is UI-called rather than model-called. This sourcing dependency is behaviorally meaningful.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences, front-loaded with the core purpose, then caller constraint, then the alternative. No redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 2-param tool with full schema coverage and no output schema, this covers purpose, caller, provenance of upload_id, and the sibling alternative. The one missing element is what happens on failure or what the return looks like, though no output schema exists to cover return structure.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with clear descriptions for upload_id ('upload ID returned by swiftly_request_upload') and files. The description adds the provenance of upload_id, which the schema already states. Baseline 3 per high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Process files from the upload panel and add them to WordPress media library.' Distinguishes it from wp_upload_media by naming that sibling as the URL-based alternative.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states who calls it ('Called by the upload UI (not by the model)') and names the alternative (wp_upload_media for URL-based uploads). This is unusually clear routing guidance, even telling the agent it should not invoke this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
swiftly_request_approvalRequest ApprovalAInspect
Request user approval before executing a destructive WordPress action. Returns an approval panel where the user can Approve or Decline. If no approval panel is visible to the user, share the approval_url link with them so they can approve in their browser. Do NOT proceed until the user has approved. Use swiftly_check_approval to poll.
| Name | Required | Description | Default |
|---|---|---|---|
| site_id | No | Site ID to target | |
| tool_name | Yes | The tool to execute after approval (e.g. wp_delete_user) | |
| tool_params | Yes | Parameters to pass to the tool | |
| preview_summary | Yes | Human-readable summary of what this action will do |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations cover the safety profile (readOnly=false, openWorld=true, idempotent=false, destructive=false). The description adds context the annotations cannot: that it returns an approval panel with Approve/Decline, that an approval_url fallback exists, and that the caller must block until approval. It does not cover request expiry, auth requirements, or whether re-requesting is safe, so it falls short of 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four short sentences, every one load-bearing, with the core purpose front-loaded and the procedural steps (share link, wait, poll) following in execution order. No filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers the request/share/wait/poll loop thoroughly and explains the return value in the absence of an output schema. It references swiftly_check_approval but never mentions swiftly_execute_approved, leaving the final step of the workflow implicit.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so every parameter (site_id, tool_name, tool_params, preview_summary) is already documented in the schema, including the nested tool_params object. The description adds workflow context around tool_name but no syntax or format detail beyond the schema, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Request user approval before executing a destructive WordPress action') and immediately distinguishes itself from the sibling it hands off to ('Use swiftly_check_approval to poll'). An agent can tell exactly what this tool does and where it sits in the approval workflow.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit when-to-use and how-to-use guidance: call before destructive actions, share the approval_url if no panel is visible, do NOT proceed until approved, and poll with swiftly_check_approval. The blocking constraint and the fallback path are both spelled out, leaving little to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
swiftly_request_uploadUpload MediaAInspect
Open an upload panel inline in the chat where the user can drag-and-drop images and files to upload directly to their WordPress media library.
| Name | Required | Description | Default |
|---|---|---|---|
| site_id | No | Site ID to upload to |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=false, idempotentHint=false, and openWorldHint=true. The description adds meaningful behavior beyond that: it opens an inline chat panel, relies on user drag-and-drop interaction, and sends files directly to the WordPress media library.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence that clearly conveys the tool's action and mechanism. No wasted words, and the key information is presented immediately.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter interactive tool with annotation coverage and no output schema, the description is mostly complete: it explains the panel behavior and destination. The main gap is routing guidance for when to use this versus related upload tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the single site_id parameter is already documented in the schema. The description does not add meaning for site_id or explain what happens when it is omitted, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action (open an upload panel inline in chat) and the outcome (drag-and-drop files to upload directly to WordPress media library). It distinguishes this from purely programmatic uploads by emphasizing the interactive user panel, though it does not explicitly name the alternative sibling tools such as swiftly_process_upload or wp_upload_media.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no explicit when-to-use, when-not-to-use, or alternative tools. It implies usage by describing the panel, but does not help the agent choose between this tool and siblings like swiftly_process_upload or wp_upload_media.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
woo_add_order_noteAdd Order NoteAInspect
Add a note to a WooCommerce order. Notes can be private (admin only) or customer-visible (sent via email).
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Order ID | |
| note | Yes | Note content | |
| site_id | No | Site ID to target (optional if you have only one connected site) | |
| customer_note | No | If true, note is visible to customer and emailed (default: false, private note) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish the safety profile (non-readOnly, non-destructive, non-idempotent, open world), but the description adds real context the annotations don't carry: the private/admin-only vs customer-visible distinction and, critically, that customer notes are emailed. That undisclosed side effect is a genuine behavioral disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, zero waste, and the core action is front-loaded before the privacy/visibility nuance. Nothing to trim.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple mutation tool with no output schema and full schema coverage, the description covers the action and its key side effect (email). The only minor gap is the absence of any note about the response or permission requirements.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all four parameters (including customer_note's default and semantics) are already documented in the schema. The description's privacy/email contrast mirrors the schema's own customer_note documentation, adding no syntax or meaning beyond it. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (add) and resource (note to a WooCommerce order), so an agent knows exactly what it does. It doesn't explicitly distinguish itself from the read-side sibling woo_list_order_notes, but the verb+resource is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance at all: it never says when to add a note versus listing existing ones (woo_list_order_notes), nor mentions prerequisites like which order states warrant a note. The email side effect is described, but that is behavior, not usage routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
woo_create_couponCreate CouponCInspect
Create a new WooCommerce coupon. Supports percentage, fixed cart, and fixed product discounts.
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes | Coupon code (e.g. "SAVE20", "FREESHIP") | |
| amount | Yes | Discount amount (percentage or fixed amount) | |
| site_id | No | Site ID to target (optional if you have only one connected site) | |
| description | No | Coupon description (internal use) | |
| product_ids | No | Limit to specific product IDs | |
| usage_limit | No | Total usage limit (null = unlimited) | |
| date_expires | No | Expiry date (ISO 8601, e.g. "2025-12-31") | |
| discount_type | Yes | Type of discount | |
| free_shipping | No | If true, grants free shipping | |
| individual_use | No | If true, cannot be used with other coupons | |
| maximum_amount | No | Maximum order amount allowed | |
| minimum_amount | No | Minimum order amount required | |
| email_restrictions | No | Limit to specific customer emails | |
| product_categories | No | Limit to specific category IDs | |
| excluded_product_ids | No | Exclude specific product IDs | |
| usage_limit_per_user | No | Usage limit per customer | |
| excluded_product_categories | No | Exclude specific category IDs |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, idempotentHint=false, openWorldHint=true and destructiveHint=false, so the mutation/write nature is covered. The description adds nothing beyond that: no mention of duplicate-code failure behavior, permission scoping, or side effects. Its second sentence merely restates the discount_type enum already present in the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short, front-loaded sentences with no padding. The second sentence is somewhat redundant with the discount_type enum, which slightly dilutes the value of the length rather than wasting space.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 17-parameter mutation tool with no output schema, this is very thin. It never explains how the required trio (code, discount_type, amount) interact, that amount semantics change with discount_type, or which optional fields are commonly paired, leaving the agent to reconstruct behavior from the schema alone.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% across all 17 parameters, so the schema already documents every field. The description adds no interpretation beyond the schema, which is the baseline 3 under these conditions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: "Create a new WooCommerce coupon." The word "new" implicitly separates it from woo_update_coupon, woo_get_coupon and woo_list_coupons, but no sibling is named explicitly, so it falls just short of the top band.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use or when-not-to-use guidance, no prerequisites (e.g. that a code must be unique, or that site_id is optional for single-site installs), and no pointer to the update alternative for existin coupons. Usage is only inferable from the tool name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
woo_create_productCreate ProductBInspect
Create a new WooCommerce product. Supports simple, variable, grouped, and external product types. Products default to draft status.
| Name | Required | Description | Default |
|---|---|---|---|
| sku | No | Product SKU | |
| name | Yes | Product name | |
| tags | No | Product tags | |
| type | No | Product type (default: simple) | |
| images | No | Product images [{src: "url"}] (max 20) | |
| status | No | Status (defaults to draft) | |
| weight | No | Product weight | |
| site_id | No | Site ID to target (optional if you have only one connected site) | |
| virtual | No | Is virtual product | |
| categories | No | Product categories [{id: 1}, {id: 2}] | |
| sale_price | No | Sale price | |
| description | No | Product full description (HTML supported) | |
| downloadable | No | Is downloadable product | |
| manage_stock | No | Enable stock management | |
| regular_price | No | Regular price | |
| stock_quantity | No | Stock quantity | |
| short_description | No | Product short description |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the write/safety profile (readOnlyHint=false, destructiveHint=false, idempotentHint=false, openWorldHint=true), so the bar is lower. The description adds one genuinely useful behavioral fact beyond annotations: products default to draft status, plus the supported type set. It omits whether the call is reversible, permission requirements, or what happens on duplicate SKU.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short, front-loaded sentences with no filler. The most decision-relevant fact (what it creates) leads, followed by supported types and the default status.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 17-parameter mutation tool with no output schema, the description covers creation, supported types, and default status, but is silent on the required 'name' field, the site_id targeting parameter, and what the response returns (e.g., new product ID). Annotations carry the safety profile, so this is adequate but with clear gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% across all 17 parameters, so the schema fully documents names, enums, and formats. The description adds only the draft-default and type-set context, which duplicates the enum descriptions rather than extending them; the baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Create a new WooCommerce product') and enumerates the supported product types, which is concrete. It does not explicitly differentiate from siblings like woo_update_product or woo_create_product_category, but the verb+resource make the intent unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no when-to-use guidance, no prerequisites, and does not name alternatives such as woo_update_product for existing products. Only the default draft status hints at usage, so the agent must infer when this tool applies.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
woo_create_product_categoryCreate Product CategoryCInspect
Create a new WooCommerce product category.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Category name | |
| slug | No | URL slug | |
| image | No | Category image | |
| parent | No | Parent category ID | |
| site_id | No | Site ID to target (optional if you have only one connected site) | |
| description | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the safety profile (write, open-world, not idempotent, not destructive), so the description could have used its space for behavior it alone can convey. It adds nothing about duplicate handling, required permissions, or what happens when the same category name is submitted twice despite idempotentHint=false.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single efficient sentence with the verb and resource front-loaded and no filler. It is arguably too terse for a 6-parameter mutation tool, but nothing in the sentence is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a write tool with no output schema, the description omits what is returned, whether the created category can be re-fetched, and how site_id affects targeting. Neither the schema nor the annotations fill those gaps, so an agent is left guessing about post-call behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 83%, so the schema already documents name, slug, image, parent, site_id, and description. The description supplies no additional parameter meaning, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Create) and resource (WooCommerce product category), so the agent knows exactly what is created. It does not distinguish itself from the sibling wp_create_category, which creates WordPress core categories, leaving the agent to infer the WooCommerce-specific scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this versus wp_create_category or how it relates to woo_list_product_categories. There is no mention of prerequisites such as needing a connected site or whether the category must be unique.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
woo_get_couponGet CouponBRead-onlyInspect
Get detailed information about a specific WooCommerce coupon.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Coupon ID | |
| site_id | No | Site ID to target (optional if you have only one connected site) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=true, so the safety profile is fully covered structurally. The description adds nothing beyond that — no note on what happens with an invalid or missing coupon ID, no auth/scope requirements, and no return-shape context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with zero waste and the resource identified immediately. It is efficient, though arguably so terse that it leaves useful routing and behavioral information unstated.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple single-record read with full schema coverage, no output schema, and annotations carrying the safety profile, the description is adequate — the agent has everything needed to invoke it. Only the absence of sibling routing keeps it from being fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%: 'id' is documented as 'Coupon ID' with an exclusiveMinimum constraint, and 'site_id' explains the multi-site targeting case. The description adds no format or syntax detail beyond the schema, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Get) and resource (WooCommerce coupon) with the qualifier 'specific' implying a single record. It is clear against woo_list_coupons by implication, but never names the sibling or explicitly contrasts single vs. list retrieval.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no prerequisites, and no mention of the alternative (woo_list_coupons) or when this is preferred over it. The agent must infer the single-record use case entirely from the name and 'specific'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
woo_get_customerGet CustomerARead-onlyInspect
Get detailed WooCommerce customer info by ID. Returns name, email, billing/shipping address, total orders, total spent, and avatar URL.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Customer ID | |
| site_id | No | Site ID to target (optional if you have only one connected site) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint, destructiveHint, and openWorldHint, so the safety profile is covered. The description adds meaningful behavioral value by enumerating the returned fields (name, email, billing/shipping address, total orders, total spent, avatar URL), which is important given the absence of an output schema. It stops short of describing auth requirements or error behavior, so a 4 is appropriate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences with zero filler. The core purpose is front-loaded, and the return fields are listed efficiently without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter read operation with full schema coverage and rich annotations, the description is nearly complete. It compensates for the missing output schema by naming the returned fields, though it could mention error handling for invalid IDs to be fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so both parameters (id and site_id) are fully documented in the schema. The description reinforces that lookup is by ID but adds no syntax, format, or constraint details beyond what the schema already provides, yielding the baseline 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('Get detailed WooCommerce customer info') and scopes it by ID, distinguishing it from the sibling list tool woo_list_customers. An agent can immediately tell this is a single-record lookup rather than a list operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'by ID' implies the tool should be used when a specific customer ID is known, but the description does not explicitly state when to prefer this over woo_list_customers or what to do if the ID is unknown. Usage is implied rather than spelled out.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
woo_get_orderGet OrderARead-onlyInspect
Get full details of a WooCommerce order by ID. Returns line items, billing/shipping address, payment method, order notes, totals, and customer info.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Order ID | |
| site_id | No | Site ID to target (optional if you have only one connected site) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=true, so the safety profile is covered. The description adds genuinely useful behavior context by disclosing the shape of the payload (line items, addresses, payment method, notes, totals, customer info), which matters because there is no output schema. It stops short of mentioning error behavior for invalid IDs.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, zero filler, with the core purpose front-loaded and the return inventory as a compact appendix. Every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple, two-parameter read tool with full annotation coverage, the description supplies everything needed to invoke it, and notably compensates for the absent output schema by listing returned fields. The only gap is the absence of any note about failure/not-found behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%: 'id' (Order ID) and 'site_id' (with multi-site guidance) are fully documented in the schema. The description only reinforces the ID lookup, adding no syntax, range, or multi-site semantics beyond the structured fields, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Get full details of a WooCommerce order') with an explicit scope ('by ID') that separates it from woo_list_orders, and enumerates exactly what the payload contains. An agent can identify the tool 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The 'by ID' scoping implies the tool is used when a specific order identifier is known, which implicitly contrasts with the listing tools, but there is no explicit when-to-use/when-not statement or named alternative (e.g. woo_list_orders for browsing). Usage is inferred rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
woo_get_productGet ProductBRead-onlyInspect
Get full details of a WooCommerce product by ID. Returns name, price, regular_price, sale_price, stock_quantity, stock_status, description, short_description, categories, images, attributes, and variations.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Product ID | |
| site_id | No | Site ID to target (optional if you have only one connected site) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=true, so the safety profile is covered. The description adds value by enumerating the returned fields, but says nothing about behavior on a nonexistent ID, pagination of variations, or how the open-world site targeting works.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, purpose front-loaded and the return-value inventory following. The field list is long but each item is informative and there is no filler prose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, but the description compensates by enumerating the returned product fields, and the annotations cover the safety profile. For a single-ID read tool this is largely sufficient, though the site_id targeting behavior is left unexplained.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, with both id and site_id fully documented in the schema, so the baseline is 3. The phrase 'by ID' only restates the schema and adds no syntax, format, or constraint detail beyond what is already structured.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Get) and resource (WooCommerce product) with the lookup key (by ID), which implicitly separates it from the browsing sibling woo_list_products. It does not explicitly name any sibling, so routing relies on inference rather than a stated contrast.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description never says when to use this versus woo_list_products, woo_get_order, or woo_list_variations, nor does it state any prerequisite such as needing a valid product ID from a prior listing call. Usage context is entirely absent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
woo_list_couponsList CouponsCRead-onlyInspect
List WooCommerce coupons with optional filters.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number for pagination | |
| search | No | Search by coupon code | |
| site_id | No | Site ID to target (optional if you have only one connected site) | |
| per_page | No | Number to return (default 20, max 100) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=true, so the safety profile is covered. The description adds nothing beyond that — no pagination behavior, no result volume expectations, no note about how site_id affects targeting. With annotations carrying the burden, no added context earns only a low score.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single efficient sentence with the core action front-loaded and no filler. It is well-sized, though the terseness leaves no room for the routing and pagination context that would help.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 4-param, zero-required list tool with full schema coverage and safety annotations, the minimum is met. Missing pieces are moderate: no indication that results are paginated across pages, no output/return shape, and no guidance on when to prefer it over woo_get_coupon.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%: page, search, site_id and per_page are all documented in the schema with defaults and bounds. The description's generic 'optional filters' adds no syntax or semantics beyond what the schema already provides, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('List WooCommerce coupons') that is clearly distinguishable from write siblings like woo_create_coupon and woo_update_coupon. However, it never contrasts itself with woo_get_coupon (single coupon retrieval), so sibling differentiation is only implicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'with optional filters' hints at scope but gives no when-to-use guidance, no prerequisites, and never names alternatives such as woo_get_coupon for a single coupon or woo_create_coupon/woo_update_coupon for writes. The agent must infer routing from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
woo_list_customersList CustomersBRead-onlyInspect
List WooCommerce customers with filters. Returns name, email, total orders, total spent, and registration date.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number | |
| role | No | User role filter | |
| order | No | ||
| search | No | Search by name or email | |
| orderby | No | ||
| site_id | No | Site ID to target (optional if you have only one connected site) | |
| per_page | No | Number to return (default 20, max 100) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already carry the safety profile (readOnlyHint=true, destructiveHint=false, openWorldHint=true), so the bar is lower. The description adds useful behavioral context by enumerating the returned customer fields, but says nothing about pagination behavior, total-count semantics, or result limits for a listing tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences with no filler; the operation is front-loaded and the return-value sentence earns its place given there is no output schema. Slightly under-detailed rather than verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description compensates by listing the key return fields, and the annotations cover safety. Gaps remain around pagination defaults (default 20 / max 100) and whether results are scoped to the targeted site_id, but the essentials for calling the tool are present.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 71%, so most parameters are self-documented (page, per_page, search, role, site_id) while order and orderby are bare enums. The description's generic "with filters" adds essentially nothing beyond the schema, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ("List WooCommerce customers") and names the domain, which separates it from the generic wp_list_users sibling. However it never explicitly contrasts itself with the singular woo_get_customer or with wp_list_users, so sibling differentiation is only implicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
"with filters" hints at bulk/query use but gives no when-to-use conditions, no exclusions, and no routing to alternatives such as woo_get_customer for a single customer or wp_list_users for non-WooCommerce users. The agent must infer usage from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
woo_list_order_notesList Order NotesARead-onlyInspect
List all notes on a WooCommerce order. Returns both private admin notes and customer-visible notes with author and date.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Order ID | |
| site_id | No | Site ID to target (optional if you have only one connected site) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds value beyond that by disclosing the return content — that both private admin notes and customer-visible notes are included, along with author and date — which is important since there is no output schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences with zero filler; the core action is front-loaded and the return-content detail follows as supporting context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only list tool with annotations covering safety and no output schema, the description supplies the essential return-content context. It omits pagination behavior and whether private notes require elevated capability, which would be the only meaningful additions.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and both parameters (id, site_id) are documented in the schema. The description adds no syntax, format, or constraint detail beyond what the schema already provides, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ("List all notes on a WooCommerce order"), which is unambiguous and immediately distinguishable from the sibling woo_add_order_note. An agent knows exactly what it retrieves 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the name and description (fetch notes for a given order), but there is no explicit when-to-use guidance, no mention of alternatives such as woo_get_order or woo_add_order_note, and no stated prerequisites. Adequate but leaves routing to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
woo_list_ordersList OrdersBRead-onlyInspect
List WooCommerce orders with filters. Returns order number, status, total, customer details, line items, and dates.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number | |
| after | No | Orders after this date (ISO 8601 format) | |
| order | No | ||
| before | No | Orders before this date (ISO 8601 format) | |
| search | No | Search term (order number, billing email, etc.) | |
| status | No | Order status filter | |
| orderby | No | ||
| site_id | No | Site ID to target (optional if you have only one connected site) | |
| customer | No | Customer user ID | |
| per_page | No | Number to return (default 20, max 100) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=true, so the safety profile is covered. The description adds real value by enumerating returned fields (status, total, customer details, line items, dates), which matters since there is no output schema. It says nothing about pagination behavior, default page size, or site targeting.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences with zero waste, front-loading purpose before return content. Slightly terse for a 10-parameter tool, but nothing is padded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The return-field list compensates somewhat for the missing output schema, but for a 10-parameter, zero-required tool there is no mention of default pagination (per_page 20, max 100), how the optional site_id selects among connected sites, or date-range semantics. Adequate but incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 80%, so the schema already documents most parameters. The description says only 'with filters' and adds no format, default, or interaction details beyond what the schema provides. Baseline 3 applies when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('List WooCommerce orders') plus a scope qualifier ('with filters'). It is clearly distinguishable from woo_get_order, though it does not explicitly name that sibling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this listing tool versus woo_get_order, woo_list_refunds, or the report tools. The word 'filters' hints at usage but never says when filtering is appropriate or what the alternatives are.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
woo_list_product_categoriesList Product CategoriesBRead-onlyInspect
List WooCommerce product categories with hierarchy, count, and images.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number for pagination | |
| parent | No | Filter by parent category ID (0 for top-level) | |
| search | No | Search term | |
| site_id | No | Site ID to target (optional if you have only one connected site) | |
| per_page | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, openWorldHint=true and destructiveHint=false, so the safety profile is covered structurally. The description adds that hierarchy, count and images are returned, which is modest extra context, but says nothing about pagination defaults, ordering, or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with zero filler. Nothing is repeated from the title and no sentence fails to earn its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only list tool with rich annotations and no output schema, the description is adequate but thin: it omits pagination behavior, default ordering, and whether hierarchy is returned nested or flat, which matter for a category listing with a parent filter.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 80%, so the schema documents page, parent, search and site_id itself; per_page is the only undocumented field. The description adds no parameter-level semantics beyond the schema, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('List WooCommerce product categories') and names the data returned (hierarchy, count, images). The 'product' qualifier distinguishes it from the core wp_list_categories and the verb distinguishes it from woo_create_product_category, though neither sibling is named explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this versus wp_list_categories or woo_create_product_category, and no mention of pagination or filtering workflows. The agent must infer usage entirely from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
woo_list_productsList ProductsARead-onlyInspect
List WooCommerce products with filters. Returns name, price, stock status, categories, and images for each product. Only published products by default.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number | |
| type | No | Product type | |
| order | No | ||
| search | No | Search term | |
| status | No | Product status (default: publish) | |
| on_sale | No | Filter to only products on sale | |
| orderby | No | ||
| site_id | No | Site ID to target (optional if you have only one connected site) | |
| category | No | Product category ID | |
| featured | No | Filter to only featured products | |
| per_page | No | Number to return (default 20, max 100) | |
| max_price | No | Maximum price | |
| min_price | No | Minimum price | |
| stock_status | No | Stock status filter |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With readOnlyHint/destructiveHint already covering the safety profile, the description adds real value: it names the returned fields (name, price, stock status, categories, images) and the important default that only published products are returned, implying other statuses need an explicit filter. It does not cover pagination limits or site-scoping behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences with the operation and scope front-loaded and the return contents immediately following. No filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 14-parameter read tool with no output schema, the description usefully substitutes for one by listing returned fields, and discloses the published-only default. It stops short of explaining pagination semantics or multi-site behavior, which for a filter-heavy listing tool would be the next useful detail.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 86%, so the schema already documents nearly all 14 parameters (including defaults for per_page and status). The description adds no parameter syntax or format detail beyond restating that filters exist and that status defaults to publish, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('List WooCommerce products with filters') and the scoping default ('Only published products by default'). It is clear what it does, but it does not differentiate itself from nearby siblings such as woo_list_variations or woo_get_product, which also deal with product data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage (list/filter products) and discloses the default status filter, which is helpful context. However, it never states when to prefer this over woo_get_product (single product), woo_list_variations, or woo_list_product_categories, so alternatives are left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
woo_list_refundsList RefundsBRead-onlyInspect
List all refunds for a WooCommerce order. Returns refund amounts, reasons, line items, and dates.
| Name | Required | Description | Default |
|---|---|---|---|
| site_id | No | Site ID to target (optional if you have only one connected site) | |
| order_id | Yes | Order ID to list refunds for |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=true, so the safety profile is covered. The description adds which fields come back (amounts, reasons, line items, dates), which substitutes for the missing output schema, but says nothing about pagination, ordering, or empty-result behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences, zero filler, with the resource and scope front-loaded in the first sentence and the return contents in the second. Every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter read tool with full schema coverage and annotations covering safety, the main gap is the absence of an output schema, which the description partly compensates for by enumerating returned fields. Missing only pagination/volume expectations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%: site_id and order_id are both documented in the schema, including the optionality of site_id and the exclusiveMinimum on order_id. The description adds no parameter-level meaning beyond that, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (List) and resource (refunds) scoped to a WooCommerce order, which distinguishes it from sibling woo_list_orders and woo_list_order_notes. It does not, however, explicitly contrast itself with those siblings, so an agent must infer the boundary.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use or when-not-to-use guidance. The description never says whether to reach for this instead of woo_get_order (which may also expose refund data) or what preconditions exist beyond the required order_id.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
woo_list_variationsList VariationsARead-onlyInspect
List all variations of a variable product. Returns prices, stock, and attributes for each variation.
| Name | Required | Description | Default |
|---|---|---|---|
| site_id | No | Site ID to target (optional if you have only one connected site) | |
| product_id | Yes | The variable product ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so safety is covered structurally. The description goes beyond that by disclosing the return payload contents (prices, stock, attributes per variation), which is meaningful since no output schema exists.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, zero filler, with the core action front-loaded and the return payload immediately after. Nothing needs trimming or reordering.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only two-parameter list tool with full schema coverage and safety annotations, the description is nearly sufficient, and the mention of returned fields compensates for the absent output schema. Pagination or result-size behavior is the only notable omission.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both product_id and site_id are already documented in the schema. The description adds no format, constraint, or ID-sourcing detail beyond what the schema provides, which is the expected baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a specific verb (List) and resource (variations of a variable product), which is narrower and more precise than the generic list siblings. It does not explicitly distinguish itself from woo_list_products or woo_get_product, so an agent must infer the boundary from the 'variable product' qualifier.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use, prerequisites, or alternatives are given. The description never says to call this only for products with type=variable, nor does it point to woo_get_product or woo_list_products for the non-variation cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
woo_low_stock_reportLow Stock ReportARead-onlyInspect
Get WooCommerce products that are low in stock, out of stock, or on backorder. Checks stock at the variation level for variable products. Only includes published products (drafts are excluded by WooCommerce Analytics).
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | Filter: "lowstock" (default) — items at or below the WooCommerce low-stock threshold, "outofstock", or "onbackorder" | |
| site_id | No | Site ID to target (optional if you have only one connected site) | |
| per_page | No | Number to return (max 100) | |
| stock_status | No | Deprecated alias for "type". Use "type" instead. "instock" is mapped to "lowstock". |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnlyHint=true, destructiveHint=false, openWorldHint=true), so the description is free to add result-shaping behavior: variation-level stock evaluation for variable products, and the exclusion of drafts because WooCommerce Analytics only covers published products. That is genuine context beyond the annotations, though pagination/return shape is still unmentioned.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences with no filler: purpose first, then the variation-level nuance, then the published-only caveat. Every sentence earns its place and the most important information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description still gives an agent enough to call it correctly and anticipate the result set (stock-status products, variation-aware, published only). It stops short of describing returned fields or ordering, a minor gap for a read-only listing tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so every parameter (type, site_id, per_page, stock_status) is already documented in the schema, including the deprecated stock_status alias and the 100-item cap. The description adds nothing parameter-specific, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Get WooCommerce products') plus the exact narrowing condition ('low in stock, out of stock, or on backorder'), which cleanly separates it from generic siblings like woo_list_products or woo_sales_report. An agent can identify the tool's output set 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to reach for it (when you need inventory-at-risk items) and the three status buckets map to the type enum, but it never states when NOT to use it or names an alternative such as woo_list_products for full catalogs. Usage is inferable rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
woo_sales_reportSales ReportBRead-onlyInspect
Get WooCommerce sales summary for a given period. Returns total sales, net sales, total orders, total items sold, total shipping, total refunds, and total discount.
| Name | Required | Description | Default |
|---|---|---|---|
| period | No | Report period (default: month) | |
| site_id | No | Site ID to target (optional if you have only one connected site) | |
| date_max | No | End date (YYYY-MM-DD) for custom range | |
| date_min | No | Start date (YYYY-MM-DD) for custom range |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=true, so the safety profile is covered. The description adds genuine value by enumerating the returned metrics, which matters because there is no output schema, but it says nothing about custom-range behavior or whether metrics are scoped to the site_id.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, zero filler, and the purpose sentence is front-loaded ahead of the return-value enumeration. Every clause carries information an agent can act on.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, enumerating the returned metrics is the right compensation, and the annotations carry the safety profile. The remaining gap is the unexplained interaction between the period enum and the custom date_min/date_max range, which the description never addresses.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all four parameters (period enum, site_id, date_min, date_max) are already documented in the schema. The description's phrase 'for a given period' adds no syntax or format detail beyond what the schema provides, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Get WooCommerce sales summary') plus the scoping dimension ('for a given period'), which is enough to tell it apart from the only other report sibling, woo_low_stock_report. It does not explicitly name or contrast with that sibling, 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance: nothing tells the agent when a sales summary is the right call versus woo_low_stock_report, nor how to choose between the period enum and a custom date_min/date_max range. The period default of 'month' is only disclosed in the schema, not the description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
woo_trash_productTrash ProductADestructiveInspect
Move a WooCommerce product to trash. Use dry_run=true to preview.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Product ID to trash | |
| dry_run | No | If true, preview without trashing | |
| site_id | No | Site ID to target (optional if you have only one connected site) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and readOnlyHint=false, so safety is covered by structured data. The description adds the dry_run preview affordance, which is genuinely useful, but says nothing about reversibility, trashing vs permanent deletion, or permission requirements. Modest value above annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short, front-loaded sentences with zero filler. Slightly terse for a destructive operation but nothing is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
A destructive mutation tool with no output schema, no annotations covering reversibility, and no statement about what trashing actually does to the product (recoverable? hidden from storefront?). The description is too thin for the risk level.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and each parameter carries its own description, so the schema does the heavy lifting. The description's dry_run mention duplicates the schema's 'preview without trashing' without adding format or constraint detail. Baseline 3 is correct.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb (trash) plus specific resource (WooCommerce product), neatly distinguished from siblings like woo_update_product (edit) and wp_trash_post (different resource). An agent can pick this out immediately.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The dry_run preview hint gives a sliver of usage context, but there is no guidance on when to trash vs delete, or when dry_run is worth invoking. Implied usage only.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
woo_update_couponUpdate CouponCIdempotentInspect
Update an existing WooCommerce coupon.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Coupon ID to update | |
| code | No | New coupon code | |
| amount | No | New discount amount | |
| site_id | No | Site ID to target (optional if you have only one connected site) | |
| description | No | New description | |
| usage_limit | No | Total usage limit | |
| date_expires | No | New expiry date (ISO 8601) or null to remove | |
| discount_type | No | New discount type | |
| free_shipping | No | Grant free shipping | |
| individual_use | No | Cannot be used with other coupons | |
| maximum_amount | No | Maximum order amount | |
| minimum_amount | No | Minimum order amount | |
| usage_limit_per_user | No | Per-customer usage limit |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare idempotentHint=true, destructiveHint=false, and readOnlyHint=false, so the safety profile is covered by structured data. The description adds nothing beyond this - it doesn't explain partial-update semantics (that all fields except 'id' are optional and only supplied fields change), nor what happens on an unknown ID. With a mutation tool touching 13 fields, richer disclosure would be warranted.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The single sentence has zero waste and is front-loaded, which is good. But it is undersized relative to the tool's complexity (13 parameters, no output schema), so 'appropriately sized' is only partially met.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with 13 parameters and no output schema, the description omits essential context: whether this is a partial or full update, what the response contains, and how errors (e.g., invalid coupon ID) surface. Annotations cover only the safety profile, leaving meaningful gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so every parameter is already documented in the input schema, including the ISO 8601 expiry format and the enum for discount_type. The description provides no additional parameter meaning, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb ('Update') and resource ('WooCommerce coupon'), which is immediately understandable. However, it does nothing to differentiate this tool from its close siblings woo_create_coupon, woo_get_coupon, and woo_list_coupons beyond the name itself.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus woo_create_coupon or woo_get_coupon, no mention of prerequisites (e.g., the coupon must already exist), and no exclusions. The agent must infer everything from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
woo_update_order_statusUpdate Order StatusAIdempotentInspect
Update the status of a WooCommerce order. Common transitions: pending→processing, processing→completed, any→on-hold, any→cancelled. For updating other order fields, use woo_update_order.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Order ID | |
| status | Yes | New order status | |
| site_id | No | Site ID to target (optional if you have only one connected site) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare non-readOnly, idempotent, and non-destructive, so the safety profile is covered. The description adds real behavioral value by enumerating valid state transitions, which tells the agent the legal state machine. It does not, however, restate the idempotency implication (re-applying the same status is a no-op) that the annotation implies.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences, front-loaded with the core action and immediately followed by the domain-specific transition guidance and the sibling routing note. No filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no output schema, the description plus annotations cover scope, valid transitions, and the alternative tool, which is sufficient to invoke correctly. The only minor gap is that it references a 'woo_update_order' tool that does not appear in the sibling list, a potential routing ambiguity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% so the baseline is 3, and the description goes beyond the schema's bare enum by specifying which status transitions are common, adding semantic guidance about the 'status' argument. It does not clarify the optional 'site_id' targeting, but the schema already documents it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Update the status of a WooCommerce order') and explicitly carves out what it does not cover by routing to 'woo_update_order' for other fields. An agent can distinguish this status-only tool from a general order update 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides concrete when-to-use context via the common transition list (pending→processing, processing→completed, any→on-hold, any→cancelled) and names the alternative tool for the out-of-scope case. Both the use case and the exclusion are explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
woo_update_productUpdate ProductBIdempotentInspect
Update an existing WooCommerce product. Only provide the fields you want to change.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Product ID to update | |
| sku | No | ||
| name | No | Product name | |
| status | No | ||
| site_id | No | Site ID to target (optional if you have only one connected site) | |
| featured | No | ||
| categories | No | ||
| sale_price | No | Sale price (empty string to remove) | |
| description | No | Product description | |
| manage_stock | No | ||
| stock_status | No | ||
| regular_price | No | Regular price | |
| stock_quantity | No | ||
| short_description | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=false, idempotentHint=true and openWorldHint=true, so the agent knows this is a safe, repeatable write. The description adds the partial-update contract (only send changed fields), but does not disclose side effects such as stock/price recalculation or what an omitted field leaves untouched.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, front-loaded with the core action and followed immediately by the key usage constraint. No filler or repetition of the title.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 14-parameter mutation tool with no output schema, the description covers the essential patch contract and safety is supplied by annotations. It is still thin on side effects and on the many undocumented parameters, but an agent has enough to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 43% across 14 parameters; fields like sku, status, featured, categories, manage_stock, stock_status and stock_quantity carry no schema description. The description adds nothing about these parameters (e.g. price formats, category ID resolution, stock interaction rules), so it fails to compensate for the coverage gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Update) and resource (an existing WooCommerce product), which distinguishes it from the sibling woo_create_product. It does not, however, distinguish it from woo_update_variation or explain how it relates to product variations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The sentence 'Only provide the fields you want to change' gives useful patch-style usage guidance for this tool, but there is no explicit when-to-use versus alternatives such as woo_update_variation, and no mention of prerequisites like required permissions or ID validity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
woo_update_variationUpdate VariationCIdempotentInspect
Update a specific variation of a variable product.
| Name | Required | Description | Default |
|---|---|---|---|
| status | No | ||
| site_id | No | Site ID to target (optional if you have only one connected site) | |
| product_id | Yes | The parent product ID | |
| sale_price | No | ||
| manage_stock | No | Enable stock management for this variation | |
| stock_status | No | ||
| variation_id | Yes | The variation ID | |
| regular_price | No | ||
| stock_quantity | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the safety profile (readOnlyHint=false, destructiveHint=false, idempotentHint=true), so idempotency and non-destructiveness are covered structurally. The description adds nothing beyond them: no statement of which fields are mutable, what happens to omitted fields, permission/auth needs, or rate limits for a 9-parameter mutation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no wasted words, but the brevity reflects under-specification rather than disciplined conciseness. It is appropriately sized only in the sense that it cannot be shortened further.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with 9 parameters, low schema coverage, and no output schema, the description is far too thin. It omits what can be updated, any constraints or side effects, and any routing to sibling variation/product tools, leaving substantial gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 44%, so the description is expected to compensate, but it names no parameters at all. Fields like sale_price, regular_price, stock_status, and status (two of them enums) are left entirely to the schema, and the description does not explain their interaction or intent.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (update) and a scoped resource (a specific variation of a variable product), which is clearer than the bare title. However, it does nothing to distinguish it from siblings like woo_update_product or woo_list_variations, so an agent must infer the boundary from context alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no indication of when to use this tool versus alternatives, no prerequisites (e.g., need for a parent product ID), and no mention of related sibling tools. Usage is only implied by the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wp_activate_pluginActivate PluginADestructiveInspect
Activate an installed WordPress plugin. Use wp_list_plugins first to find the plugin slug. Use dry_run=true to preview.
| Name | Required | Description | Default |
|---|---|---|---|
| plugin | Yes | Plugin slug (e.g. "woocommerce/woocommerce" or "akismet/akismet") | |
| dry_run | No | If true, shows what would happen without activating | |
| site_id | No | Site ID to target (optional if you have only one connected site) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, idempotentHint=false, readOnlyHint=false and openWorldHint=true, so the risk profile is covered structurally. The description adds the useful dry_run preview route, but says nothing about the concrete consequence of activating (site front-end impact, possible fatal errors, effect on an already-active plugin), so it adds only modest context beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences with zero filler: the action is front-loaded, followed by the prerequisite and the safe-preview hint. Nothing repeats itself or could be cut without losing information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with full annotation coverage, a fully described schema, and no output schema, the description supplies the action, the discovery prerequisite, and a dry-run escape hatch. The remaining gap is behavioral detail about side effects on the live site, which an agent would need before acting.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and all three parameters are documented in the schema, so baseline is 3. The description's only parameter reference ('dry_run=true to preview') restates the schema's own wording for dry_run and adds no format, default, or constraint information for plugin or site_id.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Activate an installed WordPress plugin'), and the qualifier 'installed' implicitly separates it from wp_install_plugin. However, it never names the natural sibling pair (wp_deactivate_plugin) or restates the distinction, so sibling differentiation is by inference from the name rather than from the text.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a concrete prerequisite workflow ('Use wp_list_plugins first to find the plugin slug') and a safe alternative path ('Use dry_run=true to preview'). It does not state when *not* to use the tool, e.g. that it should not be used on an already-active plugin, so it stops short of explicit when/when-not guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wp_activate_themeActivate ThemeADestructiveInspect
Safely activate a WordPress theme with automatic health check. After switching, the site's front page is fetched to verify it loads correctly. If a fatal error, white screen, or HTTP 500 is detected, the previous theme is restored automatically within seconds. The user's site is never left broken. Use wp_get_theme_preview_url first to let the user preview before activating.
| Name | Required | Description | Default |
|---|---|---|---|
| site_id | No | Site ID to target (optional if you have only one connected site) | |
| stylesheet | Yes | Theme slug to activate (e.g. "my-child-theme") |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds rich behavioral context beyond the annotations: it explains the health-check mechanism (fetch the front page), the specific failure triggers (fatal error, white screen, HTTP 500), and the automatic rollback to the previous theme. This meaningfully elaborates on the destructiveHint=true annotation by showing the safety net that mitigates it.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Core action and safety behavior are front-loaded, followed by the preview recommendation, in four tight sentences. Slightly verbose with a rhetorical flourish ('never left broken'), but nearly every sentence carries actionable information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive mutation tool with no output schema, the description is complete: it covers what happens on success and failure, the rollback guarantee, and the recommended preceding step. Nothing an agent needs to invoke it safely is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both the site_id and stylesheet parameters are fully documented in the schema. The description adds no additional syntax or format detail beyond the schema, which is the expected baseline when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (activate) and resource (WordPress theme) and immediately distinguishes itself from siblings like wp_install_theme and wp_update_theme by highlighting the automatic health check. An agent can tell exactly what this tool does and how it differs from installing or updating a theme.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly recommends running wp_get_theme_preview_url first so the user can preview before activating, which gives a clear ordering/context. It lacks explicit when-not guidance or safety framing on when activation is inappropriate, so it falls just short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wp_create_categoryCreate CategoryCInspect
Create a new WordPress category.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Category name | |
| slug | No | URL slug | |
| parent | No | Parent category ID for nested categories | |
| site_id | No | Site ID to target (optional if you have only one connected site) | |
| description | No | Category description |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, idempotentHint=false, destructiveHint=false and openWorldHint=true, so the safety profile is covered externally. The description adds nothing beyond that — no note on duplicate-name handling, slug auto-generation, or what the call returns, all of which matter for a non-idempotent create.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single well-formed sentence with the action front-loaded and zero filler. It is efficient, though the shortness reflects under-specification rather than tight editing of richer content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a non-idempotent create with five params, full schema coverage and safety annotations, the definition is minimally adequate. Missing are sibling differentiation (wp_create_tag, woo_create_product_category) and any statement about the result of creation or side effects, which the absence of an output schema makes more relevant.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all five parameters (name, slug, parent, site_id, description) are already documented, including the parent-ID nesting semantics. The description adds no extra meaning, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource (create a WordPress category), which is unambiguous on its own. However it does not distinguish this from close siblings such as wp_create_tag or woo_create_product_category, so an agent must infer the boundary from the name alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no when-to-use guidance, no prerequisites (e.g. taxonomy/permissions), and never mentions alternatives like wp_update_category or wp_list_categories. It is a bare statement of action with no routing information.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wp_create_custom_postCreate Custom PostAInspect
Create a new item of any custom post type. Defaults to draft status. Use wp_list_post_types to discover available post types.
| Name | Required | Description | Default |
|---|---|---|---|
| date | No | Publish date (ISO 8601 format). Use future date for scheduling. | |
| meta | No | Custom meta fields as key-value pairs | |
| title | Yes | Post title | |
| status | No | Status (default: draft) | |
| content | No | Post content (HTML supported) | |
| excerpt | No | ||
| site_id | No | Site ID to target (optional if you have only one connected site) | |
| rest_base | Yes | REST base of the post type |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly=false, destructive=false, idempotent=false and openWorld=true, covering the safety profile. The description adds 'defaults to draft status,' but that same default is already stated in the status property description, so it adds little beyond structured data; permissions and side effects remain unstated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short, front-loaded sentences with no filler: purpose first, then the behavioral default, then the discovery prerequisite. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an 8-parameter mutation tool with a nested meta object, 88% schema coverage and annotations covering the safety profile leave little the description must shoulder. It routes the agent to wp_list_post_types for the required rest_base, but omits permission/auth needs for a write operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 88% (high), so the schema carries the parameter semantics, establishing a baseline of 3. The description adds no syntax, format, or meta-object details beyond what the schema already documents.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Create a new item') scoped to 'any custom post type,' which implicitly separates it from wp_create_post and wp_create_page. However, it never names the sibling it complements, so the distinction is left for the agent to infer from 'custom post type.'
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives one actionable prerequisite ('Use wp_list_post_types to discover available post types'), which is genuinely helpful for supplying rest_base. But it says nothing about when to choose this over wp_create_post/wp_create_page or any exclusions, so tool selection remains implied rather than guided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wp_create_pageCreate PageBInspect
Create a new WordPress page. Defaults to "draft" status. Use parent to create child pages.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | No | URL slug | |
| title | Yes | Page title | |
| parent | No | Parent page ID for hierarchical pages | |
| status | No | Page status (defaults to draft) | |
| content | Yes | Page content (HTML supported) | |
| site_id | No | Site ID to target (optional if you have only one connected site) | |
| menu_order | No | Menu order for page sorting | |
| featured_media | No | Featured image media ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly=false, idempotent=false, destructive=false, openWorld=true, so the safety profile is covered. The only behavioral claim in the description ('defaults to draft') merely restates the schema's own enum description for status, adding nothing beyond structured data — no mention of required capability, approval flow, or side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, zero filler, with the core operation front-loaded before the default-status and hierarchy notes. Every clause carries information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an 8-parameter mutation tool with no output schema, the description is thin: it does not tell the agent what a successful call returns (page ID, permalink) or whether site_id must be supplied when multiple sites are connected. Annotations cover the safety profile, so 3 is the minimum-viable level rather than a failure.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description highlights parent for hierarchical pages, which the schema already documents, and says nothing about slug, menu_order, featured_media, or site_id formatting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource (create a WordPress page) that is immediately distinguishable from read/update siblings like wp_get_page and wp_update_page. However, it never disambiguates from the very similar wp_create_post and wp_create_custom_post siblings, so an agent must fall back on the names alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Adds two useful cues: the operation defaults to draft status and parent should be used for child pages. There is no explicit when-to-use guidance relative to wp_create_post/wp_create_custom_post, and no prerequisites (e.g., which site_id to target) are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wp_create_postCreate PostAInspect
Create a new WordPress post. The post defaults to "draft" status for safety — specify status "publish" explicitly to publish immediately.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | No | URL slug | |
| tags | No | Array of tag IDs to assign | |
| title | Yes | Post title | |
| author | No | Author user ID (defaults to authenticated user) | |
| status | No | Post status (defaults to draft) | |
| content | Yes | Post content (HTML supported) | |
| excerpt | No | Post excerpt | |
| site_id | No | Site ID to target (optional if you have only one connected site) | |
| categories | No | Array of category IDs to assign | |
| featured_media | No | Featured image media ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare the safety profile (readOnly=false, destructive=false, non-idempotent), and the description adds a genuinely valuable behavioral fact not covered by them: new posts are created as drafts by default and publishing requires explicit opt-in. It does not mention auth/permission requirements or whether duplicate posts can result from repeated calls.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences with zero filler. The core action comes first and the safety-relevant default is front-loaded in the second sentence, making it easy to scan.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 10-parameter creation tool with no output schema, the description covers the core action and the single most consequential parameter behavior (draft vs publish). It omits target-site selection (site_id) and what is returned on success, but the essentials an agent needs to call it correctly are present.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all 10 parameters are already documented in the schema, including 'status (defaults to draft)'. The description's status note reinforces the consequence of the default but adds no new parameter syntax or format detail beyond the schema, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: create a new WordPress post. It is clearly distinct from sibling tools like wp_create_page or wp_create_custom_post by naming the 'post' resource, though it never explicitly contrasts itself with those siblings to help an agent choose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives useful in-tool guidance on the status default (draft unless 'publish' is specified), which tells the agent how to invoke it safely. However, there is no when-to-use/when-not guidance relative to the many sibling creation tools (wp_create_page, wp_create_custom_post, wp_schedule_post, wp_update_post).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wp_create_tagCreate TagCInspect
Create a new WordPress tag.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Tag name | |
| slug | No | URL slug | |
| site_id | No | Site ID to target (optional if you have only one connected site) | |
| description | No | Tag description |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, idempotentHint=false, openWorldHint=true, and destructiveHint=false, so the safety profile is covered structurally. The description adds nothing on top of that – it doesn't explain that duplicate names may create multiple tags (implied by non-idempotency), nor how site_id targeting behaves in multi-site setups.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler or repetition. It is efficient, though the brevity borders on under-specification rather than genuine conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description could have said what is returned on success (e.g., the created tag ID). Parameter documentation is fully handled by the schema, so the definition is minimally viable but leaves the return behavior and multi-site targeting unaddressed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all four parameters (name, slug, site_id, description) are documented in the schema itself. The description adds no syntax, default, or format detail beyond that, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Create a new WordPress tag'), so the agent knows exactly what the tool produces. It does not differentiate from the closely related wp_update_tag or wp_create_category siblings in the list, 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no when-to-use, when-not-to-use, or prerequisite guidance. It never mentions that wp_update_tag should be used for existing tags rather than this tool, even though that sibling exists.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wp_deactivate_pluginDeactivate PluginADestructiveInspect
Deactivate a WordPress plugin. Use wp_list_plugins first to find the plugin slug. Use dry_run=true to preview.
| Name | Required | Description | Default |
|---|---|---|---|
| plugin | Yes | Plugin slug (e.g. "woocommerce/woocommerce") | |
| dry_run | No | If true, shows what would happen without deactivating | |
| site_id | No | Site ID to target (optional if you have only one connected site) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, readOnlyHint=false, idempotentHint=false and openWorldHint=true, so the risky-mutation profile is known. The description adds only the dry_run preview affordance; it says nothing about reversibility, dependency impact, or permission requirements beyond what annotations cover.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, front-loaded with the action, then prerequisite, then the safety preview. No filler and nothing wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple 3-parameter tool with no output schema and rich annotations, the description covers the essential call path and a preview option. Missing only edge behavior (already-inactive plugin, dependency warnings), which is minor given the annotation coverage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all three parameters (plugin, dry_run, site_id) are already documented in the schema. The description reinforces dry_run and the slug lookup but adds no format or constraint detail beyond the schema, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Deactivate') and resource ('WordPress plugin'), which cleanly distinguishes it from the sibling wp_activate_plugin by name. It does not, however, explicitly name the sibling or clarify scope (e.g. single site vs network-wide), so it stops 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives real workflow guidance: 'Use wp_list_plugins first to find the plugin slug' and 'Use dry_run=true to preview.' That covers ordering and a safe-preview path. It lacks an explicit when-not or prerequisite statement (e.g. what happens if the plugin is already inactive), so not a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wp_discover_abilitiesDiscover AbilitiesARead-onlyInspect
Discover all registered WordPress Abilities (WordPress 6.9+). Abilities are self-describing plugin operations with input/output schemas and annotations (readonly, destructive, idempotent). Filter by category, namespace, or annotation type. Use this to see what plugin-specific actions are available before running them.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number for pagination | |
| site_id | No | Site ID to target (optional if you have only one connected site) | |
| category | No | Filter by ability category slug (e.g. "content", "commerce") | |
| per_page | No | Number of abilities to return (default 50, max 100) | |
| readonly | No | Filter to only read-only abilities (true) or write abilities (false) | |
| namespace | No | Filter by plugin namespace (e.g. "woocommerce", "yoast") | |
| idempotent | No | Filter to only idempotent abilities (true) | |
| destructive | No | Filter to only destructive abilities (true) or safe abilities (false) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=true, so safety is covered. The description still adds real value by explaining that returned abilities carry their own input/output schemas and readonly/destructive/idempotent annotations, which tells the agent what the payload contains. Pagination behavior is left unstated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four compact sentences, purpose front-loaded, and each sentence contributes (what it does, what abilities are, how to filter, when to use). No filler or repetition of the name/title.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description usefully characterizes what is returned (schema-bearing, annotated abilities) and how to narrow results. Given 8 params at full schema coverage and annotations carrying the safety profile, the only minor gap is pagination/return-shape specifics.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so every parameter (page, per_page, category, namespace, readonly, idempotent, destructive, site_id) is already documented in the schema. The description only restates the filter axes (category, namespace, annotation type) without adding format or interaction detail, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (discover) and resource (registered WordPress Abilities), and clarifies what an Ability is (self-describing plugin operations). It reads distinctly against the sibling wp_get_ability_info, since this returns the full catalog rather than a single ability's details.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
"Use this to see what plugin-specific actions are available before running them" gives clear when-to-use framing, and the filter axes are named. It stops short of explicitly contrasting with wp_get_ability_info for single-ability lookup, so no exclusion guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wp_get_ability_infoGet Ability InfoARead-onlyInspect
Get detailed information about a specific WordPress Ability, including its full input/output schema and annotations. Use this before running an ability to understand its parameters and whether it is read-only, destructive, or idempotent.
| Name | Required | Description | Default |
|---|---|---|---|
| ability | Yes | The ability name (e.g. "my-plugin/site-info") | |
| site_id | No | Site ID to target (optional if you have only one connected site) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=true, covering the safety profile. The description adds the return content (target's schema and safety flags), but discloses nothing about the target ability's own operational traits beyond what annotations on this tool convey. Adequate but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with purpose and followed by the usage directive. No filler or repetition, and every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, and the description compensates by describing what is returned (full input/output schema and annotations), which is the key thing an agent needs. Usage context is also given, leaving little missing for a two-parameter read tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both parameters (ability, site_id) are already documented in the schema. The description adds no syntax, format, or naming guidance beyond what the schema provides, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ("get detailed information about a specific WordPress Ability") and enumerates what is returned (full input/output schema and annotations). The concept of a single 'Ability' is distinct from sibling list/discovery tools like wp_discover_abilities, so an agent can tell them apart without opening schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives explicit when-to-use guidance: "Use this before running an ability to understand its parameters and whether it is read-only, destructive, or idempotent." This establishes a clear workflow role. It does not name the discovery sibling or state exclusions, so it stops short of a full 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wp_get_current_userGet Current UserBRead-onlyInspect
Get information about the currently authenticated WordPress user.
| Name | Required | Description | Default |
|---|---|---|---|
| site_id | No | Site ID to target (optional if you have only one connected site) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=true, so the safety profile is covered. The description usefully adds that the user is resolved from the authentication context rather than a parameter, but says nothing about what fields come back or what happens when unauthenticated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with zero filler; the resource and its scope arrive in the first few words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description is the only place return fields could be described, and it only says 'information' without naming any fields. For a simple one-parameter read tool the gap is minor but real.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single site_id parameter is already documented with its optionality in the schema. The description adds no syntax or multi-site targeting detail beyond that, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Get information about the currently authenticated WordPress user.' The word 'current' scopes it apart from wp_list_users and wp_get_site_info, though the description never names those siblings explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance, no prerequisites, and no mention of the alternative wp_list_users for fetching other users. The agent must infer that this is for the session's own identity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wp_get_custom_postGet Custom PostBRead-onlyInspect
Get a single item of any custom post type by its ID and REST base.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Post ID | |
| site_id | No | Site ID to target (optional if you have only one connected site) | |
| rest_base | Yes | REST base of the post type |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=true, covering the safety profile, so the description only needs to add context. It adds the REST-base addressing requirement but says nothing about return shape, missing/404 behavior, or whether custom fields are included.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler; the essentials (single item, any custom type, ID + REST base) come first. It is arguably too terse for a lookup that depends on knowing a valid REST base.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only get with full schema coverage and annotations carrying the safety profile, the description is minimally adequate. With no output schema, it could still tell the agent what the returned item contains or where to obtain a valid rest_base, which is the main completeness gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so id, rest_base and site_id are already documented in the schema and the baseline is 3. The description restates id and rest_base but adds no format, validation, or REST-base-discovery detail beyond the structured fields.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Get) plus the resource (a single item of any custom post type) and names the distinguishing key inputs (ID and REST base). The word 'custom' implicitly separates it from wp_get_post for standard posts, so an agent can differentiate, though the contrast is never stated outright.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied by the phrase 'any custom post type' - the agent can infer this is for non-core post types while wp_get_post handles standard ones, but no when-to-use, prerequisites, or alternative is named. It also omits that rest_base must come from a registered type (e.g. via wp_list_post_types).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wp_get_pageGet PageBRead-onlyInspect
Get a single WordPress page by ID with full content.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The page ID | |
| site_id | No | Site ID to target (optional if you have only one connected site) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=true, so the safety profile is covered. The description adds that it returns 'full content', which is a useful behavioral detail distinguishing it from excerpt-level fetches, but says nothing about auth needs or pagination.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence that covers verb, resource, and scope with no wasted words. Appropriately sized for a simple retrieval tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple single-resource read whose annotations already carry the safety profile and whose parameters are fully documented, the description is nearly sufficient. The only gap is the lack of differentiation from similar get_* siblings, which is minor for this complexity level.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both id and site_id are already documented in the schema. The description reinforces that retrieval is 'by ID' but adds no format or range detail beyond what structured data provides, making the baseline 3 appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Get), resource (WordPress page), and scope (single, by ID, full content). It implicitly separates pages from posts via the resource noun, though it doesn't explicitly distinguish itself from close siblings like wp_get_page_html or wp_get_post.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance or alternatives are offered. An agent gets no signal about when to prefer this over wp_get_page_html or wp_get_post, nor any prerequisite conditions such as needing a connected site.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wp_get_page_htmlGet Page HTMLARead-onlyInspect
Retrieve the rendered HTML of any page on the connected WordPress site. Use this to verify changes you made actually rendered correctly — check headlines, content, meta tags, links, or layout after creating/updating posts, pages, or theme files. Returns cleaned HTML (scripts and styles stripped to save tokens). Supports public pages, drafts (via preview), and custom URLs.
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | Page URL on the connected site (e.g. "https://example.com/about"). Must belong to the connected site — external URLs are rejected. If omitted, fetches the homepage. | |
| post_id | No | Post/page ID to fetch. Automatically resolves the permalink. Works for drafts too. | |
| site_id | No | Site ID to target (optional if you have only one connected site) | |
| selector | No | CSS selector to extract a specific section (e.g. "article", ".entry-content", "#main"). Returns only the matched element's HTML. Omit to get the full page body. | |
| include_meta | No | If true, also returns <head> meta tags (title, description, og:tags, canonical). Useful for SEO verification. Default: false. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover safety (readOnly, non-destructive, openWorld), so the bar is lower. The description adds real behavioral value: output is cleaned HTML with scripts and styles stripped to save tokens, drafts are reachable via preview, and external URLs are rejected — none of which is in the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences, front-loaded with the core action, then the use case, then the return behavior. The verification examples (headlines, meta tags, links, layout) earn their place by clarifying what 'verify' means.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, so the description must explain return values — and it does ('Returns cleaned HTML (scripts and styles stripped to save tokens)'), along with the supported URL/draft cases. An agent has everything needed to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so every parameter is already documented (url, post_id, site_id, selector, include_meta). The description adds no parameter-level detail beyond the schema, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (retrieve) and resource (rendered HTML of a page) and clarifies the value proposition: seeing what actually rendered, which distinguishes it from structured-data siblings like wp_get_page or wp_get_post.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives explicit when-to-use context ('verify changes you made actually rendered correctly' after create/update operations) and notes supported cases (public pages, drafts via preview, custom URLs). It stops short of naming an alternative sibling to use instead when you want structured data rather than HTML.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wp_get_postGet PostBRead-onlyInspect
Get a single WordPress post by ID. Returns full content, title, status, date, categories, tags, author, and excerpt.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The post ID | |
| site_id | No | Site ID to target (optional if you have only one connected site) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=true, so the safety profile is covered. The description adds value by enumerating returned fields, but says nothing about permissions, error behavior for missing IDs, or revision/status scoping. Adequate but not rich against an already-covered annotation set.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences, zero filler, with the identity of the resource front-loaded and the return payload immediately following. Every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description's enumeration of returned fields (content, title, status, date, categories, tags, author, excerpt) usefully compensates and is sufficient for a simple read-only getter. It leaves only multi-site context and failure modes unaddressed, which is minor here.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% with only two parameters, so the schema already documents 'id' and 'site_id' including the optional multi-site note. The description adds no format, constraint, or scoping detail beyond what the schema provides, making the baseline 3 correct.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Get a single WordPress post by ID'), so the agent knows exactly what it retrieves. It does not, however, distinguish itself from close siblings like wp_get_custom_post or wp_get_page, which is the only thing keeping it from a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use or when-not-to-use guidance. The description never mentions when to prefer this over wp_list_posts, wp_get_custom_post, or wp_get_page, so the agent must infer selection from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wp_get_settingsGet SettingsBRead-onlyInspect
Get all WordPress site settings at once (site title, tagline, timezone, date/time format, language, etc.).
| Name | Required | Description | Default |
|---|---|---|---|
| site_id | No | Site ID to target (optional if you have only one connected site) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=true, so the safety profile is covered. The description adds only the useful 'all settings at once' batching note; it says nothing about auth requirements, caching, or response size, so it clears the lowered bar without adding much.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One tight sentence with the resource and the returned field list front-loaded; no filler. Slightly reduces clarity by burying the 'all at once' batching point after the verb, but it is efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only getter with full schema coverage and annotations covering safety, the description's field enumeration is enough to call it correctly, and no output schema is needed. The remaining gap is differentiation from wp_get_site_info.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and site_id is fully documented in the schema, including the 'optional if you have only one connected site' nuance. The description adds nothing about the parameter, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clear verb+resource ('Get ... WordPress site settings') with a parenthetical enumeration of the settings returned, so an agent knows exactly what comes back. It does not differentiate itself from the nearby wp_get_site_info sibling, which could plausibly overlap, so it stops 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no when-to-use context, no prerequisites, and no routing against wp_get_site_info or wp_update_settings. An agent must infer from the name alone whether this or wp_get_site_info is the right read call.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wp_get_site_infoGet Site InfoARead-onlyInspect
Get WordPress site information including site name, URL, description, WordPress version, active theme, timezone, language, and list of installed plugins and themes.
| Name | Required | Description | Default |
|---|---|---|---|
| site_id | No | Site ID to target (optional if you have only one connected site) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=true, so the agent knows this is a safe, non-mutating, externally-backed call. The description adds nothing behavioral beyond that, for example whether it requires elevated credentials, whether the plugin/theme listing makes it slow or heavy, or how it behaves on a multi-site setup. It also does not contradict the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with the verb and resource first, followed by the field list. The enumeration is long but each item earns its place because there is no output schema to carry that information; only minor trimming would be possible.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description carries the burden of telling the agent what comes back, and it does so explicitly (name, URL, description, version, theme, timezone, language, plugins, themes). The single optional parameter is documented in the schema, and annotations cover the safety profile. The only gap is lack of guidance on how this differs from overlapping siblings like wp_site_health or wp_get_settings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There is one parameter with 100% schema description coverage, so the schema already explains that site_id targets a specific site and is optional when only one site is connected. The description adds no additional detail about multi-site targeting or what happens if the ID is invalid, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb (Get) plus resource (WordPress site information) with an explicit enumeration of the returned fields, so an agent knows exactly what comes back. It does not, however, distinguish itself from similarly named siblings such as wp_get_settings, wp_site_health, wp_list_plugins, or wp_list_themes, whose scopes partially overlap (listing plugins/themes).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: 'get WordPress site information' is self-evidently a discovery/overview call, and it reads naturally as a first step before other wp_* tools. There is no explicit when-to-use guidance and no statement of when to prefer wp_get_settings, wp_site_health, or the dedicated wp_list_plugins/wp_list_themes tools that cover a subset of the same data.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wp_get_snippetGet SnippetARead-onlyInspect
Get a specific code snippet by ID. Returns the full snippet code, type, and status.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Snippet ID | |
| site_id | No | Site ID to target (optional if you have only one connected site) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, openWorldHint=true and destructiveHint=false, so the safety profile is covered. The description adds the return contents (code, type, status), which is useful given no output schema, but says nothing about error behavior or missing-snippet handling.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, front-loaded with the action and the return payload, with no redundant or filler content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter read tool with annotations covering safety and no output schema, the description tells the agent what it fetches and roughly what comes back. Minor gaps remain around not-found behavior and the optional site_id, but nothing critical is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both 'id' and 'site_id' are already documented in the schema. The description only echoes 'by ID' and adds no syntax or format detail beyond the structured field, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Get') plus resource ('code snippet') and the lookup key ('by ID'), and names what is returned (code, type, status). It is clearly distinct from wp_list_snippets, though it does not name that sibling explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'by ID' implies the tool is for when the identifier is already known, which implicitly routes users to wp_list_snippets for discovery, but no when/when-not guidance or alternative is stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wp_get_themeGet ThemeBRead-onlyInspect
Get detailed information about a specific installed theme.
| Name | Required | Description | Default |
|---|---|---|---|
| site_id | No | Site ID to target (optional if you have only one connected site) | |
| stylesheet | Yes | Theme stylesheet slug |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=true, so the safety profile is covered. The description adds only that the return is 'detailed', without clarifying what fields are returned, whether an uninstalled/inactive theme errors, or what 'detailed' covers. With annotations carrying the behavioral burden, this is adequate but thin.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler. It is appropriately sized, though it is terse to the point of under-specifying the return value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description carries the burden of describing what 'detailed information' means, and it does not. For a simple two-parameter getter this is minimally complete, but the vagueness of the return leaves a real gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both site_id and stylesheet are already documented in the schema. The description adds no syntax, format, or slug-resolution guidance beyond that, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: retrieve detailed information about one installed theme. The word 'specific' and 'theme' separates it conceptually from list-oriented siblings like wp_list_themes, but it never names an alternative or clarifies the boundary against wp_get_site_info or wp_list_themes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no prerequisites, and no mention of alternatives such as wp_list_themes (to enumerate themes) or wp_update_theme (to modify). Usage is only inferable from the tool name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wp_install_pluginInstall PluginADestructiveInspect
Install a plugin from wordpress.org by its slug (e.g. "contact-form-7", "woocommerce"). Optionally activate it after install.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | Plugin slug from wordpress.org (e.g. "contact-form-7", "woocommerce", "elementor") | |
| site_id | No | Site ID to target (optional if you have only one connected site) | |
| activate | No | Activate the plugin after installing (default: false) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, idempotentHint=false, and openWorldHint=true, so the agent knows this is an unsafe, non-repeatable, external-network write. The description confirms the external source is wordpress.org but adds nothing about failures, permissions, or what happens on re-install; a 3 is appropriate given the annotations carry the safety profile.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences with the core action and scope front-loaded and no filler; the optional activation is mentioned only because it changes the call's effect.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive, non-idempotent mutation with no output schema, the description covers the essentials (source, identifier, optional activation) but omits failure modes, permission/approval requirements, and whether an already-installed plugin is handled — gaps an agent would want before invoking a destructive tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and each parameter is documented in the schema, so the baseline is 3. The description's slug examples and activate note restate what the schema already says rather than adding format or constraint detail.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (install), resource (plugin), and source (wordpress.org by slug), with concrete slug examples. This cleanly separates it from siblings like wp_install_theme, wp_update_plugin, and wp_activate_plugin without the agent needing to open another schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
"Optionally activate it after install" tells the agent the post-install step is bundled, implying they need not chain wp_activate_plugin. However, there is no explicit guidance on when to prefer this over wp_update_plugin, nor any prerequisites (connected site, credentials, approval flow) despite the surrounding swiftly_* approval tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wp_install_themeInstall ThemeBDestructiveInspect
Install a theme from wordpress.org by its slug. The slug is the URL-friendly name from the theme's wordpress.org page.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | Theme slug from wordpress.org (e.g. flavor, flavor-developer) | |
| site_id | No | Site ID to target (optional if you have only one connected site) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, openWorldHint=true, idempotentHint=false, and readOnlyHint=false, so the risk profile is covered. The description adds that content comes from wordpress.org (an external fetch), but omits notable behaviors such as whether the theme is activated after install, permission requirements, or failure handling.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, front-loaded with the action and source, with the second sentence clarifying the slug format. No filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter tool with full schema coverage and complete annotations, the description covers purpose and argument format. It is missing the install-then-activate context and any note about scope (theme vs plugin) that an agent would need to sequence calls correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, including the slug format and examples, so the baseline is 3. The description's note that the slug is the URL-friendly name from the theme's wordpress.org page largely restates what the schema already documents.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (install) and resource (theme) plus the source constraint (wordpress.org by slug), which distinguishes it from the sibling wp_install_plugin and from theme management tools like wp_list_themes. It is somewhat distinguishable from wp_activate_theme, but the description never clarifies the install-vs-activate relationship.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus siblings such as wp_activate_theme, wp_update_theme, or wp_get_theme, and no mention of prerequisites (e.g., that installation may need to be followed by activation). Usage is only inferable from the tool name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wp_list_categoriesList CategoriesBRead-onlyInspect
List all WordPress categories with their ID, name, slug, count, and parent.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number for pagination | |
| parent | No | Filter by parent category ID | |
| search | No | Search term to filter categories | |
| _fields | No | Comma-separated fields to return (e.g. "id,name,slug,count") | |
| orderby | No | ||
| site_id | No | Site ID to target (optional if you have only one connected site) | |
| per_page | No | Number to return (default 100, max 100) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=true, so the safety profile is covered without the description. The description adds the return shape (id, name, slug, count, parent), which is genuinely useful since no output schema exists, but says nothing about pagination defaults, auth requirements, or how 'count' behaves.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One compact, front-loaded sentence with no filler, and the returned fields are named early. It could have used its one sentence to cover filtering or pagination instead of the full field list, but nothing is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 7-parameter, zero-required read tool with no output schema, the description covers the return shape but omits any mention of the filtering (parent, search), pagination, or ordering capabilities the schema exposes. It is minimally viable rather than complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 86%, so the schema already documents page, parent, search, _fields, site_id, and per_page. The description's field list loosely corresponds to the _fields parameter but adds no syntax or format detail beyond what the schema provides; baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('List all WordPress categories') and enumerates the returned fields, so the agent knows exactly what comes back. It does not explicitly distinguish itself from the near-sibling woo_list_product_categories, but 'WordPress categories' implies core taxonomy rather than WooCommerce product categories.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no prerequisites, and no mention of alternatives such as woo_list_product_categories or the tag-listing tool. The agent must infer when this is preferred over the many sibling 'list' tools purely from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wp_list_commentsList CommentsCRead-onlyInspect
List WordPress comments with optional filters.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number | |
| post | No | Filter by post ID | |
| status | No | Comment status filter | |
| site_id | No | Site ID to target (optional if you have only one connected site) | |
| per_page | No | Number to return (default 20, max 100) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, openWorldHint=true, and destructiveHint=false, so the safety profile is fully covered by structured data. The description adds nothing beyond that — no mention of pagination behavior, default page size, or result ordering — so it contributes no behavioral context of its own.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with zero verbosity and no redundancy. It is efficient, though the brevity edges toward under-specification rather than disciplined conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Against a 5-parameter, fully-documented schema and complete read-only annotations, the definition is minimally sufficient but leaves gaps: no return-shape or pagination note that would help an agent page through comments, and no routing to the moderation/reply siblings. Adequate, not complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all five parameters (page, post, status, site_id, per_page) are already documented in the schema with defaults and bounds. The description's 'optional filters' adds no syntax, format, or constraint detail beyond that, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('List WordPress comments'), which is clearly distinct from mutation tools like wp_moderate_comment or wp_reply_comment. However, it offers no explicit differentiation from sibling read tools (wp_list_posts, wp_search_content), and 'with optional filters' is generic filler rather than naming the filterable dimensions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance and no alternatives named. The phrase 'with optional filters' implies filtering is possible but never says which filters matter or when to prefer this over wp_search_content or wp_moderate_comment.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wp_list_custom_postsList Custom PostsARead-onlyInspect
List items of any post type using its REST base (e.g. "portfolio", "testimonials", "products"). Use wp_list_post_types first to discover available post types and their rest_base.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number | |
| order | No | ||
| search | No | Search term | |
| status | No | Filter by status (default: publish) | |
| orderby | No | ||
| site_id | No | Site ID to target (optional if you have only one connected site) | |
| per_page | No | Number of items (default 20, max 100) | |
| rest_base | Yes | REST base of the post type (e.g. "portfolio", "events"). Get this from wp_list_post_types. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, openWorldHint=true, so the safety profile is covered. The description adds no behavioral context beyond that (no pagination behavior, no auth/scope caveats, no note that results may be empty for an unknown rest_base), leaving it at the minimum-viable level.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tightly written sentences: the core action and its addressing mechanism come first, then the required discovery step. No filler, no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 8 parameters and no output schema, the definition never indicates what a listed custom post looks like or how pagination interacts with results beyond the schema's per_page note. The dependency on wp_list_post_types is a good addition, but the return surface remains undocumented for a tool with no output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 75%, so most parameters are already documented; the enum-constrained filters (status, order, orderby) are self-evident. The description's rest_base examples and provenance largely duplicate the schema's own rest_base description, adding little new meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('List') and resource ('items of any post type') and explains the addressing mechanism (REST base), which is distinctive versus wp_list_posts. It does not explicitly contrast with the standard-post sibling, so an agent must infer that this is the generic/custom-type variant.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives an explicit prerequisite chain: call wp_list_post_types first to discover the rest_base value. It stops short of naming when to prefer this over wp_list_posts or woo_list_products, so no exclusion guidance, but the dependency is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wp_list_mediaList MediaCRead-onlyInspect
List items in the WordPress media library with optional filters.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number | |
| search | No | Search term | |
| _fields | No | Comma-separated fields to return for lighter responses (e.g. "id,title,source_url,media_type") | |
| site_id | No | Site ID to target (optional if you have only one connected site) | |
| per_page | No | Number to return (default 20, max 100) | |
| media_type | No | Filter by media type |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=true, so the safety profile is fully covered by structured data. The description adds nothing beyond that — no pagination behavior, no note on result volume or ordering. It restates a read of the library, which the annotations already imply.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no waste. It is efficient, though it is arguably too terse to earn a 5 given the tool's six parameters.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an all-optional read-only list tool with full schema coverage and no output schema, the description is minimally viable. It omits what the response looks like and any pagination/default context not already in the schema, but nothing critical blocks invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all six parameters (page, search, _fields, site_id, per_page, media_type) are already documented in the schema, including the enum and default for per_page. The description adds no syntax or format detail beyond what the schema provides, making the baseline 3 appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clear verb+resource: 'List items in the WordPress media library'. An agent can distinguish it from wp_upload_media or stock_photo_search by the resource, but the description names no sibling and does not clarify how it differs from other list/search tools like wp_search_content.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'with optional filters' merely hints at how the tool is parameterized; it gives no when-to-use, when-not-to-use, or alternative selection guidance. Nothing tells the agent when to pick this over wp_search_content or stock_photo_search.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wp_list_pagesList PagesCRead-onlyInspect
List WordPress pages with optional filters.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number for pagination | |
| order | No | ||
| parent | No | Filter by parent page ID | |
| search | No | Search term | |
| status | No | Filter by page status | |
| _fields | No | Comma-separated fields to return for lighter responses (e.g. "id,title,status,date,slug") | |
| orderby | No | ||
| site_id | No | Site ID to target (optional if you have only one connected site) | |
| per_page | No | Number of pages to return (max 100, default 20) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=true, so the safety profile is covered. The description adds essentially nothing beyond that: no mention of pagination defaults, per_page limits, or the fact that results come from a remote WordPress site. It does not contradict the annotations, but it contributes no extra behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no wasted words, correctly leading with the verb and resource. It borders on under-specification rather than over-verbosity, which is the less harmful failure mode here.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 9 optional parameters, no output schema, and no required params, the definition is minimally viable: the schema and annotations cover most of what an agent needs. However, it omits useful context such as default page size, the meaning of site_id targeting, and when a status of 'any' is appropriate, leaving the definition adequate but incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 78%, so the schema already documents most parameters (page, parent, search, status, per_page, _fields, site_id). The description's generic 'optional filters' adds no syntax or meaning beyond what is in the schema; baseline 3 is appropriate when structured fields carry the load.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('List WordPress pages'), so the agent knows exactly what operation is performed. It does not, however, distinguish this tool from the many other list/get siblings such as wp_list_posts, wp_get_page, divi_list_pages, or elementor_list_pages, leaving disambiguation to the name alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'with optional filters' implies filtering is possible but gives no guidance on when to choose this tool over wp_list_posts, wp_get_page, or the builder-specific list_pages variants. No prerequisites, no exclusions, no alternative is named.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wp_list_pluginsList PluginsARead-onlyInspect
List all installed WordPress plugins with their status (active/inactive), version, and name.
| Name | Required | Description | Default |
|---|---|---|---|
| site_id | No | Site ID to target (optional if you have only one connected site) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=true, so the safety profile is covered. The description adds genuine value by disclosing the shape of the result (status active/inactive, version, name) in the absence of an output schema, though it says nothing about ordering or pagination.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One sentence, front-loaded with the verb and resource, with the returned fields appended. Nothing is wasted and nothing is buried.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only list tool with full annotation coverage, a fully documented single parameter, and no output schema, the description gives an agent enough to call it and interpret the result. Only ordering/pagination behavior is unaddressed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for the single site_id parameter, so the schema carries parameter meaning. The description adds no additional syntax or multi-site targeting detail, which is the expected baseline when the schema does the work.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (List) and resource (installed WordPress plugins) plus the returned fields (status, version, name). It is clearly distinct from wp_list_themes and the plugin mutation siblings (wp_activate_plugin, wp_update_plugin) by resource, though it never explicitly names those alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use or when-not-to-use guidance and no mention of alternatives such as wp_activate_plugin/wp_deactivate_plugin for changing status. Usage is only inferable from the name itself.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wp_list_postsList PostsBRead-onlyInspect
List WordPress posts with optional filters. Returns title, status, date, excerpt, categories, and tags for each post.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number for pagination | |
| tags | No | Comma-separated tag IDs | |
| order | No | Sort order | |
| search | No | Search term to filter posts | |
| status | No | Filter by post status | |
| _fields | No | Comma-separated fields to return for lighter responses (e.g. "id,title,status,date,slug") | |
| orderby | No | Field to order by | |
| site_id | No | Site ID to target (optional if you have only one connected site) | |
| per_page | No | Number of posts to return (max 100, default 20) | |
| categories | No | Comma-separated category IDs |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=true, so the safety profile is covered. The description adds value by enumerating returned fields (title, status, date, excerpt, categories, tags) since no output schema exists, but it omits pagination behavior and default result size, which matter for a 10-parameter list tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences with the core purpose front-loaded and no filler. The second sentence about return fields slightly overlaps the schemaless return question but earns its place given there is no output schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 10-parameter, filter-heavy list tool with no output schema, the description covers the basics (what is listed, what comes back) but never addresses pagination scope, default limits, or how to disambiguate from the many other list_* siblings. Just enough to call it, not enough to call it confidently.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all ten parameters including enums, ranges, and the per_page default are already documented in the schema. The description only hints that filters exist and lists some return fields, adding no syntax or constraint detail beyond the schema; baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a clear verb+resource ("List WordPress posts") and names the filter capability, so the agent knows exactly what it fetches. It does not, however, distinguish itself from near-siblings like wp_list_custom_posts, wp_list_pages, or wp_search_content, leaving the agent to infer that this tool is only for the built-in 'post' type.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
"with optional filters" implies the tool can be narrowed but gives no when-to-use guidance, no prerequisites, and no routing to alternatives (e.g. wp_search_content for keyword search, wp_list_custom_posts for CPTs). The agent must derive the usage context entirely from the sibling names.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wp_list_post_typesList Post TypesARead-onlyInspect
List all registered post types on the WordPress site, including custom post types (CPTs). Shows name, description, REST base, and whether they are public/hierarchical.
| Name | Required | Description | Default |
|---|---|---|---|
| site_id | No | Site ID to target (optional if you have only one connected site) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=true, so the safety profile is covered externally. The description adds only the shape of the returned fields, not behavior such as whether results are cached, whether unregistered/hidden post types are included, or auth requirements — adequate but thin against the lowered bar.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences with zero filler; the core purpose is front-loaded and the return-field detail follows. Nothing needs to be cut.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description usefully enumerates the returned attributes, which is exactly what an agent needs to consume the result. It is nearly complete for a simple zero-required-parameter read tool, with the only remaining gap being when to prefer it over sibling discovery tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only one parameter (site_id) with 100% schema description coverage, so the schema already carries its meaning. The description adds no information about site_id semantics or multi-site behavior, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (List) and resource (registered post types, including CPTs), and enumerates the returned attributes (name, description, REST base, public/hierarchical). This is unmistakably the registry-listing tool and cannot be confused with wp_list_posts or wp_list_custom_posts, which return post content rather than type definitions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: a reader infers this is a discovery step before creating or querying custom posts, but the description never says when to call it or points at alternatives such as wp_discover_abilities or wp_get_site_info. No exclusions or prerequisites are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wp_list_revisionsList RevisionsARead-onlyInspect
List all revisions of a post or page. Shows revision history with author, date, and content changes. Useful for tracking edits and restoring previous versions.
| Name | Required | Description | Default |
|---|---|---|---|
| post_id | Yes | The post or page ID | |
| site_id | No | Site ID to target (optional if you have only one connected site) | |
| post_type | No | Post type (default: post) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, openWorldHint=true, so the safety profile is covered. The description adds return-content context ('author, date, and content changes'), which tells the agent what to expect beyond the structured fields.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three compact sentences with the purpose front-loaded in the first. Every sentence contributes, though the second and third are somewhat redundant about the value of revision history.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only list tool with full annotation coverage and a complete schema, this is nearly sufficient; the one gap is not directing the agent to wp_restore_revision for the follow-up action. No output schema exists, so the description is right not to over-explain returns.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so post_id, site_id, and post_type are fully documented in the schema. The description's 'post or page' wording loosely maps to the post_type enum but adds no new parameter semantics. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a clear verb+resource: 'List all revisions of a post or page,' and specifies scope ('all'). It gestures at the sibling relationship by mentioning 'restoring previous versions' but never names wp_restore_revision, so the boundary with that sibling is only implicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Useful for tracking edits and restoring previous versions' implies usage context but gives no explicit when-to-use/when-not guidance and does not name wp_restore_revision as the tool to call once a revision is identified. The alternative 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.
wp_list_snippetsList SnippetsBRead-onlyInspect
List code snippets managed by WPCode or Code Snippets plugin. Shows all PHP/JS/CSS snippets with their status (active/inactive).
| Name | Required | Description | Default |
|---|---|---|---|
| status | No | Filter by snippet status. Default: "all" | |
| site_id | No | Site ID to target (optional if you have only one connected site) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, openWorldHint=true, and destructiveHint=false, so the safety profile is covered. The description usefully adds that snippets come from the WPCode / Code Snippets plugin and that status (active/inactive) is included, but says nothing about return format, pagination, or cross-plugin behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences with the core purpose front-loaded and no filler. The second sentence adds meaningful scope (status field) rather than padding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only list tool with 100% schema coverage and clear annotations, the description is adequate; the schema covers filtering and the annotations cover behavior. With no output schema, it need not describe return values, though a note on multi-plugin behavior would have been a plus.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both parameters are already documented, including the enum for status and the optional site_id. The description's mention of active/inactive status loosely echoes the status param but adds no syntax or default information beyond the schema, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (list) and resource (code snippets) and names the managing plugins (WPCode / Code Snippets), so the agent knows exactly what entity is returned. It implies a collection vs. the singular wp_get_snippet sibling but never names it explicitly, so it misses full sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance is given, and no alternative is named even though wp_get_snippet exists for retrieving a single snippet. The agent must infer that this is the enumeration counterpart of that tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wp_list_tagsList TagsBRead-onlyInspect
List all WordPress tags with their ID, name, slug, and post count.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number for pagination | |
| search | No | Search term to filter tags | |
| _fields | No | Comma-separated fields to return (e.g. "id,name,slug,count") | |
| orderby | No | ||
| site_id | No | Site ID to target (optional if you have only one connected site) | |
| per_page | No | Number to return (default 100, max 100) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=true, so the safety profile is covered. The description adds the returned field list, which is real value given there is no output schema, but says nothing about pagination behavior, default page size, or ordering.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler. It is efficient, though its brevity borders on being too terse given the tool accepts filtering and pagination parameters.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only listing tool with no output schema, naming the returned fields is the right instinct, but with 6 parameters and no is not fully covered: pagination defaults and the interaction between search, orderby and page are left undocumented.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 83%, so the schema already documents page, search, _fields, orderby, site_id and per_page. The description's mention of returned fields loosely maps to _fields but adds no syntax or format detail beyond what the schema provides; baseline 3 applies when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('List all WordPress tags') and even names the returned fields (ID, name, slug, post count). The tag resource is clearly distinct from sibling list tools like wp_list_categories and wp_list_posts, though the description never explicitly contrasts them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this versus alternatives such as wp_search_content or wp_list_categories, and no prerequisites or pagination advice. The agent must infer usage entirely from the tool name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wp_list_themesList ThemesBRead-onlyInspect
List all installed WordPress themes. Shows which theme is currently active.
| Name | Required | Description | Default |
|---|---|---|---|
| site_id | No | Site ID to target (optional if you have only one connected site) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=true, so the safety profile is covered. The description adds one genuine behavioral fact beyond the annotations: the result indicates which theme is currently active. It says nothing about ordering, pagination, or how much detail per theme is returned.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, zero filler, with the core action front-loaded and the useful output hint immediately after. Nothing in it is redundant with the title.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only listing tool with a fully documented single parameter and no output schema, this is nearly sufficient; annotations carry the safety profile. The only meaningful gap is not clarifying the relationship to wp_get_theme and wp_activate_theme in a sibling set where naming is very similar.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the single site_id parameter is fully documented in the schema, so the baseline of 3 applies. The description adds no syntax, defaulting, or multi-site behavior beyond what the schema already states.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('List all installed WordPress themes') and adds the distinguishing detail that the active theme is flagged. It is clear what the tool does, but it never contrasts itself with the closely named sibling wp_get_theme, so an agent must infer that this one returns the whole collection rather than a single theme.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit when-to-use guidance, no exclusions, and no reference to alternatives such as wp_get_theme (single theme) or wp_activate_theme. The agent must derive the selection logic purely from the name and the word 'all'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wp_list_usersList UsersCRead-onlyInspect
List WordPress users with role filter.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number for pagination | |
| roles | No | Comma-separated roles to filter (e.g. "administrator,editor") | |
| search | No | Search by name or email | |
| site_id | No | Site ID to target (optional if you have only one connected site) | |
| per_page | No | Number to return (default 20, max 100) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, openWorldHint=true, and destructiveHint=false, so the safety profile is fully covered by structured data. The description adds no behavioral context beyond that — no note about pagination defaults, result caps, or what data the user records contain.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with zero filler. It is efficient, though bordering on under-specification given the tool's optional parameters and multi-site targeting.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only list tool with 0 required parameters, a fully documented schema, and no output schema, the definition is minimally viable. It leaves unaddressed how results are shaped (which user fields), pagination behavior across pages, and the multi-site targeting implied by site_id.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with each of the five optional parameters documented inline (pagination, comma-separated roles, search by name/email, target site). The description only echoes the role filter, so it neither compensates nor detracts — baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('List WordPress users') plus one scoping dimension (role filter), which is enough for an agent to identify the operation. It does not explicitly distinguish itself from near-neighbors like wp_get_current_user, but those siblings have clearly different scope so the ambiguity is low.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to use this tool versus alternatives, nor any prerequisites (e.g. that site_id is needed for multi-site setups or that this returns all roles by default). The only usage hint is that role filtering is supported, which is implied by the parameter name anyway.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wp_moderate_commentModerate CommentBIdempotentInspect
Moderate a comment by changing its status (approve, hold, spam, or trash).
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Comment ID | |
| status | Yes | New comment status | |
| site_id | No | Site ID to target (optional if you have only one connected site) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, openWorldHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds the status-change action and the four statuses, but it does not disclose auth requirements, side effects beyond status change, or reversibility beyond what the annotations imply. With annotations carrying the safety burden, this is adequate but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no wasted words. It is appropriately concise for a simple mutation tool, though it omits useful context that could be included without bloat.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's low complexity, 100% schema coverage, and annotations that cover the safety profile, the description is minimally complete for invocation. However, it lacks usage guidance and behavioral context beyond the basic action, leaving gaps for an agent that needs to decide when and why to call it versus alternatives.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents id, status, and site_id. The description lists the same status values that are in the enum and adds no syntax or format details beyond the schema. Baseline 3 is appropriate when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Moderate a comment by changing its status.' It lists the four possible status values, so the operation is identifiable. However, it does not distinguish this tool from siblings like wp_reply_comment or wp_list_comments, which is why 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no explicit guidance on when to use this tool versus alternatives, nor does it state prerequisites or exclusions. It only implies usage through the verb 'Moderate,' which is insufficient for an agent deciding between this and sibling comment tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wp_reply_commentReply CommentBInspect
Reply to a WordPress comment. Creates a new comment as a reply to an existing comment on a post.
| Name | Required | Description | Default |
|---|---|---|---|
| post | Yes | Post ID the comment belongs to | |
| parent | Yes | Parent comment ID to reply to | |
| content | Yes | Reply content | |
| site_id | No | Site ID to target (optional if you have only one connected site) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, idempotentHint=false and destructiveHint=false, and the description's 'creates a new comment' is consistent with that write profile. It adds the nesting behavior but says nothing about whether the reply is auto-approved or held for moderation, nor about permission requirements for a non-destructive write.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences with the action front-loaded and no filler. The second sentence restates much of the first ('creates a new comment as a reply'), making it mildly redundant rather than wasteful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a four-parameter creation tool with full schema coverage and annotations covering the safety profile, the description is sufficient to call it correctly. It omits the post-mutation reality an agent may care about, namely whether the reply publishes immediately or enters moderation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and every parameter (post, parent, content, site_id) is documented in the schema itself, so the schema does the heavy lifting. The description adds no format or constraint detail beyond that, which is the expected baseline when coverage is complete.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (reply) and resource (WordPress comment) and clarifies that it creates a new comment nested under an existing one. It does not distinguish itself from related siblings like wp_moderate_comment or wp_list_comments, so the agent must infer the boundary from the name alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no when-to-use or when-not-to-use guidance and never names an alternative tool. It implies a prerequisite (an existing parent comment) but does not state what happens if the parent is invalid or how this differs from creating a top-level comment.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wp_restore_revisionRestore RevisionAInspect
Restore a post or page to a previous revision. Fetches the revision content and updates the post with it. Supports dry_run to preview what will change.
| Name | Required | Description | Default |
|---|---|---|---|
| dry_run | No | If true, shows what would change without applying | |
| post_id | Yes | The post or page ID | |
| site_id | No | Site ID to target (optional if you have only one connected site) | |
| post_type | No | Post type (default: post) | |
| revision_id | Yes | The revision ID to restore |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the safety profile (readOnly=false, destructive=false, idempotent=false, openWorld=true), and the description adds the two-step mechanism plus the dry_run preview mode, which is genuinely useful. It stops short of disclosing what happens to the current post content (overwrite? reversibility?), permission requirements, or failure behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences with zero filler; purpose is front-loaded, the mechanism follows, and the optional preview mode is last. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no output schema, the description adequately covers intent, mechanism, and the safe preview path, and annotations carry the safety signals. It lacks notes on reversibility, permissions, or error cases, which would round out a destructive-adjacent operation, but nothing critical to correct invocation is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all five parameters including dry_run, post_id, site_id, post_type and revision_id are already documented in the schema. The description's dry_run sentence merely restates what the schema says and adds no format or constraint detail, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Restore a post or page to a previous revision') and clarifies the mechanism: it fetches the revision content and updates the post with it. This distinguishes it from siblings like wp_list_revisions (discovery only) and wp_update_post (writing new content), so an agent can pick it 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The mention of dry_run to 'preview what will change' gives implicit guidance on safe invocation, but there is no explicit statement of prerequisites (e.g., obtain revision_id via wp_list_revisions first) or when-not-to-use alternatives such as wp_update_post for direct edits. Usage is implied rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wp_schedule_postSchedule PostAInspect
Create a new post or page scheduled for future publication. Provide a future date and the content will be automatically published at that time by WordPress.
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | Scheduled publish date in ISO 8601 format (e.g. "2025-12-25T09:00:00") | |
| tags | No | Tag IDs (posts only) | |
| title | Yes | Post title | |
| content | No | Post content (HTML supported) | |
| excerpt | No | Post excerpt | |
| site_id | No | Site ID to target (optional if you have only one connected site) | |
| post_type | No | Post type (default: post) | |
| categories | No | Category IDs (posts only) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, idempotentHint=false, openWorldHint=true and destructiveHint=false, so the safety profile is covered. The description adds a genuinely non-obvious behavioral trait: the post is created now but published later automatically by WordPress. It omits permission/auth requirements and, notably, how the timezone of the ISO 8601 date is interpreted.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, both load-bearing: the first defines the operation and its scope, the second explains the required input and the resulting behavior. No filler, and the core purpose is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an 8-parameter mutation tool with annotations but no output schema, the description covers the essential scheduling contract but leaves meaningful gaps: timezone interpretation of the date, the distinction from wp_create_post, and error behavior for past dates. An agent could invoke it correctly, but only by guessing at the sibling routing and date semantics.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all 8 parameters and the baseline would be 3. The description adds a real constraint beyond the schema: the date must be in the future for scheduling to make sense, which the schema's 'ISO 8601 format' text does not state. It adds nothing about tags/categories/post_type semantics, but those are covered by the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Create a new post or page') plus the distinguishing scope qualifier 'scheduled for future publication', which separates it conceptually from wp_create_post / wp_create_page. However, it never names those siblings or explicitly says how it differs from passing a future date to wp_create_post, so an agent must infer the routing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: 'Provide a future date' tells the agent the precondition, and the phrase 'scheduled for future publication' signals when the tool is appropriate. There is no explicit when-not guidance, no mention of the immediate-publish alternative (wp_create_post) or the reschedule alternative (wp_update_post), and no note about what happens if the date is in the past.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wp_search_contentSearch ContentCRead-onlyInspect
Search across all WordPress content (posts, pages, products) by keyword.
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | Content type to search (default: post) | |
| search | Yes | Search term | |
| site_id | No | Site ID to target (optional if you have only one connected site) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=true, so the safety profile is covered. The description adds nothing behavioral beyond that: no result caps, pagination, or ordering behavior for what is presumably a broad site-wide query.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler, which is well sized for a simple search tool. It loses a point because the one sentence it does spend contains an inaccuracy (products) rather than a useful constraint.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 3-parameter read-only search with full schema coverage and annotations, the description is minimally adequate. It omits how many results come back, whether results are paginated, and what fields are returned, which an agent calling a broad search would want to know.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents search, type, and site_id. The description only loosely echoes the search keyword and gets the searchable content types partly wrong, adding no format or syntax detail. Baseline 3 applies when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Search) and resource (all WordPress content), which cleanly separates it from the listing siblings like wp_list_posts and wp_list_pages. However, it names 'products' as searchable content, while the schema's type enum only allows post, page, term, and post-format, so the stated scope is partly inaccurate.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance on when to use keyword search versus the many list_* siblings, no prerequisites, and no exclusions. An agent must infer the distinction from the verb alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wp_site_healthSite HealthARead-onlyInspect
Get WordPress Site Health status including tests for security, performance, and best practices. Returns actionable recommendations.
| Name | Required | Description | Default |
|---|---|---|---|
| site_id | No | Site ID to target (optional if you have only one connected site) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, openWorldHint=true, and destructiveHint=false, so the safety profile is covered. The description adds useful context about what is checked and that recommendations are returned, but does not cover auth needs, rate limits, or result format.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the core action and useful return context. No filler or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple, read-only tool with one optional parameter and no output schema, the description covers what it does and roughly what it returns. It could mention output structure, but the essential information is present and annotations cover safety.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the only parameter, site_id, is fully documented in the schema including its optional nature. The description adds no parameter details, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Get WordPress Site Health status.' It also names the test categories (security, performance, best practices) and mentions actionable recommendations, making the tool's scope clear and distinguishing it from all siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use it—checking site health—but gives no explicit conditions, exclusions, or alternative tools. Since no direct sibling provides site health, the lack of routing is a minor gap rather than misleading.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wp_trash_pageTrash PageADestructiveInspect
Move a WordPress page to trash. This does NOT permanently delete — the page can be recovered from trash. Use dry_run=true to preview.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The page ID to trash | |
| dry_run | No | If true, shows what would be trashed without actually doing it | |
| site_id | No | Site ID to target (optional if you have only one connected site) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and idempotentHint=false, so the safety profile is largely covered. The description adds real value beyond them by clarifying that the deletion is soft/recoverable and that a dry_run preview is available, which materially changes how an agent should reason about the risk.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, front-loaded with the action and immediately followed by the recoverability caveat and the preview option. Every sentence carries decision-relevant information with no padding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with annotations covering destructiveness, the description supplies the key missing behavioral facts (reversibility, dry_run). It does not address permissions, what happens when the page is already trashed, or the shape of the result, but the essentials for correct invocation are present.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so id, dry_run, and site_id are already fully documented in the schema; baseline is 3. The description echoes dry_run's preview purpose but adds no syntax, format, or constraint detail beyond what the schema states.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ("Move a WordPress page to trash") and explicitly distinguishes the operation from permanent deletion, so the agent understands the semantic effect. It does not, however, differentiate itself from the sibling wp_trash_post, which performs the same action on a different post type.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives one actionable usage hint — "Use dry_run=true to preview" — which is genuine guidance for a mutating tool. It offers no guidance on when to prefer this over siblings like wp_trash_post or wp_update_page, or when trashing is inappropriate, so usage is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wp_trash_postTrash PostADestructiveInspect
Move a WordPress post to trash. This does NOT permanently delete — the post can be recovered from trash within 30 days. Use dry_run=true to preview what will be trashed without executing.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The post ID to trash | |
| dry_run | No | If true, shows what would be trashed without actually doing it | |
| site_id | No | Site ID to target (optional if you have only one connected site) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and readOnlyHint=false. The description adds valuable behavioral context beyond the annotations by clarifying this is non-permanent, recoverable within 30 days, and previewable via dry_run. It does not cover permissions or rate limits, so not 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tightly written sentences with zero waste: the action, the non-permanent behavior, and the dry_run option. The core action is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple trash operation with full schema coverage and annotations, the description covers what it does, its recoverable nature, and the dry_run preview. No output schema exists, so return values need not be explained.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents id, dry_run, and site_id. The description only reinforces dry_run usage, adding no new syntax or meaning beyond the schema. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Move a WordPress post to trash.' It distinguishes itself from sibling tools like wp_trash_page and woo_trash_product by specifying the post resource, so an agent can identify it without opening schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides clear context: use this to trash a post, and use dry_run=true to preview without executing. It does not name explicit alternatives or exclusions, but no direct alternative is needed since it targets a distinct resource.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wp_update_categoryUpdate CategoryAIdempotentInspect
Update an existing WordPress category. Only provide the fields you want to change.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Category ID to update | |
| name | No | New category name | |
| slug | No | New URL slug | |
| parent | No | New parent category ID | |
| site_id | No | Site ID to target (optional if you have only one connected site) | |
| description | No | New category description |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds the meaningful partial-update behavior (unmentioned fields are left untouched), which goes beyond the annotations, but says nothing about failure modes or whether omitted fields are preserved vs. cleared.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences with zero filler; the purpose is front-loaded and the one actionable rule follows it directly. Nothing could be cut without losing information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a six-parameter mutation tool, the combination of a fully described schema, complete safety annotations, and the partial-update note leaves little an agent needs to know before calling it. Missing only minor context such as behavior on an invalid or nonexistent category id, and no output schema exists so return values need not be explained.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so every parameter is already documented in the schema and the baseline is 3. The description adds no syntax, format, or constraint detail beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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 category"), so the agent knows exactly what operation is performed. It does not, however, differentiate itself from adjacent siblings such as wp_update_tag or wp_create_category, which would require an explicit contrast.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
"Only provide the fields you want to change" implies partial-update semantics and is genuinely useful guidance for a mutation tool. However, there is no statement of when to prefer this over wp_create_category or wp_update_tag, and no mention of prerequisites such as needing a valid category id.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wp_update_custom_postUpdate Custom PostBIdempotentInspect
Update an existing item of any custom post type. Only provide fields you want to change.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Post ID to update | |
| meta | No | Custom meta fields to update | |
| title | No | ||
| status | No | ||
| content | No | ||
| excerpt | No | ||
| site_id | No | Site ID to target (optional if you have only one connected site) | |
| rest_base | Yes | REST base of the post type |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, idempotentHint=true, destructiveHint=false, and openWorldHint=true, so the safety profile is covered. The description adds the partial-update semantic, a genuine behavioral trait beyond the annotations, but says nothing about permissions, what happens to omitted fields, or the meta merge behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences with zero filler, front-loaded on the action, followed by the key partial-update constraint. Appropriately sized, though not ambitiously informative.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an 8-parameter mutation tool with a nested meta object and no output schema, the description covers the core action but omits how meta should be shaped, what rest_base values are valid, and the meaning of the status enum. Annotations carry the safety story, so a minimum-viable 3 is fair.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 50% (id, meta, site_id, rest_base documented; title, status, content, excerpt bare). The description only vaguely refers to 'fields' and adds no syntax or format detail beyond what the schema provides, so it does not compensate for the undocumented half.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource (update a custom post type item) and scopes it to 'any custom post type.' It is distinguishable from siblings like wp_update_post and wp_create_custom_post by the 'custom post type' qualifier, though it never explicitly names those siblings as alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Only provide fields you want to change' gives real usage guidance for a partial-update call, which is more than nothing. However, it offers no when-to-use-vs-alternative routing (e.g., when to use this instead of wp_update_post), and no prerequisites are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wp_update_pageUpdate PageAIdempotentInspect
Update an existing WordPress page. Only provide the fields you want to change.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The page ID to update | |
| title | No | New page title | |
| parent | No | Parent page ID | |
| status | No | ||
| content | No | New page content (HTML supported) | |
| site_id | No | Site ID to target (optional if you have only one connected site) | |
| menu_order | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare a non-destructive, idempotent, open-world write, so the safety profile is covered. The description adds the partial-update semantics (unmentioned fields are left alone), which is real value, but it says nothing about required capabilities, whether status transitions publish live content, or reversibility.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences with the action stated first and the key operational constraint second. Nothing is padded or repeated from the title.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 7-parameter mutation tool with no output schema, the description covers the most important mental model (partial update) but omits target-site behavior when multiple sites are connected, permission/auth requirements, and any note on the status enum's effect on a published page.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 71%, so most parameters are documented in the schema itself. The description adds only the optionality/partial-update principle, not per-parameter meaning, and omissions like the undocumented status and menu_order fields are not compensated for.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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 page'), which is unambiguous on its own. However, it offers no differentiation from the many closely named siblings such as wp_update_post, wp_update_custom_post, or wp_update_category, so the agent must infer that 'page' means the WordPress page post type specifically.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The instruction 'Only provide the fields you want to change' is a genuine invocation guideline implying a partial/merge update, which usefully sets expectations. But it gives no when-to-use context, no prerequisites, and no routing toward alternatives like wp_get_page (to inspect first) or wp_update_post for other post types.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wp_update_pluginUpdate PluginAIdempotentInspect
Safely update a WordPress plugin to its latest version. Runs in background with automatic fallbacks. Use the Command Center (swiftly_command_center) to see which plugins have updates available.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | Plugin slug to update (e.g. "akismet", "woocommerce"). Use the slug from the updates list, NOT the full file path. | |
| site_id | No | Site ID to target (optional if you have only one connected site) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, idempotentHint=true, destructiveHint=false and openWorldHint=true, so the safety posture is partly covered. The description still adds real value beyond that: background execution and 'automatic fallbacks', which tell the agent the call is non-blocking and resilient to partial failure. It stops short of stating what a fallback does (e.g., rollback) or what the caller observes on failure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences with no filler: the action is front-loaded, then behavior, then the prerequisite lookup. Every sentence earns its place and nothing is buried.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter mutation with full schema coverage and no output schema, the description covers purpose, background behavior and how to find updatable plugins. Gaps remain around the approval flow implied by the swiftly_* approval siblings and what the agent should expect on failure, but nothing critical to invocation is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%: the slug parameter is fully documented, including the warning to use the slug rather than the full file path, and site_id is described. The description adds nothing about parameters beyond implying no version argument is needed, so the schema does the heavy lifting and the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('update a WordPress plugin') plus the target state ('to its latest version'), which cleanly separates it from siblings like wp_install_plugin, wp_activate_plugin and wp_update_theme. It does not explicitly name those siblings, so it falls just 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Use the Command Center (swiftly_command_center) to see which plugins have updates available' gives a concrete prerequisite workflow and names the companion tool. It supplies clear when-to-use context but no when-not-to-use or exclusion conditions (e.g., plugin already current, incompatible plugin).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wp_update_postUpdate PostBIdempotentInspect
Update an existing WordPress post. Only provide the fields you want to change.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The post ID to update | |
| tags | No | Array of tag IDs | |
| title | No | New post title | |
| author | No | New author user ID | |
| status | No | New post status | |
| content | No | New post content (HTML supported) | |
| excerpt | No | New post excerpt | |
| site_id | No | Site ID to target (optional if you have only one connected site) | |
| categories | No | Array of category IDs | |
| featured_media | No | Featured image media ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds the PATCH-like partial-update behavior (omitted fields are preserved), which is genuine context not in the annotations, but says nothing about permissions, publish side effects, or validation failures.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the action and followed by the key operating instruction, with no filler. It is tight, though the second sentence restates fairly standard partial-update semantics rather than adding new information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 10-parameter write tool with no output schema, the fully documented input schema and safety annotations carry most of the load. The description still leaves the agent without routing guidance against the ACF/sibling update tools, which is a real gap for this crowded namespace.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so every parameter including the status enum and featured_media is documented in the schema itself. The description adds no parameter-level semantics beyond that, making the baseline 3 appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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'), which clearly separates it from wp_update_page or wp_update_custom_post. However, it never names a sibling or scopes itself explicitly, so the differentiation is left to the agent's inference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Only provide the fields you want to change' gives useful partial-update guidance but no when-to-use or when-not-to-use framing. Nothing tells the agent when to prefer acf_update_post_fields or acf_update_post_fields for custom fields, so usage is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wp_update_settingsUpdate SettingsADestructiveInspect
Update WordPress site settings. Only provide the fields you want to change. Common fields: title, description (tagline), timezone_string, date_format, time_format, posts_per_page, default_comment_status.
| Name | Required | Description | Default |
|---|---|---|---|
| title | No | Site title | |
| site_id | No | Site ID to target (optional if you have only one connected site) | |
| date_format | No | Date format (e.g. "F j, Y") | |
| description | No | Site tagline | |
| time_format | No | Time format (e.g. "g:i a") | |
| posts_per_page | No | Blog pages show at most N posts | |
| timezone_string | No | Timezone (e.g. "America/New_York") | |
| default_comment_status | No | Default comment status for new posts |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, idempotentHint=false, readOnlyHint=false and openWorldHint=true, so the safety profile is covered. The description adds the partial-update instruction but says nothing about the fact that these are site-wide global settings whose changes affect every page and user, which is relevant context for a tool annotated as destructive. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences with the core action front-loaded and the partial-update rule immediately after. The field enumeration is mildly redundant with the schema but still earned as a quick reference.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Eight fully documented parameters, no nested objects, and annotations covering the safety profile mean an agent can call this correctly from the combined description plus schema. The only meaningful omission is scope awareness (that these settings are site-wide), which is a minor gap given no output schema exists to explain results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and all 8 parameters carry their own descriptions, so the schema does the heavy lifting. The description's list of "common fields" largely mirrors what the schema already documents and adds no syntax, format, or default-value detail beyond it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ("Update WordPress site settings") and enumerates the common fields that can be changed, which makes the tool's job unambiguous next to wp_get_settings. However, it does not explicitly name the read counterpart or any other sibling it competes with, so it stops short of full sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
"Only provide the fields you want to change" usefully implies partial-update semantics, which is implied guidance on how to call it. There is no statement of when to use this tool versus wp_get_settings or other update tools, and no prerequisites (e.g. site_id requirement when multiple sites are connected).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wp_update_tagUpdate TagAIdempotentInspect
Update an existing WordPress tag. Only provide the fields you want to change.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Tag ID to update | |
| name | No | New tag name | |
| slug | No | New URL slug | |
| site_id | No | Site ID to target (optional if you have only one connected site) | |
| description | No | New tag description |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the safety profile: readOnlyHint=false (a mutation), idempotentHint=true, destructiveHint=false, and openWorldHint=true. The description adds the patch-style behavior that unspecified fields are left unchanged, which is genuinely useful context beyond the annotations. It does not, however, cover permission/auth requirements or the response shape.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, front-loaded with what the tool does followed by the key operational hint. No filler, though neither sentence is doing quite enough work to merit a top score.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple single-resource update tool with full schema coverage, no output schema, and annotations carrying the safety profile, the description is largely sufficient. The patch hint removes the main ambiguity (whether omitted fields get cleared), though required-id and auth expectations remain unstated.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all five parameters (id, name, slug, site_id, description) are already documented in the schema. The description only adds the generic patch instruction and no format or syntax detail beyond that, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Update an existing WordPress tag') that clearly separates it from wp_create_tag and wp_list_tags. However, it does not explicitly distinguish itself from other update siblings such as wp_update_category or wp_update_post, so an agent must infer the resource scope from the name alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The line 'Only provide the fields you want to change' implies partial-update/patch semantics, which is useful guidance. But there is no explicit when-to-use vs alternatives statement and no prerequisites mentioned (e.g., an existing tag ID must be supplied). Usage is implied rather than specified.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wp_update_themeUpdate ThemeAIdempotentInspect
Safely update a WordPress theme to its latest version. Runs in background with automatic fallbacks. Use the Command Center (swiftly_command_center) to see which themes have updates available.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | Theme slug to update (e.g. "twentytwentyfour", "astra"). Use the slug from the updates list. | |
| site_id | No | Site ID to target (optional if you have only one connected site) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this is a non-destructive, idempotent write, so the safety profile is covered. The description adds genuine behavioral context beyond that: 'Runs in background with automatic fallbacks,' which tells the agent the operation is asynchronous and self-recovering. It does not detail what the fallbacks do or whether approval is needed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two compact sentences, front-loaded with the core action and followed by the companion-tool pointer. No filler and nothing redundant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter mutation tool with full schema coverage and no output schema, the definition supplies the key missing context (background execution, fallbacks, where to find eligible themes). It is essentially complete, though a note on approval or failure behavior would seal it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and the schema descriptions already explain both the slug (with examples and the 'use the slug from the updates list' guidance) and site_id. The description adds no parameter meaning beyond the schema, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('update a WordPress theme to its latest version'), which is clear and unambiguous. It does not, however, explicitly distinguish itself from adjacent siblings like wp_install_theme or wp_activate_theme, which an agent might otherwise confuse with updating.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly routes the agent to swiftly_command_center to discover which themes have updates available, giving concrete pre-call context. It stops short of naming when NOT to use this tool (e.g., for installs or activations), so it lacks full exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wp_upload_mediaUpload MediaAInspect
Upload an image to the WordPress media library from a URL. Returns the media ID and URL which can be used as featured images for posts or products.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | URL of the image to upload | |
| title | No | Title for the media item | |
| site_id | No | Site ID to target (optional if you have only one connected site) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this is a non-read-only, open-world, non-idempotent write that is not destructive, so the safety profile is covered. The description adds that input is fetched from a URL and that a media ID and URL are returned, but it does not warn that repeat uploads create duplicates (relevant given idempotentHint=false) or state any permission requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences with the action front-loaded and the return-value payoff second. No filler, no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description correctly compensates by naming the returned media ID and URL. For a low-complexity, three-parameter tool with full schema coverage this is close to sufficient, though duplicate-creation and permission behavior remain unstated.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and all three parameters are documented in the schema, so the baseline is 3. The description restates the URL source but adds no format, constraint, or multi-site behavior beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (upload), resource (image/media library), and source (from a URL), making it immediately distinguishable from siblings like wp_list_media or stock_photo_search. An agent knows exactly what the tool does 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The downstream use case ('can be used as featured images for posts or products') implies when the result is useful, but there is no explicit when-to-use guidance, no exclusions, and no mention of alternatives such as stock_photo_search or swiftly_request_upload. Usage must be inferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
3 tool updates
- Changed
woo_list_products1 field changed- changed
Input schema / properties / status / descriptionPrevious value: -"Product status"New value: +"Product status (default: publish)"
- Changed
woo_low_stock_report3 fields changed- changed
Input schema / properties / stock_status / descriptionPrevious value: -"Filter by stock status (default shows out of stock and low stock)"New value: +"Deprecated alias for \"type\". Use \"type\" instead. \"instock\" is mapped to \"lowstock\"." - changed
Input schema / properties / stock_status / enumPrevious value: -[ - "outofstock", - "onbackorder", - "instock" -]New value: +[ + "lowstock", + "outofstock", + "onbackorder", + "instock" +] - added
Input schema / properties / typeAdded value: +{ + "description": "Filter: \"lowstock\" (default) — items at or below the WooCommerce low-stock threshold, \"outofstock\", or \"onbackorder\"", + "enum": [ + "lowstock", + "outofstock", + "onbackorder" + ], + "type": "string" +}
- Changed
woo_update_variation1 field changed- added
Input schema / properties / manage_stockAdded value: +{ + "description": "Enable stock management for this variation", + "type": "boolean" +}
1 tool update
- Changed
woo_list_product_categories1 field changed- added
Input schema / properties / pageAdded value: +{ + "description": "Page number for pagination", + "minimum": 1, + "type": "integer" +}
73 tool updates
- Removed
divi_clone_page - Removed
elementor_clone_page - Removed
elementor_save_page - Removed
seo_bulk_audit - Removed
seo_get_sitemap_status - Removed
seo_update_post_meta - Removed
woo_bulk_update_prices - Removed
woo_bulk_update_products - Removed
woo_bulk_update_stock - Removed
woo_create_customer - Removed
woo_create_order - Removed
woo_create_refund - Removed
woo_delete_coupon - Removed
woo_get_payment_gateways - Removed
woo_get_shipping_zones - Removed
woo_get_tax_rates - Removed
woo_top_products - Removed
woo_trash_order - Removed
woo_update_customer - Removed
woo_update_order - Removed
wp_bulk_update_posts - Removed
wp_cache_flush - Removed
wp_create_menu - Removed
wp_create_snippet - Removed
wp_create_theme - Removed
wp_create_user - Removed
wp_cron_list - Removed
wp_cron_run - Removed
wp_delete_category - Removed
wp_delete_media - Removed
wp_delete_menu - Removed
wp_delete_menu_item - Removed
wp_delete_plugin - Removed
wp_delete_tag - Removed
wp_delete_user - Removed
wp_discover_endpoints - Removed
wp_edit_template_part - Removed
wp_edit_theme_file - Removed
wp_edit_theme_template - Removed
wp_export_content - Removed
wp_get_global_styles - Removed
wp_get_rendered_page - Removed
wp_get_theme_preview_url - Removed
wp_list_ability_categories - Changed
wp_list_categories2 fields changed- added
Input schema / properties / _fieldsAdded value: +{ + "description": "Comma-separated fields to return (e.g. \"id,name,slug,count\")", + "type": "string" +} - added
Input schema / properties / pageAdded value: +{ + "description": "Page number for pagination", + "minimum": 1, + "type": "integer" +}
- Changed
wp_list_media1 field changed- added
Input schema / properties / _fieldsAdded value: +{ + "description": "Comma-separated fields to return for lighter responses (e.g. \"id,title,source_url,media_type\")", + "type": "string" +}
- Changed
wp_list_menu_items1 field changed- added
Input schema / properties / pageAdded value: +{ + "description": "Page number for pagination", + "minimum": 1, + "type": "integer" +}
- Changed
wp_list_menus1 field changed- added
Input schema / properties / pageAdded value: +{ + "description": "Page number for pagination", + "minimum": 1, + "type": "integer" +}
- Changed
wp_list_pages1 field changed- added
Input schema / properties / _fieldsAdded value: +{ + "description": "Comma-separated fields to return for lighter responses (e.g. \"id,title,status,date,slug\")", + "type": "string" +}
- Changed
wp_list_posts1 field changed- added
Input schema / properties / _fieldsAdded value: +{ + "description": "Comma-separated fields to return for lighter responses (e.g. \"id,title,status,date,slug\")", + "type": "string" +}
- Removed
wp_list_scheduled - Changed
wp_list_tags2 fields changed- added
Input schema / properties / _fieldsAdded value: +{ + "description": "Comma-separated fields to return (e.g. \"id,name,slug,count\")", + "type": "string" +} - added
Input schema / properties / pageAdded value: +{ + "description": "Page number for pagination", + "minimum": 1, + "type": "integer" +}
- Removed
wp_list_template_parts - Removed
wp_list_templates - Removed
wp_list_theme_files - Changed
wp_list_users1 field changed- added
Input schema / properties / pageAdded value: +{ + "description": "Page number for pagination", + "minimum": 1, + "type": "integer" +}
- Removed
wp_maintenance_mode - Removed
wp_option_get - Removed
wp_option_update - Removed
wp_read_theme_file - Removed
wp_rest_api - Removed
wp_rewrite_flush - Removed
wp_run_ability - Removed
wp_run_cli - Removed
wp_search_replace - Removed
wp_transient_delete - Removed
wp_update_core - Removed
wp_update_global_styles - Removed
wp_update_media - Removed
wp_update_menu_item - Removed
wp_update_snippet - Removed
wp_update_user - Removed
wp_write_theme_file
4 tool updates
- Changed
woo_create_refund1 field changed- added
Input schema / properties / dry_runAdded value: +{ + "description": "If true, preview the refund details without actually processing it", + "type": "boolean" +}
- Changed
wp_create_post1 field changed- added
Input schema / properties / authorAdded value: +{ + "description": "Author user ID (defaults to authenticated user)", + "exclusiveMinimum": 0, + "type": "integer" +}
- Changed
wp_install_theme1 field changed- changed
Input schema / properties / slug / descriptionPrevious value: -"Theme slug from wordpress.org (e.g. \"flavor\", \"flavor-developer\")"New value: +"Theme slug from wordpress.org (e.g. flavor, flavor-developer)"
- Changed
wp_update_post1 field changed- added
Input schema / properties / authorAdded value: +{ + "description": "New author user ID", + "exclusiveMinimum": 0, + "type": "integer" +}
4 tool updates
- Changed
wp_discover_abilities8 fields changed- added
Input schema / properties / categoryAdded value: +{ + "description": "Filter by ability category slug (e.g. \"content\", \"commerce\")", + "type": "string" +} - added
Input schema / properties / destructiveAdded value: +{ + "description": "Filter to only destructive abilities (true) or safe abilities (false)", + "type": "boolean" +} - added
Input schema / properties / idempotentAdded value: +{ + "description": "Filter to only idempotent abilities (true)", + "type": "boolean" +} - added
Input schema / properties / namespaceAdded value: +{ + "description": "Filter by plugin namespace (e.g. \"woocommerce\", \"yoast\")", + "type": "string" +} - added
Input schema / properties / pageAdded value: +{ + "description": "Page number for pagination", + "minimum": 1, + "type": "integer" +} - added
Input schema / properties / per_pageAdded value: +{ + "description": "Number of abilities to return (default 50, max 100)", + "maximum": 100, + "minimum": 1, + "type": "integer" +} - added
Input schema / properties / readonlyAdded value: +{ + "description": "Filter to only read-only abilities (true) or write abilities (false)", + "type": "boolean" +} - removed
Input schema / properties / searchRemoved value: -{ - "description": "Search term to filter abilities by name or description", - "type": "string" -}
- Changed
wp_get_ability_info1 field changed- changed
Input schema / properties / ability / descriptionPrevious value: -"The ability name/slug to get details for"New value: +"The ability name (e.g. \"my-plugin/site-info\")"
- Added
wp_list_ability_categories - Changed
wp_run_ability1 field changed- changed
Input schema / properties / ability / descriptionPrevious value: -"The ability name/slug to execute"New value: +"The ability name (e.g. \"my-plugin/site-info\")"
22 tool updates
- Added
acf_get_field_group - Added
acf_get_options - Added
acf_get_post_fields - Added
acf_list_field_groups - Added
acf_update_post_fields - Added
divi_clone_page - Added
divi_get_page_data - Added
divi_list_layouts - Added
divi_list_pages - Added
elementor_clone_page - Added
elementor_get_page_data - Added
elementor_get_widget_schema - Added
elementor_list_global_widgets - Added
elementor_list_pages - Added
elementor_list_templates - Added
elementor_list_widgets - Added
elementor_save_page - Added
seo_analyze_content - Added
seo_bulk_audit - Added
seo_get_post_meta - Added
seo_get_sitemap_status - Added
seo_update_post_meta
3 tool updates
- Added
swiftly_decline_action - Changed
swiftly_process_upload1 field changed- changed
Input schema / properties / upload_id / descriptionPrevious value: -"The upload ID"New value: +"The upload ID returned by swiftly_request_upload"
- Changed
wp_get_page_html1 field changed- changed
Input schema / properties / url / descriptionPrevious value: -"Full page URL to fetch (e.g. \"https://example.com/about\"). If omitted, fetches the homepage."New value: +"Page URL on the connected site (e.g. \"https://example.com/about\"). Must belong to the connected site — external URLs are rejected. If omitted, fetches the homepage."
152 tool updates
- First observed
stock_photo_search - First observed
swiftly_check_approval - First observed
swiftly_check_upload - First observed
swiftly_command_center - First observed
swiftly_connect_site - First observed
swiftly_disconnect_site - First observed
swiftly_execute_approved - First observed
swiftly_list_sites - First observed
swiftly_photo_gallery - First observed
swiftly_plan_info - First observed
swiftly_process_upload - First observed
swiftly_request_approval - First observed
swiftly_request_upload - First observed
woo_add_order_note - First observed
woo_bulk_update_prices - First observed
woo_bulk_update_products - First observed
woo_bulk_update_stock - First observed
woo_create_coupon - First observed
woo_create_customer - First observed
woo_create_order - First observed
woo_create_product - First observed
woo_create_product_category - First observed
woo_create_refund - First observed
woo_delete_coupon - First observed
woo_get_coupon - First observed
woo_get_customer - First observed
woo_get_order - First observed
woo_get_payment_gateways - First observed
woo_get_product - First observed
woo_get_shipping_zones - First observed
woo_get_tax_rates - First observed
woo_list_coupons - First observed
woo_list_customers - First observed
woo_list_order_notes - First observed
woo_list_orders - First observed
woo_list_product_categories - First observed
woo_list_products - First observed
woo_list_refunds - First observed
woo_list_variations - First observed
woo_low_stock_report - First observed
woo_sales_report - First observed
woo_top_products - First observed
woo_trash_order - First observed
woo_trash_product - First observed
woo_update_coupon - First observed
woo_update_customer - First observed
woo_update_order - First observed
woo_update_order_status - First observed
woo_update_product - First observed
woo_update_variation - First observed
wp_activate_plugin - First observed
wp_activate_theme - First observed
wp_add_menu_item - First observed
wp_bulk_update_posts - First observed
wp_cache_flush - First observed
wp_create_category - First observed
wp_create_custom_post - First observed
wp_create_menu - First observed
wp_create_page - First observed
wp_create_post - First observed
wp_create_snippet - First observed
wp_create_tag - First observed
wp_create_theme - First observed
wp_create_user - First observed
wp_cron_list - First observed
wp_cron_run - First observed
wp_deactivate_plugin - First observed
wp_delete_category - First observed
wp_delete_media - First observed
wp_delete_menu - First observed
wp_delete_menu_item - First observed
wp_delete_plugin - First observed
wp_delete_tag - First observed
wp_delete_user - First observed
wp_discover_abilities - First observed
wp_discover_endpoints - First observed
wp_edit_template_part - First observed
wp_edit_theme_file - First observed
wp_edit_theme_template - First observed
wp_export_content - First observed
wp_get_ability_info - First observed
wp_get_current_user - First observed
wp_get_custom_post - First observed
wp_get_global_styles - First observed
wp_get_menu - First observed
wp_get_page - First observed
wp_get_page_html - First observed
wp_get_post - First observed
wp_get_rendered_page - First observed
wp_get_settings - First observed
wp_get_site_info - First observed
wp_get_snippet - First observed
wp_get_theme - First observed
wp_get_theme_preview_url - First observed
wp_install_plugin - First observed
wp_install_theme - First observed
wp_list_categories - First observed
wp_list_comments - First observed
wp_list_custom_posts - First observed
wp_list_media - First observed
wp_list_menu_items - First observed
wp_list_menu_locations - First observed
wp_list_menus - First observed
wp_list_pages - First observed
wp_list_plugins - First observed
wp_list_post_types - First observed
wp_list_posts - First observed
wp_list_revisions - First observed
wp_list_scheduled - First observed
wp_list_snippets - First observed
wp_list_tags - First observed
wp_list_template_parts - First observed
wp_list_templates - First observed
wp_list_theme_files - First observed
wp_list_themes - First observed
wp_list_users - First observed
wp_maintenance_mode - First observed
wp_moderate_comment - First observed
wp_navigate - First observed
wp_option_get - First observed
wp_option_update - First observed
wp_read_theme_file - First observed
wp_reply_comment - First observed
wp_rest_api - First observed
wp_restore_revision - First observed
wp_rewrite_flush - First observed
wp_run_ability - First observed
wp_run_cli - First observed
wp_schedule_post - First observed
wp_search_content - First observed
wp_search_replace - First observed
wp_site_health - First observed
wp_transient_delete - First observed
wp_trash_page - First observed
wp_trash_post - First observed
wp_update_category - First observed
wp_update_core - First observed
wp_update_custom_post - First observed
wp_update_global_styles - First observed
wp_update_media - First observed
wp_update_menu - First observed
wp_update_menu_item - First observed
wp_update_page - First observed
wp_update_plugin - First observed
wp_update_post - First observed
wp_update_settings - First observed
wp_update_snippet - First observed
wp_update_tag - First observed
wp_update_theme - First observed
wp_update_user - First observed
wp_upload_media - First observed
wp_write_theme_file
Publisher details
- Operator
- SwiftlyWP
- Operator website
- https://swiftlymcp.com
- Vendor relationship
- First-party
- Documentation
- https://swiftlymcp.com/docs
- Trust center
- Unknown
- Restrictions
- Unknown
Related MCP Servers
- AlicenseNot gradedqualityBmaintenancePerplexity for social: ask what competitors are running across social and get answers grounded in real ad and creative data, not guesses.2Apache 2.0
- AlicenseCqualityBmaintenanceCompetitor Monitor AI - MCP server providing AI-powered tools and automation by MEOK AI Labs119 npmMIT
- AlicenseAqualityCmaintenanceEnables brand visibility monitoring across major AI platforms like ChatGPT, Claude, Gemini, and Perplexity. It allows users to track visibility scores, analyze competitor data, and receive actionable insights to improve AI-generated brand recommendations.164 npm1MIT

industrylens-mcpofficial
AlicenseNot gradedqualityBmaintenanceBrowse IndustryLens's published competitive-intelligence reports and head-to-head competitor comparisons from any AI agent — real, source-backed data.MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.