Skip to main content
Glama

WP MCP Control — MCP Server

TypeScript MCP server that connects Cursor, Claude Desktop, and other MCP clients to the WP MCP Control WordPress plugin.

Current version: 2.3.0 (149 tools)

Quick Install (new computer)

git clone https://github.com/mpierre135/wp-mcp-control-server.git
cd wp-mcp-control-server
npm install
npm run build
cp .env.example .env
# Edit .env with your site URL and token

Then add to Claude Desktop or Cursor (see below).

Related MCP server: wp-cli-mcp

Setup

npm install
cp .env.example .env
# Edit .env with your credentials
npm run build
npm start

Environment Variables

Variable

Required

Default

Description

WP_MCP_SITE_URL

Yes

—

WordPress site URL (no trailing slash)

WP_MCP_TOKEN

Yes

—

API token from plugin settings

WP_MCP_SAFE_MODE

No

true

Block destructive operations

WP_MCP_DRY_RUN

No

false

Validate without making changes

Claude Desktop Config

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

Windows: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "wp-mcp-control": {
      "command": "node",
      "args": ["/absolute/path/to/wp-mcp-control-server/dist/index.js"],
      "env": {
        "WP_MCP_SITE_URL": "https://example.com",
        "WP_MCP_TOKEN": "your-token",
        "WP_MCP_SAFE_MODE": "true",
        "WP_MCP_DRY_RUN": "false"
      }
    }
  }
}

Restart Claude Desktop after saving.

Cursor Config

{
  "mcpServers": {
    "wp-mcp-control": {
      "command": "node",
      "args": ["/absolute/path/to/mcp-server/dist/index.js"],
      "env": {
        "WP_MCP_SITE_URL": "https://example.com",
        "WP_MCP_TOKEN": "your-token",
        "WP_MCP_SAFE_MODE": "true",
        "WP_MCP_DRY_RUN": "false"
      }
    }
  }
}

Development

npm run dev    # Watch mode
npm run build  # Compile to dist/

Tool Catalog

Site

  • wp_health_check — Health and status

  • wp_get_site_info — Site metadata

  • wp_list_themes / wp_list_plugins — Read-only inventory

  • wp_get_settings / wp_update_settings — Safe settings

Pages

  • wp_list_pages, wp_get_page, wp_create_page, wp_update_page, wp_delete_page

  • wp_create_landing_page — Structured landing page builder

Posts

  • wp_list_posts, wp_get_post, wp_create_post, wp_update_post, wp_delete_post

Media

  • wp_list_media, wp_get_media

  • wp_upload_media_from_url, wp_upload_media_from_base64

  • wp_update_media_metadata, wp_delete_media

Taxonomies

  • wp_list_categories, wp_create_category, wp_update_category, wp_delete_category

  • wp_list_tags, wp_create_tag, wp_update_tag, wp_delete_tag

Menus

  • wp_list_menus, wp_get_menu_items

  • wp_create_menu_item, wp_update_menu_item, wp_delete_menu_item

  • wp_assign_menu_location

Other

  • wp_search_content — Unified search

  • wp_batch_operations — Batch API calls

  • wp_get_activity_log, wp_restore_snapshot

  • wp_list_redirects, wp_create_redirect, wp_update_redirect, wp_delete_redirect

  • wp_export_site_structure, wp_generate_sitemap

Elementor (Phase 1–3)

  • wp_elementor_get_widget_catalog — Widget catalog with editable settings

  • wp_elementor_get_structure — Full Elementor element tree

  • wp_elementor_list_elements — Flat list of widgets with text previews

  • wp_elementor_find_widgets — Filter by widget_type

  • wp_elementor_update_element — Update catalog-editable widget by element ID

  • wp_elementor_update_text — Find widget by text and replace

  • wp_elementor_update_button — Update button text/URL by match_text

  • wp_elementor_update_image — Update image by element_id or match_url

  • wp_elementor_insert_widget — Add widget to column/container

  • wp_elementor_insert_section — Add section (hero/cta/features presets)

  • wp_elementor_remove_element — Delete element by ID

  • wp_elementor_clone_element — Clone subtree with new IDs

  • wp_elementor_duplicate_page — Clone Elementor page as draft

  • wp_elementor_find_parent — Find column/container for insert

  • wp_elementor_regenerate_css — Regenerate Elementor CSS cache

