MCP WordPress Server
The MCP WordPress Server enables natural language management of WordPress sites through AI tools like Claude Desktop, offering 59 tools across 10 categories for comprehensive site control.
Core Capabilities:
Content Management: Create, edit, delete, and list posts, pages, and media with full metadata, revisions, categories, tags, and featured images. Perform site-wide content searches.
User & Community Management: Manage user accounts, roles, and profiles. Moderate comments (approve/spam/delete). Create and revoke application passwords for secure API access.
Taxonomy Management: Create, update, delete, and organize categories and tags with search and filtering.
SEO Optimization: Analyze content for readability and keywords. Auto-generate SEO metadata, OpenGraph, and Twitter Card tags. Create and validate JSON-LD structured data schemas. Suggest internal linking opportunities. Conduct site audits, track SERP positions, and perform keyword research. Bulk-update metadata across multiple posts.
Performance & Monitoring: Access real-time statistics, historical trends, and benchmarks. Receive AI-powered optimization recommendations and performance alerts. Export comprehensive reports.
Cache Management: View statistics, clear cache, warm cache, and retrieve configuration details.
Site Administration: View and update site settings (title, description, timezone). Test connectivity and authentication status.
Multi-Site Support: Manage unlimited WordPress installations from a single interface using site-specific targeting.
Flexible Authentication: Support for Application Passwords (recommended), JWT, Basic Auth, and API Key methods.
Production-Ready Features:
100% XSS, SQL injection, and path traversal protection
Rate limiting and DoS protection
Intelligent caching and comprehensive error handling
100% TypeScript with Docker support
Extensible architecture with auto-generated documentation
2-click Claude Desktop DXT installation or NPM/Docker deployment
Provides comprehensive WordPress site management with 59 tools across content creation, user management, media library, comments, taxonomies, site settings, authentication, caching, and performance monitoring. Supports multi-site configurations and multiple authentication methods including Application Passwords and JWT.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@MCP WordPress Servercreate a new blog post about AI trends with SEO optimization"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
๐ 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
๐ 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 New2๏ธโฃ 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 fileOption B: NPM Global Install
npm install -g mcp-wordpress3๏ธโฃ 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
๐ Recommended: Claude Desktop Extension (DXT)
Easiest installation - just 2 clicks!
Download:
mcp-wordpress.dxt(3.4MB)Install: Claude Desktop โ Extensions โ Install โ Select DXT file
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
๐ป NPM Setup - Local development
๐ณ Docker Setup - Production deployment
๐ง Manual Build - Custom builds
๐ Configuration
Single Site (.env)
WORDPRESS_SITE_URL=https://myblog.com
WORDPRESS_USERNAME=admin
WORDPRESS_APP_PASSWORD=xxxx xxxx xxxx xxxx xxxx xxxxClaude 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:
WordPress Admin โ Users โ Profile โ Application Passwords โ Add New
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 errorsError | Solution |
| Regenerate application password |
| Check user role (Editor+ required) |
| Verify |
| Check WordPress REST API access |
๐ Full Troubleshooting Guide
๐ Documentation
Getting Started
Quick Start Guide - Get running in 5 minutes
Installation Guide - Detailed setup instructions
Configuration Guide - All configuration options
Authentication Setup - WordPress auth methods
User Guides
Basic Usage - Common tasks and workflows
Advanced Workflows - Complex automation
Multi-Site Management - Managing multiple sites
Troubleshooting - Common issues and solutions
Integration Guides
Claude Desktop - Complete Claude integration
VS Code - VS Code extension setup
Cline - Cline AI assistant integration
Developer Guide - Build your own MCP client
Developer Documentation
API Reference - Complete tool documentation
Architecture - System design and decisions
Contributing - Development guidelines
Build System - Build and release
Deployment & Operations
Docker Deployment - Container deployment
Publishing Troubleshooting - Fix publishing issues
Security Best Practices - Production security
Caching - Performance and caching guide
๐ง 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?
๐ Download DXT Extension - Easiest setup (2 minutes)
โก Try NPX Method - Power user setup (5 minutes)
๐ Explore All Tools - See what's possible
๐ฌ Join Discussions - Get help and share ideas
๐ Similar Projects
Automattic WordPress MCP - Official WordPress MCP server by Automattic
๐ 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 -
CachedWordPressClientwith 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 toolswp_check_versionA
Check if a newer version of mcp-wordpress is available. Returns current version, latest version, and download URL if update is available.
| Name | Required | Description | Default |
|---|---|---|---|
| site | No | The ID of the WordPress site to target (from mcp-wordpress.config.json). Required if multiple sites are configured. | |
| current_version | No | Override current version for testing (optional) |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| site | No | The ID of the WordPress site to target (from mcp-wordpress.config.json). Required if multiple sites are configured. | |
| Yes | The email address for the new user. | ||
| roles | No | An array of roles to assign to the user. | |
| password | Yes | The password for the new user. | |
| username | Yes | The username for the new user. |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| site | No | The ID of the WordPress site to target (from mcp-wordpress.config.json). Required if multiple sites are configured. | |
| uuid | Yes | The UUID of the application password to revoke. | |
| user_id | Yes | The ID of the user who owns the password. |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The ID of the comment to delete. | |
| site | No | The ID of the WordPress site to target (from mcp-wordpress.config.json). Required if multiple sites are configured. | |
| force | No | If true, the comment will be permanently deleted. Defaults to false (moved to trash). |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The ID of the post to delete. | |
| site | No | The ID of the WordPress site to target (from mcp-wordpress.config.json). Required if multiple sites are configured. | |
| force | No | Whether to bypass trash and force deletion (default: false, moves to trash). |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| site | No | The ID of the WordPress site to target (from mcp-wordpress.config.json). Required if multiple sites are configured. | |
| user_id | Yes | The ID of the user to get application passwords for. |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The unique identifier for the category. | |
| site | No | The ID of the WordPress site to target (from mcp-wordpress.config.json). Required if multiple sites are configured. |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The unique identifier for the media item. | |
| site | No | The ID of the WordPress site to target (from mcp-wordpress.config.json). Required if multiple sites are configured. |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The ID of the post to get revisions for. | |
| site | No | The ID of the WordPress site to target (from mcp-wordpress.config.json). Required if multiple sites are configured. |
TDQS
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.
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.
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.
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.
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.
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).
| Name | Required | Description | Default |
|---|---|---|---|
| site | No | The ID of the WordPress site to target (from mcp-wordpress.config.json). Required if multiple sites are configured. |
TDQS
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.
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.
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.
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.
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.
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"
| Name | Required | Description | Default |
|---|---|---|---|
| site | No | The ID of the WordPress site to target (from mcp-wordpress.config.json). Required if multiple sites are configured. | |
| term | Yes | The search term to look for. | |
| type | No | The type of content to search. |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| site | No | Site identifier for multi-site setups | |
| postId | Yes | WordPress post ID to analyze | |
| analysisType | No | Type of SEO analysis to perform (default: full) | |
| focusKeywords | No | Primary keywords to analyze for optimization |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| site | No | Site identifier for multi-site setups | |
| dryRun | No | Perform a dry run without making actual changes | |
| postIds | Yes | Array of WordPress post IDs to update | |
| updates | Yes | Metadata fields to update for all posts |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| site | No | Site identifier for multi-site setups | |
| title | No | Custom title to optimize (optional, uses post title if not provided) | |
| postId | Yes | WordPress post ID | |
| description | No | Custom description to optimize (optional, uses excerpt if not provided) | |
| focusKeyword | No | Primary keyword to include in metadata |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| site | No | Site identifier for multi-site setups | |
| postId | Yes | WordPress post ID | |
| customData | No | Additional custom data for the schema | |
| schemaType | Yes | Type of schema.org structured data to generate |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| site | No | Site identifier for multi-site setups | |
| postId | Yes | WordPress post ID to get SEO data for | |
| includeAnalysis | No | Include SEO analysis of the live data | |
| includeRecommendations | No | Include optimization recommendations |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| site | No | Site identifier for multi-site setups | |
| maxResults | No | Maximum number of keyword suggestions | |
| seedKeyword | Yes | Seed keyword or topic to research | |
| includeQuestions | No | Include question-based keywords | |
| includeVariations | No | Include keyword variations and long-tail keywords |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| site | No | Site identifier for multi-site setups | |
| force | No | Force refresh, bypassing cached audit results | |
| maxPages | No | Maximum number of pages to audit (default: 100) | |
| auditType | No | Type of audit to perform (default: full) | |
| includeExternalLinks | No | Include external link validation in audit |
TDQS
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.
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.
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.
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.
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.
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_suggest_internal_linksB
Analyze content and suggest relevant internal linking opportunities for better SEO
| Name | Required | Description | Default |
|---|---|---|---|
| site | No | Site identifier for multi-site setups | |
| postId | Yes | WordPress post ID to analyze for linking opportunities | |
| maxSuggestions | No | Maximum number of link suggestions (default: 5) | |
| minimumRelevance | No | Minimum relevance score (0-100) for suggestions |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It does not disclose whether the tool is read-only, modifies data, requires authentication, or has any side effects. The description only states it 'analyzes' and 'suggests', but behavior beyond that is unclear.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence of 10 words, front-loaded with the core action. No unnecessary words, though it may be under-specified.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema, so description must cover return values, but it only says 'suggest opportunities'. Does not specify format (list vs count), or pagination. For a tool with 4 parameters and no output schema, this is incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers all 4 parameters with descriptions (100% coverage), so baseline is 3. The description adds no additional meaning beyond the schema; it does not explain parameters like 'minimumRelevance' or 'maxSuggestions' further.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool analyzes content and suggests internal linking opportunities, distinguishing it from siblings like wp_seo_keyword_research or wp_seo_site_audit. The verb 'analyze' and 'suggest' combined with the resource 'internal linking opportunities' provides specific purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like wp_seo_site_audit or wp_seo_analyze_content. 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_test_integrationC
Test SEO plugin integration and detect available SEO plugins on the WordPress site
| Name | Required | Description | Default |
|---|---|---|---|
| site | No | Site identifier for multi-site setups | |
| checkPlugins | No | Check which SEO plugins are installed and active | |
| testMetadataAccess | No | Test ability to read/write SEO metadata |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | Specific URL to track (optional, uses site home if not provided) | |
| site | No | Site identifier for multi-site setups | |
| keywords | Yes | Keywords to track positions for | |
| location | No | Geographic location for localized results | |
| searchEngine | No | Search engine to track positions on |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| site | No | Site identifier for multi-site setups | |
| schema | Yes | JSON-LD schema object to validate | |
| schemaType | No | Expected schema type for validation | |
| useGoogleValidator | No | Use Google's Rich Results Test API for validation |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The ID of the comment to mark as spam. | |
| site | No | The ID of the WordPress site to target (from mcp-wordpress.config.json). Required if multiple sites are configured. |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| site | No | The ID of the WordPress site to target (from mcp-wordpress.config.json). Required if multiple sites are configured. |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The ID of the category to update. | |
| name | No | The new name for the category. | |
| site | No | The ID of the WordPress site to target (from mcp-wordpress.config.json). Required if multiple sites are configured. |
TDQS
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.
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.
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.
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.
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.
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).
| Name | Required | Description | Default |
|---|---|---|---|
| site | No | The ID of the WordPress site to target (from mcp-wordpress.config.json). Required if multiple sites are configured. | |
| title | No | The title of the site. | |
| timezone | No | A city in the same timezone, e.g., 'America/New_York'. | |
| description | No | The tagline or description of the site. |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| post | No | The ID of a post to attach this media to. | |
| site | No | The ID of the WordPress site to target (from mcp-wordpress.config.json). Required if multiple sites are configured. | |
| title | No | The title for the media item. | |
| caption | No | The caption for the media item. | |
| alt_text | No | Alternative text for the media item (for accessibility). | |
| file_path | Yes | The local, absolute path to the file to upload. | |
| description | No | The description for the media item. |
TDQS
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.
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.
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.
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.
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.
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.
47 tool updates
v3.3.23- Removed
wp_approve_comment - Removed
wp_cache_clear - Removed
wp_cache_info - Removed
wp_cache_stats - Removed
wp_cache_warm - Added
wp_check_version - Removed
wp_create_comment - Removed
wp_create_page - Removed
wp_create_post - Removed
wp_create_tag - Added
wp_delete_application_password - Removed
wp_delete_category - Removed
wp_delete_media - Removed
wp_delete_page - Removed
wp_delete_user - Added
wp_get_application_passwords - Removed
wp_get_auth_status - Removed
wp_get_comment - Removed
wp_get_current_user - Removed
wp_get_post - Added
wp_get_site_settings - Removed
wp_get_tag - Removed
wp_get_user - Removed
wp_list_categories - Removed
wp_list_comments - Removed
wp_list_media - Removed
wp_list_pages - Removed
wp_list_posts - Removed
wp_list_tags - Removed
wp_list_users - Added
wp_search_site - Added
wp_seo_bulk_update_metadata - Added
wp_seo_generate_metadata - Added
wp_seo_generate_schema - Added
wp_seo_keyword_research - Added
wp_seo_site_audit - Added
wp_seo_suggest_internal_links - Added
wp_seo_test_integration - Added
wp_seo_track_serp - Added
wp_seo_validate_schema - Removed
wp_update_comment - Removed
wp_update_media - Removed
wp_update_page - Removed
wp_update_post - Added
wp_update_site_settings - Removed
wp_update_tag - Removed
wp_update_user
34 tool updates
v3.3.23- Added
wp_create_comment - Added
wp_create_page - Added
wp_create_post - Added
wp_create_tag - Added
wp_delete_category - Added
wp_delete_comment - Added
wp_delete_page - Added
wp_delete_post - Added
wp_delete_user - Added
wp_get_auth_status - Added
wp_get_category - Added
wp_get_comment - Added
wp_get_current_user - Added
wp_get_post - Added
wp_get_post_revisions - Removed
wp_get_site_settings - Added
wp_get_tag - Added
wp_get_user - Added
wp_list_categories - Added
wp_list_media - Added
wp_list_posts - Added
wp_list_tags - Added
wp_list_users - Removed
wp_performance_stats - Added
wp_seo_analyze_content - Added
wp_seo_get_live_data - Added
wp_spam_comment - Removed
wp_switch_auth_method - Added
wp_update_category - Added
wp_update_comment - Added
wp_update_page - Added
wp_update_post - Added
wp_update_tag - Added
wp_update_user
57 tool updates
v3.3.22- Removed
wp_check_version - Removed
wp_create_application_password - Removed
wp_create_category - Removed
wp_create_comment - Removed
wp_create_page - Removed
wp_create_post - Removed
wp_create_tag - Removed
wp_delete_application_password - Removed
wp_delete_category - Removed
wp_delete_comment - Removed
wp_delete_page - Removed
wp_delete_post - Removed
wp_delete_tag - Removed
wp_delete_user - Removed
wp_get_application_passwords - Removed
wp_get_category - Removed
wp_get_comment - Removed
wp_get_current_user - Removed
wp_get_page - Removed
wp_get_page_revisions - Removed
wp_get_post - Removed
wp_get_post_revisions - Removed
wp_get_tag - Removed
wp_get_user - Removed
wp_list_categories - Removed
wp_list_media - Removed
wp_list_posts - Removed
wp_list_tags - Removed
wp_list_users - Removed
wp_performance_alerts - Removed
wp_performance_benchmark - Removed
wp_performance_export - Removed
wp_performance_history - Removed
wp_performance_optimize - Removed
wp_search_site - Removed
wp_seo_analyze_content - Removed
wp_seo_bulk_update_metadata - Removed
wp_seo_generate_metadata - Removed
wp_seo_generate_schema - Removed
wp_seo_get_live_data - Removed
wp_seo_keyword_research - Removed
wp_seo_site_audit - Removed
wp_seo_test_integration - Removed
wp_seo_track_serp - Removed
wp_seo_validate_schema - Removed
wp_spam_comment - Added
wp_switch_auth_method - Added
wp_test_auth - Removed
wp_update_category - Removed
wp_update_comment - Added
wp_update_media - Removed
wp_update_page - Removed
wp_update_post - Removed
wp_update_site_settings - Removed
wp_update_tag - Removed
wp_update_user - Added
wp_upload_media
6 tool updates
v3.3.19- Removed
wp_get_auth_status - Removed
wp_seo_suggest_internal_links - Removed
wp_switch_auth_method - Removed
wp_test_auth - Removed
wp_update_media - Removed
wp_upload_media
71 tool updates
v3.3.8- Added
wp_approve_comment - Added
wp_cache_clear - Added
wp_cache_info - Added
wp_cache_stats - Added
wp_cache_warm - Added
wp_check_version - Added
wp_create_application_password - Added
wp_create_category - Added
wp_create_comment - Added
wp_create_page - Added
wp_create_post - Added
wp_create_tag - Added
wp_create_user - Added
wp_delete_application_password - Added
wp_delete_category - Added
wp_delete_comment - Added
wp_delete_media - Added
wp_delete_page - Added
wp_delete_post - Added
wp_delete_tag - Added
wp_delete_user - Added
wp_get_application_passwords - Added
wp_get_auth_status - Added
wp_get_category - Added
wp_get_comment - Added
wp_get_current_user - Added
wp_get_media - Added
wp_get_page - Added
wp_get_page_revisions - Added
wp_get_post - Added
wp_get_post_revisions - Added
wp_get_site_settings - Added
wp_get_tag - Added
wp_get_user - Added
wp_list_categories - Added
wp_list_comments - Added
wp_list_media - Added
wp_list_pages - Added
wp_list_posts - Added
wp_list_tags - Added
wp_list_users - Added
wp_performance_alerts - Added
wp_performance_benchmark - Added
wp_performance_export - Added
wp_performance_history - Added
wp_performance_optimize - Added
wp_performance_stats - Added
wp_search_site - Added
wp_seo_analyze_content - Added
wp_seo_bulk_update_metadata - Added
wp_seo_generate_metadata - Added
wp_seo_generate_schema - Added
wp_seo_get_live_data - Added
wp_seo_keyword_research - Added
wp_seo_site_audit - Added
wp_seo_suggest_internal_links - Added
wp_seo_test_integration - Added
wp_seo_track_serp - Added
wp_seo_validate_schema - Added
wp_spam_comment - Added
wp_switch_auth_method - Added
wp_test_auth - Added
wp_update_category - Added
wp_update_comment - Added
wp_update_media - Added
wp_update_page - Added
wp_update_post - Added
wp_update_site_settings - Added
wp_update_tag - Added
wp_update_user - Added
wp_upload_media
71 tool updates
v3.3.7- Removed
wp_approve_comment - Removed
wp_cache_clear - Removed
wp_cache_info - Removed
wp_cache_stats - Removed
wp_cache_warm - Removed
wp_check_version - Removed
wp_create_application_password - Removed
wp_create_category - Removed
wp_create_comment - Removed
wp_create_page - Removed
wp_create_post - Removed
wp_create_tag - Removed
wp_create_user - Removed
wp_delete_application_password - Removed
wp_delete_category - Removed
wp_delete_comment - Removed
wp_delete_media - Removed
wp_delete_page - Removed
wp_delete_post - Removed
wp_delete_tag - Removed
wp_delete_user - Removed
wp_get_application_passwords - Removed
wp_get_auth_status - Removed
wp_get_category - Removed
wp_get_comment - Removed
wp_get_current_user - Removed
wp_get_media - Removed
wp_get_page - Removed
wp_get_page_revisions - Removed
wp_get_post - Removed
wp_get_post_revisions - Removed
wp_get_site_settings - Removed
wp_get_tag - Removed
wp_get_user - Removed
wp_list_categories - Removed
wp_list_comments - Removed
wp_list_media - Removed
wp_list_pages - Removed
wp_list_posts - Removed
wp_list_tags - Removed
wp_list_users - Removed
wp_performance_alerts - Removed
wp_performance_benchmark - Removed
wp_performance_export - Removed
wp_performance_history - Removed
wp_performance_optimize - Removed
wp_performance_stats - Removed
wp_search_site - Removed
wp_seo_analyze_content - Removed
wp_seo_bulk_update_metadata - Removed
wp_seo_generate_metadata - Removed
wp_seo_generate_schema - Removed
wp_seo_get_live_data - Removed
wp_seo_keyword_research - Removed
wp_seo_site_audit - Removed
wp_seo_suggest_internal_links - Removed
wp_seo_test_integration - Removed
wp_seo_track_serp - Removed
wp_seo_validate_schema - Removed
wp_spam_comment - Removed
wp_switch_auth_method - Removed
wp_test_auth - Removed
wp_update_category - Removed
wp_update_comment - Removed
wp_update_media - Removed
wp_update_page - Removed
wp_update_post - Removed
wp_update_site_settings - Removed
wp_update_tag - Removed
wp_update_user - Removed
wp_upload_media
1 tool update
v3.3.5- Changed
wp_performance_history1 field changed- added
Input schema / properties / metrics / itemsAdded value: +{ + "type": "string" +}
71 tool updates
v3.3.4- Changed
wp_approve_comment1 field changed- removed
Input schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#"
- Changed
wp_cache_clear2 fields changed- removed
Input schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#" - changed
Input schema / properties / site / descriptionPrevious 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."
- Changed
wp_cache_info2 fields changed- removed
Input schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#" - changed
Input schema / properties / site / descriptionPrevious 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."
- Changed
wp_cache_stats2 fields changed- removed
Input schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#" - changed
Input schema / properties / site / descriptionPrevious 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."
- Changed
wp_cache_warm2 fields changed- removed
Input schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#" - changed
Input schema / properties / site / descriptionPrevious 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."
- Added
wp_check_version - Changed
wp_create_application_password1 field changed- removed
Input schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#"
- Changed
wp_create_category1 field changed- removed
Input schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#"
- Changed
wp_create_comment1 field changed- removed
Input schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#"
- Changed
wp_create_page2 fields changed- removed
Input schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#" - added
Input schema / properties / status / enumAdded value: +[ + "publish", + "draft", + "pending", + "private" +]
- Changed
wp_create_post1 field changed- removed
Input schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#"
- Changed
wp_create_tag1 field changed- removed
Input schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#"
- Changed
wp_create_user1 field changed- removed
Input schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#"
- Changed
wp_delete_application_password1 field changed- removed
Input schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#"
- Changed
wp_delete_category1 field changed- removed
Input schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#"
- Changed
wp_delete_comment1 field changed- removed
Input schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#"
- Changed
wp_delete_media1 field changed- removed
Input schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#"
- Changed
wp_delete_page1 field changed- removed
Input schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#"
- Changed
wp_delete_post1 field changed- removed
Input schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#"
- Changed
wp_delete_tag1 field changed- removed
Input schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#"
- Changed
wp_delete_user1 field changed- removed
Input schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#"
- Changed
wp_get_application_passwords1 field changed- removed
Input schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#"
- Changed
wp_get_auth_status1 field changed- removed
Input schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#"
- Changed
wp_get_category1 field changed- removed
Input schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#"
- Changed
wp_get_comment1 field changed- removed
Input schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#"
- Changed
wp_get_current_user1 field changed- removed
Input schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#"
- Changed
wp_get_media1 field changed- removed
Input schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#"
- Changed
wp_get_page1 field changed- removed
Input schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#"
- Changed
wp_get_page_revisions1 field changed- removed
Input schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#"
- Changed
wp_get_post1 field changed- removed
Input schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#"
- Changed
wp_get_post_revisions1 field changed- removed
Input schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#"
- Changed
wp_get_site_settings1 field changed- removed
Input schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#"
- Changed
wp_get_tag1 field changed- removed
Input schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#"
- Changed
wp_get_user1 field changed- removed
Input schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#"
- Changed
wp_list_categories1 field changed- removed
Input schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#"
- Changed
wp_list_comments2 fields changed- removed
Input schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#" - added
Input schema / properties / status / enumAdded value: +[ + "hold", + "approve", + "spam", + "trash" +]
- Changed
wp_list_media2 fields changed- removed
Input schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#" - added
Input schema / properties / media_type / enumAdded value: +[ + "image", + "video", + "audio", + "application" +]
- Changed
wp_list_pages2 fields changed- removed
Input schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#" - added
Input schema / properties / status / enumAdded value: +[ + "publish", + "future", + "draft", + "pending", + "private" +]
- Changed
wp_list_posts1 field changed- removed
Input schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#"
- Changed
wp_list_tags1 field changed- removed
Input schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#"
- Changed
wp_list_users1 field changed- removed
Input schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#"
- Changed
wp_performance_alerts1 field changed- removed
Input schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#"
- Changed
wp_performance_benchmark1 field changed- removed
Input schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#"
- Changed
wp_performance_export1 field changed- removed
Input schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#"
- Changed
wp_performance_history2 fields changed- removed
Input schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#" - removed
Input schema / properties / metrics / itemsRemoved value: -{ - "type": "string" -}
- Changed
wp_performance_optimize1 field changed- removed
Input schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#"
- Changed
wp_performance_stats1 field changed- removed
Input schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#"
- Changed
wp_search_site2 fields changed- removed
Input schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#" - added
Input schema / properties / type / enumAdded value: +[ + "posts", + "pages", + "media" +]
- Changed
wp_seo_analyze_content1 field changed- removed
Input schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#"
- Changed
wp_seo_bulk_update_metadata4 fields changed- removed
Input schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#" - removed
Input schema / properties / updates / additionalPropertiesRemoved value: -{} - added
Input schema / properties / updates / propertiesAdded value: +{ + "canonical": { + "type": "string" + }, + "description": { + "type": "string" + }, + "focusKeyword": { + "type": "string" + }, + "title": { + "type": "string" + } +} - removed
Input schema / properties / updates / propertyNamesRemoved value: -{ - "type": "string" -}
- Changed
wp_seo_generate_metadata1 field changed- removed
Input schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#"
- Changed
wp_seo_generate_schema3 fields changed- removed
Input schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#" - removed
Input schema / properties / customData / additionalPropertiesRemoved value: -{} - removed
Input schema / properties / customData / propertyNamesRemoved value: -{ - "type": "string" -}
- Changed
wp_seo_get_live_data1 field changed- removed
Input schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#"
- Changed
wp_seo_keyword_research1 field changed- removed
Input schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#"
- Changed
wp_seo_site_audit1 field changed- removed
Input schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#"
- Changed
wp_seo_suggest_internal_links1 field changed- removed
Input schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#"
- Changed
wp_seo_test_integration1 field changed- removed
Input schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#"
- Changed
wp_seo_track_serp1 field changed- removed
Input schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#"
- Changed
wp_seo_validate_schema3 fields changed- removed
Input schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#" - removed
Input schema / properties / schema / additionalPropertiesRemoved value: -{} - removed
Input schema / properties / schema / propertyNamesRemoved value: -{ - "type": "string" -}
- Changed
wp_spam_comment1 field changed- removed
Input schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#"
- Changed
wp_switch_auth_method2 fields changed- removed
Input schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#" - added
Input schema / properties / method / enumAdded value: +[ + "app-password", + "jwt", + "basic", + "api-key", + "cookie" +]
- Changed
wp_test_auth1 field changed- removed
Input schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#"
- Changed
wp_update_category1 field changed- removed
Input schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#"
- Changed
wp_update_comment2 fields changed- removed
Input schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#" - added
Input schema / properties / status / enumAdded value: +[ + "hold", + "approve", + "spam", + "trash" +]
- Changed
wp_update_media1 field changed- removed
Input schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#"
- Changed
wp_update_page2 fields changed- removed
Input schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#" - added
Input schema / properties / status / enumAdded value: +[ + "publish", + "draft", + "pending", + "private" +]
- Changed
wp_update_post1 field changed- removed
Input schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#"
- Changed
wp_update_site_settings1 field changed- removed
Input schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#"
- Changed
wp_update_tag1 field changed- removed
Input schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#"
- Changed
wp_update_user1 field changed- removed
Input schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#"
- Changed
wp_upload_media1 field changed- removed
Input schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#"
70 tool updates
v1.0.0- First observed
wp_approve_comment - First observed
wp_cache_clear - First observed
wp_cache_info - First observed
wp_cache_stats - First observed
wp_cache_warm - First observed
wp_create_application_password - First observed
wp_create_category - First observed
wp_create_comment - First observed
wp_create_page - First observed
wp_create_post - First observed
wp_create_tag - First observed
wp_create_user - First observed
wp_delete_application_password - First observed
wp_delete_category - First observed
wp_delete_comment - First observed
wp_delete_media - First observed
wp_delete_page - First observed
wp_delete_post - First observed
wp_delete_tag - First observed
wp_delete_user - First observed
wp_get_application_passwords - First observed
wp_get_auth_status - First observed
wp_get_category - First observed
wp_get_comment - First observed
wp_get_current_user - First observed
wp_get_media - First observed
wp_get_page - First observed
wp_get_page_revisions - First observed
wp_get_post - First observed
wp_get_post_revisions - First observed
wp_get_site_settings - First observed
wp_get_tag - First observed
wp_get_user - First observed
wp_list_categories - First observed
wp_list_comments - First observed
wp_list_media - First observed
wp_list_pages - First observed
wp_list_posts - First observed
wp_list_tags - First observed
wp_list_users - First observed
wp_performance_alerts - First observed
wp_performance_benchmark - First observed
wp_performance_export - First observed
wp_performance_history - First observed
wp_performance_optimize - First observed
wp_performance_stats - First observed
wp_search_site - First observed
wp_seo_analyze_content - First observed
wp_seo_bulk_update_metadata - First observed
wp_seo_generate_metadata - First observed
wp_seo_generate_schema - First observed
wp_seo_get_live_data - First observed
wp_seo_keyword_research - First observed
wp_seo_site_audit - First observed
wp_seo_suggest_internal_links - First observed
wp_seo_test_integration - First observed
wp_seo_track_serp - First observed
wp_seo_validate_schema - First observed
wp_spam_comment - First observed
wp_switch_auth_method - First observed
wp_test_auth - First observed
wp_update_category - First observed
wp_update_comment - First observed
wp_update_media - First observed
wp_update_page - First observed
wp_update_post - First observed
wp_update_site_settings - First observed
wp_update_tag - First observed
wp_update_user - First observed
wp_upload_media
TDQS
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.
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.
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.
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
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
Security-first WordPress MCP server. 129 tools for Claude, ChatGPT, Gemini. Free on wp.org.
One workspace of tools for Claude and ChatGPT: connect 600+ apps, generate media, build tools.
Publish to self-hosted WordPress from AI agents: markdown, images, SEO, and Notion sync.
WordPress MCP server: publish posts, AI images, SEO and full site management, self-hosted
Related MCP Servers
- AlicenseBqualityCmaintenanceConnects Claude to WordPress sites through the REST API, enabling AI-assisted content creation, publishing, media management, user administration, and site maintenance tasks through natural language.472822MIT
- AlicenseBqualityDmaintenanceConnects Claude Desktop to WordPress sites to manage Elementor pages, Gutenberg content, and Rank Math SEO settings. It enables users to create styled pages, manage section layouts, and perform content updates through natural language commands.3925GPL 2.0
- AlicenseNot gradedqualityCmaintenanceEnables Claude Code to directly manage WordPress sites via natural language, including posts, pages, categories, tags, media, and multiple site support.MIT
- AlicenseCqualityDmaintenanceEnables AI-powered WordPress management via MCP, with 158 tools for posts, pages, media, plugins, themes, users, comments, and more, plus token-optimized responses.100782MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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