Skip to content
Professional WordPress Development · High-Performance Website Building · Server Optimization · Comprehensive Website Support · One-Stop Super Service Platform
Menu

WordPress AI Editor Plugin: Let AI Assistants Directly Edit Websites with MCP

Article summary

Introduce how the MCP Expose Abilities plugin connects AI assistants with WordPress through the Model Context Protocol, covering applicable scenarios, installation sequence, core capabilities, security mechanisms, common issues, and version changes.

MCP-exposed capabilities are a type of AI editing plugin solution for WordPress: it exposes posts, pages, menus, media, plugins, comments, options, and other capabilities to AI assistants via MCP, so you no longer copy and paste back and forth between the chat window and wp-admin backend, but directly describe the goal, let the agent execute, and then verify the result.

Plugin Information:Test result: 7.0 Stable tag: 3.0.76 License: GPLv2 or later License URI: https://www.gnu.org/licenses/gpl-2.0.html

What it does

This plugin exposes WordPress functionality through MCP (Model Context Protocol), enabling AI assistants to interact directly with your WordPress site. No more copying and pasting between chat and admin.

Example: “Fix phone numbers in these 25 posts as clickable tel: links.” — done in 30 seconds, all 25 posts.

The real workflow

In practice, humans shouldn't have to remember the entire ecosystem.

The normal model is:

Point Codex or another MCP-capable agent to this repository

Let the agent read the README and wiki

Let the agent figure out the required stack and related plugins

Give the agent a task with clear boundaries

The human's job is mainly to describe the goal. The agent's job is to figure out the mechanics.

Why it feels different

Most WordPress AI demos still make you do the boring parts yourself.

This ecosystem is different because the agent can actually accomplish work inside WordPress:

Fix duplicate content issues across multiple pages

Update menus, media, plugins, comments, and options

Use real builders and plugin ecosystems like Elementor, GeneratePress, Rank Math, and Wordfence

Dealing with that kind of website maintenance people usually put off because it’s repetitive and tedious

This changes the experience:

Here is what you should do in wp-admin

To:

Tell the agent what needs doing, and let it carry out the work

Before vs After

Before

Asking AI what to do

Manually copying the answer into WordPress

Clicking through wp-admin to find repetitive sections

Losing motivation because the task is boring

Putting off cleanup, maintenance, or optimization once again

After

Telling the agent what needs to be done

Letting it inspect the site directly

Letting it make targeted changes

Verifying the results

Moving on to the next useful improvement instead of getting stuck in administrative drudgery

This difference is exactly what lies at the core of this ecosystem.

Who This Is For

It’s a great fit for:

Agencies managing many WordPress sites

Companies with duplicated content and operations

Organizations that want AI to perform real maintenance, not just generate text

Technical teams tired of the copy-paste workflow between chat and wp-admin

It is especially useful when work is postponed just because the manual version is boring.

If you want to see more specific buyer cases, start here:

Who benefits the most

Documentation

For setup and troubleshooting beyond the quick start, use the wiki:

Why teams use it

Use cases

Who This Is For

Who benefits the most

Alternatives

Getting started guide

Installation order and dependencies

First working MCP connection

Which plugin do I need?

Troubleshooting

Examples

If you are using an AI agent, the simplest command is usually:

Read https://github.com/bjornfix/mcp-expose-abilities and figure out the stack before making changes.

Start here

If you are new to the stack, use the following order:

Installing API capabilities

Install MCP Adapter

Install the MCP Expose Abilities plugin (this plugin)

Confirm you can list and execute core abilities

Only add vendor-specific plugins that you actually need

If you skip step 4 and start installing add-ons right away, troubleshooting will become harder than necessary.

What you really need

For a minimal working setup, you only need:

WordPress 6.9+

PHP 8.0+

API Abilities

MCP Adapter

MCP Expose Abilities (this plugin)

Everything else in the ecosystem is optional.

5-minute setup

Install and activate the required plugins:

API Abilities:https://github.com/WordPress/abilities-api/releases/latest

MCP Adapter:https://github.com/WordPress/mcp-adapter

MCP Expose Abilities: Download latest version from this repo

Verify that the Abilities API plugin is installed as wp-content/plugins/abilities-api/abilities-api.php

