wordpress-mcp
Manages WordPress sites via MCP with token-optimized responses.
Site info, settings, and namespaces.
CRUD for posts, pages, media, categories, tags, and comments (including moderation and search).
User management: list, get, create, update, delete.
Plugin and theme management: list, activate, deactivate, delete, install/update from WordPress.org (requires cvrt-mcp-endpoints plugin).
Extended admin: core updates, cache/rewrite flush, database search-replace/optimize/clean, options CRUD, menus, widgets, health checks, and cron.
Premium modules: ACF fields, WooCommerce (products, orders, customers, coupons, reports), SEO manager, legal documents/consent, custom fields definitions, and order fulfillment.
Multi-site support: one instance manages many sites via WORDPRESS_SITES; every tool takes a site id except list_sites.
Offers integration with WooCommerce for e-commerce functionality, including product and order management (though specific tools are listed as part of Pro modules).
Provides tools for managing WordPress sites, including posts, pages, comments, users, media, categories, tags, settings, plugins, themes, menus, widgets, and site health diagnostics via the WordPress REST API and extended endpoints.
Click on "Deploy 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., "@wordpress-mcp List the 5 most recent posts"
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.
wordpress-mcp
Lightweight WordPress MCP server for site management. 266 tools with token-optimized responses - REST API responses automatically slimmed from kilobytes to essentials.
v3.5: fields_* (12 tools) for cvrt-fields 0.1.2+ - status, settings, field types, location values, schemas and CRUD + JSON sync for field groups, post types, taxonomies and options pages.
v3.4: cvrt-legal 0.9.0 - markup repair switches (repairs on legal_put_accessibility) and report (legal_get_accessibility_report / legal_reset_accessibility_report), document type barrierefreiheit.
v3.3: every cvrt-legal admin route is a tool - generator (legal_*_generator*, library import from a local file), Impressum facts, social-media section, settings, and the self-hosted accessibility tool (legal_get_accessibility / legal_put_accessibility, cvrt-legal 0.8.0+).
v3.2: legal_consent_log_get / legal_consent_log_stats / legal_consent_log_export for the cvrt-legal consent decision log (needs cvrt-legal 0.5.0+); legal_put_consent takes log_enabled.
v3.1: Tools for our own plugins - seo_* (31) for cvrt-seo-manager, legal_* (15) for cvrt-legal incl. legal_link_page (cvrt-legal 0.4.2+), and fulfillment_* (8) for cvrt-order-fulfillment.
v3.0 (BREAKING): Multi-site - one server instance manages any number of sites via a single WORDPRESS_SITES env var. Every tool now requires a site argument; use the new list_sites tool to discover configured ids. The old single-site env vars are removed. wp_activate_plugin / wp_deactivate_plugin / wp_delete_plugin now use cvrt-mcp-endpoints mcp/v1 routes and take the plugin file path (e.g. akismet/akismet.php) instead of a slug.
v2.1: Now includes Pro modules for ACF and WooCommerce via wp-pilot-pro.
v2.0: Extended tools for the cvrt-mcp-endpoints plugin - install plugins/themes from WordPress.org, database management, full widget/menu control, and more.
Why This Server?
WordPress REST API returns extremely verbose JSON (~5-10KB per post). This server strips it down:
Response | Before | After | Reduction |
| ~50KB | ~2KB | 96% |
| ~5KB | ~200 bytes | 96% |
| ~15KB | ~800 bytes | 95% |
Less tokens = faster responses, lower costs, more context for your AI.
Related MCP server: WordPress MCP Server
Installation
npm install -g @cavort-it-systems/wordpress-mcpOr run directly:
npx @cavort-it-systems/wordpress-mcpConfiguration
v3.0 is multi-site (BREAKING CHANGE). A single server instance now manages any number of WordPress sites, defined in one WORDPRESS_SITES env var as a JSON array of {id, url, username, password} objects. The old single-site env vars (WORDPRESS_SITE_URL, WORDPRESS_USERNAME, WORDPRESS_PASSWORD) are no longer read - set WORDPRESS_SITES instead.
Every tool (except list_sites) now requires a site argument naming the target site id. Call list_sites first to discover which ids are configured - it returns {id, url} for each site (passwords are never returned or logged).
Claude Desktop / Manual
Add to your MCP config (~/.claude.json or Claude Desktop settings):
{
"mcpServers": {
"wordpress": {
"command": "npx",
"args": ["@cavort-it-systems/wordpress-mcp"],
"env": {
"WORDPRESS_SITES": "[{\"id\":\"boardcouture\",\"url\":\"https://boardcouture.shop\",\"username\":\"cavortkonzepte\",\"password\":\"xxxx xxxx xxxx\"}]"
}
}
}
}Add more sites by appending objects to the WORDPRESS_SITES array - one server instance handles them all.
Claude Code CLI
claude mcp add wordpress \
-e WORDPRESS_SITES='[{"id":"boardcouture","url":"https://boardcouture.shop","username":"cavortkonzepte","password":"xxxx xxxx xxxx"}]' \
-- npx @cavort-it-systems/wordpress-mcpFrom Source
git clone https://github.com/cvrt-jh/wordpress-mcp.git
cd wordpress-mcp
npm install && npm run buildAuthentication
Uses Application Passwords (WordPress 5.6+):
Go to Users → Profile in WordPress admin
Scroll to Application Passwords
Create new password for "Claude MCP"
Use the generated password (keep the spaces)
Response Slimming
All responses are automatically trimmed. Example:
wp_get_post - from ~5KB to ~200 bytes:
// Before (WordPress REST API raw)
{"id":123,"date":"2026-01-15T10:30:00","date_gmt":"2026-01-15T09:30:00",
"guid":{"rendered":"https://example.com/?p=123"},"modified":"2026-01-20T14:00:00",
"modified_gmt":"2026-01-20T13:00:00","slug":"my-post","status":"publish",
"type":"post","link":"https://example.com/my-post/","title":{"rendered":"My Post"},
"content":{"rendered":"<p>Full content...</p>","protected":false},
"excerpt":{"rendered":"<p>Excerpt...</p>","protected":false},
"author":1,"featured_media":456,"comment_status":"open","ping_status":"open",
"sticky":false,"template":"","format":"standard","meta":{"footnotes":""},
"categories":[1,5],"tags":[10,20],"class_list":["post-123","type-post",...],
"_links":{"self":[...],"collection":[...],"about":[...],...}}
// After (slimmed)
{"id":123,"title":"My Post","slug":"my-post","status":"publish",
"date":"2026-01-15T10:30:00","modified":"2026-01-20T14:00:00",
"link":"https://example.com/my-post/","excerpt":"Excerpt...",
"author":1,"categories":[1,5],"tags":[10,20],"featured_media":456}What gets stripped:
Field | Where | Why |
| everywhere | Internal WordPress data |
| lists | Only included when explicitly requested |
| posts/pages | Theme/plugin metadata |
| posts | Rarely needed |
| posts | Theme-specific |
HTML tags | excerpts | Clean text output |
Pretty-print JSON | all | Compact single-line output |
Tools (314)
Every tool below requires a site argument (the id from your WORDPRESS_SITES config), except list_sites itself.
Sites (1)
list_sites- List configured site ids and URLs (nositeargument; passwords never returned)
Standard WordPress REST API (42 tools)
These work with any WordPress site:
Site (4)
wp_site_info- Get site name, description, URLwp_get_settings- Get site settingswp_update_settings- Update site settingswp_get_namespaces- List REST API namespaces
Posts (6)
wp_list_posts- List posts with filterswp_get_post- Get single postwp_create_post- Create postwp_update_post- Update postwp_delete_post- Delete postwp_search_posts- Search posts
Pages (5)
wp_list_pages- List pageswp_get_page- Get single pagewp_create_page- Create pagewp_update_page- Update pagewp_delete_page- Delete page
Users (6)
wp_list_users- List userswp_me- Get current userwp_get_user- Get user by IDwp_create_user- Create userwp_update_user- Update userwp_delete_user- Delete user
Plugins (5)
wp_list_plugins- List pluginswp_get_plugin- Get plugin detailswp_activate_plugin- Activate plugin (mcp/v1;pluginis the file path, e.g.akismet/akismet.php)wp_deactivate_plugin- Deactivate plugin (mcp/v1;pluginis the file path)wp_delete_plugin- Delete plugin (mcp/v1;pluginis the file path)
Themes (4)
wp_list_themes- List themeswp_get_active_theme- Get active themewp_get_theme- Get theme detailswp_activate_theme- Switch themes
Media (4)
wp_list_media- List media librarywp_get_media- Get media itemwp_update_media- Update media metadatawp_delete_media- Delete media
Categories & Tags (8)
wp_list_categories- List categorieswp_create_category- Create categorywp_update_category- Update categorywp_delete_category- Delete categorywp_list_tags- List tagswp_create_tag- Create tagwp_update_tag- Update tagwp_delete_tag- Delete tag
Comments (6)
wp_list_comments- List commentswp_get_comment- Get commentwp_create_comment- Create commentwp_update_comment- Update/moderate commentwp_delete_comment- Delete commentwp_moderate_comments- Batch moderate
Extended Tools (43 tools) - Requires cvrt-mcp-endpoints plugin
These require the cvrt-mcp-endpoints WordPress plugin to be installed and activated.
Plugin Management (4)
mcp_search_plugins- Search WordPress.org pluginsmcp_install_plugin- Install plugin from WordPress.orgmcp_update_plugin- Update single plugin (refreshchecks first, incl. GitHub/PUC plugins)mcp_check_plugin_updates- Run Plugin Update Checker and wp.org checks now, list updatesmcp_update_all_plugins- Update all plugins
Theme Management (6)
mcp_search_themes- Search WordPress.org themesmcp_install_theme- Install theme from WordPress.orgmcp_install_theme_zip- Install a theme from a public ZIPurlor upload a localfile_path(.zip, max 64 MB; works for private or locally built themes, needs cvrt-mcp-endpoints 1.20.0+; replacing the active theme needsreplace_active: true)mcp_update_theme- Update single thememcp_update_all_themes- Update all themesmcp_delete_theme- Delete inactive theme
Core Management (6)
mcp_get_version- Get WordPress version infomcp_get_system_info- Get comprehensive system infomcp_check_updates- Check for all updatesmcp_update_core- Update WordPress coremcp_flush_rewrite- Flush rewrite rulesmcp_flush_cache- Flush object cache and transients (not a page cache in front of WordPress)
Database Management (5)
mcp_get_tables- List tables with sizesmcp_search_replace- Search/replace in databasemcp_optimize_tables- Optimize all tablesmcp_clean_revisions- Delete old revisionsmcp_clean_comments- Delete spam/trash comments
Options Management (5)
mcp_list_options- List options with prefix filtermcp_get_option- Get single optionmcp_set_option- Create/update optionmcp_delete_option- Delete optionmcp_bulk_get_options- Get multiple options
Menu Management (8)
mcp_list_menus- List navigation menusmcp_get_menu_locations- Get theme locationsmcp_get_menu- Get menu with itemsmcp_create_menu- Create menumcp_delete_menu- Delete menumcp_add_menu_item- Add menu itemmcp_delete_menu_item- Delete menu itemmcp_assign_menu_location- Assign menu to location
Widget Management (8)
mcp_list_sidebars- List all sidebarsmcp_get_sidebar_widgets- Get sidebar widgetsmcp_list_widget_types- List widget typesmcp_get_widget- Get widget detailsmcp_add_widget- Add widget to sidebarmcp_update_widget- Update widget settingsmcp_delete_widget- Remove widgetmcp_move_widget- Move widget to sidebar
Health & Diagnostics (6)
mcp_get_health- Site health scoremcp_get_debug_info- Debug informationmcp_get_php_info- PHP configurationmcp_get_plugins_health- Plugin health/updatesmcp_get_cron_status- Cron jobs statusmcp_run_cron- Run a cron event now (rescheduled/unscheduled likewp cron event run)mcp_get_action_scheduler- Action Scheduler counts, past-due and recent failuresmcp_run_action_scheduler- Run due Action Scheduler actions now (1-50, optional hook/group)mcp_scan_uploads- Executable files under uploads (sha256, benign flag)mcp_get_audit_log- Audit trail of state-changing MCP calls
ACF Module (31 tools) - Requires wp-pilot-pro + ACF
Requires wp-pilot-pro and Advanced Custom Fields.
Field Groups (4)
acf_list_field_groups- List all field groupsacf_get_field_group- Get field group with schemaacf_export_field_groups- Export as JSONacf_import_field_groups- Import from JSON
Post Fields (4)
acf_get_post_fields- Get all fields for postacf_update_post_fields- Update multiple fieldsacf_get_post_field- Get single field valueacf_update_post_field- Update single field
Term & User Fields (4)
acf_get_term_fields- Get term ACF fieldsacf_update_term_fields- Update term fieldsacf_get_user_fields- Get user ACF fieldsacf_update_user_fields- Update user fields
Options Pages (3)
acf_list_options_pages- List options pagesacf_get_options_fields- Get options page fieldsacf_update_options_fields- Update options fields
Repeater Fields (5)
acf_get_repeater- Get repeater rowsacf_add_repeater_row- Add rowacf_update_repeater_row- Update rowacf_delete_repeater_row- Delete rowacf_reorder_repeater- Reorder rows
Flexible Content (5)
acf_get_flexible- Get layoutsacf_add_flexible_layout- Add layoutacf_update_flexible_layout- Update layoutacf_delete_flexible_layout- Delete layoutacf_reorder_flexible- Reorder layouts
Relationship Fields (4)
acf_get_relationship- Get related postsacf_set_relationship- Set related postsacf_add_to_relationship- Add postsacf_remove_from_relationship- Remove posts
Utility (2)
acf_get_clone_references- Get clone field refsacf_get_field_object- Get field schema
WooCommerce Module (42 tools) - Requires wp-pilot-pro + WooCommerce
Requires wp-pilot-pro and WooCommerce.
Products (5)
woo_list_products- List products with filterswoo_get_product- Get product detailswoo_create_product- Create productwoo_update_product- Update productwoo_delete_product- Delete product
Variations (4)
woo_list_variations- List product variationswoo_create_variation- Create variationwoo_update_variation- Update variationwoo_delete_variation- Delete variation
Attributes (4)
woo_list_attributes- List attributeswoo_list_attribute_terms- List attribute termswoo_create_attribute- Create attributewoo_create_attribute_term- Create term
Categories & Tags (5)
woo_list_categories- List product categorieswoo_create_category- Create categorywoo_update_category- Update categorywoo_delete_category- Delete categorywoo_list_tags- List product tags
Orders (5)
woo_list_orders- List orderswoo_get_order- Get order detailswoo_update_order_status- Update statuswoo_add_order_note- Add notewoo_get_order_notes- Get notes
Customers (5)
woo_list_customers- List customerswoo_get_customer- Get customerwoo_create_customer- Create customerwoo_update_customer- Update customerwoo_get_customer_orders- Get order history
Coupons (5)
woo_list_coupons- List couponswoo_get_coupon- Get couponwoo_create_coupon- Create couponwoo_update_coupon- Update couponwoo_delete_coupon- Delete coupon
Reports (3)
woo_sales_report- Sales reportwoo_top_sellers- Top selling productswoo_stock_report- Stock status report
Product Meta & Inventory (3)
woo_get_product_meta- Get product metawoo_update_product_meta- Update product metawoo_bulk_update_stock- Bulk stock update
SEO Module (31 tools) - Requires cvrt-seo-manager
seo_status- Get cvrt-seo-manager status (version, configured, dependencies)seo_get_settings- Get cvrt-seo-manager settingsseo_update_settings- Update cvrt-seo-manager settingsseo_get_post_seo- Get the SEO meta for a postseo_update_post_seo- Update the SEO meta for a postseo_delete_post_seo- Delete (reset) the SEO meta for a postseo_get_post_analysis- Get the SEO analysis (score, issues) for a postseo_list_posts_seo- List SEO meta across postsseo_bulk_update_posts_seo- Bulk update SEO meta across multiple postsseo_get_term_seo- Get the SEO meta for a taxonomy termseo_update_term_seo- Update the SEO meta for a taxonomy termseo_delete_term_seo- Delete (reset) the SEO meta for a taxonomy termseo_keyword_check- Run the keyword analysis checkseo_list_redirects- List all redirectsseo_create_redirect- Create a redirectseo_get_redirect- Get a redirect by idseo_update_redirect- Update a redirect by idseo_delete_redirect- Delete a redirect by idseo_list_monitor_log- List the 404/redirect monitor log entriesseo_clear_monitor_log- Clear the 404/redirect monitor logseo_create_redirect_from_log- Create a redirect directly from a monitor log entryseo_sitemap_status- Get sitemap statusseo_sitemap_ping- Ping search engines with the sitemapseo_indexnow_ping- Submit URLs to IndexNowseo_export_settings- Export cvrt-seo-manager settingsseo_import_settings- Import cvrt-seo-manager settingsseo_export_csv- Export post SEO meta as CSVseo_import_csv- Import post SEO meta from CSVseo_export_redirects- Export redirectsseo_import_redirects- Import redirectsseo_import_migrate- Run a migration import (e.g
Legal Module (34 tools) - Requires cvrt-legal (legal_get_page / legal_link_page need 0.4.2+, legal_consent_log_* 0.5.0+, social 0.6.0+, generator and facts 0.7.0+, accessibility 0.8.0+)
legal_status- Legal document status for a site: which documents are required, filled and published, plus a single compliant flaglegal_list_documents- List all legal document types with their required/filled state and linked pagelegal_get_document- Get one legal document including its ordered sectionslegal_put_document- Replace a legal documentlegal_render_document- Render a document to normalized HTML without savinglegal_get_page- Get which page a legal document is linked to: linked, page_id, the page's post status, and ok (linked AND published)legal_link_page- Link a legal document to its WordPress page (post type page only; posts and products are refused)legal_add_section- Append a section to a legal documentlegal_update_section- Update a sectionlegal_delete_section- Delete a section from a legal documentlegal_get_consent- Get the cookie consent banner configurationlegal_put_consent- Configure the consent banner and every tracking credential the site useslegal_get_theme- Get the banner theme: preset name, CSS custom property overrides and the rendered CSSlegal_put_theme- Set the banner theme preset and/or individual CSS custom propertieslegal_get_settings- Get cvrt-legal settingslegal_consent_log_get- Get every logged consent decision for one consent_idlegal_consent_log_stats- Aggregate consent decision counts by action and banner_version over a day rangelegal_consent_log_export- Export the raw consent decision log as CSV for a day rangelegal_update_settings- Set the GitHub update token (write-only) and the required-document overridelegal_get_facts/legal_put_facts- Impressum fields the generator fills into Impressum and Datenschutz (merge)legal_get_generator/legal_put_generator- Selection of a generated document (modules, options, kept sections); a PUT regenerates itlegal_get_generator_library/legal_put_generator_library- The imported text library; import inline or vialibrary_file(local.json)legal_restore_generator- Restore the document as it was before the generator first wrote itlegal_get_social/legal_put_social- Social-media section: networks and profile URLslegal_get_social_modules/legal_put_social_modules- The social-media text modules (inline ormodules_file)legal_get_accessibility/legal_put_accessibility- The self-hosted accessibility tool (replaces the Ally widget, no third-party request);repairsswitches the markup repair rules (0.9.0+)legal_get_accessibility_report/legal_reset_accessibility_report- What the markup repair fixed and what is still open, per page (0.9.0+)
Fields Module (12 tools) - Requires cvrt-fields 0.1.2+
fields_status- Plugin version, definition counts, ACF / Elementor presence, JSON sync statefields_get_settings/fields_update_settings- Update token (masked as{ set }, write-only, stored encrypted) and JSON sync pathfields_list_types- Available field typesfields_get_location_values- Values for location rulesfields_get_schema- Editor form schema of a definition kindfields_list_definitions/fields_get_definition/fields_create_definition/fields_update_definition/fields_delete_definition- CRUD forgroups,post-types,taxonomies,options-pagesfields_sync_definition- Copy a JSON-sourced definition into the database
Order Fulfillment Module (8 tools) - Requires cvrt-order-fulfillment 0.2.0+
fulfillment_get_settings- Get the cvrt-order-fulfillment plugin settingsfulfillment_update_settings- Update cvrt-order-fulfillment settingsfulfillment_status- Pipeline health: which credentials are set, ClickUp list/assignee, when the print agent last polled, and print-queue countsfulfillment_queue- Print-queue state: status counts (pending/printing/printed/failed) and the recent jobs with their errorsfulfillment_reprint_job- Reset a print job to pending so the agent prints it againfulfillment_fulfill_order- Manually (force) run fulfillment for an order: renders the packing slip, creates the ClickUp task, notifies Slackfulfillment_update_check- Force an immediate plugin-update check (bypassing PUC's throttle) and report whether a newer version is available
Architecture
src/
index.ts # Entry: McpServer + StdioServerTransport
client.ts # WordPress REST API client (Basic Auth)
types.ts # Shared Zod schemas + jsonResult helper
slim.ts # Response slimming transformers
tools/
# Standard WP REST API (wp/v2)
site.ts # 4 tools
posts.ts # 6 tools
pages.ts # 5 tools
users.ts # 6 tools
plugins.ts # 5 tools
themes.ts # 4 tools
media.ts # 4 tools
taxonomies.ts # 8 tools (categories + tags)
comments.ts # 6 tools
# Extended (mcp/v1) - requires cvrt-mcp-endpoints plugin
mcp-plugins.ts # 4 tools - install from WordPress.org
mcp-themes.ts # 5 tools - install from WordPress.org
mcp-core.ts # 6 tools - updates, cache flush
mcp-database.ts # 5 tools - search-replace, optimize
mcp-options.ts # 5 tools - full options CRUD
mcp-menus.ts # 8 tools - navigation menus
mcp-widgets.ts # 8 tools - sidebar widgets
mcp-health.ts # 6 tools - diagnostics, cron
# Pro modules (mcp/v1) - requires wp-pilot-pro
mcp-acf.ts # 31 tools - ACF integration
mcp-woo.ts # 42 tools - WooCommerceFort Tools (Bearfort)
For sites hosted on Bearfort, fort_* tools reach the worker through the Bearfort API:
backups (fort_backup_create, fort_backup_list, fort_job_get), page-cache purge
(fort_cache_purge) and server logs (fort_logs_read: access, error, php, wp-cron, with
lines, grep, since). Set BEARFORT_API_KEY (admin key) and optionally
BEARFORT_API_URL; without the key these tools refuse to run. The fort is resolved from the
site URL. Restore is not exposed.
Stripe and Payments
stripe_* tools (cvrt-mcp-endpoints 1.17.0+) read the Stripe account behind the WooCommerce
Stripe Gateway through the site itself: the key never leaves WordPress and results are
whitelisted. Writes (stripe_recreate_webhook, stripe_set_payment_method) need
confirm: true and are audit-logged on the site. woo_gateway_status shows which gateways a
customer from a given country gets. Express checkout and where Stripe.js loads belong to
cvrt-woo-helper (woo_helper_*).
Secret Masking
Every tool result passes through src/mask.ts before it reaches the model. Values under
secret-looking keys (token, secret, password, api_key, whsec, signing_key, ...)
and credential-shaped values (sk_live_, whsec_, GitHub/Slack/AWS tokens, PEM blocks)
become [masked], recursively and inside JSON strings. Flag values (yes, 0, empty)
stay visible so "not set" is still readable. Writing a secret works; it is never read back.
The same rules run server-side in cvrt-mcp-endpoints 1.15.0+.
Multi-Site Support
One server instance manages all your sites via the WORDPRESS_SITES env var (see Configuration). Call list_sites to see configured ids, then pass site: "<id>" to any other tool:
{
"mcpServers": {
"wordpress": {
"command": "npx",
"args": ["@cavort-it-systems/wordpress-mcp"],
"env": {
"WORDPRESS_SITES": "[{\"id\":\"site1\",\"url\":\"https://site1.com\",\"username\":\"admin\",\"password\":\"xxxx xxxx xxxx xxxx\"},{\"id\":\"site2\",\"url\":\"https://site2.com\",\"username\":\"admin\",\"password\":\"yyyy yyyy yyyy yyyy\"}]"
}
}
}
}License
MIT
Available Tools
277 toolsacf_create_field_groupC
Create an ACF field group with fields
Inputs: site (required), title (required), fields (required), key, +4 more.
acf_delete_field_groupC
Delete an ACF field group
Inputs: key (required), site (required).
acf_export_field_groupB
Export a field group in ACF JSON format (for import/backup)
Inputs: key (required), site (required).
acf_get_field_groupC
Get ACF field group with full field configuration
Inputs: key (required), site (required).
acf_get_post_fieldC
Get a single ACF field value for a post
Inputs: site (required), field (required), post_id (required), format.
acf_get_post_fieldsC
Get all ACF field values for a post
Inputs: site (required), post_id (required), format.
acf_import_field_groupsC
Import ACF field groups from JSON export format
Inputs: site (required), groups (required).
acf_list_field_groupsB
List all ACF field groups with their fields
Inputs: site (required).
acf_update_field_groupC
Update an existing ACF field group
Inputs: key (required), site (required), style, title, +5 more.
acf_update_post_fieldC
Update a single ACF field value for a post
Inputs: site (required), field (required), post_id (required), value.
acf_update_post_fieldsC
Update multiple ACF field values for a post
Inputs: site (required), fields (required), post_id (required).
fields_create_definitionB
Create a definition (field group, post type, taxonomy or options page). Fails with 409 when the key exists.
Inputs: kind (required), site (required), definition (required).
fields_delete_definitionB
Delete a database definition. Stored field values stay in post/term/user meta and options.
Inputs: key (required), kind (required), site (required).
fields_get_definitionC
Get one definition by kind and key.
Inputs: key (required), kind (required), site (required).
fields_get_location_valuesB
Values usable in field-group location rules: post types, page templates, taxonomies, options pages, user forms.
Inputs: site (required).
fields_get_schemaA
Editor form schema of one definition kind (fields and their options). Read it before fields_create_definition / fields_update_definition.
Inputs: kind (required), site (required).
fields_get_settingsA
Get cvrt-fields settings. The GitHub update token is returned as { set: boolean }, never raw; also the JSON sync path and whether it is writable.
Inputs: site (required).
fields_list_definitionsB
List all definitions of one kind from every source (database, JSON, PHP) with their _source.
Inputs: kind (required), site (required).
fields_list_typesB
List the available field types (text, date_picker, image, relationship, ...) with their settings.
Inputs: site (required).
fields_statusB
cvrt-fields status: plugin version, definition counts per kind, whether ACF / Elementor / Elementor Pro are active, JSON sync state and JSON read error.
Inputs: site (required).
fields_sync_definitionB
Copy a JSON-sourced definition into the database. Only JSON definitions can be synced.
Inputs: key (required), kind (required), site (required).
fields_update_definitionB
Replace a definition. 409 cvrt_fields_json_shadowed means a read-only JSON file still overrides the database copy.
Inputs: key (required), kind (required), site (required), definition (required).
fields_update_settingsA
Update cvrt-fields settings. github_token is write-only and stored encrypted; a blank or omitted token keeps the stored one. clear_github_token: true deletes it.
Inputs: site (required), github_token, clear_github_token.
fulfillment_fulfill_orderA
Manually (force) run fulfillment for an order: renders the packing slip, creates the ClickUp task, notifies Slack. Bypasses the idempotency guard, so it can create a duplicate ClickUp task. Audit-logged.
Inputs: site (required), order_id (required).
fulfillment_get_settingsA
Get the cvrt-order-fulfillment plugin settings. Secret values are returned as { set: boolean }, never raw.
Inputs: site (required).
fulfillment_queueB
Print-queue state: status counts (pending/printing/printed/failed) and the recent jobs with their errors.
Inputs: site (required).
fulfillment_reprint_jobA
Reset a print job to pending so the agent prints it again.
Inputs: site (required), job_id (required).
fulfillment_statusC
Pipeline health: which credentials are set, ClickUp list/assignee, when the print agent last polled, and print-queue counts.
Inputs: site (required).
fulfillment_update_applyA
Install a pending cvrt-order-fulfillment update via WordPress's own upgrader (same code path as the wp-admin one-click update). Reports { applied, from, to }. Audit-logged.
Inputs: site (required).
fulfillment_update_checkA
Force an immediate plugin-update check (bypassing PUC's throttle) and report whether a newer version is available. Throttled to about once per 30s.
Inputs: site (required).
fulfillment_update_settingsA
Update cvrt-order-fulfillment settings. Only provide the keys you want to change. A blank/omitted secret keeps the stored value (never wipes it). Keys: clickup_token, clickup_list_id, clickup_assignee_id, agent_token, webhook_secret, github_updater_token, slack_webhook_url.
Inputs: site (required), agent_token, clickup_token, webhook_secret, +4 more.
legal_add_sectionC
Append a section to a legal document. Returns the resolved slug, which is what shortcodes address.
Inputs: doc (required), body (required), site (required), heading (required), +2 more.
legal_consent_log_exportA
Export the raw consent decision log as CSV for a day range (same optional from/to rules as legal_consent_log_stats). Returns { filename, csv }; the csv is the full file text, ready to write out as-is. Requires manage_options. Logging itself stays off until legal_put_consent's log_enabled is set, which should only happen after the Datenschutz document has an 'einwilligungsnachweis' section describing it. Requires cvrt-legal 0.5.0+.
Inputs: site (required), to, from.
legal_consent_log_getA
Get every logged consent decision for one consent_id (the banner's own record of what it asked and what the visitor chose). Requires manage_options. Logging itself stays off until legal_put_consent's log_enabled is set, which should only happen after the Datenschutz document has an 'einwilligungsnachweis' section describing it. Requires cvrt-legal 0.5.0+.
Inputs: site (required), consent_id (required).
legal_consent_log_statsA
Aggregate consent decision counts by action and banner_version over a day range (both from and to are optional, default the last 30 days; the range cannot exceed 366 days). Requires manage_options. Logging itself stays off until legal_put_consent's log_enabled is set, which should only happen after the Datenschutz document has an 'einwilligungsnachweis' section describing it. Requires cvrt-legal 0.5.0+.
Inputs: site (required), to, from.
legal_delete_sectionC
Delete a section from a legal document.
Inputs: doc (required), site (required), slug (required).
legal_get_accessibilityA
Get the self-hosted accessibility tool's settings (enabled, position, colour, tools, statement link) and the tools on offer. Requires cvrt-legal 0.8.0+.
Inputs: site (required).
legal_get_accessibility_reportA
Get the markup repair report: totals per rule (fixed / open) and per page what was repaired and what is still open, i.e. what the site's own markup must fix. Each page is recorded at most once a day, newest 100 pages. Requires cvrt-legal 0.9.0+.
Inputs: site (required).
legal_get_consentC
Get the cookie consent banner configuration.
Inputs: site (required).
legal_get_documentA
Get one legal document including its ordered sections.
Inputs: doc (required), site (required).
legal_get_factsA
Get the Impressum fields (company, address, register, VAT id, ...) the generator fills into both Impressum and Datenschutz, plus which required ones are missing. Requires cvrt-legal 0.7.0+.
Inputs: site (required).
legal_get_generatorA
Get a generated document's state: active, library loaded, the selection (ticked modules, options, kept custom sections) and the sections it writes. Requires cvrt-legal 0.7.0+.
Inputs: doc (required), site (required).
legal_get_generator_libraryB
Get the imported text library of a generated document (the texts come from websites/bin/legal-v4/privacy, the plugin ships none). Requires cvrt-legal 0.7.0+.
Inputs: doc (required), site (required).
legal_get_pageB
Get which page a legal document is linked to: linked, page_id, the page's post status, and ok (linked AND published). A required document only counts as reachable, and legal_status only turns compliant, when ok is true. Requires cvrt-legal 0.4.2+.
Inputs: doc (required), site (required).
legal_get_settingsB
Get cvrt-legal settings. Secret values are returned as { set: boolean }, never raw.
Inputs: site (required).
legal_get_socialA
Get the social-media section configurator: networks on offer, which are switched on with their profile URLs, and the rendered preview. Requires cvrt-legal 0.6.0+.
Inputs: site (required).
legal_get_social_modulesC
Get the imported social-media text modules. Requires cvrt-legal 0.6.0+.
Inputs: site (required).
legal_get_themeB
Get the banner theme: preset name, CSS custom property overrides and the rendered CSS.
Inputs: site (required).
legal_link_pageA
Link a legal document to its WordPress page (post type page only; posts and products are refused). The rendered document is written into the page's post_content at once (mirrored: true, false while the document is empty) and on every later save, so a deactivated plugin still leaves the text on the page. Linking impressum/datenschutz also fills the consent banner's imprint/privacy link if that is still unset (banner_linked). page_id 0 unlinks. Requires cvrt-legal 0.4.2+.
Inputs: doc (required), site (required), page_id (required).
legal_list_documentsB
List all legal document types with their required/filled state and linked page.
Inputs: site (required).
legal_put_accessibilityA
Configure the self-hosted accessibility tool (replaces the Ally widget; no third-party request, needs no consent). Merges: omitted keys keep their value. Switching enabled rewrites a generated Datenschutz (section Barrierefreiheits-Werkzeug). Returns the stored settings. Requires cvrt-legal 0.8.0+.
Inputs: site (required), color, tools, enabled, +5 more.
legal_put_consentA
Configure the consent banner and every tracking credential the site uses. Nothing is handed to the browser until the visitor accepts - this plugin owns GTM, GA4 and Ahrefs Web Analytics precisely because it owns the gate. Search-engine verification meta tags are NOT here; those belong to cvrt-seo-manager because they fire no request.
Inputs: site (required), enabled (required), ga4_id, gtm_id, +5 more.
legal_put_documentB
Replace a legal document. Sections are ordered; omit slug to derive it from the heading. The plugin ships no legal prose - it stores and renders what it is given.
Inputs: doc (required), site (required), title (required), sections (required).
legal_put_factsA
Set Impressum fields. Merges: only the keys given change; an empty string clears a field. Regenerates every generated document. Requires cvrt-legal 0.7.0+.
Inputs: site (required), facts (required).
legal_put_generatorA
Tick or untick modules and options, then regenerate the document (the Datenschutz tab over the API). Merges into the stored selection; unknown module or option keys are refused. Sections tied to a switch (Einwilligungsnachweis, Barrierefreiheits-Werkzeug) follow that switch and are not ticked here. Requires cvrt-legal 0.7.0+.
Inputs: doc (required), site (required), keep, enabled, +1 more.
legal_put_generator_libraryA
Import the text library of a generated document and regenerate it if active. Give the library inline or as library_file, a local .json path (e.g. websites/bin/legal-v4/privacy/library-datenschutz.json). A library using the 'accessibility' flag needs cvrt-legal 0.8.0+ on the site first.
Inputs: doc (required), site (required), library, library_file.
legal_put_socialA
Switch social networks and set their profile URLs (https only), then rewrite the Datenschutz social-media section; with nothing on, the section is removed. Requires cvrt-legal 0.6.0+.
Inputs: site (required), networks (required).
legal_put_social_modulesA
Import the social-media text modules, inline or as modules_file (websites/bin/legal-v4/social-media/library.json). Careful: importing while nothing is ticked removes an existing section; call legal_put_social with the current networks right after. Requires cvrt-legal 0.6.0+.
Inputs: site (required), modules, modules_file.
legal_put_themeB
Set the banner theme preset and/or individual CSS custom properties. Only --cvrt-consent-* properties are accepted.
Inputs: site (required), vars, preset.
legal_render_documentA
Render a document to normalized HTML without saving. Useful to preview the heading hierarchy and slug ids before writing.
Inputs: doc (required), site (required).
legal_reset_accessibility_reportA
Clear the markup repair report, e.g. after fixing the source, so new page views record afresh. Requires cvrt-legal 0.9.0+.
Inputs: site (required).
legal_restore_generatorA
Restore a generated document to how it was before the generator first wrote it, and stop generating it. Requires cvrt-legal 0.7.0+.
Inputs: doc (required), site (required).
legal_statusA
Legal document status for a site: which documents are required, filled and published, plus a single compliant flag. Impressum and Datenschutz are always required; AGB and Widerruf become required when WooCommerce is active.
Inputs: site (required).
legal_update_sectionB
Update a section. The slug is never rewritten, so shortcodes already placed on a page keep working when a heading is renamed.
Inputs: doc (required), site (required), slug (required), body, +2 more.
legal_update_settingsB
Update cvrt-legal settings. github_token (PUC auto-updates on a private repo) is write-only: a blank value keeps the stored one. required_override forces a document required or not ({agb: false}).
Inputs: site (required), github_token, required_override.
list_sitesA
List the WordPress sites this server can manage. Every other tool requires a site argument set to one of these ids.
Inputs: no named parameters.
mcp_add_widgetC
Add a widget to a sidebar
Inputs: site (required), sidebar_id (required), widget_type (required), position, +1 more.
mcp_assign_termsC
Assign taxonomy terms to a post
Inputs: site (required), terms (required), post_id (required), taxonomy (required), +1 more.
mcp_bulk_delete_mediaC
Delete multiple media items at once
Inputs: ids (required), site (required), force.
mcp_bulk_get_optionsB
Get multiple options at once
Inputs: keys (required), site (required).
mcp_change_user_roleC
Change a user's role
Inputs: id (required), role (required), site (required).
mcp_check_updatesC
Check for WordPress core, plugin, and theme updates
Inputs: site (required).
mcp_clean_commentsC
Delete spam and trashed comments
Inputs: site (required).
mcp_clean_revisionsC
Delete old post revisions
Inputs: site (required), keep.
mcp_create_cpt_postC
Create a post of any custom post type
Inputs: site (required), type (required), title (required), meta, +2 more.
mcp_create_termC
Create a term in any taxonomy
Inputs: name (required), site (required), taxonomy (required), slug, +2 more.
mcp_create_userC
Create a new WordPress user
Inputs: site (required), email (required), username (required), role, +4 more.
mcp_delete_cpt_postC
Delete a custom post type post
Inputs: id (required), site (required), type (required), force.
mcp_delete_mediaC
Delete a media item
Inputs: id (required), site (required), force.
mcp_delete_optionC
Delete an option
Inputs: key (required), site (required).
mcp_delete_termC
Delete a term from any taxonomy
Inputs: id (required), site (required), taxonomy (required).
mcp_delete_themeB
Delete an inactive theme
Inputs: site (required), stylesheet (required).
mcp_delete_userC
Delete a user and reassign their content
Inputs: id (required), site (required), reassign.
mcp_delete_widgetC
Remove a widget from its sidebar
Inputs: site (required), widget_id (required).
mcp_flush_cacheC
Clear all caches and transients
Inputs: site (required).
mcp_flush_rewriteC
Flush permalink rewrite rules
Inputs: site (required).
mcp_get_cron_statusC
Get WordPress cron jobs status
Inputs: site (required).
mcp_get_debug_infoC
Get detailed debug information
Inputs: site (required).
mcp_get_elementor_buildC
Get full Elementor page build (containers, widgets, settings tree)
Inputs: id (required), site (required), fields.
mcp_get_elementor_conditionsC
Get theme builder display conditions for an Elementor template
Inputs: id (required), site (required).
mcp_get_elementor_elementB
Get a single Elementor element with full settings
Inputs: id (required), site (required), element_id (required).
mcp_get_elementor_flatB
Get flat list of all Elementor elements on a page (easier to search/filter than tree)
Inputs: id (required), site (required), fields, el_type, +1 more.
mcp_get_elementor_kitB
Get Elementor global kit settings (colors, fonts, typography, spacing, button defaults)
Inputs: site (required).
mcp_get_elementor_page_settingsC
Get Elementor page-level settings (hide title, custom CSS, etc.)
Inputs: id (required), site (required).
mcp_get_healthC
Get site health status and score
Inputs: site (required).
mcp_get_mediaB
Get detailed media item info (sizes, metadata)
Inputs: id (required), site (required).
mcp_get_media_statsB
Get media library statistics (counts by type, total size)
Inputs: site (required).
mcp_get_optionC
Get a single option value
Inputs: key (required), site (required).
mcp_get_php_infoC
Get PHP configuration details
Inputs: site (required).
mcp_get_plugins_healthB
Get plugin health status and available updates
Inputs: site (required).
mcp_get_post_typeB
Get detailed schema for a post type
Inputs: site (required), type (required).
mcp_get_sidebar_widgetsB
Get all widgets in a sidebar
Inputs: site (required), sidebar_id (required).
mcp_get_system_infoC
Get comprehensive system information
Inputs: site (required).
mcp_get_tablesB
List all database tables with sizes
Inputs: site (required).
mcp_get_taxonomyC
Get taxonomy details and schema
Inputs: site (required), taxonomy (required).
mcp_get_userC
Get user details by ID
Inputs: id (required), site (required).
mcp_get_user_metaC
Get all meta data for a user
Inputs: id (required), site (required).
mcp_get_versionB
Get WordPress version and update status
Inputs: site (required).
mcp_get_widgetC
Get a widget's details
Inputs: site (required), widget_id (required).
mcp_install_pluginC
Install a plugin from WordPress.org by slug
Inputs: site (required), slug (required), activate.
mcp_install_plugin_zipB
Install a plugin from a ZIP URL (GitHub releases, custom sources)
Inputs: url (required), site (required), activate, overwrite.
mcp_install_themeC
Install a theme from WordPress.org by slug
Inputs: site (required), slug (required), activate.
mcp_install_theme_zipC
Install a theme from a ZIP URL (GitHub releases, custom sources)
Inputs: url (required), site (required), activate, overwrite.
mcp_list_cpt_postsC
List posts of any custom post type
Inputs: site (required), type (required), page, order, +3 more.
mcp_list_elementor_templatesB
List all Elementor library templates (headers, footers, singles, loop items, popups)
Inputs: site (required), type.
mcp_list_mediaB
List media library items with filtering
Inputs: site (required), page, order, search, +3 more.
mcp_list_optionsB
List WordPress options with optional prefix filter
Inputs: site (required), prefix, per_page.
mcp_list_post_typesB
List all public post types with their schema and counts
Inputs: site (required).
mcp_list_rolesB
List all available WordPress user roles
Inputs: site (required).
mcp_list_sidebarsC
List all registered sidebars
Inputs: site (required).
mcp_list_taxonomiesC
List all registered taxonomies
Inputs: site (required).
mcp_list_termsC
List terms for any taxonomy (categories, tags, custom taxonomies)
Inputs: site (required), taxonomy (required), parent, search, +1 more.
mcp_list_usersC
List WordPress users with role/search filters
Inputs: site (required), page, role, order, +3 more.
mcp_list_widget_typesB
List all available widget types
Inputs: site (required).
mcp_move_widgetC
Move a widget to a different sidebar
Inputs: site (required), widget_id (required), sidebar_id (required), position.
mcp_optimize_tablesC
Optimize all database tables
Inputs: site (required).
mcp_regenerate_thumbnailsC
Regenerate image thumbnails for a media item
Inputs: id (required), site (required).
mcp_reorder_widgetsC
Reorder widgets within a sidebar
Inputs: site (required), sidebar_id (required), widget_ids (required).
mcp_run_cronC
Manually trigger a cron hook
Inputs: hook (required), site (required).
mcp_search_elementorC
Search all Elementor pages for specific widgets, settings, or text content
Inputs: site (required), setting, contains, per_page, +2 more.
mcp_search_pluginsC
Search WordPress.org plugin repository
Inputs: site (required), search (required), per_page.
mcp_search_replaceB
Search and replace strings in database (serialization-safe)
Inputs: site (required), search (required), replace (required), tables, +1 more.
mcp_search_themesB
Search WordPress.org theme repository
Inputs: site (required), search (required), per_page.
mcp_set_optionC
Create or update an option
Inputs: key (required), site (required), value, autoload.
mcp_sideload_mediaB
Upload media to WordPress from an external URL
Inputs: url (required), site (required), alt, title, +2 more.
mcp_update_all_pluginsA
Update all plugins with available updates
Inputs: site (required).
mcp_update_all_themesC
Update all themes with available updates
Inputs: site (required).
mcp_update_coreC
Update WordPress to the latest version
Inputs: site (required).
mcp_update_cpt_postC
Update a custom post type post
Inputs: id (required), site (required), type (required), meta, +3 more.
mcp_update_elementor_elementA
Update settings on a single Elementor element (merge by default). With widget_type, replaces the widget in place (same id, position and parent), e.g. turn a V4 placeholder into a V3 html widget; the type must be registered with Elementor.
Inputs: id (required), site (required), settings (required), element_id (required), +2 more.
mcp_update_elementor_kitC
Update Elementor global kit settings (colors, fonts, typography)
Inputs: site (required), settings (required).
mcp_update_elementor_page_settingsC
Update Elementor page-level settings
Inputs: id (required), site (required), settings (required).
mcp_update_mediaC
Update media item metadata (title, alt text, caption)
Inputs: id (required), site (required), alt, title, +2 more.
mcp_update_pluginC
Update a single plugin to latest version
Inputs: site (required), plugin (required).
mcp_update_termC
Update a term in any taxonomy
Inputs: id (required), site (required), taxonomy (required), name, +3 more.
mcp_update_themeB
Update a single theme to latest version
Inputs: site (required), stylesheet (required).
mcp_update_userC
Update an existing user
Inputs: id (required), site (required), email, password, +2 more.
mcp_update_user_metaC
Update meta data for a user
Inputs: id (required), meta (required), site (required).
mcp_update_widgetC
Update a widget's settings
Inputs: site (required), settings (required), widget_id (required).
seo_bulk_update_posts_seoC
Bulk update SEO meta across multiple posts.
Inputs: site (required), updates (required).
seo_clear_monitor_logC
Clear the 404/redirect monitor log.
Inputs: site (required).
seo_create_redirectC
Create a redirect.
Inputs: site (required), redirect (required).
seo_create_redirect_from_logB
Create a redirect directly from a monitor log entry.
Inputs: id (required), site (required), redirect.
seo_delete_post_seoC
Delete (reset) the SEO meta for a post.
Inputs: id (required), site (required).
seo_delete_redirectC
Delete a redirect by id.
Inputs: id (required), site (required).
seo_delete_term_seoB
Delete (reset) the SEO meta for a taxonomy term.
Inputs: id (required), site (required).
seo_export_csvC
Export post SEO meta as CSV.
Inputs: site (required).
seo_export_redirectsC
Export redirects.
Inputs: site (required).
seo_export_settingsC
Export cvrt-seo-manager settings.
Inputs: site (required).
seo_get_post_analysisC
Get the SEO analysis (score, issues) for a post.
Inputs: id (required), site (required).
seo_get_post_seoC
Get the SEO meta for a post.
Inputs: id (required), site (required).
seo_get_redirectC
Get a redirect by id.
Inputs: id (required), site (required).
seo_get_settingsB
Get cvrt-seo-manager settings. Secret values are returned as { set: boolean }, never raw.
Inputs: site (required).
seo_get_term_seoC
Get the SEO meta for a taxonomy term.
Inputs: id (required), site (required).
seo_import_csvC
Import post SEO meta from CSV.
Inputs: data (required), site (required).
seo_import_migrateC
Run a migration import (e.g. from RankMath GLOBAL settings) into cvrt-seo-manager.
Inputs: data (required), site (required).
seo_import_redirectsC
Import redirects.
Inputs: data (required), site (required).
seo_import_settingsC
Import cvrt-seo-manager settings.
Inputs: data (required), site (required).
seo_indexnow_pingC
Submit URLs to IndexNow.
Inputs: site (required), urls.
seo_keyword_checkC
Run the keyword analysis check.
Inputs: site (required), params (required).
seo_list_monitor_logC
List the 404/redirect monitor log entries.
Inputs: site (required), params.
seo_list_posts_seoB
List SEO meta across posts.
Inputs: site (required), params.
seo_list_redirectsC
List all redirects.
Inputs: site (required), params.
seo_sitemap_pingC
Ping search engines with the sitemap.
Inputs: site (required).
seo_sitemap_statusC
Get sitemap status.
Inputs: site (required).
seo_statusB
Get cvrt-seo-manager status (version, configured, dependencies).
Inputs: site (required).
seo_update_post_seoC
Update the SEO meta for a post.
Inputs: id (required), meta (required), site (required).
seo_update_redirectC
Update a redirect by id.
Inputs: id (required), site (required), redirect (required).
seo_update_settingsA
Update cvrt-seo-manager settings. Provide only keys to change; a blank/omitted secret preserves the stored value.
Inputs: site (required), settings (required).
seo_update_term_seoC
Update the SEO meta for a taxonomy term.
Inputs: id (required), meta (required), site (required).
woo_add_order_noteC
Add a note to an order
Inputs: id (required), note (required), site (required), customer_note.
woo_bulk_update_stockC
Bulk update product stock
Inputs: site (required), products (required).
woo_create_attributeD
Create a product attribute
Inputs: name (required), site (required), slug, type, +2 more.
woo_create_attribute_termC
Create a term for an attribute
Inputs: name (required), site (required), attribute_id (required), slug.
woo_create_categoryC
Create a product category
Inputs: name (required), site (required), slug, parent, +2 more.
woo_create_couponC
Create a coupon
Inputs: code (required), site (required), amount, product_ids, +9 more.
woo_create_customerD
Create a customer
Inputs: site (required), email (required), billing, password, +4 more.
woo_create_productC
Create a WooCommerce product
Inputs: name (required), site (required), sku, tags, +13 more.
woo_create_variationC
Create a product variation
Inputs: site (required), attributes (required), product_id (required), sku, +5 more.
woo_delete_categoryC
Delete a product category
Inputs: id (required), site (required).
woo_delete_couponC
Delete a coupon
Inputs: id (required), site (required).
woo_delete_productC
Delete a WooCommerce product
Inputs: id (required), site (required), force.
woo_delete_variationC
Delete a product variation
Inputs: site (required), product_id (required), variation_id (required).
woo_get_couponC
Get coupon details
Inputs: id (required), site (required).
woo_get_customerC
Get customer details
Inputs: id (required), site (required).
woo_get_customer_ordersB
Get customer's order history
Inputs: id (required), site (required).
woo_get_orderC
Get WooCommerce order details
Inputs: id (required), site (required).
woo_get_order_notesC
Get order notes
Inputs: id (required), site (required).
woo_get_productC
Get WooCommerce product details
Inputs: id (required), site (required).
woo_get_product_metaC
Get all product meta data
Inputs: id (required), site (required).
woo_list_attributesC
List product attributes
Inputs: site (required).
woo_list_attribute_termsC
List terms for an attribute
Inputs: site (required), attribute_id (required).
woo_list_categoriesC
List product categories
Inputs: site (required), parent, hide_empty.
woo_list_couponsD
List WooCommerce coupons
Inputs: site (required), page, search, per_page.
woo_list_customersC
List WooCommerce customers
Inputs: site (required), page, role, search, +1 more.
woo_list_ordersC
List WooCommerce orders
Inputs: site (required), page, after, before, +4 more.
woo_list_productsC
List WooCommerce products
Inputs: site (required), tag, page, type, +9 more.
woo_list_tagsC
List product tags
Inputs: site (required).
woo_list_variationsC
List variations for a variable product
Inputs: site (required), product_id (required).
woo_sales_reportC
Get sales report
Inputs: site (required), period, date_max, date_min.
woo_stock_reportC
Get stock status report
Inputs: site (required), limit, status.
woo_top_sellersC
Get top selling products
Inputs: site (required), limit, period.
woo_update_categoryC
Update a product category
Inputs: id (required), site (required), name, slug, +3 more.
woo_update_couponC
Update a coupon
Inputs: id (required), site (required), code, amount, +10 more.
woo_update_customerD
Update a customer
Inputs: id (required), site (required), email, billing, +3 more.
woo_update_order_statusC
Update order status
Inputs: id (required), site (required), status (required), note.
woo_update_productC
Update a WooCommerce product
Inputs: id (required), site (required), sku, name, +11 more.
woo_update_product_metaC
Update product meta data
Inputs: id (required), meta (required), site (required).
woo_update_variationD
Update a product variation
Inputs: site (required), product_id (required), variation_id (required), sku, +6 more.
wp_activate_pluginB
Activate an installed plugin (via cvrt-mcp-endpoints, avoids the often-blocked core route)
Inputs: site (required), plugin (required).
wp_activate_themeC
Activate a theme (switch themes)
Inputs: site (required), stylesheet (required).
wp_create_categoryC
Create a new category
Inputs: name (required), site (required), slug, parent, +1 more.
wp_create_commentC
Create a comment on a post
Inputs: post (required), site (required), content (required), parent, +2 more.
wp_create_pageC
Create a new WordPress page
Inputs: site (required), title (required), parent, status, +2 more.
wp_create_postC
Create a new WordPress post
Inputs: site (required), title (required), tags, status, +4 more.
wp_create_tagC
Create a new tag
Inputs: name (required), site (required), slug, description.
wp_create_userC
Create a new WordPress user
Inputs: site (required), email (required), password (required), username (required), +2 more.
wp_deactivate_pluginC
Deactivate an installed plugin (via cvrt-mcp-endpoints)
Inputs: site (required), plugin (required).
wp_delete_categoryC
Delete a category
Inputs: id (required), site (required).
wp_delete_commentD
Delete a comment
Inputs: id (required), site (required), force.
wp_delete_mediaC
Delete a media item
Inputs: id (required), site (required), force.
wp_delete_pageA
Delete a page (moves to trash, or permanently if force=true)
Inputs: id (required), site (required), force.
wp_delete_pluginB
Delete an installed plugin (via cvrt-mcp-endpoints; deactivates first)
Inputs: site (required), plugin (required).
wp_delete_postB
Delete a post (moves to trash, or permanently if force=true)
Inputs: id (required), site (required), force.
wp_delete_tagC
Delete a tag
Inputs: id (required), site (required).
wp_delete_userB
Delete a user (requires reassign parameter)
Inputs: id (required), site (required), reassign (required).
wp_get_active_themeC
Get the currently active theme
Inputs: site (required).
wp_get_commentB
Get a comment by ID
Inputs: id (required), site (required).
wp_get_mediaB
Get a media item by ID
Inputs: id (required), site (required).
wp_get_namespacesA
List available REST API namespaces (plugins may add custom endpoints)
Inputs: site (required).
wp_get_pageB
Get a single page by ID
Inputs: id (required), site (required), content.
wp_get_pluginC
Get plugin details by slug
Inputs: site (required), plugin (required).
wp_get_postC
Get a single post by ID
Inputs: id (required), site (required), content.
wp_get_settingsB
Get WordPress site settings (title, tagline, timezone, date format)
Inputs: site (required).
wp_get_themeC
Get theme details by stylesheet name
Inputs: site (required), stylesheet (required).
wp_get_userB
Get a user by ID
Inputs: id (required), site (required).
wp_list_categoriesC
List all categories
Inputs: site (required), parent, per_page, hide_empty.
wp_list_commentsC
List comments
Inputs: site (required), page, post, status, +1 more.
wp_list_mediaC
List media library items
Inputs: site (required), page, search, per_page, +1 more.
wp_list_pagesC
List WordPress pages
Inputs: site (required), page, order, parent, +3 more.
wp_list_pluginsC
List all installed plugins
Inputs: site (required), status.
wp_list_postsC
List WordPress posts with optional filters
Inputs: site (required), page, tags, order, +6 more.
wp_list_tagsC
List all tags
Inputs: site (required), search, per_page, hide_empty.
wp_list_themesC
List all installed themes
Inputs: site (required), status.
wp_list_usersC
List WordPress users
Inputs: site (required), page, roles, search, +1 more.
wp_meB
Get the currently authenticated user
Inputs: site (required).
wp_moderate_commentsC
Batch moderate comments by status
Inputs: ids (required), site (required), status (required).
wp_search_postsC
Search posts by keyword
Inputs: site (required), search (required), per_page.
wp_site_infoB
Get WordPress site information (name, description, URL, timezone)
Inputs: site (required).
wp_update_categoryC
Update a category
Inputs: id (required), site (required), name, slug, +2 more.
wp_update_commentC
Update a comment (approve, edit content, etc.)
Inputs: id (required), site (required), status, content.
wp_update_mediaC
Update media item metadata (title, alt text, caption)
Inputs: id (required), site (required), title, caption, +2 more.
wp_update_pageC
Update an existing page
Inputs: id (required), site (required), title, parent, +3 more.
wp_update_postC
Update an existing post
Inputs: id (required), site (required), tags, title, +5 more.
wp_update_settingsC
Update WordPress site settings
Inputs: site (required), title, description, timezone_string.
wp_update_tagC
Update a tag
Inputs: id (required), site (required), name, slug, +1 more.
wp_update_userC
Update an existing user
Inputs: id (required), site (required), name, email, +2 more.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 277 tools
The set contains two parallel namespaces (wp_* and mcp_*) that duplicate the same resources: wp_list_users/mcp_list_users, wp_get_user/mcp_get_user, wp_update_user/mcp_update_user, wp_list_media/mcp_list_media, wp_list_plugins/mcp_search_plugins, etc. An agent cannot reliably tell whether to call the core route or the cvrt-mcp-endpoints version. Beyond that, many domain-specific tools are distinct, but the systematic duplication makes tool selection error-prone.
Most tools use a prefix_verb_noun pattern (woo_list_products, acf_get_field_group), but verb placement is inconsistent in several families: legal_get_settings vs legal_consent_log_get, seo_status vs seo_get_settings, fields_status vs fields_list_types. The mix of wp_ and mcp_ prefixes for the same domain also breaks predictability. Still readable overall, hence a middle score.
277 tools is far beyond any reasonable scope for a single server and reflects heavy redundancy (parallel wp_/mcp_ CRUD sets) and many plugin-specific sub-surfaces. This extreme count is a strong mismatch with the intended purpose, and agents will struggle to navigate it.
Coverage is very broad: full CRUD for posts, pages, media, users, comments, taxonomies, plugins, themes, menus, widgets, options, WooCommerce, Elementor, ACF, SEO and legal documents. Only minor gaps exist (e.g., generic post meta and some widget-block operations), so the surface is largely complete despite being bloated.
Maintenance
Related MCP Connectors
Manage WordPress blogs and WooCommerce shops from Claude, ChatGPT, Cursor and other MCP apps.
Security-first WordPress MCP server. 129 tools for Claude, ChatGPT, Gemini. Free on wp.org.
Manage your WordPress site from your AI assistant: posts, pages, media, comments and WooCommerce.
Manage your WordPress site from ChatGPT or Claude: posts, WooCommerce, SEO, images and upkeep.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to manage and interact with WordPress sites through MCP, providing tools for content creation, moderation, WooCommerce operations, and governance.47GPL 2.0
- AlicenseCqualityDmaintenanceEnables AI to manage WordPress sites with 190+ tools for complete control over content, themes, plugins, files, and more.10029 npmMIT
- FlicenseNot gradedqualityFmaintenanceEnables AI assistants to interact with a WordPress site, allowing content and taxonomy management (list, create, update, delete) through 17 MCP tools.2-
- AlicenseNot gradedqualityCmaintenanceEnables managing self-hosted WordPress sites via AI assistants, providing 69 tools for content creation, SEO, media, comments, and site management through the MCP protocol.3MIT