Skip to main content
Glama

MCP Toplist

๐Ÿš€ MCP WordPress Server

The Most Comprehensive WordPress MCP Server

Manage WordPress sites with natural language through AI tools like Claude Desktop

Quick Start โ€ข Why This MCP Server? Installation Options โ€ข Documentation โ€ข Examples

CI/CD Pipeline GitHub Stars NPM Version NPM Downloads NPM Total Downloads Docker Pulls Coverage Status

TypeScript CodeQL Docker License

๐ŸŽ‰ v3.3.21 - CI-Tested on Node 20/22/24

๐ŸŽฏ Why This MCP Server?

Transform WordPress management from complex admin panels to simple conversations:

โŒ Before: Login โ†’ Admin Panel โ†’ Navigate โ†’ Click โ†’ Fill Forms โ†’ Save
โœ… After:  "Create a new blog post about AI trends with SEO optimization"

Key Advantages:

  • ๐Ÿ† Most Complete: 71 tools vs 20-30 in alternatives

  • โšก Fastest Setup: 2-click Claude Desktop installation via DXT

  • ๐Ÿ”’ CI-Tested: 2750+ tests across Node 20/22/24, CodeQL + Trivy security scanning

  • ๐ŸŽฏ TypeScript Native: 100% type safety, best-in-class developer experience

  • ๐ŸŒ Multi-Site: Manage up to 50 WordPress sites from one place

Related MCP server: Noleemits Vision Builder MCP

๐Ÿš€ Quick Start

Get up and running in under 5 minutes:

Prerequisites

  • WordPress: Version 5.6+ with REST API enabled

  • Claude Desktop: Latest version installed

  • Application Password: Generated from WordPress admin panel

3-Step Setup

1๏ธโƒฃ Generate WordPress Application Password

WordPress Admin โ†’ Users โ†’ Profile โ†’ Application Passwords โ†’ Add New

2๏ธโƒฃ Install MCP Server (Choose One)

Option A: DXT Extension (Easiest)

# Download and install in Claude Desktop
curl -L https://github.com/docdyhr/mcp-wordpress/releases/latest/download/mcp-wordpress.dxt -o mcp-wordpress.dxt
# Then: Claude Desktop โ†’ Extensions โ†’ Install โ†’ Select DXT file

Option B: NPM Global Install

npm install -g mcp-wordpress

3๏ธโƒฃ Test Your Connection

In Claude: "Test my WordPress connection"
Response: "โœ… Authentication successful! Connected to: Your Site Name"

๐Ÿ“บ Watch 2-minute Setup Video | ๐Ÿ“– Detailed Setup Guide

โšก Installation Options

Easiest installation - just 2 clicks!

  1. Download: mcp-wordpress.dxt (3.4MB)

  2. Install: Claude Desktop โ†’ Extensions โ†’ Install โ†’ Select DXT file

  3. Configure: Enter your WordPress site URL and credentials

โœ… Zero command line required โœ… Easy updates โœ… Built-in security

๐Ÿ“– Complete DXT Setup Guide โ†’

๐Ÿš€ Alternative: NPX (Power Users)

# Run directly - always latest version
npx -y mcp-wordpress

# Interactive setup wizard
npm run setup

๐Ÿ”ง Other Options

๐Ÿ“‹ Configuration

Single Site (.env)

WORDPRESS_SITE_URL=https://myblog.com
WORDPRESS_USERNAME=admin
WORDPRESS_APP_PASSWORD=xxxx xxxx xxxx xxxx xxxx xxxx

Claude Desktop Config

{
  "mcpServers": {
    "mcp-wordpress": {
      "command": "npx",
      "args": ["-y", "mcp-wordpress"],
      "env": {
        "WORDPRESS_SITE_URL": "https://myblog.com",
        "WORDPRESS_USERNAME": "admin",
        "WORDPRESS_APP_PASSWORD": "xxxx xxxx xxxx xxxx xxxx xxxx"
      }
    }
  }
}

๐Ÿ“– Complete Configuration Guide โ€” multi-site, JWT, Docker, production environments

๐Ÿ” Authentication

WordPress Application Passwords are recommended:

  1. WordPress Admin โ†’ Users โ†’ Profile โ†’ Application Passwords โ†’ Add New

  2. Copy the generated password into your config

Alternative methods: JWT, Basic Auth, API Key โ€” see Authentication Configuration

๐ŸŒŸ What Makes This Special

Feature

This Server

Competition

Tools Available

71 tools

20-30 tools

Claude Desktop DXT

โœ… 2-click install

โŒ Manual setup

Multi-Site Support

โœ… Up to 50 sites

โŒ Single site

TypeScript

โœ… 100% TypeScript, strict mode

โš ๏ธ Partial/None

Performance Monitoring

โœ… Real-time analytics

โŒ Basic only

Test Coverage

โœ… 2750+ tests, ~76% line coverage

โš ๏ธ Limited

Security Scanning

โœ… CodeQL + Trivy in CI

โš ๏ธ Unknown

๐Ÿ“‹ Available Tools (71 Tools)

Content Management

  • ๐Ÿ“ Posts (6 tools) - Create, edit, delete, list posts and revisions

  • ๐Ÿ“„ Pages (6 tools) - Manage static pages and revisions

  • ๐Ÿ–ผ๏ธ Media (5 tools) - Upload, manage media library and files

  • ๐Ÿ” SEO (11 tools) - Content analysis, metadata, schema markup, SERP tracking, keyword research

User & Community

  • ๐Ÿ‘ฅ Users (6 tools) - User management and profiles

  • ๐Ÿ’ฌ Comments (7 tools) - Comment moderation and management

  • ๐Ÿท๏ธ Taxonomies (10 tools) - Categories and tags management

Site Management

  • โš™๏ธ Site Settings (6 tools) - Site configuration and statistics

  • ๐Ÿ” Authentication (3 tools) - Auth testing and management

  • โšก Cache Management (4 tools) - Performance caching control

  • ๐Ÿ“Š Performance Monitoring (6 tools) - Real-time metrics and optimization

  • ๐Ÿ› ๏ธ System (1 tool) - Version checking

๐Ÿ“– Complete Tool Documentation | Live API Reference

๐Ÿค– Examples

๐Ÿ’ฌ "Create a new blog post about AI trends with SEO optimization"
๐Ÿ’ฌ "Check my WordPress site performance and provide optimization recommendations"
๐Ÿ’ฌ "Find all draft posts older than 30 days and provide a summary"
๐Ÿ’ฌ "Batch update all client sites with the new privacy policy footer"
๐Ÿ’ฌ "List all posts from my client-blog site"

๐Ÿ“– More Examples | Real-World Workflows

๐Ÿงช Testing & Security

npm test              # Full test suite (2750/2750 passing, 94 files)
npm run test:security # Security tests (371/371 passing)
npm run health        # System health check

๐Ÿ“– Security Documentation โ€” OWASP coverage, penetration testing, compliance

๐Ÿ› ๏ธ Troubleshooting

npm run health         # System check
DEBUG=true npm run dev # Debug logging
npm run fix:rest-auth  # Fix WordPress 401 errors

Error

Solution

401 Unauthorized

Regenerate application password

403 Forbidden

Check user role (Editor+ required)

404 Not Found

Verify WORDPRESS_SITE_URL

Connection Timeout

Check WordPress REST API access

๐Ÿ“– Full Troubleshooting Guide

๐Ÿ“š Documentation

Getting Started

User Guides

Integration Guides

Developer Documentation

Deployment & Operations

๐Ÿ”ง Requirements

  • WordPress 5.0+ with REST API enabled

  • HTTPS recommended for production

  • Application Passwords enabled (WordPress 5.6+)

Role

Access

Administrator

Full access to all functions

Editor

Posts, pages, comments, media

Author

Own posts and media

Contributor

Own posts (drafts only)

Subscriber

Read only

๐Ÿš€ Next Steps

Ready to transform your WordPress management?

  1. ๐Ÿ† Download DXT Extension - Easiest setup (2 minutes)

  2. โšก Try NPX Method - Power user setup (5 minutes)

  3. ๐Ÿ“š Explore All Tools - See what's possible

  4. ๐Ÿ’ฌ Join Discussions - Get help and share ideas


๐Ÿ”— Similar Projects


๐Ÿ“‹ Changelog

v3.3.21 (July 2026)

  • ๐Ÿ”’ Security Hardening - SSRF denylist, HTTPS enforcement, logger redaction, dependency floor updates

  • ๐Ÿณ Docker Release Reliability - Bounded publish-job timeouts and corrected retry-on-hang logic

  • ๐Ÿ“š DOX Documentation - Hierarchical AGENTS.md contract tree for per-directory work guidance

See CHANGELOG.md for the complete, release-by-release history.

v3.3.14 (June 2026)

  • ๐Ÿ”’ Security Updates - Patch moderate Hono vulnerabilities, update allowlisted npm-bundled advisories

  • ๐Ÿงช CI - Smoke-test improvements and Node 24 validation