v2.0 — Discovery and diagnostics

  • wp_get_site_blueprint, wp_site_audit, wp_security_posture, wp_purge_cache

v2.0 — Gutenberg, CPT, meta

  • wp_list_blocks, wp_update_block, wp_insert_block_pattern

  • wp_list_post_types, wp_list_cpt_items, wp_get_cpt_item, wp_create_cpt_item, wp_update_cpt_item, wp_delete_cpt_item

  • wp_list_taxonomies, wp_list_taxonomy_terms, wp_create_taxonomy_term

  • wp_get_meta_catalog, wp_get_acf_fields, wp_update_acf_fields

v2.0 — SEO and WooCommerce

  • wp_get_page_seo, wp_update_page_seo, wp_audit_seo

  • wp_list_products, wp_get_product, wp_create_product, wp_update_product, wp_delete_product, wp_update_product_price

  • wp_list_orders, wp_get_order, wp_update_order, wp_add_order_note, wp_refund_order

  • wp_list_booking_products, wp_get_booking

v2.0 — Forms, users, comments, widgets

  • wp_list_forms, wp_get_form, wp_update_form_notifications, wp_list_form_submissions

  • wp_list_users, wp_get_user, wp_list_roles, wp_create_user

  • wp_list_comments, wp_moderate_comment, wp_reply_to_comment

  • wp_list_sidebars, wp_list_widget_instances, wp_update_widget_instance

v2.0 — Revisions, plugins, cron

  • wp_list_revisions, wp_get_revision, wp_get_revision_diff, wp_restore_revision, wp_get_snapshot_diff

  • wp_get_plugin_conflicts, wp_get_plugin_updates, wp_activate_plugin, wp_deactivate_plugin

  • wp_list_cron_events

v2.1 — Webhooks

  • wp_list_webhook_topics, wp_list_custom_webhooks, wp_create_custom_webhook, wp_test_custom_webhook

  • wp_list_woocommerce_webhooks, wp_create_woocommerce_webhook, wp_delete_woocommerce_webhook

  • wp_list_form_webhooks, wp_create_form_webhook, wp_update_form_webhook, wp_delete_form_webhook

Server version: 2.3.0 — 149 tools total

Headers Sent to WordPress

Every request includes:

  • Authorization: Bearer <token>

  • X-WP-MCP-Dry-Run: true|false

  • X-WP-MCP-Safe-Mode: true|false

These override plugin defaults when set in MCP env vars.

Available Tools

149 tools
wp_activate_pluginA

Activate a plugin by slug (e.g. litespeed-cache/litespeed-cache.php). Must be on MCP allowlist. confirm required in safe mode.

Inputs: slug (required), confirm.

wp_add_order_noteB

Add an admin or customer-visible note to a WooCommerce order

Inputs: id (required), note (required), customer_note.

wp_assign_menu_locationB

Assign menus to theme navigation locations

Inputs: locations (required).

wp_audit_seoA

Run SEO audit across published content (missing titles, descriptions, etc.)

Inputs: no named parameters.

wp_batch_operationsB

Execute multiple WP MCP operations in a single request (max 20)

Inputs: operations (required).

wp_create_categoryC

Create a WordPress category

Inputs: name (required), slug, parent, description.

wp_create_cpt_itemC

Create a new item in a custom post type

Inputs: title (required), post_type (required), meta, slug, +6 more.

wp_create_custom_webhookA

Create a custom MCP outbound webhook. Secret is returned once on create. confirm:true required when safe mode is on.

Inputs: url (required), name (required), topics (required), confirm, +1 more.

wp_create_form_webhookC

Create a Ninja Forms webhook action on a form

Inputs: url (required), form_id (required), label, active, +2 more.

wp_create_landing_pageB

Create a landing page with structured sections (hero, services, testimonials, FAQ, CTA)

Inputs: title (required), sections (required), slug, status.

