wp-mcp-control-server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| WP_MCP_TOKEN | Yes | API token from plugin settings | |
| WP_MCP_DRY_RUN | No | Validate without making changes | false |
| WP_MCP_SITE_URL | Yes | WordPress site URL (no trailing slash) | |
| WP_MCP_SAFE_MODE | No | Block destructive operations | true |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| wp_health_checkA | Check WP MCP Control plugin health, REST availability, and security settings |
| wp_get_site_infoA | Get WordPress site information including theme, plugins, and permalink settings |
| wp_list_themesA | List installed WordPress themes (read-only) |
| wp_list_pluginsA | List installed WordPress plugins (read-only) |
| wp_get_settingsB | Read safe WordPress site settings |
| wp_update_settingsB | Update safe WordPress site settings (title, tagline, posts per page, front page) |
| wp_list_pagesC | List WordPress pages with optional filters |
| wp_get_pageA | Get full WordPress page data including raw and rendered HTML content |
| wp_create_pageC | Create a new WordPress page |
| wp_update_pageB | Update an existing WordPress page (creates snapshot before update) |
| wp_delete_pageA | Delete a WordPress page (moves to trash by default) |
| wp_create_landing_pageB | Create a landing page with structured sections (hero, services, testimonials, FAQ, CTA) |
| wp_list_postsC | List WordPress posts with optional filters |
| wp_get_postA | Get full WordPress post data including content, categories, and tags |
| wp_create_postC | Create a new WordPress post |
| wp_update_postA | Update an existing WordPress post (creates snapshot before update) |
| wp_delete_postB | Delete a WordPress post (moves to trash by default) |
| wp_list_mediaC | List WordPress media library items |
| wp_get_mediaB | Get a single media item with metadata |
| wp_upload_media_from_urlA | Upload media to WordPress from a remote URL |
| wp_upload_media_from_base64C | Upload media to WordPress from base64-encoded data |
| wp_update_media_metadataB | Update media title, alt text, caption, or description |
| wp_delete_mediaB | Delete a media item (moves to trash by default) |
| wp_list_categoriesC | List WordPress categories |
| wp_create_categoryC | Create a WordPress category |
| wp_update_categoryC | Update a WordPress category |
| wp_delete_categoryC | Delete a WordPress category |
| wp_list_tagsC | List WordPress tags |
| wp_create_tagC | Create a WordPress tag |
| wp_update_tagC | Update a WordPress tag |
| wp_delete_tagC | Delete a WordPress tag |
| wp_list_menusA | List WordPress navigation menus and theme locations |
| wp_get_menu_itemsB | Get items for a specific navigation menu |
| wp_create_menu_itemC | Add an item to a navigation menu |
| wp_update_menu_itemC | Update a navigation menu item |
| wp_delete_menu_itemC | Delete a navigation menu item |
| wp_assign_menu_locationB | Assign menus to theme navigation locations |
| wp_search_contentB | Search across WordPress pages, posts, media, categories, and tags |
| wp_batch_operationsB | Execute multiple WP MCP operations in a single request (max 20) |
| wp_get_activity_logC | Get MCP activity log with optional filters |
| wp_restore_snapshotB | Restore a previous content snapshot before an update/delete |
| wp_list_redirectsA | List built-in URL redirects managed by WP MCP Control |
| wp_create_redirectC | Create a URL redirect |
| wp_update_redirectC | Update an existing redirect |
| wp_delete_redirectC | Delete a redirect |
| wp_export_site_structureA | Export site structure as JSON tree (pages, posts, menus, taxonomies, redirects) |
| wp_generate_sitemapC | Generate a sitemap of published pages and posts |
| wp_elementor_get_widget_catalogA | Get the Elementor widget catalog with editable settings per widget type. |
| wp_elementor_get_structureA | Get full Elementor page structure including element tree JSON. Page must be built with Elementor. |
| wp_elementor_list_elementsA | List all Elementor elements on a page as a flat index with id, widgetType, text preview, and is_editable flag |
| wp_elementor_find_widgetsB | Find widgets on a page filtered by widget_type (e.g. button, image, raven-heading) |
| 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-*). |
| wp_elementor_update_textA | Find a heading or text-editor widget by matching existing text and replace it. Creates a snapshot before updating. |
| wp_elementor_update_buttonB | Find a button (or raven-button) by matching button text and update text and/or URL. |
| wp_elementor_update_imageA | Update an image widget by element_id or match_url. Set image_id, image_url, and/or caption. |
| 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. |
| 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. |
| wp_elementor_remove_elementB | Remove a widget, section, or container by element ID. confirm:true required when safe mode is on. |
| wp_elementor_clone_elementB | Clone a widget, section, or container subtree with new IDs. confirm:true required when safe mode is on. |
| 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. |
| 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. |
| 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. |
| 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. |
| wp_elementor_find_parentA | Find a suitable parent column or container element ID for inserting widgets on an Elementor page |
| wp_elementor_regenerate_cssA | Regenerate Elementor CSS assets for a page after structural changes |
| wp_elementor_list_theme_templatesA | List all Elementor Theme Builder templates (headers, footers, singles, archives). Returns template IDs usable with other elementor tools. |
| wp_elementor_get_template_conditionsA | Get the display conditions for an Elementor Theme Builder template — which pages or post types it shows on. |
| 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. |
| wp_elementor_publish_templateA | Publish a draft Elementor Theme Builder template so it goes live. Requires confirm: true when safe mode is on. |
| 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. |
| 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. |
| 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. |
| 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. |
| wp_get_site_blueprintA | Get site blueprint for agent discovery: theme, menus, adapters, Elementor/WooCommerce status, allowed post types |
| wp_site_auditA | Run site content audit: empty pages, missing alt text, redirect loops, draft backlog, SEO issues |
| wp_security_postureB | Get security posture: safe mode, dry run, rate limits, IP allowlist, token age, CORS settings |
| wp_purge_cacheA | Purge site cache (LiteSpeed, WP Rocket, W3TC, etc.). confirm:true required when safe mode is enabled. |
| wp_list_blocksA | List Gutenberg blocks on a page/post as a flat index with blockName, path, and attributes preview |
| wp_update_blockB | Update Gutenberg block attributes by path or by finding block_name with optional match_text |
| wp_insert_block_patternA | Insert a Gutenberg block pattern preset (hero, faq, columns) into a page/post |
| wp_list_post_typesB | List allowed custom post types available via MCP |
| wp_list_cpt_itemsB | List items of a custom post type with optional filters |
| wp_get_cpt_itemA | Get a single custom post type item by ID |
| wp_create_cpt_itemC | Create a new item in a custom post type |
| wp_update_cpt_itemC | Update an existing custom post type item (creates snapshot before update) |
| wp_delete_cpt_itemB | Delete a custom post type item (moves to trash by default) |
| wp_list_taxonomiesA | List all public WordPress taxonomies with object types |
| wp_list_taxonomy_termsC | List terms for a taxonomy |
| wp_create_taxonomy_termC | Create a term in a taxonomy |
| wp_get_meta_catalogA | Get unified meta field catalog across ACF, AIOSEO, and other registered adapters |
| wp_get_acf_fieldsA | Get ACF field values and catalog for a post/page (requires ACF plugin) |
| wp_update_acf_fieldsB | Update ACF field values on a post/page (creates snapshot before update) |
| wp_get_page_seoA | Get SEO metadata for a page/post via All in One SEO (title, description, schema, etc.) |
| wp_update_page_seoA | Update SEO fields for a page/post via All in One SEO (creates snapshot before update) |
| wp_audit_seoA | Run SEO audit across published content (missing titles, descriptions, etc.) |
| wp_list_productsC | List WooCommerce products with optional filters |
| wp_get_productA | Get full WooCommerce product details |
| wp_create_productC | Create a new WooCommerce simple product |
| wp_update_productC | Update a WooCommerce product (creates snapshot before update) |
| wp_delete_productA | Delete a WooCommerce product (moves to trash by default) |
| wp_update_product_priceB | Update WooCommerce product pricing (regular_price, sale_price, or price alias) |
| wp_list_ordersC | List WooCommerce orders with optional filters |
| wp_get_orderA | Get full WooCommerce order details including line items and addresses |
| wp_update_orderA | Update WooCommerce order status, addresses, or line items. confirm:true required when safe mode is enabled. |
| wp_add_order_noteB | Add an admin or customer-visible note to a WooCommerce order |
| wp_refund_orderA | Create a WooCommerce order refund. confirm:true required. Requires wp_mcp_allow_wc_refunds setting. |
| wp_list_booking_productsA | List WooCommerce Bookings products (requires WooCommerce Bookings plugin) |
| wp_get_bookingA | Get a WooCommerce Booking by ID (requires WooCommerce Bookings plugin) |
| wp_list_formsA | List Ninja Forms on the site (requires Ninja Forms plugin) |
| wp_get_formA | Get Ninja Form details including fields and notification actions |
| wp_update_form_notificationsB | Update Ninja Form notification actions (email recipients, subject, message, etc.) |
| wp_list_form_submissionsB | List submissions for a Ninja Form |
| wp_list_usersC | List WordPress users with optional role and search filters |
| wp_get_userA | Get a WordPress user by ID |
| wp_list_rolesA | List WordPress roles and their capabilities |
| wp_create_userA | Create a WordPress user. confirm:true required in safe mode. Administrator role requires explicit confirm. |
| wp_list_commentsB | List WordPress comments with optional status and post filters |
| wp_moderate_commentB | Moderate a comment: approve, hold, spam, or trash. confirm required for spam/trash in safe mode. |
| wp_reply_to_commentC | Reply to a comment as the site admin |
| wp_list_sidebarsA | List registered WordPress widget sidebars |
| wp_list_widget_instancesA | List widget instances across sidebars (text and custom_html widgets are editable) |
| wp_update_widget_instanceB | Update a text or custom_html widget instance by widget ID |
| wp_list_revisionsA | List WordPress revisions for a post or page |
| wp_get_revisionC | Get revision content by revision ID |
| wp_get_revision_diffB | Diff a revision against the current post content (title, content, excerpt) |
| wp_restore_revisionA | Restore a post/page to a previous revision. confirm:true required when safe mode is enabled. |
| wp_get_snapshot_diffC | Diff an MCP snapshot against the current post content |
| wp_get_plugin_conflictsB | Detect conflicting active plugins (SEO, cache, redirect groups) |
| wp_get_plugin_updatesA | List available plugin updates from WordPress.org |
| 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. |
| wp_deactivate_pluginA | Deactivate a plugin by slug. confirm:true required when safe mode is enabled. |
| wp_list_cron_eventsA | List scheduled WordPress cron events (read-only) |
| wp_list_webhook_topicsB | List available custom MCP webhook event topics (content, WC, forms, cache, etc.) |
| wp_list_custom_webhooksA | List custom MCP outbound webhooks configured on the site |
| wp_get_custom_webhookA | Get a custom MCP webhook by ID |
| wp_create_custom_webhookA | Create a custom MCP outbound webhook. Secret is returned once on create. confirm:true required when safe mode is on. |
| wp_update_custom_webhookC | Update a custom MCP webhook (name, url, topics, enabled) |
| wp_delete_custom_webhookA | Delete a custom MCP webhook. confirm:true required when safe mode is on. |
| 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. |
| wp_list_webhook_deliveriesB | List delivery log entries for a custom MCP webhook |
| wp_list_woocommerce_webhooksA | List WooCommerce native webhooks (product/order topics) |
| wp_get_woocommerce_webhookA | Get a WooCommerce native webhook by ID |
| wp_create_woocommerce_webhookA | Create a WooCommerce native webhook. Secret returned once. confirm:true required when safe mode is on. |
| wp_update_woocommerce_webhookC | Update a WooCommerce native webhook |
| wp_delete_woocommerce_webhookA | Delete a WooCommerce native webhook. confirm:true required when safe mode is on. |
| wp_list_form_webhooksB | List Ninja Forms webhook actions on a form (requires Ninja Forms) |
| wp_create_form_webhookC | Create a Ninja Forms webhook action on a form |
| wp_update_form_webhookC | Update a Ninja Forms webhook action |
| wp_delete_form_webhookB | Delete a Ninja Forms webhook action |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/mpierre135/wp-mcp-control-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server