Skip to main content
Glama

ItchWPMCP

Local MCP server for Codex/Claude to query and edit WordPress content through the WordPress REST API.

It can be used with any WordPress site that has the REST API enabled and supports Application Password authentication.

Setup

  1. Create a WordPress application password: WordPress Admin -> Users -> Profile -> Application Passwords

  2. Copy .env.example to .env and fill in:

    WP_BASE_URL=https://your-wordpress-site.example
    WP_USERNAME=your-wordpress-username
    WP_APP_PASSWORD=xxxx xxxx xxxx xxxx xxxx xxxx
    WP_ALLOW_PRODUCTION_WRITES=false
  3. Install dependencies:

    npm install
  4. Run the server:

    npm start

    If Node cannot verify your site's certificate chain, set NODE_OPTIONS=--use-system-ca in your MCP client environment.

Related MCP server: mcp-wordpress

Tools

Pages

  • wordpress_list_pages: list WordPress pages.

  • wordpress_get_page: get a page by ID.

  • wordpress_create_page: create a page, defaulting to draft status.

  • wordpress_clone_page: clone an existing page into a new draft page.

  • wordpress_update_page: update title, content, excerpt, slug, status, parent, or menu order.

  • wordpress_update_page_status: update only a page status.

  • wordpress_delete_page: trash or delete a page with confirmation.

Posts

  • wordpress_list_posts: list WordPress posts.

  • wordpress_get_post: get a post by ID.

  • wordpress_create_post: create a post, defaulting to draft status.

  • wordpress_update_post: update a post.

  • wordpress_delete_post: trash or delete a post with confirmation.

Media

  • wordpress_list_media: list media library items.

  • wordpress_upload_media: upload a local file to the media library.

Taxonomies

  • wordpress_list_categories: list post categories.

  • wordpress_create_category: create a post category.

  • wordpress_list_tags: list post tags.

  • wordpress_create_tag: create a post tag.

Site & Users

  • wordpress_get_settings: read general site settings.

  • wordpress_update_settings: update selected general site settings.

  • wordpress_list_users: list users if the authenticated user has permission.

  • wordpress_list_plugins: list plugins if the authenticated user has permission.

  • wordpress_update_plugin_status: activate or deactivate an installed plugin.

Classic Navigation & Menus

  • wordpress_list_menus: list classic WordPress menus.

  • wordpress_list_menu_items: list menu items for a classic menu.

Sidebars & Widgets

  • wordpress_list_sidebars: list all registered widget areas (header, footer, sidebar, etc.).

  • wordpress_get_sidebar: get a specific widget area and its widget IDs.

  • wordpress_list_widgets: list widget instances with rendered HTML previews.

  • wordpress_create_widget: create a widget instance in a sidebar.

  • wordpress_update_widget: update widget instance settings.

  • wordpress_delete_widget: delete a widget instance with confirmation.

Post & Page Meta

  • wordpress_get_post_meta: read registered REST meta fields for a page or post.

  • wordpress_update_post_meta: update registered REST meta fields for a page or post.

Elementor Page Builder

  • elementor_get_page_structure: read a page's Elementor layout as a readable tree (sections → columns → widgets).

  • elementor_create_page: create a page pre-configured for Elementor editing.

  • elementor_append_sections: append one or more Elementor sections to the end of a page.

  • elementor_replace_section: replace an Elementor section at a specific index.

  • elementor_delete_section: remove an Elementor section at a specific index with confirmation.

  • elementor_update_widget_settings: find a widget by ID and merge new settings into it.

  • elementor_list_templates: list templates saved in the Elementor template library.

  • elementor_get_template: get an Elementor template's content and structure.

  • elementor_apply_template: apply a template to a page, replacing its current content.

  • elementor_save_as_template: save a page's Elementor data as a new reusable template.

  • elementor_widget_reference: return schema and example JSON for any Elementor widget type.

Elementor Meta

  • wordpress_get_elementor_meta: read Elementor-related meta and template fields for a page or post.

  • wordpress_update_elementor_meta: update _elementor_data, _elementor_edit_mode, _elementor_template_type, _elementor_version, _elementor_page_settings, and _wp_page_template.

  • wordpress_update_elementor_data: update only _elementor_data for a page or post.

  • wordpress_list_elementor_routes: list Elementor REST API routes on the configured site.

  • wordpress_elementor_rest_request: advanced REST API escape hatch limited to Elementor namespaces.

FSE Templates (WordPress 7.0)