v3.x Series (2025โ€“2026)

  • ๐Ÿ—๏ธ Modular Architecture - Domain-specific operation modules and composition pattern

  • ๐Ÿ”„ Fault Tolerance - Circuit breaker pattern with automatic recovery

  • ๐Ÿ“Š 2200+ Tests - Comprehensive test suite across security, cache, server, client, config, utils, tools, and performance

  • โšก Caching Layer - CachedWordPressClient with configurable TTL; 50โ€“70% faster repeat requests

  • ๐ŸŒ Multi-Site - Up to 50 WordPress sites from one configuration file

  • ๐Ÿ” 4 Auth Methods - App Passwords (recommended), JWT, Basic, API Key

  • ๐Ÿณ Docker & DXT - One-click Claude Desktop extension and Docker Hub image

For the full history see CHANGELOG.md.


๐Ÿ™ Acknowledgments

Special thanks to Stephan Ferraro for the upstream project that inspired this implementation.


โญ Found this helpful? Give us a star on GitHub! โญ

Available Tools

27 tools
wp_check_versionA

Check if a newer version of mcp-wordpress is available. Returns current version, latest version, and download URL if update is available.

ParametersJSON Schema
NameRequiredDescriptionDefault
siteNoThe ID of the WordPress site to target (from mcp-wordpress.config.json). Required if multiple sites are configured.
current_versionNoOverride current version for testing (optional)

TDQS

A3.8/5.0
Behavior3/5

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

No annotations provided; description carries full burden. It discloses return values but does not mention side effects, permissions, or rate limits. For a read-only version check, it is adequate but could be more transparent.

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, front-loaded, and contains no extraneous words. Every part is essential.

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?

No output schema, so description properly explains return values. The tool is simple and the description covers what the agent needs to know, though it could mention how to use the returned info.

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?

Schema coverage is 100% and parameter descriptions are clear. The description adds no additional meaning beyond the schema. Baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states the verb 'Check', the resource 'version of mcp-wordpress', and what it returns (current, latest, download URL). It distinguishes from sibling tools as no other tool performs version checking.

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 does not explicitly state when to use or not use this tool. However, the purpose is self-evident, and no alternatives are suggested. It lacks guidance on prerequisites or context.

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

wp_create_userC

Creates a new user.

ParametersJSON Schema
NameRequiredDescriptionDefault
siteNoThe ID of the WordPress site to target (from mcp-wordpress.config.json). Required if multiple sites are configured.
emailYesThe email address for the new user.
rolesNoAn array of roles to assign to the user.
passwordYesThe password for the new user.
usernameYesThe username for the new user.

TDQS

C2.6/5.0
Behavior2/5

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

No annotations provided; the description only says 'Creates a new user.' It fails to disclose side effects, authentication needs, error conditions, or whether the operation is reversible. Critical details missing for a mutation tool.

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?

While very concise (one sentence), the description is too short to be useful. It sacrifices necessary context for brevity, failing to front-load essential information like return value or usage notes.

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?

Lacks information about output (no output schema), error handling, or post-creation behavior. For a tool with 5 parameters and no output schema, the description is severely incomplete.

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?

Schema descriptions cover all 5 parameters (100% coverage), so the description adds no extra meaning. Baseline 3 is appropriate as the schema already documents the parameters adequately.

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 'Creates a new user' clearly states the action and resource, distinguishing it from sibling tools like wp_create_comment or wp_create_post. However, it adds no specificity beyond the tool 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?

No guidance on when to use this tool versus alternatives (e.g., wp_update_user, wp_list_users). No mention of prerequisites, permissions, or context where creation is appropriate.

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

wp_delete_application_passwordB

Revokes an existing application password.

ParametersJSON Schema
NameRequiredDescriptionDefault
siteNoThe ID of the WordPress site to target (from mcp-wordpress.config.json). Required if multiple sites are configured.
uuidYesThe UUID of the application password to revoke.
user_idYesThe ID of the user who owns the password.

TDQS

B3.4/5.0
Behavior2/5

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

No annotations are provided, and the description only states 'Revokes' without disclosing side effects (e.g., the password immediately stops working), authorization requirements, or irreversibility. For a destructive action, 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.

Conciseness4/5

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

The description is a single concise sentence with no redundancy. It is efficient but could benefit from a brief note on consequences.

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 and absence of output schema, the description minimally covers the action. However, it omits what happens after revocation (e.g., success indication) and any related notes.

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?

Schema description coverage is 100%, so the schema fully documents the parameters. The description adds no extra meaning beyond what the schema already provides.

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 uses the specific verb 'Revokes' and identifies the resource as 'application password', clearly distinguishing it from sibling tools like wp_get_application_passwords (listing) and wp_create_user.

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?

No explicit guidance on when to use this tool versus alternatives or prerequisites. The description implies usage for revoking an app password, but lacks exclusions or context for decision-making.

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

wp_delete_commentC

Deletes a comment.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesThe ID of the comment to delete.
siteNoThe ID of the WordPress site to target (from mcp-wordpress.config.json). Required if multiple sites are configured.
forceNoIf true, the comment will be permanently deleted. Defaults to false (moved to trash).

TDQS

C2.9/5.0
Behavior2/5

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

No annotations exist, so the description must disclose behavioral traits. It fails to mention the default trash behavior vs permanent deletion via 'force', or any permission requirements.

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

Conciseness4/5

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

At two words, the description is extremely concise and front-loaded. However, it risks being too minimal for an agent to fully understand the tool.

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 the presence of a 'force' parameter, the description is incomplete. It does not explain return values, side effects, or the site parameter context.

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?

Schema coverage is 100% and the description adds no additional meaning beyond the schema. Baseline score of 3 is appropriate since the schema itself is descriptive.

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 'Deletes a comment.' clearly indicates the action and resource. However, it does not differentiate from sibling tools like wp_delete_post or wp_spam_comment, which could cause confusion.

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 usage guidance is provided. The description does not mention when to use delete vs trash, nor contrasts with alternatives like spam or bulk deletion.

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

wp_delete_postA

Deletes a WordPress post with options for trash or permanent deletion. Includes safety confirmations and detailed feedback on the deletion action.

Usage Examples: โ€ข Trash a post: wp_delete_post --id=123 (moves to trash) โ€ข Permanent deletion: wp_delete_post --id=123 --force=true โ€ข Bulk operations: Use multiple calls with different IDs

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesThe ID of the post to delete.
siteNoThe ID of the WordPress site to target (from mcp-wordpress.config.json). Required if multiple sites are configured.
forceNoWhether to bypass trash and force deletion (default: false, moves to trash).

TDQS

A4/5.0
Behavior3/5

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

No annotations provided. Description mentions safety confirmations and detailed feedback but does not specify what they entail. Lacks disclosure of authorization needs, rate limits, or side effects beyond deletion.

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?

Description is concise with front-loaded main action. Usage examples are helpful but could be integrated more succinctly. No unnecessary repetition.

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?

With 3 parameters and no output schema, description covers core functionality but lacks details on return values, error handling, or post-deletion state. Some gaps remain.

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?

Schema coverage is 100%. Description explains the `--force` parameter and default behavior, adding meaning through examples (e.g., 'moves to trash').

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 deletes a WordPress post with options for trash or permanent deletion. It distinguishes from sibling tools like wp_delete_comment and wp_spam_comment.

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?

Usage examples show when to use trash vs permanent deletion and mention bulk operations. However, it does not explicitly state when not to use this tool or suggest alternatives.

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

wp_get_application_passwordsA

Lists application passwords for a specific user.

ParametersJSON Schema
NameRequiredDescriptionDefault
siteNoThe ID of the WordPress site to target (from mcp-wordpress.config.json). Required if multiple sites are configured.
user_idYesThe ID of the user to get application passwords for.

TDQS

A3.5/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 correctly implies a read-only operation ('Lists'), but it does not disclose behavioral details like authentication requirements, the fact that passwords are returned as plaintext, or what happens if the user does not exist.

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 of six words, front-loaded with the action. No unnecessary content; every word is functional.

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 no output schema, the description could explain that the result is an array of application password objects. It does not, leaving the agent to guess the return structure. The sibling delete tool is not mentioned, but the tool is simple enough that the description is minimally adequate.

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?

Schema coverage is 100%, so the schema fully documents the parameters. The description adds little beyond the schema, merely reaffirming that the user_id identifies the target user. Baseline of 3 is appropriate.

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 (Lists), the resource (application passwords), and the scope (for a specific user). It distinguishes from the sibling wp_delete_application_password by focusing on listing, so the purpose is 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 its siblings (e.g., wp_delete_application_password). It lacks context on prerequisites, such as the need for the user to exist, or that listing may expose sensitive data.

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

wp_get_categoryB

Retrieves a single category by its ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesThe unique identifier for the category.
siteNoThe ID of the WordPress site to target (from mcp-wordpress.config.json). Required if multiple sites are configured.

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations, the description should disclose side effects or permissions, but it only states the basic operation. It does not mention if there are any restrictions or returns.

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 wasted words. Front-loaded with key action.

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?

