WordPress Model Context Protocol server providing tools for WordPress site management, content operations, caching, Elementor page builder integration, block/template management, and system diagnostics
WP-MCP provides 28 tools with consistent naming (verb_noun pattern) and descriptions for all tools. However, parameter descriptions are sparse or missing for many tools, and output schemas are not documented. Error handling is basic (success/error wrapper) without recovery guidance. Tool composition is reasonable but some tools combine multiple concerns (e.g., wpmcp_manage_terms handles create/update/delete in one tool). Security considerations are present (capability checks) but not comprehensive.
Create a new WordPress post, page, or custom post type with title, body content, excerpt, status (draft/publish), categories, tags, and custom metadata.
Permanently delete a WordPress post, page, or custom post type by ID (or move to trash if force_delete is false).
Inspect Elementor Site Settings: Global Colors (Primary, Secondary, Text, Accent) and Global Typography.
Retrieve the Elementor layout hierarchy (sections, containers, columns, and widgets) for an Elementor-built page or post.
Update or append Custom CSS specifically within an Elementor page settings.
Update, replace, or insert Elementor layout elements (sections, containers, headings, buttons, text) on a page and regenerate Elementor CSS.
Detect active caching plugins (WP Rocket, LiteSpeed, W3TC, Redis, Memcached) and cache settings.
Output schemas not documented. Tools return success/error wrappers but LLMs cannot see what fields to expect in the 'data' object. This forces agents to guess at response structure and breaks tool chaining.
Multi-action tools (wpmcp_manage_terms, wpmcp_manage_nav_menu) combine create/update/delete in one tool. This violates single-responsibility principle and forces LLMs to reason about which action to take. Split into separate tools: create_term, update_term, delete_term.
Destructive tools (wpmcp_delete_post, wpmcp_toggle_plugin_state, wpmcp_switch_theme) lack confirmation or dry-run support. Agents can irreversibly delete posts or deactivate plugins without safeguards. Implement confirmation_request pattern.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 48 | 2026-07-28+ | v2 |
Retrieve the existing Additional / Custom CSS code configured for the active WordPress theme.
Query and retrieve WordPress media library attachments with filtering by type, date, and search.
List all navigation menus and their menu items and assigned theme locations.
Retrieve full details of a specific WordPress post or page by its ID, including complete content, excerpt, metadata, and taxonomy terms.
Search and retrieve WordPress posts, pages, or custom post types with filtering by status, category, date, and pagination.
Retrieve WordPress site health diagnostic details including PHP version, memory limits, database size, debug mode, and object cache status.
Retrieve WordPress site configuration details including site title, tagline, URL, admin email, active theme, PHP/WP versions, and permalinks.
List all available Gutenberg block patterns registered by core, theme, and plugins.
List Full Site Editing (FSE) block templates and template parts (e.g., header, footer, single, index).
List all installed WordPress plugins with their activation status, version, author, and description.
List all installed themes, active theme indicator, and block theme support.
Create, update, or delete navigation menus and manage menu items (add, remove, reorder).
Create, update, or delete WordPress taxonomy terms (categories, tags, custom taxonomies).
Parse raw Gutenberg block content or a Post ID into a structured Block AST (block name, attributes, and inner blocks).
Purge or clear page cache and minified assets across WP Rocket, LiteSpeed Cache, W3 Total Cache, WP Super Cache, Autoptimize, and WP Object Cache.
Render Gutenberg block markup or HTML using WordPress block filters (do_blocks).
Switch the active WordPress theme by providing the theme stylesheet slug.
Activate or deactivate a WordPress plugin by its plugin file path (e.g. "woocommerce/woocommerce.php").
Update or append Custom CSS styles to the WordPress theme.
Update an existing WordPress post or page with new title, content, excerpt, status, categories, tags, or custom metadata.
Update safe WordPress site settings (site title "blogname", tagline "blogdescription", posts_per_page, timezone_string, date_format, time_format).
Error responses are generic (success/error wrapper with message). No recovery guidance. When a post is not found or a plugin fails to activate, the LLM receives no actionable next step. Add error classification (retryable, user-fixable, fatal) and recovery hints.
Parameter descriptions are minimal or missing for optional fields. E.g., wpmcp_get_posts has 'search', 'category_name', 'post_status' but no guidance on format, constraints, or when to use each. Add format hints and constraints (e.g., 'category_name: slug format, e.g. "news", "tutorials"').