Activate all three plugins in WordPress

Confirm that the MCP adapter route is accessible on your site

First, run a simple read-only function, such as listing posts or reading a page

First successful check

Before adding Elementor, Cloudflare, Gmail, or anything else, make sure the core stack is working properly.

Good initial tests:

List posts

Get page by ID

List menus

List installed plugins

If these work, the stack is wired correctly. If not, fix the core stack before adding add-ons.

Modular architecture

Version 3.0 introduces a modular architecture. The core plugin provides native WordPress functionality, while vendor-specific features are available as separate add-on plugins:

PluginCapabilityDescription
MCP Exposure Capability (core)69WordPress core: content, menus, users, media, widgets, plugins, options, comments, taxonomy, system
MCP Capability - File System11File operations with security hardening
MCP Capability - Elementor40Elementor page builder integration
MCP Capability - GeneratePress26Generate Print Theme + Generate Blocks
MCP capabilities - Cloudflare4Cloudflare cache management
MCP capabilities - Google Workspace16Gmail API via workspace service account
MCP capabilities - Rank Math23Rank Math SEO metadata access
MCP capabilities - Wordfence11Wordfence security status + blocks
MCP capabilities - Brevo22Brevo contacts, lists, campaigns
MCP capabilities - Advanced Ads17Advanced Ads management
MCP capabilities - Toolset38Toolset post types, custom fields, taxonomies, relationships
MCP capabilities - SitePress10WPML translation mapping, language switcher recovery and QA checks
MCP capabilities - Formidable6Form settings, usage tracking, styles and CSS cache controls
MCP capabilities - Store Locator9Store locator settings, templates, store records, categories, and temporary cleanup

Entire ecosystem: 298 capabilities

Install only what you need. Running GeneratePress? Install that plugin. Not using Elementor? Skip it.

Requirements

WordPress 6.9+

PHP 8.0+

API Capabilities Plugin (WordPress Core Team)

MCP Adapter Plugin (WordPress Core Team)

Use the official Capabilities API version ZIP (abilities-api.zip) so it installs as wp-content/plugins/abilities-api/abilities-api.php

WordPress Compatibility

Requires WordPress 6.9 or higher

Tested up to WordPress 7.0

Requires PHP 8.0 or higher

Maintained for the WordPress 6.9 version line and supported additional plugins

Installation

Install and activate the required plugins:

Capabilities API (Official Release ZIP):https://github.com/WordPress/abilities-api/releases/latest

MCP Adapter:https://github.com/WordPress/mcp-adapter

Download the latest version from Releases

Upload via WordPress admin → Plugins → Add New → Upload Plugin

Activate the plugin

(Optional) Install additional plugins for vendor-specific capabilities

Which plugin should I install?

Install add-ons only if your site actually uses that product:

Elementor site: Install mcp-abilities-elementor

GeneratePress/GenerateBlocks site: Install mcp-abilities-generatepress

Cloudflare-managed site: Install mcp-abilities-cloudflare

Gmail/Workspace automation: Install mcp-abilities-workspace

Rank Math site: Install mcp-abilities-rankmath

Wordfence site: Install mcp-abilities-wordfence

Brevo site: Install mcp-abilities-brevo

Toolset site: Install mcp-abilities-toolset

WPML site: Install mcp-abilities-sitepress

Formidable Forms site: Install mcp-abilities-formidable

Store Locator site: Install mcp-abilities-store-locator

By default, do not install every add-on. Most sites only need one or two.

Common failure patterns

The most common onboarding mistake is treating it as a plugin rather than a stack.

When something doesn't work, check in the following order:

Is the API ability active?

Is the MCP adapter active?

Is the MCP exposure ability active?

Can the core plugin work without any add-ons?

Is the vendor plugin itself installed and active?

Then debug specific plugins.

Recent changes

3.0.75

Added comments/update-author-url to narrowly update or clear a comment author URL via per-comment permission checks and write validation.

3.0.50

Security: plugins/update can only run through MCP with explicitly confirmed Devenia manifest management packages; generic plugin code writes remain disabled by default.

3.0.49

Security: options/update now blocks the theme bootstrap options template and stylesheet.

3.0.48