Without an output schema, the description should hint at the return structure (e.g., WP_Term). It is adequate for a simple retrieval but lacks completeness.

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?

Schema coverage is 100%, so the description adds no extra meaning beyond what the schema provides. Baseline 3 is appropriate.

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 retrieves a single category by its ID. It uses a specific verb and resource, though it doesn't distinguish from the few related siblings like wp_update_category.

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, nor any context about prerequisites or exclusions.

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

wp_get_mediaB

Retrieves a single media item by its ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesThe unique identifier for the media item.
siteNoThe ID of the WordPress site to target (from mcp-wordpress.config.json). Required if multiple sites are configured.

TDQS

B3.2/5.0
Behavior2/5

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

No annotations provided, and the description does not disclose behavioral traits such as authentication requirements, error handling (e.g., non-existent ID), rate limits, or any side effects. With no annotations, the description carries full burden but provides insufficient transparency.

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 that is front-loaded with the verb and resource, with no superfluous words. It is optimally concise.

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?

The tool has no output schema, so the description should explain return values or error conditions, but it does not. It also lacks behavioral details, leaving the agent with incomplete context for effective use.

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?

The input schema covers 100% of parameters with descriptions, so the schema already defines meaning. The description adds no additional insight beyond what the schema provides, resulting in a baseline score of 3.

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 ('Retrieves') and the resource ('a single media item by its ID'), which distinguishes it from sibling tools like wp_list_media (lists all) or wp_upload_media (uploads).

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 exclusions or prerequisites mentioned. The description is minimal and leaves the agent without context for selecting this tool over others.

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

wp_get_post_revisionsB

Retrieves the revision history for a specific post, including details about changes, dates, and authors for content management and auditing purposes.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesThe ID of the post to get revisions for.
siteNoThe ID of the WordPress site to target (from mcp-wordpress.config.json). Required if multiple sites are configured.

TDQS

B3.1/5.0
Behavior2/5

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

Without annotations, the description must disclose behavioral traits. It mentions included fields (changes, dates, authors) but omits read-only nature, pagination, authorization needs, or error conditions. The tool is likely read-only but not stated.

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 the key action and resource. Every word is meaningful; no filler.

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 no output schema, the description should better describe the return format. It vaguely mentions details but does not confirm it returns an array or list. The tool is simple but could be more helpful with structure hints.

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?

Schema coverage is 100%; both parameters have clear descriptions. The description adds context about returned fields but no additional parameter semantics. Baseline 3 is appropriate.

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 (retrieves), resource (revision history), and scope (for a specific post). It differentiates from sibling tools like delete_post or SEO analyzers by focusing on revisions. However, it does not explicitly distinguish from potential similar tools.

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. The description mentions content management and auditing purposes, but does not specify prerequisites, context, or 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.

wp_get_site_settingsA

Retrieves the general settings for a WordPress site. Requires administrator role (manage_options capability).

ParametersJSON Schema
NameRequiredDescriptionDefault
siteNoThe ID of the WordPress site to target (from mcp-wordpress.config.json). Required if multiple sites are configured.

TDQS

A3.5/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 full burden. It indicates a read operation and lists the required capability, which is helpful. However, it lacks details on error handling, rate limits, or the typical data shape returned, which are important for behavioral transparency.

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 concise sentences with purpose first and prerequisite second. No unnecessary words, efficient for an AI agent.

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 simple tool with one optional parameter and no output schema, the description is sufficient but not complete. It omits details about the return value or data shape, which the agent might need to process the response 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?

Schema description coverage is 100%, so baseline is 3. The description does not add extra meaning beyond what the schema already provides for the 'site' parameter.

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 retrieves general settings for a WordPress site, using a specific verb and resource. It implicitly distinguishes itself from the sibling 'wp_update_site_settings' which performs updates.

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 the required administrator role but provides no guidance on when to use this tool versus alternatives like 'wp_get_post' or 'wp_list_comments'. There is no explicit context for selection.

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

wp_search_siteB

Performs a site-wide search for content across posts, pages, and media with comprehensive results and metadata.

Usage Examples: โ€ข Search everything: wp_search_site --term="WordPress" โ€ข Search posts only: wp_search_site --term="tutorial" --type="posts" โ€ข Search pages: wp_search_site --term="about" --type="pages" โ€ข Search media: wp_search_site --term="logo" --type="media" โ€ข Find specific content: wp_search_site --term="contact form"

ParametersJSON Schema
NameRequiredDescriptionDefault
siteNoThe ID of the WordPress site to target (from mcp-wordpress.config.json). Required if multiple sites are configured.
termYesThe search term to look for.
typeNoThe type of content to search.

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 carries the full burden of behavioral disclosure. However, the description does not mention whether the tool is read-only (although searching is safe), any potential side effects, authentication requirements, or rate limits. The phrase 'comprehensive results and metadata' hints at the return but lacks depth.

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 front-loaded with a clear purpose sentence followed by illustrative usage examples. While the examples are somewhat repetitive (each follows the same pattern), the overall length is appropriate and each line serves to demonstrate a specific parameter usage.

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 search tool with no output schema and no annotations, the description should provide more detail about the return format (e.g., list of results, pagination, metadata structure). The phrase 'comprehensive results and metadata' is vague. Given the simplicity of the parameters and task, the description could be more complete.

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?

The input schema provides full descriptions for all three parameters (100% coverage), so the baseline is 3. The usage examples in the description add practical context (e.g., how to specify types) but do not add critical semantic meaning beyond what the schema already conveys.

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 uses the specific verb 'performs a site-wide search' and clearly identifies the resources (posts, pages, media) and the outcome (comprehensive results with metadata). This clearly distinguishes it from sibling tools like wp_get_media or wp_delete_post, which are content-specific operations.

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 does not explicitly state when to use this tool versus alternatives. While it provides usage examples demonstrating different content types, it lacks guidance on when not to use it (e.g., for very specific retrievals) or mentions of alternative tools for different tasks. The implied context is adequate but not explicit.

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

wp_seo_analyze_contentA

Analyze WordPress post content for SEO optimization opportunities including readability, keyword density, structure, and technical factors

ParametersJSON Schema
NameRequiredDescriptionDefault
siteNoSite identifier for multi-site setups
postIdYesWordPress post ID to analyze
analysisTypeNoType of SEO analysis to perform (default: full)
focusKeywordsNoPrimary keywords to analyze for optimization

TDQS

A3.7/5.0
Behavior3/5

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

With no annotations, the description relies on the word 'analyze' to imply read-only behavior. It does not explicitly state that it does not modify data, nor does it disclose required permissions or rate limits. The description adequately suggests non-destructive analysis but lacks explicit behavioral traits.

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, well-structured sentence that front-loads the main action and purpose, then lists key aspects efficiently. Every word contributes to clarity without redundancy.

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?

The description covers the tool's scope (readability, keywords, etc.) and parameters are fully documented in the schema. However, it lacks explanation of the output format or return value (no output schema), leaving the agent to guess what the analysis results look like. Additional context about pagination, limits, or typical results would improve completeness.

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?

Schema coverage is 100%, so the baseline is 3. The description lists analysis aspects (readability, keywords, structure, technical factors) which map to the analysisType enum, but it adds no extra semantics beyond what the schema already provides for parameters like site, postId, or focusKeywords. No parameter usage hints or constraints are included.

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 analyzes WordPress post content for SEO opportunities, specifying the verb 'analyze' and resource 'post content'. It lists concrete aspects (readability, keyword density, structure, technical factors), which effectively distinguishes it from siblings like site-wide audits or keyword research.

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 single post SEO analysis, but does not explicitly guide when to use it versus alternatives (e.g., site audit for site-wide issues, keyword research for broader terms). No when-not or exclusion guidance is provided.

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

wp_seo_bulk_update_metadataA

Update SEO metadata for multiple posts with progress tracking and error handling

ParametersJSON Schema
NameRequiredDescriptionDefault
siteNoSite identifier for multi-site setups
dryRunNoPerform a dry run without making actual changes
postIdsYesArray of WordPress post IDs to update
updatesYesMetadata fields to update for all posts

TDQS

A3.7/5.0
Behavior3/5

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

Mentions progress tracking and error handling, which adds behavioral context beyond the schema. However, no annotations exist, and the description does not disclose mutation details, rollback behavior, or concurrency.

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 that efficiently communicates purpose and key features. No redundancy.

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?

Covers core purpose and mentions progress tracking/error handling, but lacks details on return format, partial updates, or operational behavior given 4 parameters and no output schema.

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?

Schema coverage is 100% with good descriptions. The tool description adds no extra parameter meaning beyond what the schema already provides, so baseline score applies.

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 updates SEO metadata for multiple posts, with progress tracking and error handling. It differentiates from siblings like wp_seo_generate_metadata by focusing on bulk updates.

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?

No explicit guidance on when to use this tool vs alternatives like wp_seo_generate_metadata or wp_seo_analyze_content. The bulk nature is implied but not contrasted.

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

wp_seo_generate_metadataC

