- Stars
- 11
- This week
- +0
- Forks
- 2
- Open issues
- 1
- Last push
- 24d ago
Get started
Add it to your agent
claude mcp add wordpress-wae -- npx -y @automattic/mcp-wordpress-remote@latestRun in your terminal. Add --scope project to share it with your team through .mcp.json.
codex mcp add wordpress-wae -- npx -y @automattic/mcp-wordpress-remote@latestSaved to ~/.codex/config.toml.
{
"mcpServers": {
"wordpress-wae": {
"command": "npx",
"args": [
"-y",
"@automattic/mcp-wordpress-remote@latest"
]
}
}
}Add to ~/.cursor/mcp.json (or .cursor/mcp.json in a project).
{
"servers": {
"wordpress-wae": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@automattic/mcp-wordpress-remote@latest"
]
}
}
}Add to .vscode/mcp.json, then start it from the MCP view in Copilot Chat.
gemini mcp add wordpress-wae npx -y @automattic/mcp-wordpress-remote@latestSaved to .gemini/settings.json.
Documentation
README
WordPress Abilities Extended (WAE)
WordPress MCP capability plugin built on top of the WordPress Abilities API and MCP Adapter.
This plugin currently exposes 86 public mcp-wp/* abilities on the MCP endpoint and is designed for AI agent workflows.
What It Covers
- Full CRUD for posts/pages (prefer
mcp-wp/search-replace-contentfor targeted text edits) - Full CRUD for comments
- Generic CPT CRUD (
post_type-driven) - Menu CRUD (menus, menu items, menu locations)
- Pattern CRUD + block validation
- Media upload/list/get/edit/replace/delete
- Taxonomy list/create/edit/delete
- User list/get/current/create/edit
- FSE block entities (
wp_navigation, templates, template parts) - Controlled settings reads/writes (allowlisted updates)
- Plugin/theme lifecycle operations (install/update/delete/activate/deactivate/switch)
- Advanced helpers (batch update, clone, custom REST calls, pattern import/export)
- Rendered frontend HTML inspection for selector-safe styling work
Ability Modules
posts(11)comments(5)cpt(5)menus(10)fse(5)patterns(7)media(6)users(5)taxonomy(6)settings(4)plugins(14)advanced(8)
Total: 86 abilities
Full Ability List
posts
mcp-wp/create-pagemcp-wp/edit-pagemcp-wp/get-pagemcp-wp/list-pagesmcp-wp/delete-pagemcp-wp/create-postmcp-wp/edit-postmcp-wp/get-postmcp-wp/list-postsmcp-wp/delete-postmcp-wp/search-replace-content
comments
mcp-wp/list-commentsmcp-wp/get-commentmcp-wp/create-commentmcp-wp/edit-commentmcp-wp/delete-comment
cpt
mcp-wp/list-contentmcp-wp/get-contentmcp-wp/create-contentmcp-wp/edit-contentmcp-wp/delete-content
menus
mcp-wp/list-menusmcp-wp/get-menumcp-wp/create-menumcp-wp/edit-menumcp-wp/delete-menumcp-wp/list-menu-locationsmcp-wp/assign-menu-locationmcp-wp/create-menu-itemmcp-wp/edit-menu-itemmcp-wp/delete-menu-item
fse
mcp-wp/list-block-entitiesmcp-wp/get-block-entitymcp-wp/create-block-entitymcp-wp/edit-block-entitymcp-wp/delete-block-entity
patterns
mcp-wp/list-patternsmcp-wp/get-patternmcp-wp/create-patternmcp-wp/edit-patternmcp-wp/delete-patternmcp-wp/get-block-typesmcp-wp/validate-blocks
media
mcp-wp/upload-mediamcp-wp/list-mediamcp-wp/get-mediamcp-wp/edit-mediamcp-wp/replace-media-filemcp-wp/delete-media
users
mcp-wp/list-usersmcp-wp/get-usermcp-wp/get-current-usermcp-wp/create-usermcp-wp/edit-user
taxonomy
mcp-wp/list-categoriesmcp-wp/list-tagsmcp-wp/create-categorymcp-wp/create-tagmcp-wp/edit-termmcp-wp/delete-term
settings
mcp-wp/get-settingsmcp-wp/get-gutenberg-settingsmcp-wp/get-site-statsmcp-wp/update-settings
plugins
mcp-wp/list-pluginsmcp-wp/get-pluginmcp-wp/activate-pluginmcp-wp/deactivate-pluginmcp-wp/install-pluginmcp-wp/update-pluginmcp-wp/delete-pluginmcp-wp/get-thememcp-wp/get-theme-supportsmcp-wp/get-dynamic-partmcp-wp/edit-dynamic-partmcp-wp/list-theme-filesmcp-wp/get-theme-filemcp-wp/edit-theme-file(writes limited to the FSE file set, existing or new: theme.json, styles/.json, templates/.html, parts/.html, patterns/.php; plus tailwind.css andinc/Theme/Ai.php, the only PHP class; it is created and registered ininc/Init.phpon first write. Site editor first: PHP only for queries, pagination and rewrite rules, never for blocks or patterns; header and footer go through edit-dynamic-part)
Both write abilities take a required summary. The API proxy on the host commits every theme file write to the site's theme repo (wp-content/themes/mild-boilerplate, initialised on first write) as ai-mcp: <summary>, with the changed files in the commit body. PHP cannot commit itself: it runs in a container without git.
mcp-wp/list-themesmcp-wp/switch-thememcp-wp/install-thememcp-wp/update-thememcp-wp/delete-theme
advanced
mcp-wp/custom-rest-callmcp-wp/get-rendered-page-htmlmcp-wp/query-posts-advancedmcp-wp/batch-updatemcp-wp/export-patternmcp-wp/import-patternmcp-wp/get-pattern-usagemcp-wp/clone-item
Installation
Prerequisites
- WordPress 6.9+ (Abilities API)
- MCP Adapter plugin active
- Application Password for the WordPress user that will authenticate MCP
Steps
- Install and activate
mcp-adapter. - Copy this plugin to
wp-content/plugins/wordpress-wae. - Activate this plugin.
- Use endpoint:
https://<site>/wp-json/mcp/mcp-adapter-default-server
MCP Client Example
{
"mcpServers": {
"wordpress": {
"command": "npx",
"args": ["-y", "@automattic/mcp-wordpress-remote@latest"],
"env": {
"WP_API_URL": "https://your-site/wp-json/mcp/mcp-adapter-default-server",
"WP_API_USERNAME": "your-username",
"WP_API_PASSWORD": "your-application-password"
}
}
}
}
MCP Call Pattern
MCP Adapter exposes 3 tools:
mcp-adapter-discover-abilitiesmcp-adapter-get-ability-infomcp-adapter-execute-ability
Execution example:
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "mcp-adapter-execute-ability",
"arguments": {
"ability_name": "mcp-wp/create-content",
"parameters": {
"post_type": "page",
"title": "Hello",
"content": "Created over MCP",
"status": "draft"
}
}
}
}
Security Notes
- Every ability uses capability checks.
- Inputs are validated with input schemas and sanitized in handlers.
- Keep MCP auth credentials scoped and site-specific.
- For destructive workflows, keep confirmation gates in your AI orchestration layer.
Operational Notes
- Plugin/theme install or update requires outbound access to WordPress.org and usable filesystem credentials.
- Active theme/plugin guardrails are enforced by WordPress core behavior and ability logic.
Development Utilities
bash diagnose.shfor endpoint and registration diagnosticsbash tests.shfor local scripted checksbash tests/run-all.sh(when present) for the full smoke-test harness — see Local Test Setup for credentials.bash agent/tests/smoke/run-agent-tests.shfor Socket.IO smoke tests against the running AI agent (connect, ensure_repo, get_history, optional chat_message)bash agent/tests/e2e/run-agent-mcp-e2e.shfor full real usage E2E (agent + MCP): list pages, create page with CTA, replace text, verify, and cleanup (stored in git-excluded agent tests so plugin updates do not remove it).tests/README.mdfor detailed test setup, environment variables, outputs, and troubleshooting for both MCP ability tests and agent smoke tests.
License
MIT (see LICENSE).