Security: Plugin code writing is disabled by default unless server-side configuration explicitly enables MCP_EXPOSE_ENABLE_PLUGIN_CODE_WRITES.

Security: When plugin code writes are enabled, WordPress.org plugin installations, plugin updates, and plugin deletions now require explicit per-capability confirmation.

3.0.47

Security: MCP transport and generic execution capability entry points now default to manage_options via adapter capability filters.

Security: High-risk plugins/upload, plugins/upload-base64, and options/update calls now require explicit per-capability confirmation.

3.0.46

Improved generic post meta writing with a post-meta write strategy interface that has a filterable protected key registry.

Added a local capability contract utility to verify before side effects that protected Elementor meta writes are denied.

3.0.45

Security: Generic content/meta capabilities now block protected Elementor meta keys and require dedicated elementor/* Elementor document write capabilities.

Changed plugin ZIP upload to use the WordPress core Plugin_Upgrader instead of direct plugin directory unzip/copy operations.

3.0.44

Fixed plugins/update so that plugins active before a WordPress native update are reactivated if WordPress leaves them inactive after the upgrader runs.

Added active_before, active_after, and reactivated fields to the plugins/update response.

3.0.43

Fixed: plugins/upload no longer defines a temporary get_current_screen() stub, avoiding a fatal redeclaration when WordPress loads admin screen helpers during REST/MCP plugin installation.

3.0.42

Improved plugins/list efficiency with a search filter parameter and null-safe handling of no-parameter input.

3.0.41

Fixed broad content update and patch capabilities so that they prevent accidental removal of existing GenerateBlocks/design markup unless explicitly overridden.

3.0.40

Added content/update-discussion-status to toggle comments and pings on a post/page.

3.0.39

Added media/upload-base64 for uploading local or generated media files into the WordPress media library via MCP.

3.0.38

Added date support to content/update-post for updating local post dates.

Added post meta support via content/create-post, content/update-post, meta/update-post-meta, and meta/delete-post-meta.

Security: Post meta writes now check edit_post_meta / delete_post_meta by key before modifying meta.

3.0.37

Docs: Removed stray Claude mention from README workflow wording.

3.0.36

Fixed plugins/search-directory so WordPress.org search results are correctly populated when the API returns array-shaped plugin rows.

Fixed plugins/list-updates so it rejects execution parameters via MCP proxy, like the old null-safe list function.

3.0.35

Added plugins/search-directory to search the official WordPress.org plugin directory from MCP.

Added plugins/install-directory to install WordPress.org plugins by slug.

Added plugins/list-updates and plugins/update for discovery and execution of native WordPress plugin updates.

Added plugins/switch with rollback on target activation failure to switch between installed plugins.

3.0.34

Docs: Added clearer GitHub onboarding path: Start Here, setup order, first success check, and add-on selection guide.

Docs: Added explicit WordPress and PHP compatibility notes.

Docs: Corrected ecosystem plugin and ability counts to include Formidable plugins and current Elementor and Rank Math totals.

Docs: Replaced outdated hardcoded Abilities API ZIP URL with a generic latest-release link.

Docs: Fixed GitHub release badge to follow the actual latest version.

3.0.33

Validate local plugin ZIP signature integrity before extraction; plugins/upload or plugins/upload-base64 payloads fail with a direct ZIP verification error if corrupted.

Intended to pair with an MCP proxy HTTP transport fix that increases the default JSON body limit for large base64 plugin uploads.

Core plugin capabilities (69)

Content management (25)

CapabilityDescription
content/list-postsList posts filtered by status, category, author, search
content/get-postGet a single post by ID or slug
content/get-next-postFind the next existing post after an ID, even if IDs have gaps
content/create-postCreate a new post, including featured_image_id
content/update-postUpdate an existing post, including featured_image_id
content/delete-postDelete a post (trash or permanent)
content/restore-postRestore a post, page, or custom post type from trash
content/patch-postFind/replace post content
content/list-pagesList pages with filtering capabilities
content/get-pageGet a single page by ID or slug
content/create-pageCreate a new page, including featured_image_id
content/update-pageUpdate an existing page, including featured_image_id
content/update-discussion-statusToggle comments and pings on a post/page
content/delete-pageDelete a page
content/patch-pageFind/replace in page content
content/list-categoriesList all categories
content/create-categoryCreate a new category
content/update-categoryUpdate an existing category
content/list-tagsList all tags
content/create-tagCreate a new tag
content/list-mediaList media items
content/list-usersList users
content/searchSearch across posts, pages, media
content/list-revisionsList revisions for posts/pages
content/get-revisionGet specific revision details

Menu Management (8)

CapabilityDescription
menus/listList all menus and theme locations
menus/get-itemsGet items from a menu
menus/createCreate a new menu
menus/add-itemAdd items to a menu
menus/update-itemUpdate a menu item
menus/upsert-itemCreate or update an item by object ID or custom URL
menus/delete-itemDelete a menu item
menus/assign-locationAssign a menu to a theme location

User Management (5)

CapabilityDescription
users/listList users with roles
users/getGet a user by ID, login, or email
users/createCreate a new user
users/updateUpdate a user
users/deleteDelete a user (can reassign content)

Media Library (4)

CapabilityDescription
media/uploadUpload media from URL
media/getGet details and sizes of a media item
media/updateUpdate title, alt, caption
media/deleteDelete a media item

Widget management (3)

CapabilityDescription
widgets/list-sidebarsList all widget areas
widgets/get-sidebarGet widgets in a sidebar
widgets/list-availableList available widget types

Plugin management (11)

CapabilityDescription
plugins/uploadUpload a plugin from a URL
plugins/upload-base64Upload a plugin from a local file (base64 or zip path)
plugins/search-directorySearch the official WordPress.org plugin directory
plugins/install-directoryInstall a plugin from the official WordPress.org plugin directory by slug
plugins/listList installed plugins
plugins/list-updatesList available plugin updates
plugins/updateUpdate installed plugins
plugins/activateActivate installed plugins
plugins/deactivateDeactivate active plugins
plugins/switchActivate one plugin and deactivate one or more others
plugins/deleteDelete inactive plugins

Comments (7)

CapabilityDescription
comments/listList comments with filtering capabilities
comments/getGet a single comment's details
comments/update-author-urlUpdate or clear a comment author URL
comments/createCreate a top-level comment
comments/replyReply to an existing comment
comments/update-statusUpdate comment status (approve, spam, trash)
comments/deleteDelete a comment

Options (3)

CapabilityDescription
options/getGet option value
options/updateUpdate option (protected options are blocked)
options/listList all options

System (4)

CapabilityDescription
system/get-transientGet transient value
system/ability-timingsRead recent slow or failed capability timings
system/debug-logRead the debug.log file
system/toggle-debugToggle WP_DEBUG, WP_DEBUG_LOG, WP_DEBUG_DISPLAY

Taxonomy Utilities (1)

CapabilityDescription
taxonomy/associate-with-post-typeAssociate taxonomy with a post type and maintain mapping

Plugin Capabilities

File System (MCP capability filesystem) - 11 capabilities

CapabilityDescription
filesystem/get-changelogGet plugin/theme changelog
filesystem/read-fileRead file contents (enhanced security)
filesystem/write-fileWrite file (PHP code blocked)
filesystem/append-fileAppend to file
filesystem/list-directoryList directory contents
filesystem/delete-fileDelete file (create backup)
filesystem/delete-directoryDelete directory (recursive optional)
filesystem/file-infoGet file metadata
filesystem/create-directoryCreate directory
filesystem/copy-fileCopy file
filesystem/move-fileMove/rename file

Element (mcp capability element) - 40 capabilities

For the full list, see the attached file readme. Common capabilities:

CapabilityDescription
elementor/get-dataGet page elements or JSON
elementor/update-dataReplace JSON elements
elementor/patch-dataFind/replace in Elementor JSON
elementor/update-elementUpdate specific element by ID
elementor/list-templatesList saved templates
elementor/clear-cacheClear CSS cache

Generate stress (mcp capability generate stress) - 26 capabilities

For the full list, see the attached file readme. Common capabilities:

CapabilityDescription
generatepress/get-settingsGet theme settings
generatepress/update-settingsUpdate theme settings
generatepress/get-typographyGet typography rules and font manager
generatepress/list-elementsList generator print elements
generatepress/list-modulesList module status
generateblocks/get-global-stylesGet global style
generateblocks/update-global-stylesUpdate global styles
generateblocks/clear-cacheClear CSS cache

Cloudflare (mcp capability Cloudflare) - 4 capabilities

CapabilityDescription
cloudflare/clear-cacheClear Cloudflare cache (entire site or specific URL)
cloudflare/get-zoneGet resolved Cloudflare zone context
cloudflare/get-development-modeRead development mode status
cloudflare/set-development-modeEnable/disable development mode

Google Workspace (mcp capability Workspace) - 16 capabilities

CapabilityDescription
gmail/configureSet Gmail API service account credentials
gmail/statusCheck API connection status and configuration
gmail/list-labelsList labels
gmail/get-labelGet label by ID
gmail/create-labelCreate label
gmail/update-labelUpdate label
gmail/delete-labelDelete label
gmail/listList inbox emails and filter them
gmail/list-threadsList threads
gmail/getGet full email content by ID
gmail/get-threadGet thread details
gmail/get-attachmentGet attachments in base64 format
gmail/sendSend emails with HTML, attachments, CC, BCC
gmail/modifyModify labels (archive, mark read/unread, etc.)
gmail/replyReply to existing email threads
email/sendSend emails via WordPress wp_mail (non-Gmail fallback)

Usage with MCP Clients

1. Create an Application Password

WordPress Admin → Users → Your Profile → Application Passwords

2. Add the MCP Server

Configure your MCP client to connect to:

https://yoursite.com/wp-json/mcp/mcp-adapter-default-server

Use HTTP transport with a Basic Auth header generated from your WordPress username and Application Password.

3. Start using

Your MCP client can now edit your WordPress site through conversation.

Examples

Create a new page

{
    "ability_name": "content\/create-page",
    "parameters": {
        "title": "About Us",
        "content": "<!-- wp:paragraph --><p>Hello world!<\/p><!-- \/wp:paragraph -->",
        "status": "publish"
    }
}

Add a menu item

{
  "ability_name": "menus/add-item",
  "parameters": {
    "menu_id": 5,
    "title": "Contact",
    "url": "/contact/"
  }
}

Upload media from URL

{
  "ability_name": "media/upload",
  "parameters": {
    "url": "https://example.com/image.jpg",
    "title": "Hero Image",
    "alt_text": "Beautiful sunset"
  }
}

Bulk find/replace

{"<a href="tel:+442033181832">+44 203 3181 832</a>"
  }
}

Security

Need authentication -Use WordPress application passwords

Permission check -each capability verifies user capabilities

Your server -AI connects to your website, you control access

Protected options -prevent modification of critical settings

File system hardening -PHP code detection, path traversal protection (in plugin)

Architecture

Three-plugin stack and optional plugins:

API capability -capability registration framework (WordPress Core Team)

MCP adapter -MCP protocol layer (WordPress Core Team)

MCP exposing capability (this plugin) -WordPress core functionality

Additional plugins (optional) -vendor-specific capabilities

Changelog

3.0.76

Fixed content/patch-post and content/patch-page so stale invalid assigned template metadata is cleared immediately before content writing, preventing a successful patch from returning an Invalid page template error.

3.0.75

Added comments/update-author-url to narrowly update or clear a comment author URL via per-comment permission checks and write validation.

3.0.73

Fixed content/patch-post passes correctly pruned Gutenberg content to WordPress, so approved design-neutral source code patches retain the same content hash through downstream publishing gates.

3.0.72

Deepened design-neutral source patch approval so MCP preflight and downstream source publishing gate filters share a single approval path.

3.0.71

Fixed design-neutral content/patch-post so that their hash-bound approval is written through the downstream Devenia source publishing gate.

3.0.70

Added content/patch-post support for explicit, reasoned design-neutral patches on published Devenia source code posts without degrading source code design verification.

3.0.69

Fixed content/update-post and content/update-page so that featured-image-only or taxonomy-only updates do not call wp_update_post() triggering unnecessary publishing/design hooks.

3.0.68

Added dry-run support for MCP create, update, and patch post-writes.

Fixed Devenia source code post-publish edit gate so that status-only publishing of invalid source drafts is blocked.

3.0.67

Added Devenia source code post-edit gate for MCP post-create/update/patch writes, blocking published source posts that fail shared post-edit source design verification.

3.0.66

Added content/update-tag for correcting tag names, slugs, and descriptions via MCP without direct REST or database access.

3.0.65

Fixed content/update-post and content/update-page so generic post/page updates protect translated sibling content and critical Elementor/feature image meta from WPML/Polylang-style sync hooks.

Added translation_guard details to content update responses so callers can verify which translated siblings were protected and restored.

3.0.64

Fixed meta/update-post-meta and meta/delete-post-meta so that updates to _yoast_wpseo_* fields trigger a post-refresh of the SEO indexable rebuild.

3.0.63

Added meta/get-post-meta for narrow read-only inspection of explicit post meta keys with per-post capability checks.

3.0.62

Fixed content/restore-post and content/update-page so stale invalid assigned page template meta is cleared before WordPress state/content writes, allowing safe restoration of old pages abandoned in older themes.

3.0.61

Fixed content/list-pages so the documented search parameter is accepted and passed to the WordPress page query.

3.0.60

Added: content/list-posts now supports status:trash for explicit trash inspection.

Added: content/restore-post restores posts, pages, and custom post types from the trash with per-post edit capability checks.

3.0.59

Changed: Plugin code-writing protections now pipe structured capability names and inputs to dedicated filters, allowing a trusted upload gate without request-body parsing or stack inspection.

Fixed: Plugin upload overwrite:true now recovers from empty stale target directories left by failed installations.

3.0.58

Added: content/restore-revision restores posts, pages, and custom post types via WordPress revisions without transmitting block content through JSON.

3.0.57

Added: MCP HTTP shutdown timed fallback now logs long-running or fatal MCP REST requests even when adapter-level observability does not fire.

3.0.56

Added: MCP adapter transport requests are now recorded in system/ability-timings when they fail or exceed the time threshold, including method/tool context for discovery tools/list diagnostics.

3.0.55

Fixed: content/patch-page and content/patch-post now use shorter per-write locks so concurrent patch calls to the same item do not overwrite each other with stale content.

3.0.54

Added: system/ability-timings exposes a bounded read-only log of slow or failed ability calls.

Improved: Ability callbacks now record timing data only when the call fails or exceeds a default 1000 ms threshold.

3.0.53

Added: menus/upsert-item creates or updates menu items by page/post/category identity or custom URL equivalently.

Improved: Menu add/update now uses a standardized nav menu item module with write-back, object/type preservation, title persistence, and contract test coverage.

3.0.52

Fixed: Menu item title updates now also preserve the underlying navigation menu item title so that frontend labels do not fall back to stale object labels.

3.0.51

Fixed: menus/add-item now validates page/post/category object IDs before creating non-custom menu items.

Fixed: menus/update-item now preserves existing menu item fields when only title, URL, parent, position, target, or classes are changed.

3.0.50

Security: plugins/update can only run through MCP with explicitly confirmed Devenia manifest management packages; generic plugin code writes remain disabled by default.

3.0.49

Security: options/update now blocks the theme bootstrap options template and stylesheet.

3.0.48

Security: Plugin code writing is disabled by default unless server-side configuration explicitly enables MCP_EXPOSE_ENABLE_PLUGIN_CODE_WRITES.

Security: When plugin code writes are enabled, WordPress.org plugin installations, plugin updates, and plugin deletions now require explicit per-capability confirmation.

3.0.47

Security: MCP transport and generic execution capability entry points now default to manage_options via adapter capability filters.

Security: High-risk plugins/upload, plugins/upload-base64, and options/update calls now require explicit per-capability confirmation.

3.0.46

Improved: Generic post meta writing now uses a single post meta write policy interface with a filterable protected key registry.

Added: Local capability contract tooling for validating protected Elementor meta writes before side effects is rejected.

3.0.45

Security: Generic content/meta capabilities now block protected Elementor meta keys and require dedicated elementor/* Elementor document write capabilities.

Changed: Plugin ZIP upload now uses WordPress core Plugin_Upgrader instead of direct plugin directory extraction/copy operations.

3.0.44

Fixed: plugins/update now preserves active plugin state during native WordPress plugin updates and reports pre- and post-activation status.

3.0.42

Added: plugins/list now supports a search parameter for filtering installed plugins by file, slug, name, author, or description.

Fixed: plugins/list now executes with no arguments accepted via MCP proxy, consistent with other empty-safe list functions.

3.0.41

Fixed: Extensive content update and patching functionality now prevents accidental removal of existing GenerateBlocks/design markup unless explicitly overwritten.

3.0.40

Added: content/update-discussion-status for toggling comments and pings on posts/pages.

3.0.39

Added: media/upload-base64 for uploading local/generated media files to the WordPress media library via MCP.

3.0.38

Added: content/update-post now supports updating the local publication date using a date parameter.

Added: Post meta support via content/create-post, content/update-post, meta/update-post-meta, and meta/delete-post-meta.

Security: Post meta writing now checks edit_post_meta/delete_post_meta capability by key before modifying meta.

3.0.37

Documentation: Removed stray mention of Claude GitHub README workflow wording.

3.0.36

Fixed: plugins/search-directory now correctly handles WordPress.org directory rows when plugin data is returned as an array instead of an object.

Fixed: plugins/list-updates now executes with no arguments accepted via MCP proxy, consistent with other empty-safe list functions.

3.0.35

Added: plugins/search-directory searches the official WordPress.org plugin directory from MCP.

Added: plugins/install-directory installs a plugin by slug from the official WordPress.org directory.

Added: plugins/list-updates and plugins/update for discovery and execution of WordPress local plugin updates.

Added: plugins/switch rolls back to switch between installed plugins if the target activation fails

3.0.34

Docs: Added clearer GitHub onboarding path with Start Here, setup order, first-success check, and add-on selection guide

Docs: Added explicit WordPress and PHP compatibility notes

Docs: Corrected ecosystem plugin and capability counts to include Formidable add-ons and current Elementor and Rank Math totals

Docs: Replaced outdated hardcoded Abilities API ZIP URL with a generic latest-release link

Docs: Fixed GitHub release badge to follow the actual latest version

3.0.33

Fixed: Plugin upload path now validates the local ZIP signature before extraction, so corrupted payloads fail with a direct ZIP verification error

Improved: Paired with proxy-side HTTP JSON limit increase so plugins/upload-base64 is no longer rejected or truncated by the MCP proxy layer

3.0.31

Fixed: Featured image creation/update path is now idempotent when the requested image is already assigned

3.0.30

Fixed: plugins/upload and plugins/upload-base64 now fall back to copy_dir() when the filesystem move() fails after extraction

Improved: Plugin installation failures now include underlying filesystem context

3.0.29

Fixed: content/update-post now clears stale, invalid assigned page template metadata before unrelated post updates

Fixed: content/update-page now clears stale invalid assigned templates on update and validates the explicit template input

Fixed: content/create-page now validates explicit page template slugs before saving

3.0.28

Added featured_image_id support to post/page create and update functions

Added featured_image_id to content/get-post and content/get-page

3.0.27

Fixed: content/get-next-post now applies after_id correctly by allowing query filters to run to set the floor

3.0.26

Added: content/get-next-post finds the next existing post after an ID even when the ID has gaps

Improved: content/list-posts now accepts case-insensitive order values and friendly orderby aliases such as id and slug

Improved: content/get-post now accepts post_type for slug lookups and returns clearer missing-post context

3.0.25

Fixed: users/delete now loads wp-admin/includes/user.php before calling wp_delete_user() in REST/MCP context

3.0.24

Performance: debug log reader now tracks file content instead of loading full file

Security: options/get blocks sensitive option names (tokens, keys, secrets)

Schema: add output schema for comment and taxonomy term capabilities

3.0.23

Added: content/update-category capability

Fixed: translator comment for placeholder string in post type validation

Fixed: tag alignment with plugin version stable

3.0.17

Fixed: use text domain in translation calls

Fixed: add translator comment for placeholder strings

3.0.16

Added: include_totals flag + has_more/returned in output for list-posts/list-pages/list-media by default to avoid expensive counts

3.0.15

Added: plugin/upload-base64 now accepts zip_path for server-local zip installation

Fixed: capabilities without arguments accept empty input (menus/list, widgets/list-sidebars, widgets-available/list)

3.0.14

Fixed: plugin/delete now loads core file helpers before deletion

3.0.13

Added: shared pagination normalization for core list functions

3.0.12

Fixed: plugin/upload now loads WordPress download helpers in non-admin environments

3.0.11

Added: plugin/upload-base64 local file upload capability

3.0.10

Added: content/create-category capability

3.0.9

Security: added per-item capability checks for content, media, users, and comments

3.0.8

Added: plugins/activate capability for activating installed plugins

Added: plugins/deactivate capability for deactivating active plugins

3.0.7

Improvement: All 47 capability descriptions now include parameter hints

3.0.6

Added: comments/create top-level comment capability

3.0.5

Added: plugins/delete capability to delete inactive plugins

3.0.4

Fixed: Use WP_Filesystem API instead of native PHP functions

Fixed: Replaced wp_get_sidebars_widgets with direct option call

3.0.3

Added: Revision capabilities (content/list-revisions, content/get-revision)

Added: Comment functionality (list, get, create, reply, update status, delete)

Added: author_id content creation parameter

3.0.0

Breaking: Modular architecture - moved vendor-specific capabilities to add-on plugins

Core plugin now contains only WordPress native functionality

Add-on plugins: Filesystem (10), Elementor (6), GeneratePress (5), Cloudflare (1), Google Workspace (8)

Cleaner installation - install only what you need

2.2.12

Security: Added protected option blocklist (active_plugins, siteurl, admin_email, etc.)

Security: Prevent accidental site breakage via options/update

2.2.11

Security: Added UTF-7 and UTF-16 encoding bypass detection

Security: Block encoded PHP injection attempts

2.2.10

Security: Major filesystem security hardening

Security: PHP code detection in file writes

Security: Path traversal protection

Security: Restricted to wp-content directory

2.1.0

Added: File system functionality

Added: Options capability

Added: System capability

Added: Cloudflare cache purge feature

Added: elementor/update-element for target element updates

2.0.0

Added: Features for menus, users, media, widgets, and pages

1.0.0

Initial version

Contribution

PRs welcome! For vendor-specific features, consider creating an add-on plugin.

License

GPL-2.0+

Author

Devnia — We've been doing SEO and web development since 1993.

Links

Plugin page

MCP capabilities - Toolset

API capability (WordPress Core Team)

MCP adapter (WordPress Core Team)

Star and Share

If this ecosystem saves you time, gives your team a saner way to handle WordPress work, or helps you finally finish the repetitive maintenance no one wants to do, please:

Star the repo

Share it with someone who runs WordPress sites

Point them to the wiki so they can see what the ecosystem can actually do

Why do this?

Because it’s good for the whole WordPress ecosystem. The more people use agent-friendly open WordPress tools, the more boring but important work actually gets done instead of sitting in backlogs forever.

Frequently asked questions

Is this plugin only responsible for generating posts?

No. Its focus is not just generating text, but letting AI assistants call WordPress capabilities through MCP to perform actual operations on posts, pages, menus, media, plugins, comments, options, and more.

Does a regular website need to install all the additional plugins?

Not recommended. The core principle is to only install the capabilities the current website actually needs. For example, install the Elementor capability plugin only if you use Elementor, and the Cloudflare capability plugin only if you use Cloudflare.

Will MCP connections affect website security?

Security depends on authentication, permissions, and capability boundaries. The approach mentioned in the article requires WordPress application passwords, per-item permission checks, protected option interception, and confirmation for high-risk capabilities. Production sites should only grant necessary permissions to trusted agents.

What kind of team is it suitable to try first?

It’s best suited for teams that maintain multiple WordPress websites and frequently do batch content organization, menu adjustments, media maintenance, plugin checks, and SEO metadata updates.

AI Development

Documenting practical methods for Codex, AI models, and WordPress project development, content production, code review, and automation workflows.

View Column

Join the discussion

Comments will be displayed after review upon submission.

You must log in to post a comment.

After logging in, you can join the discussion. New users can register an account for free.

Do not post spam comments, advertisements, or content with malicious links. Comments must comply with relevant laws, regulations, and community guidelines.

Purchase Consultation

Email Consultation

Free Diagnosis

Common Tactics