Generate SEO-optimized metadata including title tags, meta descriptions, OpenGraph, and Twitter Card data

ParametersJSON Schema
NameRequiredDescriptionDefault
siteNoSite identifier for multi-site setups
titleNoCustom title to optimize (optional, uses post title if not provided)
postIdYesWordPress post ID
descriptionNoCustom description to optimize (optional, uses excerpt if not provided)
focusKeywordNoPrimary keyword to include in metadata

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 disclosing behavioral traits. It does not mention whether the tool overwrites existing metadata, requires specific permissions, or is destructive. This lack of transparency could lead to unexpected side effects.

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

Conciseness4/5

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

The description is a single, concise sentence of 13 words that efficiently conveys the core purpose without extraneous detail. It is front-loaded with the action and specifics.

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 has 5 parameters and no output schema, the description provides the essential purpose but omits details on what happens after generation (e.g., saved to post, returned data) and behavioral traits. It is adequate but not fully complete.

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?

Schema description coverage is 100%, so the input schema already documents all parameters. The tool description adds no further parameter-level information beyond listing output types. Thus, baseline score of 3 is appropriate.

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 generates SEO-optimized metadata, listing specific types (title tags, meta descriptions, OpenGraph, Twitter Card data). This sufficiently indicates the tool's purpose and distinguishes it from sibling tools like wp_seo_analyze_content or wp_seo_generate_schema.

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 usage guidelines are provided. The description does not specify when to use this tool versus alternatives, nor does it mention prerequisites or exclusions, leaving the agent without guidance on optimal invocation context.

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

wp_seo_generate_schemaB

Generate JSON-LD structured data schema for enhanced search results

ParametersJSON Schema
NameRequiredDescriptionDefault
siteNoSite identifier for multi-site setups
postIdYesWordPress post ID
customDataNoAdditional custom data for the schema
schemaTypeYesType of schema.org structured data to generate

TDQS

B3.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 fully disclose behavioral traits. It only states 'generate' without indicating side effects (e.g., does it modify the post?), required permissions, or whether it's read-only. This is insufficient for an agent to infer safe usage.

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, clear sentence with no extraneous words. It is front-loaded and efficiently communicates the core function.

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 too brief. It does not specify the return format (e.g., string, object), possible error scenarios, or dependencies (e.g., postId must exist). More detail is needed for an agent to use this tool reliably.

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?

Schema description coverage is 100%, so the baseline is 3. The description adds no additional meaning beyond what the schema provides; it does not explain how 'customData' is used or the expected format of 'site'. Thus it meets but does not exceed the baseline.

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 ('Generate JSON-LD structured data schema') and the purpose ('for enhanced search results'). It distinguishes this tool from siblings like wp_seo_validate_schema (which validates) and wp_seo_generate_metadata (which likely generates meta tags) by specifically targeting schema generation.

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. The description does not specify prerequisites, context, or when not to use it. While the purpose is implied, there is no explicit direction for the AI agent.

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

wp_seo_get_live_dataC

Retrieve live SEO data from WordPress including plugin-specific metadata and configurations

ParametersJSON Schema
NameRequiredDescriptionDefault
siteNoSite identifier for multi-site setups
postIdYesWordPress post ID to get SEO data for
includeAnalysisNoInclude SEO analysis of the live data
includeRecommendationsNoInclude optimization recommendations

TDQS

C2.9/5.0
Behavior2/5

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

