Install
This is the repository archive. It installs, but the folder name will carry the branch suffix and updates will not flow.
Install straight from GitHub with WP-CLI:
wp plugin install https://github.com/matteolavaggi/wordpress-crud-abilities/archive/refs/heads/master.zipReady-to-use content CRUD abilities for the WordPress Abilities API — so AI agents and automation tools can manage posts, pages, media, users, taxonomies, and settings through a standard, permission-aware interface.
Works with the Abilities API and optionally the MCP Adapter for Model Context Protocol exposure.
Why this plugin exists
WordPress ships the Abilities API (framework + registry + REST) so plugins can declare discoverable, schema-validated actions for AI and automation.
What core does not ship today is a complete, official set of content-management abilities (create/update/delete posts, pages, media, users, taxonomies, options, and so on).
Until WordPress provides an official alternative, this plugin fills that gap: *40 production-ready `wcrud/` abilities** that any MCP-compatible agent (Claude, ChatGPT, Cursor, VS Code, etc.) can discover and invoke — with normal WordPress capability checks.
| Layer | Official WordPress status | This plugin |
|---|---|---|
| Abilities API (register / discover / execute) | ✅ Core / abilities-api | Depends on it |
| MCP Adapter (expose abilities as MCP tools) | ✅ mcp-adapter | Optional companion |
| Content CRUD abilities (posts, pages, users, …) | ❌ No official package yet | ✅ This plugin |
Features
- 40 abilities across posts, pages, menus, media, taxonomies, users, settings, and search
- Permission-aware — every ability uses WordPress capabilities (
edit_posts,manage_options, etc.) - Schema-defined inputs/outputs for reliable agent tooling
- MCP-ready — abilities are marked public for MCP Adapter discovery
- Markdown-friendly post content when Jetpack Markdown is enabled
- Lightweight: no admin UI required; activate and go
Requirements
- WordPress 6.8 or later
- PHP 7.4 or later
- Abilities API plugin (or core Abilities API when available on your site)
- MCP Adapter (optional — only needed to expose abilities over MCP)
Installation
- Install and activate Abilities API
- Clone or download this plugin into
/wp-content/plugins/wordpress-crud-abilities/ - Activate WordPress CRUD Abilities in WP Admin → Plugins
- (Optional) Install MCP Adapter and configure your MCP client (see below)
cd wp-content/plugins
git clone https://github.com/matteolavaggi/wordpress-crud-abilities.git
Quick start (MCP)
- Create a WordPress Application Password for a user with the capabilities you want the agent to have
- Install MCP Adapter on the site
- Point your MCP client at the site adapter endpoint
Cursor / VS Code (mcp.json)
{
"servers": {
"wordpress": {
"command": "npx",
"args": ["-y", "@automattic/mcp-wordpress-remote@latest"],
"env": {
"WP_API_URL": "https://your-site.com/wp-json/mcp/mcp-adapter-default-server",
"WP_API_USERNAME": "your-wordpress-username",
"WP_API_PASSWORD": "your-application-password"
}
}
}
}
Claude Desktop (claude_desktop_config.json)
{
"mcpServers": {
"wordpress": {
"command": "npx",
"args": ["-y", "@automattic/mcp-wordpress-remote@latest"],
"env": {
"WP_API_URL": "https://your-site.com/wp-json/mcp/mcp-adapter-default-server",
"WP_API_USERNAME": "your-wordpress-username",
"WP_API_PASSWORD": "your-application-password"
}
}
}
}
Replace placeholders, then reload the MCP server. Agents should discover tools namespaced under wcrud/….
Available abilities (40)
Posts (5)
| Ability | Description |
|---|---|
wcrud/list-posts |
List posts with filtering and pagination |
wcrud/get-post |
Get a single post by ID |
wcrud/create-post |
Create a new post (supports Markdown) |
wcrud/update-post |
Update an existing post |
wcrud/delete-post |
Delete or trash a post |
Pages (5)
| Ability | Description |
|---|---|
wcrud/list-pages |
List pages with hierarchy |
wcrud/get-page |
Get a single page by ID |
wcrud/create-page |
Create a new page |
wcrud/update-page |
Update an existing page |
wcrud/delete-page |
Delete or trash a page |
Menus (3)
| Ability | Description |
|---|---|
wcrud/list-menus |
List nav menus and theme locations |
wcrud/get-menu |
Get a menu by ID, slug, or location (items) |
wcrud/get-menu-pages |
Resolve menu → fetch linked pages (max N) |
Media (4)
| Ability | Description |
|---|---|
wcrud/list-media |
List media library items |
wcrud/get-media |
Get media details |
wcrud/update-media |
Update media metadata |
wcrud/delete-media |
Delete media permanently |
Taxonomies (8)
| Ability | Description |
|---|---|
wcrud/list-categories |
List all categories |
wcrud/create-category |
Create a new category |
wcrud/update-category |
Update a category |
wcrud/delete-category |
Delete a category |
wcrud/list-tags |
List all tags |
wcrud/create-tag |
Create a new tag |
wcrud/delete-tag |
Delete a tag |
wcrud/list-taxonomies |
List registered taxonomies |
Users (7)
| Ability | Description |
|---|---|
wcrud/list-users |
List users with role filtering |
wcrud/get-user |
Get user by ID |
wcrud/get-current-user |
Get authenticated user |
wcrud/create-user |
Create a new user |
wcrud/update-user |
Update user profile |
wcrud/delete-user |
Delete a user |
wcrud/list-roles |
List available roles |
Settings (5)
| Ability | Description |
|---|---|
wcrud/get-site-settings |
Get site configuration |
wcrud/update-site-settings |
Update site settings |
wcrud/get-option |
Get a WordPress option |
wcrud/update-option |
Update a WordPress option |
wcrud/delete-option |
Delete a WordPress option |
Search & utilities (3)
| Ability | Description |
|---|---|
wcrud/search |
Global content search |
wcrud/list-post-types |
List registered post types |
wcrud/get-site-health |
Get site health statistics |
Architecture
AI client (Claude / Cursor / ChatGPT / …)
│ MCP
▼
MCP Adapter (WordPress plugin)
│ Abilities API
▼
WordPress CRUD Abilities → wcrud/* callbacks
│
▼
WordPress core APIs (posts, users, options, …) + capability checks
Without MCP Adapter, abilities remain usable via the Abilities API PHP/REST surfaces on the site.
Markdown support
When Jetpack Markdown is enabled, post content accepts Markdown (headings, emphasis, lists, code blocks, blockquotes, tables, links, images).
Security
- Read abilities require the usual read/list capabilities
- Create/update abilities require edit capabilities
- Delete abilities require delete capabilities
- Settings/option abilities require
manage_options - Prefer a dedicated Application Password user with least privilege for agents
Hooks & filters
add_filter( 'wp_register_ability_args', function ( $args, $name ) {
if ( strpos( $name, 'wcrud/' ) === 0 ) {
// Adjust labels, schemas, meta, etc.
}
return $args;
}, 10, 2 );
Roadmap / gaps
Known omissions vs a full “official” content toolkit (contributions welcome):
- Media upload /
create-media update-tag- Deeper custom post type and custom taxonomy CRUD
- Attachment upload from remote URLs
If/when WordPress ships official content abilities, this plugin can thin out or become a compatibility bridge — until then it is a practical default for agent-driven site management.
Contributing
Issues and pull requests are welcome on GitHub.
- Fork the repo
- Create a feature branch
- Keep abilities namespaced
wcrud/…and permission callbacks strict - Open a PR with a short description of the ability or fix
Changelog
See CHANGELOG.md.
License
GPL-2.0-or-later — see LICENSE.