wp_create_menu_itemC

Add an item to a navigation menu

Inputs: title (required), menu_id (required), url, type, +4 more.

wp_create_pageC

Create a new WordPress page

Inputs: title (required), meta, slug, parent, +6 more.

wp_create_postC

Create a new WordPress post

Inputs: title (required), meta, slug, tags, +7 more.

wp_create_productC

Create a new WooCommerce simple product

Inputs: name (required), sku, slug, status, +8 more.

wp_create_redirectC

Create a URL redirect

Inputs: target_url (required), source_path (required), enabled, status_code.

wp_create_tagC

Create a WordPress tag

Inputs: name (required), slug, description.

wp_create_taxonomy_termC

Create a term in a taxonomy

Inputs: name (required), taxonomy (required), slug, parent, +1 more.

wp_create_userA

Create a WordPress user. confirm:true required in safe mode. Administrator role requires explicit confirm.

Inputs: email (required), username (required), role, confirm, +2 more.

wp_create_woocommerce_webhookA

Create a WooCommerce native webhook. Secret returned once. confirm:true required when safe mode is on.

Inputs: name (required), topic (required), delivery_url (required), status, +1 more.

wp_deactivate_pluginA

Deactivate a plugin by slug. confirm:true required when safe mode is enabled.

Inputs: slug (required), confirm.

wp_delete_categoryC

Delete a WordPress category

Inputs: id (required), confirm (required).

wp_delete_cpt_itemB

Delete a custom post type item (moves to trash by default)

Inputs: id (required), confirm (required), post_type (required), force.

wp_delete_custom_webhookA

Delete a custom MCP webhook. confirm:true required when safe mode is on.

Inputs: id (required), confirm.

wp_delete_form_webhookB

Delete a Ninja Forms webhook action

Inputs: form_id (required), action_id (required).

wp_delete_mediaB

Delete a media item (moves to trash by default)

Inputs: id (required), confirm (required), force.

wp_delete_menu_itemC

Delete a navigation menu item

Inputs: confirm (required), item_id (required).

wp_delete_pageA

Delete a WordPress page (moves to trash by default)

Inputs: id (required), confirm (required), force.

wp_delete_postB

Delete a WordPress post (moves to trash by default)

Inputs: id (required), confirm (required), force.

wp_delete_productA

Delete a WooCommerce product (moves to trash by default)

Inputs: id (required), confirm (required), force.

wp_delete_redirectC

Delete a redirect

Inputs: id (required), confirm (required).

wp_delete_tagC

Delete a WordPress tag

Inputs: id (required), confirm (required).

wp_delete_woocommerce_webhookA

Delete a WooCommerce native webhook. confirm:true required when safe mode is on.

Inputs: id (required), confirm.

wp_elementor_add_repeater_itemA

Append a new item to an Elementor repeater widget (add a carousel slide, testimonial, photo). Provide item fields matching the widget schema.

Inputs: item (required), page_id (required), element_id (required).

wp_elementor_clear_pageA

Remove all Elementor canvas sections/containers from a page for rebuilds. Theme builder header/footer templates are unaffected. confirm:true required when safe mode is on.

Inputs: page_id (required), confirm.

wp_elementor_clone_elementB

Clone a widget, section, or container subtree with new IDs. confirm:true required when safe mode is on.

Inputs: page_id (required), element_id (required), confirm.

wp_elementor_create_blank_pageA

Create a new Elementor page with an empty canvas and header/footer template (elementor_header_footer by default). confirm:true required when safe mode is on.

Inputs: title (required), slug, status, confirm, +1 more.

wp_elementor_duplicate_pageB

Duplicate an Elementor page as a new draft with remapped element IDs. Preserves heading text through safe JSON pipeline. confirm:true required when safe mode is on.

Inputs: source_id (required), slug, title, status, +1 more.

wp_elementor_find_parentA

Find a suitable parent column or container element ID for inserting widgets on an Elementor page

Inputs: page_id (required).

wp_elementor_find_widgetsB

Find widgets on a page filtered by widget_type (e.g. button, image, raven-heading)

Inputs: page_id (required), widget_type (required).