Full Site Editing templates control the overall layout of page types (single post, archive, 404, etc.).

  • wordpress_list_templates: list FSE block templates on the site.

  • wordpress_get_template: get a template by composite ID (e.g. twentytwentyfour//single) including its block markup.

  • wordpress_create_template: create a new custom FSE block template.

  • wordpress_update_template: update a template's content or title.

  • wordpress_delete_template: delete a custom FSE template with confirmation.

FSE Template Parts (WordPress 7.0)

Template parts are reusable layout regions such as headers and footers.

  • wordpress_list_template_parts: list FSE template parts, optionally filtered by area (header, footer, sidebar).

  • wordpress_get_template_part: get a template part including its block markup.

  • wordpress_update_template_part: update a template part's content, title, or area.

Synced Patterns / Reusable Blocks (WordPress 7.0)

Synced patterns (formerly reusable blocks) are shared block markup used across multiple pages.

  • wordpress_list_reusable_blocks: list synced patterns on the site.

  • wordpress_get_reusable_block: get a synced pattern by ID including its block markup.

  • wordpress_create_reusable_block: create a new synced pattern.

  • wordpress_update_reusable_block: update a synced pattern's content or title.

  • wordpress_delete_reusable_block: delete a synced pattern with confirmation.

Block Pattern Directory (WordPress 7.0)

  • wordpress_list_block_patterns: list block patterns registered on the site, with optional category and search filtering.

  • wordpress_list_block_pattern_categories: list all registered block pattern categories.

Icons (WordPress 7.0)

WordPress 7.0 introduced a server-side SVG Icon Registry and a native Icon block.

  • wordpress_list_icons: list registered SVG icons, with optional search and category filtering.

Font Library (WordPress 7.0)

The Font Library was extended to all theme types in WordPress 7.0.

  • wordpress_list_font_families: list font families installed in the Font Library.

  • wordpress_list_font_faces: list font face variations (weight, style, src) for a specific font family.

Global Styles (WordPress 7.0)

Global styles are the theme.json overrides managed through the Site Editor.

  • wordpress_get_global_styles: get the active theme's global styles (colors, typography, spacing). Pass a stylesheet slug to target a specific theme.

  • wordpress_update_global_styles: update the active theme's global styles by ID.

Block Navigation Menus (WordPress 7.0)

Block navigation menus are FSE navigation posts, distinct from classic WordPress menus.

  • wordpress_list_navigation_menus: list block-based navigation menus.

  • wordpress_create_navigation: create a new block-based navigation menu.

WP AI Connectors & Abilities (WordPress 7.0)

WordPress 7.0 introduced a Connectors API for sharing external service credentials across plugins, and an Abilities API for registering AI tasks.

  • wordpress_list_connectors: list registered external service connectors (AI providers, etc.).

  • wordpress_list_ai_abilities: list registered AI abilities available on this site.

Advanced / Escape Hatches

  • wordpress_rest_request: raw WordPress REST API access for any /wp-json/ path.

  • external_api_fetch: server-side HTTPS proxy for external APIs (CoinGecko, Oracle, etc.).


Write tools are enabled on staging URLs. If WP_BASE_URL is changed to production, writes are blocked unless WP_ALLOW_PRODUCTION_WRITES=true is set in .env.

Elementor Meta Tools

Use wordpress_update_elementor_meta when you need to save Elementor layout data through WordPress REST. Pass elementorData as either a JSON string or a JSON object/array; the tool stores it as _elementor_data.

Example:

{
  "id": 123,
  "postType": "page",
  "elementorEditMode": "builder",
  "elementorTemplateType": "wp-page",
  "elementorVersion": "3.30.0",
  "wpPageTemplate": "elementor_canvas",
  "elementorData": []
}

The available Elementor REST endpoints depend on the target WordPress site and installed Elementor plugins. Use wordpress_list_elementor_routes to inspect what the configured site exposes, then use wordpress_elementor_rest_request for site-specific Elementor endpoints.

If a meta key does not update through wordpress_update_post_meta, the target WordPress site has not registered that key for REST writes. In that case, add a small WordPress helper plugin or mu-plugin to register the specific meta keys with show_in_rest.

Use Another WordPress Site

Create an Application Password in that WordPress site's admin, then update .env:

WP_BASE_URL=https://another-wordpress-site.example
WP_USERNAME=your-wordpress-username
WP_APP_PASSWORD=xxxx xxxx xxxx xxxx xxxx xxxx
WP_ALLOW_PRODUCTION_WRITES=false

Keep WP_ALLOW_PRODUCTION_WRITES=false until you intentionally want write tools enabled on a production URL.

Port It For Another Person

  1. Copy this ItchWPMCP folder to their machine or publish it as a private/public repo.

  2. Run npm install inside the folder.

  3. Create a .env file from .env.example.

  4. In their WordPress admin, create an Application Password: Users -> Profile -> Application Passwords

  5. Put their site URL, username, and app password in .env.

  6. Register the MCP server in their MCP client.

Do not commit .env files. Application Passwords should stay local to each user/site.

Codex Config

Add this to ~/.codex/config.toml:

[mcp_servers.itch_wp_mcp]
command = "node"
args = ["<absolute-path-to-ItchWPMCP>/src/server.js"]
enabled = true
startup_timeout_sec = 20
tool_timeout_sec = 60

[mcp_servers.itch_wp_mcp.env]
WP_BASE_URL = "https://your-wordpress-site.example"
WP_USERNAME = "your-wordpress-username"
WP_APP_PASSWORD = "xxxx xxxx xxxx xxxx xxxx xxxx"
WP_ALLOW_PRODUCTION_WRITES = "false"
NODE_OPTIONS = "--use-system-ca"

If your MCP client cannot find node, set command to the absolute path of your Node executable. For example:

command = "<absolute-path-to-node>"

Claude Desktop Config

Add this to Claude Desktop's claude_desktop_config.json under mcpServers:

{
  "mcpServers": {
    "itch_wp_mcp": {
      "command": "node",
      "args": [
        "<absolute-path-to-ItchWPMCP>/src/server.js"
      ],
      "env": {
        "WP_BASE_URL": "https://your-wordpress-site.example",
        "WP_USERNAME": "your-wordpress-username",
        "WP_APP_PASSWORD": "xxxx xxxx xxxx xxxx xxxx xxxx",
        "WP_ALLOW_PRODUCTION_WRITES": "false",
        "NODE_OPTIONS": "--use-system-ca"
      }
    }
  }
}

Restart Claude Desktop after changing the config.

Multi-Site Setup

You do not need a separate copy of ItchWPMCP for every WordPress website. Keep one codebase and register multiple MCP servers, each with different environment variables.

Codex Multi-Site Example

[mcp_servers.wp_site_staging]
command = "node"
args = ["<absolute-path-to-ItchWPMCP>/src/server.js"]
enabled = true
startup_timeout_sec = 20
tool_timeout_sec = 60

[mcp_servers.wp_site_staging.env]
WP_BASE_URL = "https://staging.example.com"
WP_USERNAME = "site-admin"
WP_APP_PASSWORD = "xxxx xxxx xxxx xxxx xxxx xxxx"
WP_ALLOW_PRODUCTION_WRITES = "false"
NODE_OPTIONS = "--use-system-ca"

[mcp_servers.wp_client_site]
command = "node"
args = ["<absolute-path-to-ItchWPMCP>/src/server.js"]
enabled = true
startup_timeout_sec = 20
tool_timeout_sec = 60

[mcp_servers.wp_client_site.env]
WP_BASE_URL = "https://client-site.example"
WP_USERNAME = "client-admin"
WP_APP_PASSWORD = "xxxx xxxx xxxx xxxx xxxx xxxx"
WP_ALLOW_PRODUCTION_WRITES = "false"
NODE_OPTIONS = "--use-system-ca"

Claude Multi-Site Example

{
  "mcpServers": {
    "wp_site_staging": {
      "command": "node",
      "args": ["<absolute-path-to-ItchWPMCP>/src/server.js"],
      "env": {
        "WP_BASE_URL": "https://staging.example.com",
        "WP_USERNAME": "site-admin",
        "WP_APP_PASSWORD": "xxxx xxxx xxxx xxxx xxxx xxxx",
        "WP_ALLOW_PRODUCTION_WRITES": "false",
        "NODE_OPTIONS": "--use-system-ca"
      }
    },
    "wp_client_site": {
      "command": "node",
      "args": ["<absolute-path-to-ItchWPMCP>/src/server.js"],
      "env": {
        "WP_BASE_URL": "https://client-site.example",
        "WP_USERNAME": "client-admin",
        "WP_APP_PASSWORD": "xxxx xxxx xxxx xxxx xxxx xxxx",
        "WP_ALLOW_PRODUCTION_WRITES": "false",
        "NODE_OPTIONS": "--use-system-ca"
      }
    }
  }
}

The .env file is now only a local fallback. Per-site MCP environment variables take precedence when provided by Codex or Claude.

Safety Model

  • New pages/posts default to draft.

  • Destructive tools require confirmDelete=true.

  • Non-staging writes are blocked unless WP_ALLOW_PRODUCTION_WRITES=true.

  • wordpress_rest_request only allows paths under /wp-json/.

Available Tools

26 tools
wordpress_clone_pageB

Clone an existing WordPress page into a new draft page.

ParametersJSON Schema
NameRequiredDescriptionDefault
sourceIdYes
titleYes
slugNo

TDQS

B3.3/5.0
Behavior2/5

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

No annotations are provided, so the description must carry the full burden. It reveals the result is a draft page but omits critical details: whether the clone is deep (copies all content/metadata), any limitations (e.g., doesn't copy revisions), or side effects. The description is insufficient for a mutation operation.

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

Conciseness4/5

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

The description is a single concise sentence, but it could be improved by front-loading the action and result for faster scanning. No unnecessary words, but structure is minimal.

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

Completeness2/5

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

Given the complexity of cloning and the presence of many sibling tools, the description is too sparse. It lacks details about return values (no output schema), edge cases (e.g., cloning with same title or slug), and whether the cloned page inherits all attributes. More context is required for an AI agent to use it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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

With 0% schema description coverage, the description compensates partially by implying sourceId is the existing page and title is the new title. However, the optional 'slug' parameter is not explained, and there is no explicit mapping of parameters to their roles. The description adds value but not enough to fully clarify all parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('clone'), the resource ('existing WordPress page'), and the result ('new draft page'). It effectively distinguishes from sibling tools like wordpress_create_page (create from scratch) and wordpress_update_page (modify existing).

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

Usage Guidelines3/5

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

The description implies usage for duplicating an existing page, but lacks explicit guidance on when to use this tool versus alternatives like wordpress_create_page or when not to use it (e.g., if source page does not exist, insufficient permissions). No prerequisites or exclusions are mentioned.

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

wordpress_create_categoryC

Create a WordPress post category.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
slugNo
descriptionNo
parentNo

TDQS

C2.8/5.0
Behavior2/5

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

No annotations are provided, so the description must bear the full burden of behavioral disclosure. It only states the basic action without mentioning idempotency, permissions, error behavior, or whether duplicate names are allowed. This is insufficient for a creation tool.

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

Conciseness4/5

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

The description is a single, extremely concise sentence (4 words) that is front-loaded. While efficient, it may be overly terse, but it earns its place with no wasted words.

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

Completeness2/5

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

Despite the tool's simplicity, the description lacks essential context: no mention of return values, side effects, error handling, or required capabilities. With no output schema and multiple parameters, the description is incomplete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

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

The description adds no meaning to the parameters beyond the input schema. With 0% schema description coverage, the 4 parameters (name, slug, description, parent) are completely undocumented. The description fails to explain their purpose or constraints.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action 'Create a WordPress post category', specifying both the verb and resource. It distinguishes this tool from siblings like 'wordpress_create_tag' (creates a tag) and 'wordpress_list_categories' (lists categories).

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives (e.g., when to create a category vs. create a tag). The description provides no context for appropriate usage or exclusions.

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

wordpress_create_pageA

Create a WordPress page. Defaults to draft status for safe review before publishing.

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYes
contentNo
excerptNo
slugNo
statusNodraft
parentNo
menuOrderNo

TDQS

A3.5/5.0
Behavior3/5

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

No annotations provided, so the description must carry behavioral disclosure. It notes the default draft status for safe review, but omits details like required permissions, side effects, or what happens on success. Adequate but minimal.

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

Conciseness5/5

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

A single sentence that is front-loaded with purpose and includes the key default behavior. No wasted words; highly efficient.

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

Completeness2/5

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

Despite having 7 parameters and no output schema or annotations, the description is too sparse. It fails to explain parameter semantics, behavioral details beyond the default status, or distinguish adequately from siblings. Incomplete for a tool of this complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

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

With 0% schema description coverage and 7 parameters, the description only adds meaning for 'status' (default draft) and implies 'title' is required. No explanation for content, excerpt, slug, parent, or menuOrder, leaving the agent to infer from names alone.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Create' and the resource 'WordPress page', distinguishing it from siblings like wordpress_create_post. It also mentions the default draft status, adding specificity.

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

Usage Guidelines3/5

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

The description implies safe review by defaulting to draft, but does not explicitly state when to use this tool versus alternatives like clone or update. No exclusions or alternatives mentioned.

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

wordpress_create_postB

Create a WordPress post. Defaults to draft status for safe review before publishing.

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYes
contentNo
excerptNo
slugNo
statusNodraft
categoriesNo
tagsNo
featuredMediaNo

TDQS

B3.2/5.0
Behavior2/5

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

With no annotations, the description must disclose all behavioral traits. It only mentions the default draft status and safe review, but omits other important aspects like authentication, error handling, or side effects. This is insufficient for a create operation.

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

Conciseness4/5

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

The description is concise with two sentences, front-loading the action and key behavior. No unnecessary words. However, it could be slightly more structured by explicitly noting required parameters.

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

Completeness2/5

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

Given the tool's complexity (8 parameters, 1 required), no output schema, and no annotation, the description's single behavior note is insufficient. It lacks details on mandatory fields (only title) and how to use other parameters effectively.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate. It only hints at the status parameter via the default draft, leaving 7 parameters (title, content, excerpt, slug, categories, tags, featuredMedia) unexplained. This is a significant gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Create a WordPress post', which is specific and distinct from sibling tools like 'wordpress_create_page' or 'wordpress_clone_page'. It also mentions the default draft status, adding clarity.

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

Usage Guidelines3/5

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

The description implies that this tool creates posts and defaults to draft for safe review, but it does not explicitly guide when to use it versus alternatives like 'wordpress_update_post' or 'wordpress_delete_post'. No exclusions or context are provided.

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

wordpress_create_tagC

Create a WordPress post tag.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
slugNo
descriptionNo

TDQS

C2.9/5.0
Behavior2/5

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

The description does not disclose any behavioral traits beyond the obvious creation operation. No annotations are provided, so the agent has no information about idempotency, duplicate handling, side effects, or required permissions.

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

Conciseness3/5

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

The description is a single sentence with no wasted words, but it is overly terse for a tool with three parameters and no annotations. While concise, it fails to provide necessary context, making it minimally adequate.

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

Completeness2/5

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

Given that annotations are absent and output schema is missing, the description should cover common concerns like return value, error behavior, and parameter constraints. It does not, leaving significant gaps for the agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

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

With 0% schema description coverage, the description must compensate by explaining parameters. It does not: 'slug' and 'description' are left undefined, and only 'name' appears in the requirement. The description adds no semantic value beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Create') and the resource ('WordPress post tag'), which directly distinguishes it from sibling tools like wordpress_create_category or wordpress_create_post. The verb-resource pairing is specific and unambiguous.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives (e.g., categories vs. tags). There is no mention of preconditions, context, or scenarios where this tool is appropriate.

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

wordpress_delete_pageC

Delete or trash a WordPress page. Requires confirmDelete=true.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
forceNo
confirmDeleteNo

TDQS

C2.7/5.0
Behavior2/5

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

With no annotations, the description must fully explain behavior. It mentions deletion/trashing but does not clarify the effect of the 'force' parameter, whether deletion is reversible, or what permissions are needed. This is insufficient for safe invocation.

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

Conciseness4/5

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

The description is very concise at two sentences and places the key requirement upfront. However, it could be slightly more explicit about the 'force' parameter without losing brevity.

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

Completeness1/5

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

Given the lack of output schema, annotations, and parameter descriptions, the description is severely incomplete. It omits details about error handling, return values, and the difference between trash and permanent delete, leaving critical gaps for a delete operation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

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

Schema description coverage is 0%, so the description must compensate. It only mentions 'confirmDelete' without explaining its meaning or the roles of 'id' and 'force'. The parameters remain largely unexplained, adding almost no value beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Delete or trash') and the resource ('a WordPress page'), making the tool's purpose immediately obvious. It differentiates from siblings like wordpress_delete_post by specifying 'page'.

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

Usage Guidelines2/5

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

The only usage condition mentioned is 'Requires confirmDelete=true', which is helpful. However, no guidance is given on when to use this tool versus alternatives like wordpress_delete_post or wordpress_update_page_status, leaving the AI without context for selection.

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

wordpress_delete_postC

Delete or trash a WordPress post. Requires confirmDelete=true.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
forceNo
confirmDeleteNo

TDQS

C2.6/5.0
Behavior2/5

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

No annotations are provided, and the description does not disclose behavioral traits such as whether the action is permanent, requires authentication, or has side effects. The 'force' parameter's role is not explained.

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

Conciseness3/5

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

The description is very concise (one sentence), but it sacrifices necessary detail. It is front-loaded with the key requirement, but lacks structure for parameter explanations.

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

Completeness2/5

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

Given no annotations, no output schema, and the complexity of delete/trash semantics, the description is incomplete. It does not explain prerequisites, return values, or differences between delete and trash.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

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

Schema description coverage is 0%, and the description only adds meaning for 'confirmDelete' (requires true). It does not explain 'id' or 'force', leaving the agent to infer their purposes.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action (delete or trash) and resource (WordPress post), and the tool name distinguishes it from siblings like wordpress_delete_page and wordpress_create_post. However, it does not clarify the difference between 'delete' and 'trash'.

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

Usage Guidelines2/5

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

The description requires confirmDelete=true, but provides no guidance on when to use this tool vs alternatives like wordpress_update_post_status or wordpress_delete_page, nor when not to use it.

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

wordpress_get_pageC

Get a WordPress page by ID from the configured site.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
contextNoedit

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description must disclose all behavioral traits. It only states the function ('Get') but omits details such as authentication requirements, error handling (e.g., page not found), rate limits, or any side effects. The description is insufficient for an agent to understand the tool's behavior beyond a simple read.

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

Conciseness4/5

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

The description is a single, front-loaded sentence that efficiently communicates the core purpose. It earns its place without verbosity, but could include slightly more detail without sacrificing conciseness.

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

Completeness2/5

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

For a tool with no output schema, no annotations, and two parameters (one undocumented enum), the description is too sparse. It does not explain what the response contains, the meaning of the context parameter, or any usage considerations. The description is incomplete for an agent to understand the full context of the call.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

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

The input schema has 0% description coverage, so the description needs to add meaning. It mentions 'by ID' for the id parameter but does not explain the 'context' parameter (enum: view/edit), its purpose, or how the response differs based on it. The description adds minimal value beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Get', the resource 'WordPress page', and the method 'by ID from the configured site'. It distinguishes this tool from siblings like wordpress_get_post (for posts) and wordpress_list_pages (for listing), making its purpose specific and unambiguous.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives. There are sibling tools like wordpress_get_post for posts and wordpress_list_pages for listing, but the description does not mention these or any criteria for choosing this tool.

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

wordpress_get_postC

Get a WordPress post by ID from the configured site.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
contextNoedit

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description carries the full burden of behavioral disclosure. It merely states the action without revealing aspects like read-only nature, authentication requirements, error behavior, or what data the response contains. The term 'get' implies safety, but no explicit confirmation is given.

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

Conciseness4/5

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

The description is a single concise sentence that immediately conveys the core purpose. However, it could be slightly longer to include essential parameter context without losing conciseness.

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

Completeness2/5

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

Given a simple tool with two parameters and no output schema, the description should at least hint at the response structure and the effect of the context parameter. It fails to do so, leaving the agent to guess. The description is incomplete for an effective tool selection.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

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

The input schema has 0% description coverage, yet the description adds no information about the parameters. While 'id' is self-explanatory, 'context' (with view/edit enum) is completely unexplained. The description should clarify that 'context' controls the amount of detail returned (e.g., edit returns more fields like raw content).

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb (Get), resource (WordPress post), retrieval method (by ID), and scope (from configured site). It effectively distinguishes this tool from siblings like wordpress_get_page (for pages) and wordpress_list_posts (for listing multiple posts).

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives such as wordpress_list_posts or wordpress_get_page. It does not mention any prerequisites, limitations, or the context parameter's role in determining the response format.

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

wordpress_get_settingsB

Get general WordPress site settings if the authenticated user has permission.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.2/5.0
Behavior2/5

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

No annotations provided, so the description must fully disclose behavior. It only states a permission check but does not explain what happens if permission is missing (e.g., error), rate limits, or side effects. The read-only nature is implied but not confirmed.

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

Conciseness5/5

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

The description is a single sentence with no unnecessary words or repetition. It is appropriately sized for a tool with no parameters.

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

Completeness3/5

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

For a getter tool with no parameters and no annotations, the description provides the core purpose but lacks details about the return value or format. Since there is no output schema, the description should hint at what 'general settings' includes to aid an agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

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

The input schema has no parameters, and schema description coverage is 100%. The description adds no parameter info, which is acceptable since none exist. A higher score would require an explicit statement that no parameters are needed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Get general WordPress site settings', with a verb and resource. It distinguishes from siblings like 'wordpress_update_settings' by specifying a read operation. However, 'general' could be more specific.

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

Usage Guidelines2/5

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

The description mentions a permission requirement but offers no guidance on when to use this tool over siblings like 'wordpress_rest_request' or 'wordpress_update_settings'. No explicit when-to-use or when-not.

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

wordpress_list_categoriesC

List WordPress post categories.

ParametersJSON Schema
NameRequiredDescriptionDefault
searchNo
perPageNo

TDQS

C2.2/5.0
Behavior2/5

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

No annotations are provided, so the description must carry the full burden of behavioral disclosure. It only states 'list', implying read-only, but does not disclose any side effects, permission requirements, or how the tool handles empty results or edge cases.

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

Conciseness3/5

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

The description is very short (5 words), which is concise, but it is under-specified. It could be considered efficient, but the lack of detail makes it minimally adequate rather than well-structured.

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

Completeness2/5

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

Given the absence of annotations and output schema, the description is incomplete. It does not explain the return format, pagination behavior, or how the search parameter filters results. For a tool with two parameters and no other documentation, more detail is needed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

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

The input schema has two parameters (search, perPage) with no descriptions, and the tool description adds no information about them. Schema coverage is 0%, and the description fails to compensate, leaving the agent with no understanding of parameter purpose or expected values.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states it lists WordPress post categories, which is clear and specific. However, it does not differentiate from sibling list tools such as wordpress_list_tags or wordpress_list_pages, leaving the agent without guidance on when to choose this tool.

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

Usage Guidelines2/5

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

No explicit guidance on when to use this tool versus alternatives. The description lacks context about typical use cases or conditions that favor this tool over similar list tools.

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

wordpress_list_mediaC

List media library items.

ParametersJSON Schema
NameRequiredDescriptionDefault
searchNo
perPageNo

TDQS

C2.1/5.0
Behavior1/5

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

With no annotations, the description must disclose behavioral traits. It only states the action without mentioning pagination, filtering behavior, authentication needs, or response format. This is insufficient for safe invocation.

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

Conciseness2/5

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

The description is extremely short but lacks substance. It is under-specified rather than concise, wasting the opportunity to provide useful context in a compact form.

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

Completeness1/5

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

Given no output schema and no annotations, the description should compensate with details on return format, edge cases, or limitations. It does none of these, leaving the agent without essential information for a listing operation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

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

Schema description coverage is 0%, and the description adds no meaning to the two parameters ('search', 'perPage'). The default and constraints in the schema provide some structure, but the description fails to explain how parameters affect behavior.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'List' and the resource 'media library items', making the tool's basic purpose understandable. However, it does not differentiate from sibling list tools (e.g., list_pages, list_posts) which also list entities, reducing clarity in context.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives, no prerequisites, and no exclusions. It is a single statement with no contextual decision support.

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

wordpress_list_menu_itemsB

List menu items if the WordPress menu-items REST endpoint is available.

ParametersJSON Schema
NameRequiredDescriptionDefault
menusNo
perPageNo

TDQS

B3.3/5.0
Behavior2/5

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

No annotations provided, so description must disclose behavioral traits. It only says 'list', implying read-only, but does not mention side effects, auth needs, rate limits, or pagination behavior.

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

Conciseness5/5

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

Extremely concise single sentence, front-loaded with the action, and no wasted words.

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

Completeness2/5

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

Given no output schema and no annotations, the description is incomplete. It fails to explain return values, required parameters, or detailed endpoint availability conditions.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

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

Schema coverage is 0% and description adds no meaning to parameters. The parameters 'menus' and 'perPage' are not explained, leaving the agent to infer from names and constraints.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it lists menu items, distinguishing it from sibling tools like wordpress_list_menus which list menus themselves. The condition 'if endpoint is available' adds specificity.

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

Usage Guidelines4/5

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

Provides a clear condition for using the tool (endpoint availability), but lacks explicit guidance on when not to use it or when to choose alternatives among siblings.

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

wordpress_list_menusB

List menus if the WordPress menus REST endpoint is available.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.4/5.0
Behavior2/5

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

No annotations provided. The description only mentions a condition (endpoint availability) but does not describe behavior when endpoint is unavailable or the structure of the returned data.

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

Conciseness5/5

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

Single sentence, no fluff, clearly front-loaded with the core purpose.

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

Completeness2/5

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

No output schema; description does not describe return values, pagination, or fields of menu objects. The endpoint availability condition is useful but incomplete for understanding the tool's full behavior.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

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

No parameters exist, so schema coverage is 100%. Baseline for 0 parameters is 4. Description adds no additional param info, which is acceptable given absence of params.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'list' and the resource 'menus', and differentiates from siblings like wordpress_list_menu_items which lists menu items.

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

Usage Guidelines2/5

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

No guidance on when to use this tool vs alternatives such as wordpress_list_menu_items or wordpress_list_pages. The condition about endpoint availability is a prerequisite but not usage comparison.

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

wordpress_list_pagesC

List WordPress pages from the configured site.

ParametersJSON Schema
NameRequiredDescriptionDefault
statusNoany
perPageNo

TDQS

C2.8/5.0
Behavior2/5

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

With no annotations, the description carries full burden but only states the basic function. It does not disclose behavioral traits like whether it returns all pages, pagination, or authentication requirements.

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

Conciseness4/5

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

The description is concise with a single sentence and no fluff, though it sacrifices completeness. Structure is adequate.

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

Completeness2/5

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

Given the lack of output schema and annotations, the description is incomplete. It does not explain the return format or parameter effects, which are essential for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

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

0% schema description coverage and the description adds no information about the parameters 'status' or 'perPage'. The agent must infer from the schema alone.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'List WordPress pages' which is a specific verb and resource. It effectively distinguishes from sibling tools like wordpress_list_posts or wordpress_get_page.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives. Does not mention when not to use or any prerequisites.

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

wordpress_list_pluginsB

List WordPress plugins if the configured user can access the plugins REST endpoint.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.4/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It discloses a behavioral condition (user access check) but lacks details on output format, pagination, or error handling that might be relevant 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.

Conciseness5/5

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

The description is a single sentence with zero wasted words. It is front-loaded with the core action and resource.

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

Completeness3/5

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

Given the tool's simplicity (no parameters, no output schema), the description is adequate but could be more complete by specifying what exactly is listed (e.g., all plugins, active only) or any limitations. The condition is helpful but leaves some ambiguity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

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

The input schema has zero parameters and 100% coverage, so the description does not need to add parameter details. The baseline for no parameters is 4, and the description provides no additional parameter information, which is acceptable.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action (list) and resource (WordPress plugins), making the purpose straightforward. However, it does not differentiate from sibling list tools like wordpress_list_categories or wordpress_list_posts beyond the resource name.

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

Usage Guidelines2/5

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

The description mentions a condition (user access to the plugins REST endpoint), but provides no guidance on when to use this tool over alternatives. There is no explicit 'when-to-use' or 'when-not-to-use' context.

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

wordpress_list_postsC

List WordPress posts from the configured site.

ParametersJSON Schema
NameRequiredDescriptionDefault
statusNoany
perPageNo

TDQS

C2.7/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It fails to disclose behavioral traits such as whether it is read-only, pagination behavior, or default filtering. The description only states the action without any operational details.

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

Conciseness3/5

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

The description is a single short sentence, which is concise but lacks essential details. It is front-loaded and has no waste, but is too minimal to be fully effective.

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

Completeness2/5

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

Given the tool's simplicity (2 optional parameters, no output schema, no annotations), the description is incomplete. It does not clarify the default behavior (e.g., returns all posts, paginated up to 100), the result format, or how it relates to other list tools.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

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

Schema description coverage is 0%, and the description does not explain the parameters ('status', 'perPage') at all. It adds no value beyond the raw schema, leaving the agent to infer their meaning and usage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it lists WordPress posts from the configured site. It uses a specific verb ('list') and resource ('posts'), and distinguishes it from sibling tools like 'wordpress_list_pages' or 'wordpress_list_media'.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives (e.g., 'wordpress_get_post' for a single post, or 'wordpress_list_pages' for pages). No context for preferred use cases or exclusions.

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

wordpress_list_tagsC

List WordPress post tags.

ParametersJSON Schema
NameRequiredDescriptionDefault
searchNo
perPageNo

TDQS

C2.6/5.0
Behavior2/5

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

Without annotations, the description must disclose behavior. It only says 'List' but omits details like pagination (perPage parameter, max 100), search filtering, ordering, or output format.

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

Conciseness3/5

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

The description is a single sentence, which is concise but lacks important information. It could be improved without becoming verbose.

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

Completeness2/5

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

Given two parameters and no output schema or annotations, the description is incomplete. It fails to explain pagination, search functionality, or return format, which an agent needs to use the tool effectively.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

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

The description does not explain the 'search' or 'perPage' parameters, despite the schema having no descriptions (0% coverage). The agent receives no guidance on how to use these parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'List WordPress post tags' clearly states the verb and resource, distinguishing it from sibling list tools like list_categories and list_posts. However, it does not elaborate on scope or typical use cases.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives such as wordpress_list_categories or wordpress_list_posts. No exclusions or context provided.

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

wordpress_list_usersC

List WordPress users if the authenticated user has permission.

ParametersJSON Schema
NameRequiredDescriptionDefault
searchNo
perPageNo

TDQS

C2.4/5.0
Behavior2/5

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

No annotations exist, and the description only mentions a permission check. It does not disclose pagination behavior, output format, or any side effects. The perPage parameter hints at pagination but is not explained.

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

Conciseness3/5

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

The description is a single short sentence, which is concise but lacks important details. It is front-loaded but too sparse to be fully useful.

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

Completeness1/5

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

Given no output schema and no annotations, the description is severely incomplete. It fails to cover authentication details, parameter behavior, pagination, or response structure, making it inadequate for a listing tool with two parameters.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

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

Schema description coverage is 0%, and the description provides no information about the 'search' or 'perPage' parameters, leaving the agent without guidance on how to use them.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'list' and the resource 'WordPress users', with a conditional on permission. It is distinct from sibling tools, none of which list users.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives, no mention of prerequisites or conditions beyond 'has permission', and no exclusions.

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

wordpress_rest_requestB

Advanced escape hatch for WordPress REST API calls. Non-GET requests obey write guards.

ParametersJSON Schema
NameRequiredDescriptionDefault
methodNoGET
pathYes
bodyNo
confirmDeleteNo

TDQS

B3/5.0
Behavior2/5

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

With no annotations, the description carries full burden for behavioral disclosure. It mentions write guards for non-GET requests but does not explain what 'write guards' entail, what happens if blocked, or any authentication, rate-limiting, or safety implications. As a powerful tool, this is insufficient.

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

Conciseness5/5

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

The description is extremely concise: two sentences with no redundant words. It front-loads the core purpose and adds a key behavioral note. Every word earns its place.

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

Completeness2/5

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

Given the complexity (generic escape hatch, 4 parameters including a nested object, no output schema, no annotations), the description is far too brief. It lacks explanation of return values, error handling, usage patterns, and prerequisites, leaving agents underinformed for safe invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate. It only references the method parameter implicitly via 'Non-GET requests' and does not explain path, body (a nested object), or confirmDelete parameters. No guidance on how to construct the body or select valid paths.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it's an 'Advanced escape hatch for WordPress REST API calls', specifying the action (making API calls) and the resource (WordPress REST API). It conveys the tool's role as a generic endpoint caller, but does not explicitly distinguish it from sibling tools that cover specific endpoints, leaving some ambiguity.

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

Usage Guidelines3/5

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

The description hints at usage context by noting 'Non-GET requests obey write guards', but does not explicitly state when to use this tool versus the specific sibling tools (e.g., wordpress_create_post). It lacks guidance on when not to use it (e.g., for standard CRUD operations) or what alternatives exist.

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

wordpress_update_pageB

Update a WordPress page by ID. Only title, content, excerpt, slug, status, parent, and menu order are supported.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
titleNo
contentNo
excerptNo
slugNo
statusNo
parentNo
menuOrderNo

TDQS

B3.2/5.0
Behavior2/5

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

No annotations provided. Description only states 'Update' without explaining side effects, merge vs overwrite behavior, authentication requirements, 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.

Conciseness4/5

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

One sentence, front-loaded with purpose, but could be structured with bullet points for clarity. No wasted words.

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

Completeness2/5

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

Incomplete for a mutation tool with 8 parameters and no output schema. Missing prerequisites, error handling, and partial update behavior.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

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

Schema descriptions missing. Description lists field names but adds no details about constraints, defaults, or formats (e.g., status enum values, parent meaning).

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states action 'Update' and resource 'WordPress page', lists supported fields, distinguishing from siblings like wordpress_update_page_status.

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

Usage Guidelines3/5

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

Implied usage: use this tool to update multiple fields. Does not explicitly mention when not to use or alternatives like wordpress_update_page_status or wordpress_get_page.

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

wordpress_update_page_statusB

Update only the status for a WordPress page by ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
statusYes

TDQS

B3.2/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden of behavioral disclosure. It does not mention side effects, error behavior, permissions needed, or whether the operation is idempotent. For a mutation tool, this is a significant gap.

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

Conciseness5/5

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

The description is a single sentence of 10 words with no redundancy. Every word is necessary, and it is front-loaded with the core purpose.

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

Completeness3/5

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

Given the tool's simplicity (2 parameters, no output schema) but absence of annotations, the description provides the basic purpose but lacks completeness on error handling, authentication, and return values. It is minimally adequate but not fully informative.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

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

Schema description coverage is 0%, so the description must add meaning beyond the parameter names. It adds only that 'id' refers to a page ID and 'status' is the only changed field, but does not explain enum values or constraints. Insufficient to fully compensate for missing schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the action (update), resource (WordPress page status), and scope (by ID). The word 'only' distinguishes it from sibling tool 'wordpress_update_page', which updates multiple fields.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives like 'wordpress_update_page' or 'wordpress_update_post'. No when-not-to-use or prerequisites are mentioned.

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

wordpress_update_plugin_statusA

Activate or deactivate an installed plugin if the authenticated user has permission.

ParametersJSON Schema
NameRequiredDescriptionDefault
pluginYes
statusYes

TDQS

A3.8/5.0
Behavior3/5

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

Covers authentication requirement but omits behavior on missing plugin, side effects, or response details. No annotations to supplement.

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

Conciseness5/5

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

Single sentence, front-loaded with action and resource, no wasted words.

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

Completeness4/5

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

Covers purpose, auth, status options; missing error handling and permission failure behavior. Adequate for simple tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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

Description clarifies status enum matches active/inactive, but plugin parameter lacks format (slug? name?) despite schema having minLength only. Schema coverage 0%.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states the verb (activate/deactivate) and resource (installed plugin), distinguishing from sibling tools like wordpress_list_plugins.

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

Usage Guidelines3/5

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

Implies usage via 'if authenticated user has permission' but no explicit when-to-use, when-not-to, or alternatives among siblings.

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

wordpress_update_postC

Update a WordPress post by ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
titleNo
contentNo
excerptNo
slugNo
statusNo
categoriesNo
tagsNo
featuredMediaNo

TDQS

C2.4/5.0
Behavior2/5

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

The description says 'Update' implying a write operation, but with no annotations, it fails to disclose authentication needs, partial vs full replacement, idempotency, or error states. This is a significant gap.

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

Conciseness3/5

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

The description is a single sentence, concise but lacking necessary detail. It is not overly verbose, but it sacrifices informativeness for brevity.

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

Completeness1/5

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

With 9 parameters, no output schema, and no behavioral context, the description is severely incomplete. It fails to explain update behavior (e.g., partial update, required fields beyond id) or return value.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

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

Schema coverage is 0% (no property descriptions). The description only implies id by saying 'by ID' but does not explain the other 8 parameters like title, content, status, etc. It adds no value beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool updates a WordPress post by ID. However, it does not differentiate from sibling tools like wordpress_update_page or wordpress_create_post, which have similar names. A 5 would require explicit distinction.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives like wordpress_create_post or wordpress_delete_post. The description is a bare action statement with no contextual direction.

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

wordpress_update_settingsB

Update general WordPress site settings. Only provided fields are changed.

ParametersJSON Schema
NameRequiredDescriptionDefault
titleNo
descriptionNo
timezoneNo
dateFormatNo
timeFormatNo
startOfWeekNo
defaultCategoryNo
defaultPostFormatNo
postsPerPageNo
showOnFrontNo
pageOnFrontNo
pageForPostsNo

TDQS

B3.1/5.0
Behavior3/5

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

With no annotations, the description carries the full burden. It discloses the partial update behavior ('Only provided fields are changed'), which is valuable. However, it omits critical traits like authentication requirements, error handling, or whether the operation is atomic. This is a moderate contribution but lacks completeness.

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

Conciseness5/5

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

Two sentences that are direct and free of redundancy. Every word earns its place, with the key action and partial update nuance front-loaded. No unnecessary detail.

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

Completeness2/5

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

Given 12 parameters, no output schema, and no annotations, the description is too sparse. It fails to explain return values, permissions, error conditions, or the scope of changes. The tool is relatively complex (many settings), yet the description provides minimal context beyond the core action.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

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

Schema description coverage is 0%, meaning the description must supply parameter meaning. The description only mentions 'general WordPress site settings' with no elaboration on individual parameters. The agent must infer semantics from parameter names alone, which is insufficient for 12 varied parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Update general WordPress site settings.' It uses a specific verb ('update') and resource ('WordPress site settings'), distinguishing it from sibling tools that update pages, posts, or other entities. The additional clause 'Only provided fields are changed' further clarifies the partial update semantics.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives (e.g., wordpress_get_settings for reading, other update tools for different resources). The description does not mention context, prerequisites, or exclusions, leaving the agent without decision support.

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

wordpress_upload_mediaC

Upload a local file to the WordPress media library.

ParametersJSON Schema
NameRequiredDescriptionDefault
filePathYes
titleNo
altTextNo
captionNo

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description must disclose behavioral traits but only states 'Upload a local file.' It does not mention file size limits, supported MIME types, overwrite behavior, or authentication requirements.

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

Conciseness3/5

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

The description is very short (one sentence) and front-loaded, but it sacrifices necessary detail. It is concise but not sufficiently informative.

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

Completeness2/5

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

Given 4 parameters and no output schema, the description should explain parameter usage and return value. It lacks details on expected behavior and results, making it incomplete for an agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

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

Schema description coverage is 0%, yet the description adds no additional meaning to parameters like filePath, title, altText, or caption. It does not explain their purpose or constraints beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action (upload), the object (local file), and the destination (WordPress media library). It distinguishes from siblings like wordpress_list_media by specifying 'upload' and 'local file'.

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

Usage Guidelines2/5

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

No guidance on when to use this tool vs alternatives (e.g., wordpress_rest_request for remote uploads). No prerequisites or context for use are provided.

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. Dates show when Glama detected each change.

  1. 26 tool updatesv1.0.0
    • First observedwordpress_clone_page
    • First observedwordpress_create_category
    • First observedwordpress_create_page
    • First observedwordpress_create_post
    • First observedwordpress_create_tag
    • First observedwordpress_delete_page
    • First observedwordpress_delete_post
    • First observedwordpress_get_page
    • First observedwordpress_get_post
    • First observedwordpress_get_settings
    • First observedwordpress_list_categories
    • First observedwordpress_list_media
    • First observedwordpress_list_menu_items
    • First observedwordpress_list_menus
    • First observedwordpress_list_pages
    • First observedwordpress_list_plugins
    • First observedwordpress_list_posts
    • First observedwordpress_list_tags
    • First observedwordpress_list_users
    • First observedwordpress_rest_request
    • First observedwordpress_update_page
    • First observedwordpress_update_page_status
    • First observedwordpress_update_plugin_status
    • First observedwordpress_update_post
    • First observedwordpress_update_settings
    • First observedwordpress_upload_media

TDQS

B3.1/5.0
Disambiguation5/5

Each tool targets a distinct WordPress resource and action. There is minimal overlap; even the similar update_page and update_page_status are clearly differentiated by scope.

Naming Consistency5/5

All tools follow a consistent wordpress_verb_noun pattern (e.g., wordpress_create_page, wordpress_list_posts). No mixing of conventions or ambiguous verbs.

Tool Count4/5

26 tools cover a broad domain including posts, pages, media, menus, plugins, settings, and users. While slightly heavy, each tool serves a clear purpose and the count is justified for comprehensive WordPress management.

Completeness3/5

CRUD for posts and pages is well-covered, but categories and tags lack delete/update, menus only support listing, and there is no user management beyond listing. These are notable gaps for a complete site administration surface.

Maintenance

ActivityInactive
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/manofsadness/ItchWPMCP'

If you have feedback or need assistance with the MCP directory API, please join our Discord server