Title: WordPress MCP tools
Author: bethurban
Published: July 2, 2026

---

 1. [Integrations](https://docs.wpvip.com/integrations/)
 2. [Integrations Center](https://docs.wpvip.com/integrations/center/)
 3. [Secure MCP](https://docs.wpvip.com/integrations/center/secure-mcp/)
 4. [WordPress MCP](https://docs.wpvip.com/integrations/center/secure-mcp/wordpress-mcp/)
 5. WordPress MCP tools

#  WordPress MCP tools

The **[WordPress MCP](https://docs.wpvip.com/integrations/center/secure-mcp/wordpress-mcp/)**
toolset, available via **[Secure MCP](https://docs.wpvip.com/integrations/center/secure-mcp/)**,
provides built-in tools and a dynamic set of abilities that varies per site.

**Note**

Unlike the [VIP MCP](https://docs.wpvip.com/integrations/center/secure-mcp/vip-mcp/)
toolset, abilities are not separately callable. Every ability is invoked through`
wordpress_execute_ability` using a name discovered via `wordpress_discover_abilities`.

| Type | Notes | 
| read | No state change. | 
| write | State-changing, requires appropriate permissions. | 
| ⚠ write | Destructive or irreversible. Use with care. |

## Built-in tools

Always available, regardless of which abilities a site exposes.

| **Tool** | **Type** | **Description** | 
| `wordpress_discover_abilities` | read | Discover what the WordPress installation on a given environment can do. Abilities vary per site — always discover before invoking. | 
| `wordpress_get_ability_info` | read | Get the full description and input schema for a single ability on a specific environment. Use after `wordpress_discover_abilities`, before `wordpress_execute_ability`. | 
| `wordpress_execute_ability` | write | Execute an in-WordPress operation (post/page/plugin/theme/option/user/etc.) using a discovered ability name and its input. |

## VIP abilities

### Posts

| **Tool** | **Type** | **Description** | 
| `vip/posts-list` | read | List posts with filtering by status, author, categories, tags, search, slug, dates, pagination. | 
| `vip/posts-get` | read | Get any content by ID or slug — searches posts and pages automatically. Full content, meta, taxonomy terms. | 
| `vip/posts-create` | write | Create a new post. Block markup by default. Draft by default, unless publish is explicit. | 
| `vip/posts-update` | write | Update an existing post. Publishing goes live immediately — fetch first to confirm status. | 
| `vip/posts-delete` | write | Move a post to trash (recoverable). No permanent-delete via MCP; a second call on an already-trashed post returns `410` HTTP status. |

### Pages

| **Tool** | **Type** | **Description** | 
| `vip/pages-list` | read | List pages with filtering by status, author, parent (hierarchy), search, slug, dates, pagination. | 
| `vip/pages-get` | read | Get a page by ID or slug. Full content, meta, template, hierarchy. | 
| `vip/pages-create` | write | Create a new page. Draft by default — never publish a homepage without explicit instruction. | 
| `vip/pages-update` | write | Update an existing page. Publishing goes live immediately. | 
| `vip/pages-delete` | write | Move a page to trash (recoverable, 30 days). |

### Taxonomies: Categories

| **Tool** | **Type** | **Description** | 
| `vip/categories-list` | read | List categories (hierarchical taxonomy), with parent/search/slug filtering. | 
| `vip/categories-get` | read | Get a single category by ID: name, slug, parent, post count, archive link. | 
| `vip/categories-create` | write | Create a new category. | 
| `vip/categories-update` | write | Update a category. Changing slug affects archive URLs immediately. | 
| `vip/categories-delete` | ⚠ write | Permanently delete a category — no trash. Requires explicit user confirmation; posts are moved to **Uncategorized**. |

### Taxonomies: Tags

| **Tool** | **Type** | **Description** | 
| `vip/tags-list` | read | List tags (flat taxonomy), with search/slug filtering. | 
| `vip/tags-get` | read | Get a single tag by ID: name, slug, post count, archive link. | 
| `vip/tags-create` | write | Create a new tag. | 
| `vip/tags-update` | write | Update a tag. Changing slug affects archive URLs immediately. | 
| `vip/tags-delete` | ⚠ write | Permanently delete a tag — no trash. Requires explicit user confirmation. |

### Comments

| **Tool** | **Type** | **Description** | 
| `vip/comments-list` | read | List comments with filtering by post, status, author, dates. | 
| `vip/comments-get` | read | Get a single comment: content, author, dates, status, parent (for threads). | 
| `vip/comments-create` | write | Create a new comment. | 
| `vip/comments-update` | write | Update a comment. Setting status to `approve` publishes it immediately. | 
| `vip/comments-delete` | write | Move a comment to trash (recoverable). No permanent-delete. |

### Menus

| **Tool** | **Type** | **Description** | 
| `vip/menus-list` | read | List classic navigation menus with location assignments. | 
| `vip/menus-get` | read | Get a single classic menu by ID. | 
| `vip/menus-create` | write | Create a new classic navigation menu. | 
| `vip/menus-update` | write | Update a menu’s name, slug, description, or location assignments — site-wide impact. | 
| `vip/menus-delete` | ⚠ write | Permanently delete a menu and all its items — no trash. | 
| `vip/menu-items-list` | read | List items in a classic menu. | 
| `vip/menu-items-get` | read | Get a single menu item by ID. | 
| `vip/menu-items-create` | write | Add a new item to a classic menu. | 
| `vip/menu-items-update` | write | Update a menu item. Changes are visible to all visitors immediately. | 
| `vip/menu-items-delete` | ⚠ write | Permanently delete a menu item — no trash. Child items are not auto-deleted. |

### Media

| **Tool** | **Type** | **Description** | 
| `vip/media-list` | read | List media items with filtering by type, MIME type, author, parent post, dates. | 
| `vip/media-get` | read | Get a single media item: URL, dimensions, file size, alt text, sizes. | 
| `vip/media-create` | write | Upload a file (Base64) to the media library. Requires explicit user confirmation before executing. | 
| `vip/media-update` | write | Update media metadata (title, caption, alt text) — not the file itself. | 
| `vip/media-delete` | ⚠ write | Delete a media item. On hosts without trash support, this may fail permanently (`501` HTTP response) and may break posts using the image. |

### Themes and design

| **Tool** | **Type** | **Description** | 
| `vip/themes-list` | read | List installed themes with active/inactive status. | 
| `vip/theme-active` | read | Get the active theme’s stylesheet slug and name. | 
| `vip/theme-presets` | read | Get the site’s design tokens: color palette, font sizes/families, gradients, spacing scale. | 
| `vip/theme-styles` | read | Get the site’s applied styles from `theme.json` — block and element-level overrides. | 
| `vip/blocks-allowed` | read | List block types registered on the site, including supported style variations. |

### Patterns

| **Tool** | **Type** | **Description** | 
| `vip/patterns-list` | read | List available block patterns (library patterns) with metadata, not full markup. | 
| `vip/patterns-get` | read | Get a single block pattern’s full markup by name. | 
| `vip/synced-patterns-list` | read | List user-created synced (reusable) patterns, metadata only. | 
| `vip/synced-patterns-get` | read | Get a single synced pattern’s full content by ID. |

### Site search and settings

| **Tool** | **Type** | **Description** | 
| `vip/content-search` | read | Full-text search across all public post types. Published content only. | 
| `vip/site-posts-search` | read | Search posts within the current site with content/category/tag/type filters. Excludes confidential posts. | 
| `vip/site-post-get` | read | Retrieve a single post by ID or URL, with optional comments. | 
| `vip/site-settings` | read | Get comprehensive site settings: general, writing, reading, media, discussion, permalink, privacy. |

## VIP multisite abilities

### Site Editor: Templates and template parts

| **Tool** | **Type** | **Description** | 
| `vip-multisite/list-templates` | read | Returns all templates (`wp_template`) for a specific network site. Includes theme-supplied and user-customized templates. | 
| `vip-multisite/get-template` | read | Retrieves a specific template from a network site by ID (e.g., `theme-slug/index`), including full block markup. | 
| `vip-multisite/update-template` | write | Updates a template on a network site. Only include fields to change. Creates a custom override post if not yet customized. | 
| `vip-multisite/list-template-parts` | read | Returns all template parts (`wp_template_part`) for a network site: headers, footers, sidebars. | 
| `vip-multisite/get-template-part` | read | Retrieves a specific template part by ID (e.g., `theme-slug/header`), including full block markup. | 
| `vip-multisite/update-template-part` | write | Updates a template part on a network site. Creates a custom override post if not yet customized. |

### Site Editor: Synced patterns

| **Tool** | **Type** | **Description** | 
| `vip-multisite/list-patterns` | read | Returns all synced patterns (`wp_block posts`) on a network site, with optional category/sync-status filtering. | 
| `vip-multisite/get-pattern` | read | Retrieves a synced pattern by post ID, including block markup, categories, and sync status. | 
| `vip-multisite/create-pattern` | write | Creates a new synced pattern. Can be fully synced (edits propagate everywhere used) or unsynced (standard reusable pattern). | 
| `vip-multisite/update-pattern` | write | Updates title, content, sync status, or categories of an existing pattern. |

### Content

| **Tool** | **Type** | **Description** | 
| `vip-multisite/list-post-types` | read | Returns all registered post types on a network site, including custom post types with labels, capabilities, supported features. | 
| `vip-multisite/create-post` | write | Creates a post, page, or CPT entry on a network site. Supports title, content (raw HTML/blocks), status, post type. | 
| `vip-multisite/get-post` | read | Retrieves a post/page/CPT entry by ID, including content, status, custom fields, edit URL. | 
| `vip-multisite/update-post` | write | Updates title, content, status, custom fields, or other fields of an existing entry. | 
| `vip-multisite/list-posts` | read | Paginated list of posts/pages/CPT entries on a network site, with status/search filtering. |

### Site options

| **Tool** | **Type** | **Description** | 
| `vip-multisite/get-site-option` | read | Reads one or more WordPress options (`get_option`) from a network site — reading, discussion, permalink, media, homepage settings, etc. | 
| `vip-multisite/update-site-option` | write | Writes one or more options (`update_option`) on a network site. Only allowlisted keys may be written (common reading/discussion/permalink/media/homepage settings, including `show_on_front`, `page_on_front`, `page_for_posts`). Non-allowlisted keys are skipped with a reason. |

### Network sites

| **Tool** | **Type** | **Description** | 
| `vip-multisite/list-sites` | read | Returns all sites registered in the multisite network. | 
| `vip-multisite/create-site` | write | Creates a new site in the multisite network. | 
| `vip-multisite/get-site` | read | Returns detailed information about a specific network site. | 
| `vip-multisite/update-site` | write | Updates settings (name, description, public visibility) for a network site. |

### Themes

| **Tool** | **Type** | **Description** | 
| `vip-multisite/list-themes` | read | Returns all themes installed on the network, including which are network-enabled. | 
| `vip-multisite/activate-theme` | write | Activates a theme on a specific network site, network-enabling it first if necessary. |

### Network users

| **Tool** | **Type** | **Description** | 
| `vip-multisite/list-network-users` | read | Returns all users registered in the multisite network. | 
| `vip-multisite/add-user-to-site` | write | Adds an existing network user to a specific site with a given role. | 
| `vip-multisite/create-network-user` | write | Creates a new user account on the multisite network. |

### Network plugins

| **Tool** | **Type** | **Description** | 
| `vip-multisite/list-network-plugins` | read | Returns all plugins that are network-activated across the multisite. |

## Jetpack abilities

Every WordPress site on the VIP Platform is [provisioned with Jetpack](https://docs.wpvip.com/wordpress-on-vip/jetpack/)
by default.

| **Tool** | **Type** | **Description** | 
| `jetpack-forms/list-forms` | read | List all forms with admin detail: response counts, status, edit URLs. Supports pagination, search, status filtering. | 
| `jetpack-forms/get-form` | read | Get a single form with full structure: field definitions, status, edit URL. | 
| `jetpack-forms/create-form` | write | Create a new form with a title. Optional block content for form structure. Returns new form ID and edit URL. | 
| `jetpack-forms/delete-form` | write | Move a form to trash. Not permanent; trashed forms can be restored. | 
| `jetpack-forms/get-responses` | read | List or search form responses: sender info, form fields, metadata. Filter by status, date range, read state, search. | 
| `jetpack-forms/update-response` | write | Modify a form response: mark spam, trash, restore, toggle read/unread. | 
| `jetpack-forms/bulk-update-responses` | write | Mark multiple responses as spam (or restore) in one call. Per-ID success/failure reporting. Teaches [Jetpack Akismet Anti-Spam](https://jetpack.com/upgrade/anti-spam/) from successful updates. | 
| `jetpack-forms/get-status-counts` | read | Summary of form responses grouped by status (inbox/spam/trash). Useful for dashboards. |

Last updated: July 02, 2026