wp_elementor_get_structureA

Get full Elementor page structure including element tree JSON. Page must be built with Elementor.

Inputs: page_id (required).

wp_elementor_get_template_conditionsA

Get the display conditions for an Elementor Theme Builder template — which pages or post types it shows on.

Inputs: template_id (required).

wp_elementor_get_widget_catalogA

Get the Elementor widget catalog with editable settings per widget type.

Inputs: no named parameters.

wp_elementor_insert_sectionB

Insert a section scaffold (section+column or container) with widgets. Use preset hero/cta/features or custom children. confirm:true required in safe mode.

Inputs: page_id (required), preset, confirm, children, +1 more.

wp_elementor_insert_widgetA

Insert a widget into a column or container. Requires parent_id from wp_elementor_list_elements. Use confirm:true when safe mode is on.

Inputs: page_id (required), parent_id (required), widget_type (required), confirm, +1 more.

wp_elementor_list_elementsA

List all Elementor elements on a page as a flat index with id, widgetType, text preview, and is_editable flag

Inputs: page_id (required).

wp_elementor_list_repeater_itemsA

List all items in an Elementor repeater widget (carousel slides, testimonials, photo roller images). Works on page IDs and Theme Builder template IDs.

Inputs: page_id (required), element_id (required).

wp_elementor_list_theme_templatesA

List all Elementor Theme Builder templates (headers, footers, singles, archives). Returns template IDs usable with other elementor tools.

Inputs: type.

wp_elementor_publish_templateA

Publish a draft Elementor Theme Builder template so it goes live. Requires confirm: true when safe mode is on.

Inputs: template_id (required), confirm.

wp_elementor_regenerate_cssA

Regenerate Elementor CSS assets for a page after structural changes

Inputs: page_id (required).

wp_elementor_remove_elementB

Remove a widget, section, or container by element ID. confirm:true required when safe mode is on.

Inputs: page_id (required), element_id (required), confirm.

wp_elementor_remove_repeater_itemA

Remove an item from an Elementor repeater widget by zero-based index. Requires confirm: true when safe mode is on.

Inputs: index (required), page_id (required), element_id (required), confirm.

wp_elementor_repair_jsonB

Re-save Elementor JSON on a page to fix corruption (e.g. $400n heading text). Use after duplicate issues or broken templates.

Inputs: page_id (required).

wp_elementor_set_template_conditionsA

Replace all display conditions on an Elementor Theme Builder template. Use 'include/general' to show on all pages, 'include/singular/page/43' for a specific page.

Inputs: conditions (required), template_id (required).

wp_elementor_update_buttonB

Find a button (or raven-button) by matching button text and update text and/or URL.

Inputs: page_id (required), match_text (required), url, new_text.

wp_elementor_update_elementA

Update an Elementor widget by element ID. Supports all catalog-editable widgets (heading, text-editor, button, image, icon-box, icon-list, raven-*).

Inputs: page_id (required), settings (required), element_id (required).

wp_elementor_update_imageA

Update an image widget by element_id or match_url. Set image_id, image_url, and/or caption.

Inputs: page_id (required), caption, image_id, image_url, +2 more.

wp_elementor_update_repeater_itemA

Partially update an item in an Elementor repeater widget by zero-based index. Only provided fields are changed; others are preserved.

Inputs: item (required), index (required), page_id (required), element_id (required).

wp_elementor_update_textA

Find a heading or text-editor widget by matching existing text and replace it. Creates a snapshot before updating.

Inputs: page_id (required), new_text (required), match_text (required), widget_type.

wp_export_site_structureA

Export site structure as JSON tree (pages, posts, menus, taxonomies, redirects)

Inputs: no named parameters.

wp_generate_sitemapC

Generate a sitemap of published pages and posts

Inputs: format.

wp_get_acf_fieldsA

Get ACF field values and catalog for a post/page (requires ACF plugin)

Inputs: post_id (required).

wp_get_activity_logC

Get MCP activity log with optional filters

Inputs: page, action, per_page, object_type.

wp_get_bookingA

Get a WooCommerce Booking by ID (requires WooCommerce Bookings plugin)

