MCP Editor Abilities
Add Editor/CMS abilities to MCP server for Wordpress
by Vincent Guigui · github.com/vincentguigui/wp-mcp-editor-abilities · website
Install
No release zip yet. The repository archive installs, but the folder name will carry the branch suffix and updates will not flow:
wp plugin install https://github.com/vincentguigui/wp-mcp-editor-abilities/archive/refs/heads/main.zipAuthor: Vincent Guigui
A WordPress plugin that exposes content-management abilities through the MCP Adapter, enabling AI agents and MCP clients to read and edit WordPress content programmatically.
What it does
-
Forces all WordPress abilities to be MCP-public — any ability registered by core or other plugins is automatically exposed through MCP (via the
wp_register_ability_argsfilter). -
Registers 16 custom editor abilities:
Posts
| Ability | Description | Permission |
|---|---|---|
mcp-editor/list-posts |
Paginated list of posts (filterable by status) | edit_posts |
mcp-editor/add-post |
Create a new post (defaults to draft) | edit_posts |
mcp-editor/duplicate-post |
Duplicate an existing post as a new draft | edit_post |
mcp-editor/get-post-field |
Read a single post field (title, status, date, excerpt, slug, content) | edit_post |
mcp-editor/update-post-field |
Update a single post field (title, status, date, excerpt, slug, content) | edit_post |
Post Blocks
| Ability | Description | Permission |
|---|---|---|
mcp-editor/list-post-blocks |
List all Gutenberg blocks in a post | edit_post |
mcp-editor/get-post-block |
Read a single block by index | edit_post |
mcp-editor/update-post-block |
Edit a specific block's attributes or HTML | edit_post |
Categories
| Ability | Description | Permission |
|---|---|---|
mcp-editor/list-categories |
Paginated list of categories | manage_categories |
mcp-editor/add-category |
Create a new category | manage_categories |
mcp-editor/update-category-field |
Update a single category field (name, slug, description, parent) | manage_categories |
Post ↔ Category
| Ability | Description | Permission |
|---|---|---|
mcp-editor/list-post-categories |
List categories assigned to a post | edit_post |
mcp-editor/assign-post-category |
Add a category to a post | edit_post |
mcp-editor/remove-post-category |
Remove a category from a post | edit_post |
Site
| Ability | Description | Permission |
|---|---|---|
mcp-editor/get-site-field |
Read a site option (name, description) | manage_options |
mcp-editor/update-site-field |
Update a site option (name, description) | manage_options |
- Boots the MCP Adapter so the abilities are reachable over the MCP JSON-RPC endpoint.
Requirements
- WordPress 6.9+ (ships the Abilities API)
- MCP Adapter plugin installed and activated — github.com/wordpress/mcp-adapter
- An application password for the WordPress user that will authenticate MCP requests
Installation
- Copy the
mcp-edit-abilitiesfolder intowp-content/plugins/. - Activate MCP Adapter in the WordPress admin.
- Activate MCP Editor Abilities in the WordPress admin.
- Create an application password for your user under Users → Profile → Application Passwords.
Testing with the batch script
A mcp.bat script is included for quick testing from the Windows command line.
Configuration
Credentials are stored in mcp-config.ini (same folder as the batch). This file is protected from web access by the included .htaccess.
; mcp-config.ini
[mcp]
url=https://your-site
username=your-user
password=xxxx xxxx xxxx xxxx xxxx xxxx
Usage
Parameters are passed as key/value pairs after the ability name. Integer values are auto-detected. Wrap values containing spaces in double quotes.
:: List all available abilities
mcp.bat
:: Posts
mcp.bat mcp-editor/list-posts
mcp.bat mcp-editor/list-posts per_page 5 status draft
mcp.bat mcp-editor/add-post title "My New Post"
mcp.bat mcp-editor/duplicate-post id 1
mcp.bat mcp-editor/get-post-field id 1 field title
mcp.bat mcp-editor/update-post-field id 1 field title value "New Title"
:: Post blocks
mcp.bat mcp-editor/list-post-blocks id 1
mcp.bat mcp-editor/get-post-block id 1 block_index 0
mcp.bat mcp-editor/update-post-block id 1 block_index 0 inner_html "<p>Updated</p>"
:: Categories
mcp.bat mcp-editor/list-categories
mcp.bat mcp-editor/add-category name "My Category"
mcp.bat mcp-editor/update-category-field id 12 field name value Renamed
:: Post categories
mcp.bat mcp-editor/list-post-categories id 1
mcp.bat mcp-editor/assign-post-category post_id 1 category_id 12
mcp.bat mcp-editor/remove-post-category post_id 1 category_id 12
:: Site
mcp.bat mcp-editor/get-site-field field name
mcp.bat mcp-editor/update-site-field field name value "My Site"
Security notes
- All abilities enforce WordPress capability checks (
edit_post,manage_options,manage_categories). - The
mcp-config.inifile containing credentials is blocked from web access via.htaccess. - MCP requests require HTTP Basic Auth with an application password.
- For production use, consider moving
mcp-config.inioutside the web root entirely.
License
GPL-2.0-or-later