No annotations exist, so the description must disclose behavioral traits. It implies a read-only operation ('Retrieve') but fails to mention error handling, data freshness, authentication requirements, or side effects. The single sentence does not suffice for a retrieval 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 sentence that front-loads the main purpose. It is concise without sacrificing clarity, though it could benefit from additional structure (e.g., bullet points for 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?

With no output schema, the description partially compensates by hinting at response contents ('plugin-specific metadata and configurations'). However, it does not address error conditions, pagination, or the behavior of the optional parameters, leaving gaps for a tool with four parameters.

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?

Schema description coverage is 100%, so the schema already documents all parameters. The description adds no extra meaning beyond what the schema provides, meeting the baseline score of 3.

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 'Retrieve', the resource 'live SEO data from WordPress', and adds specificity with 'plugin-specific metadata and configurations'. It differentiates from sibling tools that focus on analysis, generation, or validation of SEO data.

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 like wp_seo_analyze_content or wp_seo_generate_metadata. The description lacks context on prerequisites or typical use cases.

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

wp_seo_keyword_researchB

Research keywords and get suggestions based on topic and competition analysis

ParametersJSON Schema
NameRequiredDescriptionDefault
siteNoSite identifier for multi-site setups
maxResultsNoMaximum number of keyword suggestions
seedKeywordYesSeed keyword or topic to research
includeQuestionsNoInclude question-based keywords
includeVariationsNoInclude keyword variations and long-tail keywords

TDQS

B3.1/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 disclose behavioral traits (e.g., read-only, auth needs, effect on data). It does not, offering only the basic function.

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?

Single sentence that is front-loaded and concise. Every word adds value, though minor refinements could improve clarity.

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?

With 5 parameters, no output schema, and no annotations, the description lacks completeness. It does not explain output format, competition analysis interpretation, or error states.

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?

Schema description coverage is 100%, so parameters are documented in the schema. The description adds no extra meaning beyond the parameter descriptions, meeting the baseline.

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 uses a specific verb ('Research') and resource ('keywords'), and mentions 'topic and competition analysis', clearly distinguishing this from sibling tools like site audits or content analysis.

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 when-to-use or when-not-to-use guidance is provided. The description implies general keyword research but does not exclude alternatives or specify prerequisites.

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

wp_seo_site_auditA

Perform comprehensive SEO audit of the WordPress site including technical, content, and performance analysis

ParametersJSON Schema
NameRequiredDescriptionDefault
siteNoSite identifier for multi-site setups
forceNoForce refresh, bypassing cached audit results
maxPagesNoMaximum number of pages to audit (default: 100)
auditTypeNoType of audit to perform (default: full)
includeExternalLinksNoInclude external link validation in audit

TDQS

A3.5/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. It only states the audit scope without mentioning caching (though the 'force' parameter hints at it), performance impact, resource usage, or output format. This leaves significant behavioral ambiguity for a potentially heavyweight 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, well-structured sentence that front-loads the main action and purpose. It avoids extraneous details, making it easy to read and process.

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?

While the description covers the core purpose, it lacks information about output, execution time, prerequisites, or multi-site considerations. Given no output schema and no annotations, the description should provide more context for an agent to use the tool effectively. It is minimally complete but leaves gaps.

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?

All five parameters have descriptions in the input schema, achieving 100% schema coverage. The tool description adds no additional meaning beyond what the schema already provides, so it meets the baseline but does not enhance parameter understanding.

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 performs a comprehensive SEO audit of a WordPress site, covering technical, content, and performance analysis. This distinctly differentiates it from sibling tools like wp_seo_analyze_content or wp_seo_keyword_research, which focus on more specific sub-tasks.

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 use for overall SEO auditing but provides no explicit guidance on when to choose this tool over siblings, nor does it mention when not to use it. The tool name and description offer context, but no exclusionary or alternative usage advice is given.

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

wp_seo_test_integrationC

Test SEO plugin integration and detect available SEO plugins on the WordPress site

ParametersJSON Schema
NameRequiredDescriptionDefault
siteNoSite identifier for multi-site setups
checkPluginsNoCheck which SEO plugins are installed and active
testMetadataAccessNoTest ability to read/write SEO metadata

TDQS

C2.9/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 behavioral traits. It mentions testing and detecting, but does not clarify if the tool is read-only, if it modifies site data, or what happens on failure (e.g., when no SEO plugins are detected). This lack of detail affects transparency.

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 conveys the tool's purpose. It front-loads the core action. While it is efficient, it could be slightly more structured with a second sentence for context.

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 (3 boolean parameters, no output schema), the description provides the essential purpose but lacks completeness regarding return values or side effects. It is adequate but not thorough.

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?

The input schema has 100% coverage for parameter descriptions. The description adds no additional meaning beyond the schema, so a baseline score of 3 is appropriate. The parameters are self-explanatory from their names and descriptions.

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's purpose: testing SEO plugin integration and detecting available plugins. It uses specific verbs (test, detect) and specifies the resource (SEO plugins, WordPress site). However, it does not distinguish it from sibling tools like wp_seo_site_audit, which might overlap.

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. The description lacks context for optimal usage, prerequisites, or exclusions. Given the presence of several SEO-related sibling tools, this omission reduces clarity.

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

wp_seo_track_serpB

Track search engine result page positions for target keywords

ParametersJSON Schema
NameRequiredDescriptionDefault
urlNoSpecific URL to track (optional, uses site home if not provided)
siteNoSite identifier for multi-site setups
keywordsYesKeywords to track positions for
locationNoGeographic location for localized results
searchEngineNoSearch engine to track positions on

TDQS

B3.1/5.0
Behavior2/5

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

No annotations provided, and description only states it tracks positions. No mention of side effects, authentication needs, rate limits, or whether it's read-only. Minimal behavioral context.

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

Conciseness4/5

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

Single concise sentence with no fluff. However, it's very brief and could be slightly more informative 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 5 parameters (1 required), no output schema, and no annotations, the description does not cover return values, success behavior, or prerequisites. Incomplete for a complex 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?

Schema description coverage is 100%, so descriptors already explain each parameter. Description adds no extra meaning beyond the schema, achieving baseline.

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 uses specific verb 'Track' and resource 'search engine result page positions for target keywords'. It distinguishes from sibling tools like wp_seo_keyword_research and wp_seo_site_audit.

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 vs. alternatives like keyword research or audit. No prerequisites or exclusions mentioned.

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

wp_seo_validate_schemaB

Validate JSON-LD schema markup for correctness and compliance

ParametersJSON Schema
NameRequiredDescriptionDefault
siteNoSite identifier for multi-site setups
schemaYesJSON-LD schema object to validate
schemaTypeNoExpected schema type for validation
useGoogleValidatorNoUse Google's Rich Results Test API for validation

TDQS

B3.4/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 responsibility for behavioral disclosure. It fails to mention whether the tool is read-only, has side effects, requires authentication, or any rate limits. The description only states the basic purpose.

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 7-word sentence with zero wasted words. It is front-loaded and 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?

Given no annotations, no output schema, and parameters including a nested object, the description is too minimal. It does not explain return values, error handling, prerequisites, or the validation process.

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?

The input schema has 100% description coverage for all 4 parameters, so the baseline is 3. The tool description adds no additional parameter-level context beyond what the schema provides.

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 'Validate JSON-LD schema markup for correctness and compliance' uses a specific verb ('Validate') and clear resource ('JSON-LD schema markup'), and effectively distinguishes the tool from its sibling 'wp_seo_generate_schema'.

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

Usage Guidelines3/5

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

The description implies usage context as a validation counterpart to generation tools like 'wp_seo_generate_schema', but it does not explicitly state when to use this tool versus alternatives or provide any exclusion criteria.

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

wp_spam_commentC

Marks a comment as spam.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesThe ID of the comment to mark as spam.
siteNoThe ID of the WordPress site to target (from mcp-wordpress.config.json). Required if multiple sites are configured.

TDQS

C2.8/5.0
Behavior2/5

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

No annotations are present, so the description must disclose behaviors. It only states the action without explaining reversibility, 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 extremely concise (three words) but lacks important context. It is not overly verbose, but conciseness sacrifices completeness.

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?

With no output schema and no annotations, the description fails to provide complete context for the tool's behavior, such as expected return values or prerequisites.

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?

Schema coverage is 100% and the descriptions in the schema are clear. The tool description adds no additional meaning, so baseline score of 3 is appropriate.

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 'Marks a comment as spam' clearly states the action and resource. However, it does not differentiate from the sibling tool 'wp_delete_comment', which could confuse an agent about when to use each.

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 over alternatives like 'wp_delete_comment'. The agent must infer the difference without help.

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

wp_test_authB

Tests the authentication and connectivity for a configured WordPress site with detailed connection diagnostics.

Usage Examples: โ€ข Test connection: wp_test_auth โ€ข Multi-site test: wp_test_auth --site="my-site" โ€ข Verify setup: Use this after configuring new credentials โ€ข Troubleshoot: Run when experiencing connection issues โ€ข Health check: Regular verification of WordPress connectivity

ParametersJSON Schema
NameRequiredDescriptionDefault
siteNoThe ID of the WordPress site to target (from mcp-wordpress.config.json). Required if multiple sites are configured.

TDQS

B3.4/5.0
Behavior2/5

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

No annotations are provided. The description does not disclose whether the tool is read-only, side-effect-free, or if it requires any permissions. Details about diagnostics output are vague. The agent lacks critical behavioral context.

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

Conciseness4/5

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

The description is concise with a well-structured single sentence plus bulleted examples. It is front-loaded, though the bullet list contains some redundancy (e.g., 'Test connection' is implied by the title).

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 simple diagnostic tool with one optional parameter and no output schema, the description covers purpose and usage examples. However, it does not describe the output format, prerequisites, or potential error conditions, leaving gaps.

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?

Schema coverage is 100% with a clear description of the site parameter. The tool description adds usage examples (e.g., --site='my-site') but does not provide significant additional meaning 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 tests authentication and connectivity with detailed diagnostics. It is specific and distinct from sibling tools like wp_switch_auth_method, but does not explicitly differentiate from all siblings.

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

Usage Guidelines4/5

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

Usage examples provide clear contexts: after configuring credentials, troubleshooting connection issues, regular health checks. Multi-site usage is also addressed. However, no alternative tools are mentioned, and when not to use is not stated.

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

wp_update_categoryC

Updates an existing category.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesThe ID of the category to update.
nameNoThe new name for the category.
siteNoThe ID of the WordPress site to target (from mcp-wordpress.config.json). Required if multiple sites are configured.

TDQS

C2.9/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 disclose behavioral traits. It confirms mutation ('updates') but omits critical details such as required permissions, side effects, error scenarios, or what happens if the category does not exist.

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, direct sentence with no wasted words. However, its brevity sacrifices completeness for 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 an update operation with no output schema and 3 parameters, the description lacks essential context about return values, error handling, and prerequisites. Sibling tools exist but are not referenced.

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?

Schema description coverage is 100%, so parameters are already well-documented. The description adds no additional meaning beyond what the schema provides, meeting the baseline expectation.

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 'Updates' and the resource 'existing category,' making the primary action unambiguous. However, it does not specify which attributes can be updated (e.g., name), leaving some ambiguity about the scope of updates beyond the schema.

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

Usage 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 wp_get_category or potential create/delete tools. There is no mention of prerequisites, conditions, or 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.

wp_update_site_settingsB

Updates one or more general settings for a WordPress site. Requires administrator role (manage_options capability).

ParametersJSON Schema
NameRequiredDescriptionDefault
siteNoThe ID of the WordPress site to target (from mcp-wordpress.config.json). Required if multiple sites are configured.
titleNoThe title of the site.
timezoneNoA city in the same timezone, e.g., 'America/New_York'.
descriptionNoThe tagline or description of the site.

TDQS

B3.4/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 fully disclose behavior. It only states the admin requirement and that updates occur, but lacks details on idempotency, validation, error handling, or side effects.

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

Conciseness4/5

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

Description is concise with two short sentences, front-loading the core purpose and a key prerequisite. No wasted words.

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 no output schema and simple parameters, the description covers the basics but lacks behavioral context (e.g., atomicity of updates, what happens on invalid input). Somewhat incomplete for an agent to use confidently.

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?

Schema description coverage is 100%, so the schema already documents all parameters. The description adds no additional parameter semantics 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?

Description clearly states 'Updates one or more general settings for a WordPress site' with a specific verb and resource. It distinguishes from sibling tools like wp_get_site_settings (read-only) and other mutation tools.

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?

Specifies that administrator role (manage_options capability) is required, which is a useful prerequisite. However, no guidance on when to use this tool versus alternatives, 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.

wp_upload_mediaB

Uploads a file to the WordPress media library.

ParametersJSON Schema
NameRequiredDescriptionDefault
postNoThe ID of a post to attach this media to.
siteNoThe ID of the WordPress site to target (from mcp-wordpress.config.json). Required if multiple sites are configured.
titleNoThe title for the media item.
captionNoThe caption for the media item.
alt_textNoAlternative text for the media item (for accessibility).
file_pathYesThe local, absolute path to the file to upload.
descriptionNoThe description for the media item.

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations provided, the description must fully disclose behavior. It only states 'uploads a file,' omitting details such as return value (likely media ID), permission requirements, file size limits, or potential overwrites. 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 sentence, very concise and front-loaded. However, it could be slightly expanded to include behavioral context without becoming overly long.

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 7 parameters, no output schema, and no annotations, the description lacks important context such as what happens after upload (e.g., returns ID), error handling, or side effects. It is incomplete for a complex file upload operation.

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?

The input schema has 100% description coverage, so the schema already documents all parameters adequately. The tool description adds no extra meaning beyond what the schema provides, hence baseline score of 3.

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 uploads a file to the WordPress media library, using a specific verb and resource. It distinguishes well from siblings like wp_get_media (retrieve), wp_update_media (update existing), and wp_delete_media (delete).

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. It does not mention prerequisites like file existence or permissions, nor does it differentiate from wp_update_media for editing existing media.

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. 47 tool updatesv3.3.23
    • Removedwp_approve_comment
    • Removedwp_cache_clear
    • Removedwp_cache_info
    • Removedwp_cache_stats
    • Removedwp_cache_warm
    • Addedwp_check_version
    • Removedwp_create_comment
    • Removedwp_create_page
    • Removedwp_create_post
    • Removedwp_create_tag
    • Addedwp_delete_application_password
    • Removedwp_delete_category
    • Removedwp_delete_media
    • Removedwp_delete_page
    • Removedwp_delete_user
    • Addedwp_get_application_passwords
    • Removedwp_get_auth_status
    • Removedwp_get_comment
    • Removedwp_get_current_user
    • Removedwp_get_post
    • Addedwp_get_site_settings
    • Removedwp_get_tag
    • Removedwp_get_user
    • Removedwp_list_categories
    • Removedwp_list_comments
    • Removedwp_list_media
    • Removedwp_list_pages
    • Removedwp_list_posts
    • Removedwp_list_tags
    • Removedwp_list_users
    • Addedwp_search_site
    • Addedwp_seo_bulk_update_metadata
    • Addedwp_seo_generate_metadata
    • Addedwp_seo_generate_schema
    • Addedwp_seo_keyword_research
    • Addedwp_seo_site_audit
    • Addedwp_seo_suggest_internal_links
    • Addedwp_seo_test_integration
    • Addedwp_seo_track_serp
    • Addedwp_seo_validate_schema
    • Removedwp_update_comment
    • Removedwp_update_media
    • Removedwp_update_page
    • Removedwp_update_post
    • Addedwp_update_site_settings
    • Removedwp_update_tag
    • Removedwp_update_user
  2. 34 tool updatesv3.3.23
    • Addedwp_create_comment
    • Addedwp_create_page
    • Addedwp_create_post
    • Addedwp_create_tag
    • Addedwp_delete_category
    • Addedwp_delete_comment
    • Addedwp_delete_page
    • Addedwp_delete_post
    • Addedwp_delete_user
    • Addedwp_get_auth_status
    • Addedwp_get_category
    • Addedwp_get_comment
    • Addedwp_get_current_user
    • Addedwp_get_post
    • Addedwp_get_post_revisions
    • Removedwp_get_site_settings
    • Addedwp_get_tag
    • Addedwp_get_user
    • Addedwp_list_categories
    • Addedwp_list_media
    • Addedwp_list_posts
    • Addedwp_list_tags
    • Addedwp_list_users
    • Removedwp_performance_stats
    • Addedwp_seo_analyze_content
    • Addedwp_seo_get_live_data
    • Addedwp_spam_comment
    • Removedwp_switch_auth_method
    • Addedwp_update_category
    • Addedwp_update_comment
    • Addedwp_update_page
    • Addedwp_update_post
    • Addedwp_update_tag
    • Addedwp_update_user
  3. 57 tool updatesv3.3.22
    • Removedwp_check_version
    • Removedwp_create_application_password
    • Removedwp_create_category
    • Removedwp_create_comment
    • Removedwp_create_page
    • Removedwp_create_post
    • Removedwp_create_tag
    • Removedwp_delete_application_password
    • Removedwp_delete_category
    • Removedwp_delete_comment
    • Removedwp_delete_page
    • Removedwp_delete_post
    • Removedwp_delete_tag
    • Removedwp_delete_user
    • Removedwp_get_application_passwords
    • Removedwp_get_category
    • Removedwp_get_comment
    • Removedwp_get_current_user
    • Removedwp_get_page
    • Removedwp_get_page_revisions
    • Removedwp_get_post
    • Removedwp_get_post_revisions
    • Removedwp_get_tag
    • Removedwp_get_user
    • Removedwp_list_categories
    • Removedwp_list_media
    • Removedwp_list_posts
    • Removedwp_list_tags
    • Removedwp_list_users
    • Removedwp_performance_alerts
    • Removedwp_performance_benchmark
    • Removedwp_performance_export
    • Removedwp_performance_history
    • Removedwp_performance_optimize
    • Removedwp_search_site
    • Removedwp_seo_analyze_content
    • Removedwp_seo_bulk_update_metadata
    • Removedwp_seo_generate_metadata
    • Removedwp_seo_generate_schema
    • Removedwp_seo_get_live_data
    • Removedwp_seo_keyword_research
    • Removedwp_seo_site_audit
    • Removedwp_seo_test_integration
    • Removedwp_seo_track_serp
    • Removedwp_seo_validate_schema
    • Removedwp_spam_comment
    • Addedwp_switch_auth_method
    • Addedwp_test_auth
    • Removedwp_update_category
    • Removedwp_update_comment
    • Addedwp_update_media
    • Removedwp_update_page
    • Removedwp_update_post
    • Removedwp_update_site_settings
    • Removedwp_update_tag
    • Removedwp_update_user
    • Addedwp_upload_media
  4. 6 tool updatesv3.3.19
    • Removedwp_get_auth_status
    • Removedwp_seo_suggest_internal_links
    • Removedwp_switch_auth_method
    • Removedwp_test_auth
    • Removedwp_update_media
    • Removedwp_upload_media
  5. 71 tool updatesv3.3.8
    • Addedwp_approve_comment
    • Addedwp_cache_clear
    • Addedwp_cache_info
    • Addedwp_cache_stats
    • Addedwp_cache_warm
    • Addedwp_check_version
    • Addedwp_create_application_password
    • Addedwp_create_category
    • Addedwp_create_comment
    • Addedwp_create_page
    • Addedwp_create_post
    • Addedwp_create_tag
    • Addedwp_create_user
    • Addedwp_delete_application_password
    • Addedwp_delete_category
    • Addedwp_delete_comment
    • Addedwp_delete_media
    • Addedwp_delete_page
    • Addedwp_delete_post
    • Addedwp_delete_tag
    • Addedwp_delete_user
    • Addedwp_get_application_passwords
    • Addedwp_get_auth_status
    • Addedwp_get_category
    • Addedwp_get_comment
    • Addedwp_get_current_user
    • Addedwp_get_media
    • Addedwp_get_page
    • Addedwp_get_page_revisions
    • Addedwp_get_post
    • Addedwp_get_post_revisions
    • Addedwp_get_site_settings
    • Addedwp_get_tag
    • Addedwp_get_user
    • Addedwp_list_categories
    • Addedwp_list_comments
    • Addedwp_list_media
    • Addedwp_list_pages
    • Addedwp_list_posts
    • Addedwp_list_tags
    • Addedwp_list_users
    • Addedwp_performance_alerts
    • Addedwp_performance_benchmark
    • Addedwp_performance_export
    • Addedwp_performance_history
    • Addedwp_performance_optimize
    • Addedwp_performance_stats
    • Addedwp_search_site
    • Addedwp_seo_analyze_content
    • Addedwp_seo_bulk_update_metadata
    • Addedwp_seo_generate_metadata
    • Addedwp_seo_generate_schema
    • Addedwp_seo_get_live_data
    • Addedwp_seo_keyword_research
    • Addedwp_seo_site_audit
    • Addedwp_seo_suggest_internal_links
    • Addedwp_seo_test_integration
    • Addedwp_seo_track_serp
    • Addedwp_seo_validate_schema
    • Addedwp_spam_comment
    • Addedwp_switch_auth_method
    • Addedwp_test_auth
    • Addedwp_update_category
    • Addedwp_update_comment
    • Addedwp_update_media
    • Addedwp_update_page
    • Addedwp_update_post
    • Addedwp_update_site_settings
    • Addedwp_update_tag
    • Addedwp_update_user
    • Addedwp_upload_media
  6. 71 tool updatesv3.3.7
    • Removedwp_approve_comment
    • Removedwp_cache_clear
    • Removedwp_cache_info
    • Removedwp_cache_stats
    • Removedwp_cache_warm
    • Removedwp_check_version
    • Removedwp_create_application_password
    • Removedwp_create_category
    • Removedwp_create_comment
    • Removedwp_create_page
    • Removedwp_create_post
    • Removedwp_create_tag
    • Removedwp_create_user
    • Removedwp_delete_application_password
    • Removedwp_delete_category
    • Removedwp_delete_comment
    • Removedwp_delete_media
    • Removedwp_delete_page
    • Removedwp_delete_post
    • Removedwp_delete_tag
    • Removedwp_delete_user
    • Removedwp_get_application_passwords
    • Removedwp_get_auth_status
    • Removedwp_get_category
    • Removedwp_get_comment
    • Removedwp_get_current_user
    • Removedwp_get_media
    • Removedwp_get_page
    • Removedwp_get_page_revisions
    • Removedwp_get_post
    • Removedwp_get_post_revisions
    • Removedwp_get_site_settings
    • Removedwp_get_tag
    • Removedwp_get_user
    • Removedwp_list_categories
    • Removedwp_list_comments
    • Removedwp_list_media
    • Removedwp_list_pages
    • Removedwp_list_posts
    • Removedwp_list_tags
    • Removedwp_list_users
    • Removedwp_performance_alerts
    • Removedwp_performance_benchmark
    • Removedwp_performance_export
    • Removedwp_performance_history
    • Removedwp_performance_optimize
    • Removedwp_performance_stats
    • Removedwp_search_site
    • Removedwp_seo_analyze_content
    • Removedwp_seo_bulk_update_metadata
    • Removedwp_seo_generate_metadata
    • Removedwp_seo_generate_schema
    • Removedwp_seo_get_live_data
    • Removedwp_seo_keyword_research
    • Removedwp_seo_site_audit
    • Removedwp_seo_suggest_internal_links
    • Removedwp_seo_test_integration
    • Removedwp_seo_track_serp
    • Removedwp_seo_validate_schema
    • Removedwp_spam_comment
    • Removedwp_switch_auth_method
    • Removedwp_test_auth
    • Removedwp_update_category
    • Removedwp_update_comment
    • Removedwp_update_media
    • Removedwp_update_page
    • Removedwp_update_post
    • Removedwp_update_site_settings
    • Removedwp_update_tag
    • Removedwp_update_user
    • Removedwp_upload_media
  7. 1 tool updatev3.3.5
    • Changedwp_performance_history1 field changed
      • addedInput schema / properties / metrics / items
        Added value: +{
        +  "type": "string"
        +}
  8. 71 tool updatesv3.3.4
    • Changedwp_approve_comment1 field changed
      • removedInput schema / $schema
        Removed value: -"http://json-schema.org/draft-07/schema#"
    • Changedwp_cache_clear2 fields changed
      • removedInput schema / $schema
        Removed value: -"http://json-schema.org/draft-07/schema#"
      • changedInput schema / properties / site / description
        Previous value: -"Site ID to clear cache for."New value: +"The ID of the WordPress site to target (from mcp-wordpress.config.json). Required if multiple sites are configured."
    • Changedwp_cache_info2 fields changed
      • removedInput schema / $schema
        Removed value: -"http://json-schema.org/draft-07/schema#"
      • changedInput schema / properties / site / description
        Previous value: -"Site ID to get cache info for."New value: +"The ID of the WordPress site to target (from mcp-wordpress.config.json). Required if multiple sites are configured."
    • Changedwp_cache_stats2 fields changed
      • removedInput schema / $schema
        Removed value: -"http://json-schema.org/draft-07/schema#"
      • changedInput schema / properties / site / description
        Previous value: -"Site ID to get cache stats for. If not provided, uses default site or fails if multiple sites configured."New value: +"The ID of the WordPress site to target (from mcp-wordpress.config.json). Required if multiple sites are configured."
    • Changedwp_cache_warm2 fields changed
      • removedInput schema / $schema
        Removed value: -"http://json-schema.org/draft-07/schema#"
      • changedInput schema / properties / site / description
        Previous value: -"Site ID to warm cache for."New value: +"The ID of the WordPress site to target (from mcp-wordpress.config.json). Required if multiple sites are configured."
    • Addedwp_check_version
    • Changedwp_create_application_password1 field changed
      • removedInput schema / $schema
        Removed value: -"http://json-schema.org/draft-07/schema#"
    • Changedwp_create_category1 field changed
      • removedInput schema / $schema
        Removed value: -"http://json-schema.org/draft-07/schema#"
    • Changedwp_create_comment1 field changed
      • removedInput schema / $schema
        Removed value: -"http://json-schema.org/draft-07/schema#"
    • Changedwp_create_page2 fields changed
      • removedInput schema / $schema
        Removed value: -"http://json-schema.org/draft-07/schema#"
      • addedInput schema / properties / status / enum
        Added value: +[
        +  "publish",
        +  "draft",
        +  "pending",
        +  "private"
        +]
    • Changedwp_create_post1 field changed
      • removedInput schema / $schema
        Removed value: -"http://json-schema.org/draft-07/schema#"
    • Changedwp_create_tag1 field changed
      • removedInput schema / $schema
        Removed value: -"http://json-schema.org/draft-07/schema#"
    • Changedwp_create_user1 field changed
      • removedInput schema / $schema
        Removed value: -"http://json-schema.org/draft-07/schema#"
    • Changedwp_delete_application_password1 field changed
      • removedInput schema / $schema
        Removed value: -"http://json-schema.org/draft-07/schema#"
    • Changedwp_delete_category1 field changed
      • removedInput schema / $schema
        Removed value: -"http://json-schema.org/draft-07/schema#"
    • Changedwp_delete_comment1 field changed
      • removedInput schema / $schema
        Removed value: -"http://json-schema.org/draft-07/schema#"
    • Changedwp_delete_media1 field changed
      • removedInput schema / $schema
        Removed value: -"http://json-schema.org/draft-07/schema#"
    • Changedwp_delete_page1 field changed
      • removedInput schema / $schema
        Removed value: -"http://json-schema.org/draft-07/schema#"
    • Changedwp_delete_post1 field changed
      • removedInput schema / $schema
        Removed value: -"http://json-schema.org/draft-07/schema#"
    • Changedwp_delete_tag1 field changed
      • removedInput schema / $schema
        Removed value: -"http://json-schema.org/draft-07/schema#"
    • Changedwp_delete_user1 field changed
      • removedInput schema / $schema
        Removed value: -"http://json-schema.org/draft-07/schema#"
    • Changedwp_get_application_passwords1 field changed
      • removedInput schema / $schema
        Removed value: -"http://json-schema.org/draft-07/schema#"
    • Changedwp_get_auth_status1 field changed
      • removedInput schema / $schema
        Removed value: -"http://json-schema.org/draft-07/schema#"
    • Changedwp_get_category1 field changed
      • removedInput schema / $schema
        Removed value: -"http://json-schema.org/draft-07/schema#"
    • Changedwp_get_comment1 field changed
      • removedInput schema / $schema
        Removed value: -"http://json-schema.org/draft-07/schema#"
    • Changedwp_get_current_user1 field changed
      • removedInput schema / $schema
        Removed value: -"http://json-schema.org/draft-07/schema#"
    • Changedwp_get_media1 field changed
      • removedInput schema / $schema
        Removed value: -"http://json-schema.org/draft-07/schema#"
    • Changedwp_get_page1 field changed
      • removedInput schema / $schema
        Removed value: -"http://json-schema.org/draft-07/schema#"
    • Changedwp_get_page_revisions1 field changed
      • removedInput schema / $schema
        Removed value: -"http://json-schema.org/draft-07/schema#"
    • Changedwp_get_post1 field changed
      • removedInput schema / $schema
        Removed value: -"http://json-schema.org/draft-07/schema#"
    • Changedwp_get_post_revisions1 field changed
      • removedInput schema / $schema
        Removed value: -"http://json-schema.org/draft-07/schema#"
    • Changedwp_get_site_settings1 field changed
      • removedInput schema / $schema
        Removed value: -"http://json-schema.org/draft-07/schema#"
    • Changedwp_get_tag1 field changed
      • removedInput schema / $schema
        Removed value: -"http://json-schema.org/draft-07/schema#"
    • Changedwp_get_user1 field changed
      • removedInput schema / $schema
        Removed value: -"http://json-schema.org/draft-07/schema#"
    • Changedwp_list_categories1 field changed
      • removedInput schema / $schema
        Removed value: -"http://json-schema.org/draft-07/schema#"
    • Changedwp_list_comments2 fields changed
      • removedInput schema / $schema
        Removed value: -"http://json-schema.org/draft-07/schema#"
      • addedInput schema / properties / status / enum
        Added value: +[
        +  "hold",
        +  "approve",
        +  "spam",
        +  "trash"
        +]
    • Changedwp_list_media2 fields changed
      • removedInput schema / $schema
        Removed value: -"http://json-schema.org/draft-07/schema#"
      • addedInput schema / properties / media_type / enum
        Added value: +[
        +  "image",
        +  "video",
        +  "audio",
        +  "application"
        +]
    • Changedwp_list_pages2 fields changed
      • removedInput schema / $schema
        Removed value: -"http://json-schema.org/draft-07/schema#"
      • addedInput schema / properties / status / enum
        Added value: +[
        +  "publish",
        +  "future",
        +  "draft",
        +  "pending",
        +  "private"
        +]
    • Changedwp_list_posts1 field changed
      • removedInput schema / $schema
        Removed value: -"http://json-schema.org/draft-07/schema#"
    • Changedwp_list_tags1 field changed
      • removedInput schema / $schema
        Removed value: -"http://json-schema.org/draft-07/schema#"
    • Changedwp_list_users1 field changed
      • removedInput schema / $schema
        Removed value: -"http://json-schema.org/draft-07/schema#"
    • Changedwp_performance_alerts1 field changed
      • removedInput schema / $schema
        Removed value: -"http://json-schema.org/draft-07/schema#"
    • Changedwp_performance_benchmark1 field changed
      • removedInput schema / $schema
        Removed value: -"http://json-schema.org/draft-07/schema#"
    • Changedwp_performance_export1 field changed
      • removedInput schema / $schema
        Removed value: -"http://json-schema.org/draft-07/schema#"
    • Changedwp_performance_history2 fields changed
      • removedInput schema / $schema
        Removed value: -"http://json-schema.org/draft-07/schema#"
      • removedInput schema / properties / metrics / items
        Removed value: -{
        -  "type": "string"
        -}
    • Changedwp_performance_optimize1 field changed
      • removedInput schema / $schema
        Removed value: -"http://json-schema.org/draft-07/schema#"
    • Changedwp_performance_stats1 field changed
      • removedInput schema / $schema
        Removed value: -"http://json-schema.org/draft-07/schema#"
    • Changedwp_search_site2 fields changed
      • removedInput schema / $schema
        Removed value: -"http://json-schema.org/draft-07/schema#"
      • addedInput schema / properties / type / enum
        Added value: +[
        +  "posts",
        +  "pages",
        +  "media"
        +]
    • Changedwp_seo_analyze_content1 field changed
      • removedInput schema / $schema
        Removed value: -"http://json-schema.org/draft-07/schema#"
    • Changedwp_seo_bulk_update_metadata4 fields changed
      • removedInput schema / $schema
        Removed value: -"http://json-schema.org/draft-07/schema#"
      • removedInput schema / properties / updates / additionalProperties
        Removed value: -{}
      • addedInput schema / properties / updates / properties
        Added value: +{
        +  "canonical": {
        +    "type": "string"
        +  },
        +  "description": {
        +    "type": "string"
        +  },
        +  "focusKeyword": {
        +    "type": "string"
        +  },
        +  "title": {
        +    "type": "string"
        +  }
        +}
      • removedInput schema / properties / updates / propertyNames
        Removed value: -{
        -  "type": "string"
        -}
    • Changedwp_seo_generate_metadata1 field changed
      • removedInput schema / $schema
        Removed value: -"http://json-schema.org/draft-07/schema#"
    • Changedwp_seo_generate_schema3 fields changed
      • removedInput schema / $schema
        Removed value: -"http://json-schema.org/draft-07/schema#"
      • removedInput schema / properties / customData / additionalProperties
        Removed value: -{}
      • removedInput schema / properties / customData / propertyNames
        Removed value: -{
        -  "type": "string"
        -}
    • Changedwp_seo_get_live_data1 field changed
      • removedInput schema / $schema
        Removed value: -"http://json-schema.org/draft-07/schema#"
    • Changedwp_seo_keyword_research1 field changed
      • removedInput schema / $schema
        Removed value: -"http://json-schema.org/draft-07/schema#"
    • Changedwp_seo_site_audit1 field changed
      • removedInput schema / $schema
        Removed value: -"http://json-schema.org/draft-07/schema#"
    • Changedwp_seo_suggest_internal_links1 field changed
      • removedInput schema / $schema
        Removed value: -"http://json-schema.org/draft-07/schema#"
    • Changedwp_seo_test_integration1 field changed
      • removedInput schema / $schema
        Removed value: -"http://json-schema.org/draft-07/schema#"
    • Changedwp_seo_track_serp1 field changed
      • removedInput schema / $schema
        Removed value: -"http://json-schema.org/draft-07/schema#"
    • Changedwp_seo_validate_schema3 fields changed
      • removedInput schema / $schema
        Removed value: -"http://json-schema.org/draft-07/schema#"
      • removedInput schema / properties / schema / additionalProperties
        Removed value: -{}
      • removedInput schema / properties / schema / propertyNames
        Removed value: -{
        -  "type": "string"
        -}
    • Changedwp_spam_comment1 field changed
      • removedInput schema / $schema
        Removed value: -"http://json-schema.org/draft-07/schema#"
    • Changedwp_switch_auth_method2 fields changed
      • removedInput schema / $schema
        Removed value: -"http://json-schema.org/draft-07/schema#"
      • addedInput schema / properties / method / enum
        Added value: +[
        +  "app-password",
        +  "jwt",
        +  "basic",
        +  "api-key",
        +  "cookie"
        +]
    • Changedwp_test_auth1 field changed
      • removedInput schema / $schema
        Removed value: -"http://json-schema.org/draft-07/schema#"
    • Changedwp_update_category1 field changed
      • removedInput schema / $schema
        Removed value: -"http://json-schema.org/draft-07/schema#"
    • Changedwp_update_comment2 fields changed
      • removedInput schema / $schema
        Removed value: -"http://json-schema.org/draft-07/schema#"
      • addedInput schema / properties / status / enum
        Added value: +[
        +  "hold",
        +  "approve",
        +  "spam",
        +  "trash"
        +]
    • Changedwp_update_media1 field changed
      • removedInput schema / $schema
        Removed value: -"http://json-schema.org/draft-07/schema#"
    • Changedwp_update_page2 fields changed
      • removedInput schema / $schema
        Removed value: -"http://json-schema.org/draft-07/schema#"
      • addedInput schema / properties / status / enum
        Added value: +[
        +  "publish",
        +  "draft",
        +  "pending",
        +  "private"
        +]
    • Changedwp_update_post1 field changed
      • removedInput schema / $schema
        Removed value: -"http://json-schema.org/draft-07/schema#"
    • Changedwp_update_site_settings1 field changed
      • removedInput schema / $schema
        Removed value: -"http://json-schema.org/draft-07/schema#"
    • Changedwp_update_tag1 field changed
      • removedInput schema / $schema
        Removed value: -"http://json-schema.org/draft-07/schema#"
    • Changedwp_update_user1 field changed
      • removedInput schema / $schema
        Removed value: -"http://json-schema.org/draft-07/schema#"
    • Changedwp_upload_media1 field changed
      • removedInput schema / $schema
        Removed value: -"http://json-schema.org/draft-07/schema#"
  9. 70 tool updatesv1.0.0
    • First observedwp_approve_comment
    • First observedwp_cache_clear
    • First observedwp_cache_info
    • First observedwp_cache_stats
    • First observedwp_cache_warm
    • First observedwp_create_application_password
    • First observedwp_create_category
    • First observedwp_create_comment
    • First observedwp_create_page
    • First observedwp_create_post
    • First observedwp_create_tag
    • First observedwp_create_user
    • First observedwp_delete_application_password
    • First observedwp_delete_category
    • First observedwp_delete_comment
    • First observedwp_delete_media
    • First observedwp_delete_page
    • First observedwp_delete_post
    • First observedwp_delete_tag
    • First observedwp_delete_user
    • First observedwp_get_application_passwords
    • First observedwp_get_auth_status
    • First observedwp_get_category
    • First observedwp_get_comment
    • First observedwp_get_current_user
    • First observedwp_get_media
    • First observedwp_get_page
    • First observedwp_get_page_revisions
    • First observedwp_get_post
    • First observedwp_get_post_revisions
    • First observedwp_get_site_settings
    • First observedwp_get_tag
    • First observedwp_get_user
    • First observedwp_list_categories
    • First observedwp_list_comments
    • First observedwp_list_media
    • First observedwp_list_pages
    • First observedwp_list_posts
    • First observedwp_list_tags
    • First observedwp_list_users
    • First observedwp_performance_alerts
    • First observedwp_performance_benchmark
    • First observedwp_performance_export
    • First observedwp_performance_history
    • First observedwp_performance_optimize
    • First observedwp_performance_stats
    • First observedwp_search_site
    • First observedwp_seo_analyze_content
    • First observedwp_seo_bulk_update_metadata
    • First observedwp_seo_generate_metadata
    • First observedwp_seo_generate_schema
    • First observedwp_seo_get_live_data
    • First observedwp_seo_keyword_research
    • First observedwp_seo_site_audit
    • First observedwp_seo_suggest_internal_links
    • First observedwp_seo_test_integration
    • First observedwp_seo_track_serp
    • First observedwp_seo_validate_schema
    • First observedwp_spam_comment
    • First observedwp_switch_auth_method
    • First observedwp_test_auth
    • First observedwp_update_category
    • First observedwp_update_comment
    • First observedwp_update_media
    • First observedwp_update_page
    • First observedwp_update_post
    • First observedwp_update_site_settings
    • First observedwp_update_tag
    • First observedwp_update_user
    • First observedwp_upload_media

TDQS

B3.1/5.0
Disambiguation5/5

Each tool targets a distinct operation (e.g., create, get, update, delete) for a specific resource (post, page, comment, category, tag, media, user, etc.), with additional specialized tools for cache, performance, SEO, and auth. There is no overlap in purpose; an agent can easily distinguish between tools.

Naming Consistency5/5

All tools follow a consistent pattern of 'wp_verb_noun' (e.g., wp_create_post, wp_list_users, wp_delete_comment). Verbs are standardized (create, get, update, delete, list, etc.), and no mixed naming conventions (e.g., camelCase) are present. This makes the tool names predictable and easy to navigate.

Tool Count1/5

With 71 tools, the server has an extremely high number for a single MCP server. Even though the tools cover a broad WordPress management domain, this count far exceeds the typical well-scoped range (3-15) and falls into the 'extreme mismatch' category per the rubric (>50 tools). Many tools could potentially be consolidated or the server split into sub-servers.

Completeness5/5

The tool set provides comprehensive CRUD coverage for core WordPress entities (posts, pages, comments, categories, tags, media, users) and extends to authentication, cache management, performance monitoring, SEO analysis, site settings, and search. There are no obvious gaps for the stated purpose of managing a WordPress site.

Maintenance

ActivityNo data
ResponsivenessResponsive

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/docdyhr/mcp-wordpress'

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