Inputs: id (required).

wp_get_cpt_itemA

Get a single custom post type item by ID

Inputs: id (required), post_type (required).

wp_get_custom_webhookA

Get a custom MCP webhook by ID

Inputs: id (required).

wp_get_formA

Get Ninja Form details including fields and notification actions

Inputs: id (required).

wp_get_mediaB

Get a single media item with metadata

Inputs: id (required).

wp_get_menu_itemsB

Get items for a specific navigation menu

Inputs: menu_id (required).

wp_get_meta_catalogA

Get unified meta field catalog across ACF, AIOSEO, and other registered adapters

Inputs: no named parameters.

wp_get_orderA

Get full WooCommerce order details including line items and addresses

Inputs: id (required).

wp_get_pageA

Get full WordPress page data including raw and rendered HTML content

Inputs: id (required).

wp_get_page_seoA

Get SEO metadata for a page/post via All in One SEO (title, description, schema, etc.)

Inputs: page_id (required).

wp_get_plugin_conflictsB

Detect conflicting active plugins (SEO, cache, redirect groups)

Inputs: no named parameters.

wp_get_plugin_updatesA

List available plugin updates from WordPress.org

Inputs: no named parameters.

wp_get_postA

Get full WordPress post data including content, categories, and tags

Inputs: id (required).

wp_get_productA

Get full WooCommerce product details

Inputs: id (required).

wp_get_revisionC

Get revision content by revision ID

Inputs: revision_id (required).

wp_get_revision_diffB

Diff a revision against the current post content (title, content, excerpt)

Inputs: revision_id (required).

wp_get_settingsB

Read safe WordPress site settings

Inputs: no named parameters.

wp_get_site_blueprintA

Get site blueprint for agent discovery: theme, menus, adapters, Elementor/WooCommerce status, allowed post types

Inputs: no named parameters.

wp_get_site_infoA

Get WordPress site information including theme, plugins, and permalink settings

Inputs: no named parameters.

wp_get_snapshot_diffC

Diff an MCP snapshot against the current post content

Inputs: snapshot_id (required).

wp_get_userA

Get a WordPress user by ID

Inputs: id (required), include_email.

wp_get_woocommerce_webhookA

Get a WooCommerce native webhook by ID

Inputs: id (required).

wp_health_checkA

Check WP MCP Control plugin health, REST availability, and security settings

Inputs: no named parameters.

wp_insert_block_patternA

Insert a Gutenberg block pattern preset (hero, faq, columns) into a page/post

Inputs: preset (required), page_id (required).

wp_list_blocksA

List Gutenberg blocks on a page/post as a flat index with blockName, path, and attributes preview

Inputs: page_id (required).

wp_list_booking_productsA

List WooCommerce Bookings products (requires WooCommerce Bookings plugin)

Inputs: no named parameters.

wp_list_categoriesC

List WordPress categories

Inputs: search, per_page.

wp_list_commentsB

List WordPress comments with optional status and post filters

Inputs: page, status, post_id, per_page.

wp_list_cpt_itemsB

List items of a custom post type with optional filters

Inputs: post_type (required), page, search, status, +1 more.

wp_list_cron_eventsA

List scheduled WordPress cron events (read-only)

Inputs: hook, page, per_page.

wp_list_custom_webhooksA

List custom MCP outbound webhooks configured on the site

Inputs: no named parameters.

wp_list_formsA

List Ninja Forms on the site (requires Ninja Forms plugin)

Inputs: no named parameters.

wp_list_form_submissionsB

List submissions for a Ninja Form

Inputs: id (required), page, per_page.

wp_list_form_webhooksB

List Ninja Forms webhook actions on a form (requires Ninja Forms)

Inputs: form_id (required).

wp_list_mediaC

List WordPress media library items

Inputs: page, search, per_page.

wp_list_menusA

List WordPress navigation menus and theme locations

Inputs: no named parameters.

wp_list_ordersC

List WooCommerce orders with optional filters

Inputs: page, search, status, per_page.

wp_list_pagesC

List WordPress pages with optional filters

Inputs: page, search, status, per_page.

