All 207 WordPress MCP Tools
Complete reference for every tool in mumcp. Each tool is accessible via the MCP protocol from any compatible AI client — Claude, Cursor, Windsurf, and more.
207 tools · 207 tools · 15 categories · Free for all WordPress sites
Jump to Category
- Content Management (21 tools)
- Gutenberg Blocks (4 tools)
- SEO (5 tools)
- Navigation & Menus (13 tools)
- Elementor (8 tools)
- Elementor Templates & Code (10 tools)
- Theme Builder (5 tools)
- Widgets & Sidebars (10 tools)
- Forms (4 tools)
- Webhooks (7 tools)
- API Keys & Security (6 tools)
- Multilingual (4 tools)
- Site & Settings (24 tools)
📝 Content Management (21 tools)
Create, update, search, and manage posts, pages, drafts, and media
| Tool | Description | Parameters |
|---|---|---|
wp_list_mediaREAD | List media library items with URLs, titles, and MIME types. Supports pagination and filtering. | ○ per_page (number)○ page (number)○ mime_type (string) |
wp_list_contentREAD | List content for any post type (e.g., WooCommerce products) with search and pagination | • post_type (string)○ status (string)○ search (string)○ per_page (number)○ page (number) |
wp_delete_contentDELETE | Delete a single content item by post type and ID (supports CPT like product) | • post_type (string)• id (number)○ force (boolean) |
wp_searchREAD | Search posts and pages by query string with pagination and status filters | • query (string)○ type (string)○ status (string)○ per_page (number)○ page (number) |
wp_fetchREAD | Fetch a single post or page by ID or URL | ○ id (number)○ url (string)○ type (string)○ include_content (boolean) |
wp_list_postsREAD | List blog posts with optional filters for status, category, search, and pagination | ○ per_page (number)○ page (number)○ status (string)○ category (number)○ search (string) |
wp_create_postWRITE | Create a new blog post. Defaults to draft status. Set status to “publish” to publish immediately. | • title (string)○ content (string)○ status (string)○ excerpt (string) |
wp_update_postWRITE | Update an existing blog post | • id (number)○ title (string)○ content (string)○ status (string)○ excerpt (string) |
wp_delete_postDELETE | Delete a blog post | • id (number)○ force (boolean) |
wp_list_pagesREAD | List pages with optional filters for status, search, and pagination | ○ per_page (number)○ page (number)○ status (string)○ search (string) |
wp_create_pageWRITE | Create a new page. Defaults to draft status. | • title (string)○ content (string)○ status (string) |
wp_update_pageWRITE | Update an existing page | • id (number)○ title (string)○ content (string)○ status (string) |
wp_delete_pageDELETE | Delete a page (moves to trash by default, use force for permanent deletion) | • id (number)○ force (boolean) |
wp_clone_pageWRITE | Duplicate a page including its content, Elementor data, template, and featured image | • id (number)○ title (string)○ status (string) |
wp_get_page_by_slugREAD | Fetch a page by its URL slug (e.g., “about”, “contact”) | • slug (string) |
wp_upload_mediaWRITE | Upload a media file (image, video, etc.) to the WordPress media library | • file (string)• name (string) |
wp_upload_media_from_urlWRITE | Upload a media file from a URL | • url (string) |
wp_upload_media_b64WRITE | Upload a media file from Base64 encoded data. Safer than multipart uploads on shared hosting (bypasses ModSecurity). | • data (string)• filename (string)○ title (string)○ alt (string) |
wp_list_draftsREAD | List all draft posts and pages | ○ type (string) |
wp_delete_all_draftsDELETE | Delete all draft posts and pages (use with caution) | ○ type (string)○ force (boolean) |
wp_create_landing_pageWRITE | Create a new landing page with Elementor | • title (string)○ template_id (number) |
🧱 Gutenberg Blocks (4 tools)
Read, write, and manage Gutenberg blocks and block patterns
| Tool | Description | Parameters |
|---|---|---|
wp_get_blocksREAD | Get parsed Gutenberg blocks for a post or page. Returns structured block data (blockName, attrs, innerBlocks, innerHTML) | • id (number) |
wp_set_blocksWRITE | Set Gutenberg blocks for a post or page. Provide either a blocks array (serialized automatically) or raw block content s | • id (number)○ blocks (array)○ content (string) |
wp_list_block_typesREAD | List all registered Gutenberg block types with name, title, category, description, and supported features. Use this to d | none |
wp_list_block_patternsREAD | List all registered block patterns with name, title, categories, and content. Patterns are pre-built block layouts that | none |
📈 SEO (5 tools)
SEO metadata management with Yoast, RankMath, AIOSEO, and SEOPress
| Tool | Description | Parameters |
|---|---|---|
wp_get_seoREAD | Get SEO metadata for a specific page or post (Yoast, Rank Math, etc.) | • id (number) |
wp_set_seoWRITE | Set SEO metadata for a specific page or post | • id (number)○ seo_title (string)○ seo_description (string)○ focus_keyword (string) |
wp_analyze_seoREAD | Analyze SEO for a specific page or post | • id (number) |
wp_bulk_seoWRITE | Update SEO metadata for multiple posts/pages | • items (array) |
wp_seo_statusREAD | Get SEO plugin status and configuration | none |
🧭 Navigation & Menus (13 tools)
Create and manage WordPress navigation menus and menu items
| Tool | Description | Parameters |
|---|---|---|
wp_list_menusREAD | List all navigation menus (including unassigned ones) with id, name, slug, and item count | none |
wp_list_menu_locationsREAD | List theme menu locations and which menus are assigned | none |
wp_setup_menuWRITE | Create a menu, add page links, and assign it to a theme menu location | • name (string)○ location (string)○ page_ids (array)○ overwrite (boolean) |
wp_list_menu_itemsREAD | List all items in a menu with their titles, URLs, types, and parent/child relationships | • menu_id (number) |
wp_add_menu_itemWRITE | Add a menu item: custom link (any URL), post type (page, post, product), or taxonomy (category, tag). Supports sub-menus | • menu_id (number)• title (string)○ type (string)○ url (string)○ object (string)○ object_id (number)○ parent_id (number)○ position (number)○ classes (array)○ target (string)○ description (string) |
wp_update_menu_itemWRITE | Update an existing menu item: rename its title, change URL, move to different parent, or reposition | • menu_id (number)• item_id (number)○ title (string)○ url (string)○ parent_id (number)○ position (number)○ classes (array)○ target (string)○ description (string) |
wp_delete_menu_itemDELETE | Remove a single item from a menu | • menu_id (number)• item_id (number) |
wp_reorder_menu_itemsWRITE | Bulk reorder and reparent menu items in a single call | • menu_id (number)• items (array) |
wp_delete_menuDELETE | Delete an entire navigation menu and all its items | • menu_id (number) |
wp_assign_menu_locationWRITE | Assign a menu to a theme menu location without modifying menu items | • menu_id (number)• location (string) |
wp_get_menuREAD | Get a single menu with all items, assigned locations, and metadata | • id (number) |
wp_create_menuWRITE | Create a navigation menu with initial items and optional location assignment | • name (string)○ location (string)○ items (array) |
wp_update_menuWRITE | Rename a menu or change its theme location assignment | • id (number)○ name (string)○ location (string) |
🎨 Elementor (8 tools)
Full Elementor page builder control including widgets, CSS, and landing pages
| Tool | Description | Parameters |
|---|---|---|
wp_get_elementorREAD | Get Elementor page data for a specific page or post | • id (number) |
wp_set_elementorWRITE | Set Elementor page data for a specific page or post | • id (number)• elementor_data (string) |
wp_elementor_statusREAD | Check if Elementor is active and get Elementor status information | none |
wp_regenerate_elementor_cssWRITE | Regenerate Elementor CSS for a specific page or the entire site. Use after updating Elementor data via API to ensure sty | ○ id (number) |
wp_clone_elementor_pageWRITE | Clone an Elementor page | • source_id (number)• title (string) |
wp_get_elementor_globalsREAD | Get Elementor global settings (colors, fonts, etc.) | none |
wp_set_elementor_globalsWRITE | Set Elementor global settings (colors, typography, button styles, etc.). Merges with existing kit settings. | ○ system_colors (array)○ custom_colors (array)○ system_typography (array)○ custom_typography (array) |
wp_get_elementor_widgetsREAD | Get list of available Elementor widgets | none |
📋 Elementor Templates & Code (10 tools)
Elementor template system and custom code management
| Tool | Description | Parameters |
|---|---|---|
wp_list_elementor_templatesREAD | List all Elementor templates | none |
wp_get_elementor_templateREAD | Get a single Elementor template (Theme Builder template lives in elementor_library) | • id (number) |
wp_create_elementor_templateWRITE | Create a new Elementor template (Theme Builder template lives in elementor_library) | • title (string)• type (string)○ elementor_data (array) |
wp_update_elementor_templateWRITE | Update an Elementor template | • id (number)○ title (string)○ elementor_data (array) |
wp_delete_elementor_templateDELETE | Delete an Elementor template | • id (number)○ force (boolean) |
wp_apply_elementor_templateWRITE | Apply an Elementor template to a page | • template_id (number)• page_id (number) |
wp_list_elementor_custom_codeREAD | List Elementor Pro Custom Code snippets (admin) | ○ per_page (number)○ page (number)○ status (string)○ search (string) |
wp_disable_elementor_custom_codeWRITE | Disable an Elementor Pro Custom Code snippet (sets status to draft) | • id (number) |
wp_enable_elementor_custom_codeWRITE | Enable an Elementor Pro Custom Code snippet (sets status to publish) | • id (number) |
wp_sanitize_elementor_custom_codeWRITE | Sanitize an Elementor Pro Custom Code snippet by stripping // tags from meta values | • id (number) |
🏗️ Theme Builder (5 tools)
Elementor Pro Theme Builder templates, conditions, and assignments
| Tool | Description | Parameters |
|---|---|---|
wp_theme_builder_statusREAD | Get Theme Builder availability, registered locations, and which templates are assigned | none |
wp_list_theme_templatesREAD | List Theme Builder templates (header, footer, single, archive, etc.) with their display conditions | ○ type (string) |
wp_get_theme_templateREAD | Get a single Theme Builder template with its current display conditions | • id (number) |
wp_set_template_conditionsWRITE | Set display conditions on a Theme Builder template. Conditions are arrays like [“include”,”general”,”singular”,”post”] o | • id (number)• conditions (array) |
wp_assign_templateWRITE | Shortcut to assign a Theme Builder template to a scope (entire_site, all_singular, all_archive, specific_posts, specific | • id (number)○ scope (string)○ post_type (string)○ post_ids (array) |
📦 Widgets & Sidebars (10 tools)
Manage widget areas, add/update/reorder widgets
| Tool | Description | Parameters |
|---|---|---|
wp_list_sidebarsREAD | List all registered widget areas (sidebars) with widget counts | none |
wp_get_sidebarREAD | Get a single sidebar with its widgets | • id (string) |
wp_get_sidebar_widgetsREAD | Get all widgets in a specific sidebar | • id (string) |
wp_get_widget_typesREAD | List all available widget types that can be added to sidebars | none |
wp_get_widgetREAD | Get a single widget by ID with its settings | • id (string) |
wp_add_widgetWRITE | Add a widget to a sidebar | • id (string)• type (string)○ settings (object)○ position (number) |
wp_update_widgetWRITE | Update widget settings | • id (string)• settings (object) |
wp_delete_widgetDELETE | Delete a widget from its sidebar and remove its settings | • id (string) |
wp_move_widgetWRITE | Move a widget to a different sidebar | • id (string)• sidebar (string)○ position (number) |
wp_reorder_widgetsWRITE | Reorder widgets within a sidebar | • id (string)• widgets (array) |
📝 Forms (4 tools)
Form management for CF7, WPForms, Gravity Forms, and Ninja Forms
| Tool | Description | Parameters |
|---|---|---|
wp_list_formsREAD | List all forms from supported plugins (Contact Form 7, WPForms, Gravity Forms) | none |
wp_get_formREAD | Get form details from a specific form plugin | • plugin (string)• id (number) |
wp_get_form_entriesREAD | Get form entries/submissions from a specific form | • plugin (string)• id (number) |
wp_forms_statusREAD | Get status of all installed form plugins | none |
🔗 Webhooks (7 tools)
Event subscriptions, webhook management, delivery logs
| Tool | Description | Parameters |
|---|---|---|
wp_list_webhook_eventsREAD | List available webhook event names | none |
wp_list_webhooksREAD | List webhooks with optional filters | ○ status (string)○ per_page (number)○ page (number) |
wp_create_webhookWRITE | Create a webhook endpoint subscription | • name (string)• url (string)• events (array)○ secret (string) |
wp_update_webhookWRITE | Update an existing webhook | • id (number)○ name (string)○ url (string)○ events (array)○ status (string)○ secret (string) |
wp_delete_webhookDELETE | Delete a webhook | • id (number) |
wp_test_webhookWRITE | Send a test delivery for a webhook | • id (number) |
wp_list_webhook_logsREAD | List delivery logs for a webhook | • id (number)○ per_page (number)○ page (number) |
🔐 API Keys & Security (6 tools)
Scoped API key management and rate limiting
| Tool | Description | Parameters |
|---|---|---|
wp_list_api_keysREAD | List scoped API keys (metadata only) | ○ include_revoked (boolean) |
wp_create_api_keyWRITE | Create a scoped API key and return plaintext value once | ○ label (string)○ scopes (array) |
wp_revoke_api_keyDELETE | Revoke a scoped API key by id | • id (string) |
wp_rate_limit_statusREAD | Get current rate-limit settings and usage for the calling identifier | none |
wp_update_rate_limitWRITE | Update rate-limit settings (admin only) | ○ enabled (boolean)○ requests_per_minute (number)○ requests_per_hour (number)○ burst_limit (number)○ whitelist (array) |
wp_reset_rate_limitDELETE | Reset rate-limit counters for an identifier (admin only) | • identifier (string) |
🌐 Multilingual (4 tools)
Translation and multilingual content management
| Tool | Description | Parameters |
|---|---|---|
wp_languagesREAD | Get multilingual plugin status and available languages | none |
wp_set_languageWRITE | Set current language for subsequent translation operations | • language (string) |
wp_get_translationsREAD | Get translations for a post or page | • id (number)○ type (string) |
wp_create_translationWRITE | Create a translation for a post or page in a target language | • id (number)○ type (string)• language (string)○ title (string)○ content (string)○ excerpt (string)○ status (string) |
⚙️ Site & Settings (24 tools)
Site info, options, CSS, feedback, screenshots, and configuration
| Tool | Description | Parameters |
|---|---|---|
wp_site_infoREAD | Get WordPress site information including name, URL, version, theme, active plugins, and content counts | none |
wp_introspectREAD | Get a machine-readable description of this plugin (auth, endpoints, tools, capabilities) so AI clients can self-configur | none |
wp_analyticsREAD | Get site analytics including post counts, page counts, comment counts, and user counts | ○ days (number) |
wp_detect_pluginsREAD | Detect active plugins and available capabilities (Elementor, WooCommerce, SEO plugins, etc.) | none |
wp_get_optionsREAD | Get WordPress reading options (front page, posts page, and related settings) | none |
wp_update_optionsWRITE | Update WordPress reading options (set static homepage, posts page, visibility) | ○ show_on_front (string)○ page_on_front (number)○ page_for_posts (number)○ blog_public (boolean) |
wp_get_site_contextREAD | Get the site context — a master prompt / style guide that defines design rules, header/footer structure, color palette, | none |
wp_set_site_contextWRITE | Set the site context (AI brief). This is a markdown document that tells AI assistants how to build pages for this site: | • context (string) |
wp_get_custom_cssREAD | Get the Additional CSS from the WordPress Customizer. Returns the full CSS string currently applied to the site. | none |
wp_set_custom_cssWRITE | Set or append CSS to the WordPress Customizer Additional CSS. Use mode “append” to add new rules without removing existi | • css (string)○ mode (string) |
wp_update_page_templateWRITE | Change a page template (e.g., default, elementor_header_footer, elementor_canvas) | • id (number)• template (string) |
wp_list_page_templatesREAD | List all available page templates for the active theme | none |
wp_bulk_find_replaceWRITE | Search and replace text in Elementor data for a given post or page | • id (number)• search (string)• replace (string) |
wp_set_featured_imageWRITE | Set or remove the featured image (thumbnail) for a post or page | • id (number)• media_id (number) |
wp_list_categoriesREAD | List post categories with IDs, names, slugs, and post counts | ○ per_page (number)○ search (string)○ parent (number) |
wp_list_tagsREAD | List post tags with IDs, names, slugs, and post counts | ○ per_page (number)○ search (string) |
wp_batch_updateWRITE | Execute multiple REST API operations in a single request (max 25). Each operation specifies method, path, and body. | • operations (array) |
wp_screenshot_urlWRITE | Take a screenshot of a URL. Uses Cloudflare Browser Rendering (headless Chromium) if configured, otherwise falls back to | • url (string)○ width (number)○ height (number)○ save_to_media (boolean) |
wp_submit_feedbackWRITE | Submit feedback, a bug report, or a feature request to the site owner. Optionally creates a GitHub issue if configured. | • type (string)• title (string)• description (string)○ priority (string)○ meta (object) |
wp_list_feedbackREAD | List submitted feedback entries with optional filters for type and status | ○ type (string)○ status (string)○ limit (number) |
wp_get_post_metaREAD | Get post meta for a post or page. Returns a single key or all non-sensitive meta. | • id (number)○ key (string) |
wp_set_post_metaWRITE | Set a single post meta value. Blocked keys (passwords, secrets, internal WP keys) are rejected. | • id (number)• key (string)• value (string) |
wp_get_optionREAD | Get a single WordPress option by key. Only whitelisted safe keys are accessible (blogname, blogdescription, show_on_fron | • key (string) |
wp_update_optionWRITE | Update a single WordPress option by key. Only whitelisted safe keys are allowed (blogname, blogdescription, show_on_fron | • key (string)• value (string) |
Ready to Use These 207 Tools?
Install mumcp and connect your AI assistant in under 5 minutes.