wp_list_pluginsA

List installed WordPress plugins (read-only)

Inputs: no named parameters.

wp_list_postsC

List WordPress posts with optional filters

Inputs: page, search, status, per_page.

wp_list_post_typesB

List allowed custom post types available via MCP

Inputs: no named parameters.

wp_list_productsC

List WooCommerce products with optional filters

Inputs: page, search, status, per_page.

wp_list_redirectsA

List built-in URL redirects managed by WP MCP Control

Inputs: no named parameters.

wp_list_revisionsA

List WordPress revisions for a post or page

Inputs: post_id (required).

wp_list_rolesA

List WordPress roles and their capabilities

Inputs: no named parameters.

wp_list_sidebarsA

List registered WordPress widget sidebars

Inputs: no named parameters.

wp_list_tagsC

List WordPress tags

Inputs: search, per_page.

wp_list_taxonomiesA

List all public WordPress taxonomies with object types

Inputs: no named parameters.

wp_list_taxonomy_termsC

List terms for a taxonomy

Inputs: taxonomy (required), search, per_page.

wp_list_themesA

List installed WordPress themes (read-only)

Inputs: no named parameters.

wp_list_usersC

List WordPress users with optional role and search filters

Inputs: page, role, search, per_page, +1 more.

wp_list_webhook_deliveriesB

List delivery log entries for a custom MCP webhook

Inputs: id (required), page, per_page.

wp_list_webhook_topicsB

List available custom MCP webhook event topics (content, WC, forms, cache, etc.)

Inputs: no named parameters.

wp_list_widget_instancesA

List widget instances across sidebars (text and custom_html widgets are editable)

Inputs: sidebar.

wp_list_woocommerce_webhooksA

List WooCommerce native webhooks (product/order topics)

Inputs: no named parameters.

wp_moderate_commentB

Moderate a comment: approve, hold, spam, or trash. confirm required for spam/trash in safe mode.

Inputs: id (required), status (required), confirm.

wp_purge_cacheA

Purge site cache (LiteSpeed, WP Rocket, W3TC, etc.). confirm:true required when safe mode is enabled.

Inputs: confirm.

wp_refund_orderA

Create a WooCommerce order refund. confirm:true required. Requires wp_mcp_allow_wc_refunds setting.

Inputs: id (required), amount, reason, confirm, +1 more.

wp_reply_to_commentC

Reply to a comment as the site admin

Inputs: id (required), content (required).

wp_restore_revisionA

Restore a post/page to a previous revision. confirm:true required when safe mode is enabled.

Inputs: revision_id (required), confirm.

wp_restore_snapshotB

Restore a previous content snapshot before an update/delete

Inputs: confirm (required), snapshot_id (required).

wp_search_contentB

Search across WordPress pages, posts, media, categories, and tags

Inputs: query (required), limit, status, post_type, +2 more.

wp_security_postureB

Get security posture: safe mode, dry run, rate limits, IP allowlist, token age, CORS settings

Inputs: no named parameters.

wp_site_auditA

Run site content audit: empty pages, missing alt text, redirect loops, draft backlog, SEO issues

Inputs: no named parameters.

wp_test_custom_webhookA

Send a test ping to a custom MCP webhook and return delivery result. confirm:true required when safe mode is on.

Inputs: id (required), confirm.

wp_update_acf_fieldsB

Update ACF field values on a post/page (creates snapshot before update)

Inputs: fields (required), post_id (required).

wp_update_blockB

Update Gutenberg block attributes by path or by finding block_name with optional match_text

Inputs: attrs (required), page_id (required), path, block_name, +1 more.

wp_update_categoryC

Update a WordPress category

Inputs: id (required), name, slug, parent, +1 more.

wp_update_cpt_itemC

Update an existing custom post type item (creates snapshot before update)

Inputs: id (required), post_type (required), meta, slug, +7 more.

wp_update_custom_webhookC

Update a custom MCP webhook (name, url, topics, enabled)

Inputs: id (required), url, name, topics, +1 more.

wp_update_form_notificationsB

Update Ninja Form notification actions (email recipients, subject, message, etc.)

Inputs: id (required), actions (required).

wp_update_form_webhookC

Update a Ninja Forms webhook action

Inputs: form_id (required), action_id (required), url, label, +3 more.

wp_update_media_metadataB

Update media title, alt text, caption, or description

Inputs: id (required), alt, title, caption, +1 more.

wp_update_menu_itemC

Update a navigation menu item

Inputs: item_id (required), url, title, parent_id.

wp_update_orderA

Update WooCommerce order status, addresses, or line items. confirm:true required when safe mode is enabled.

Inputs: id (required), status, billing, confirm, +3 more.

wp_update_pageB

Update an existing WordPress page (creates snapshot before update)

Inputs: id (required), meta, slug, title, +7 more.

wp_update_page_seoA

Update SEO fields for a page/post via All in One SEO (creates snapshot before update)

Inputs: fields (required), page_id (required).

wp_update_postA

Update an existing WordPress post (creates snapshot before update)

Inputs: id (required), meta, slug, tags, +8 more.

wp_update_productC

Update a WooCommerce product (creates snapshot before update)

Inputs: id (required), sku, name, slug, +9 more.

wp_update_product_priceB

Update WooCommerce product pricing (regular_price, sale_price, or price alias)

Inputs: id (required), price, sale_price, regular_price.

wp_update_redirectC

Update an existing redirect

Inputs: id (required), enabled, target_url, source_path, +1 more.

wp_update_settingsB

Update safe WordPress site settings (title, tagline, posts per page, front page)

Inputs: blogname, page_on_front, show_on_front, page_for_posts, +2 more.

wp_update_tagC

Update a WordPress tag

Inputs: id (required), name, slug, description.

wp_update_widget_instanceB

Update a text or custom_html widget instance by widget ID

Inputs: id (required), text, title, content.

wp_update_woocommerce_webhookC

Update a WooCommerce native webhook

Inputs: id (required), name, topic, status, +1 more.

wp_upload_media_from_base64C

Upload media to WordPress from base64-encoded data

Inputs: data (required), alt, title, caption, +2 more.

wp_upload_media_from_urlA

Upload media to WordPress from a remote URL

Inputs: url (required), alt, title, caption, +1 more.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    C2.9/5.0

    Scored across 149 tools

    Disambiguation3/5

    Many tools are clearly separated by resource type, but there are notable overlaps: wp_elementor_update_element is a general tool that subsumes wp_elementor_update_text/button/image, and wp_update_product overlaps with wp_update_product_price. Similarly, the line between generic CPT tools and concrete post/page/product tools can be blurry. Overall, descriptions help but the large surface creates real selection ambiguity.

    Naming Consistency5/5

    Every tool follows the same wp_verb_noun snake_case pattern. List/get/create/update/delete are used predictably across all resource types, and specialized actions like restore, clone, purge, and audit also follow the convention consistently. No mixed casing or random verb styles are present.

    Tool Count1/5

    With 149 tools, this is an extreme count that goes well beyond what an agent can efficiently navigate or reliably select from. Even a broad WordPress control surface does not justify this many individual operations, and the count strongly harms coherence and usability.

    Completeness4/5

    The surface is exceptionally broad: posts, pages, media, users, comments, taxonomies, menus, plugins, themes, settings, SEO, Elementor, WooCommerce, forms, webhooks, redirects, snapshots, revisions, and audits are all covered. Minor gaps exist—such as no user update/delete, no menu create/update/delete, and no form submission get/delete—but they do not block most workflows.

    Maintenance

    ActivityNo data
    ResponsivenessSyncing

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      Not graded
      quality
      D
      maintenance
      A comprehensive MCP server for WordPress automation that enables users to manage content, themes, and site configurations using AI-driven workflows and the WordPress REST API. It provides a wide array of tools for site planning, management, and optimization compatible with tools like Cursor and Claude.
      51 npm
      1
      ISC
    • A
      license
      Not graded
      quality
      D
      maintenance
      MCP server for WordPress content management that provides a secure interface for AI assistants to interact with WordPress sites, enabling content creation, editing, and media management without destructive operations.
      MIT