Claude WP Bridge
WordPress plugin that exposes your site as MCP tools for Claude Code. Manage pages, theme files, and plugins directly from your terminal.
by Mariano Cappucci · github.com/marianocappucci/claude-wp-bridge
Install
The author publishes release zips, so WP-CLI can install straight from GitHub:
wp plugin install https://github.com/marianocappucci/claude-wp-bridge/releases/download/v1.1.0/claude-wp-bridge.zipReadme
Claude WP Bridge
A WordPress plugin that exposes your site as MCP tools accessible from Claude Code. Manage pages, theme files, and plugins directly from your terminal — no FTP, no wp-admin, no custom REST endpoints needed.
Designed to be the single plugin you need for Claude Code → WordPress integration. It replaces ad-hoc REST endpoint plugins by using the official WordPress Abilities API as the transport layer.
How it works
Claude Code (MCP client)
↕ @automattic/mcp-wordpress-remote (STDIO → HTTP proxy)
WordPress MCP Adapter (official plugin, already on your site)
↕ WordPress Abilities API (WP 7.0+)
Claude WP Bridge (this plugin — registers the actual tools)
Claude Code sees 3 fixed MCP tools from the adapter:
mcp-adapter-discover-abilities— lists all available toolsmcp-adapter-get-ability-info— schema for a specific toolmcp-adapter-execute-ability— runs any tool with parameters
This plugin registers 10 WordPress Abilities under the claude/ namespace, which the adapter exposes automatically.
Requirements
| Requirement | Notes |
|---|---|
| WordPress 7.0+ | Abilities API (wp_register_ability) is a WP 7.0 feature |
| wordpress/mcp-adapter | The official plugin that bridges Abilities → MCP. Must be installed and active. |
| WordPress Application Password | Go to Users → Your Profile → Application Passwords and generate one. Do not use your login password. |
| Claude Code | The CLI where you'll interact with your site |
Installation
1. Install the official MCP Adapter
Install and activate the MCP Adapter plugin on your WordPress site. This is the transport layer — Claude WP Bridge won't work without it.
2. Install Claude WP Bridge
First install (bootstrap): The plugin can't install itself, so the first time must be manual. Two options:
- wp-admin: Go to Plugins → Add New → Upload Plugin, upload a ZIP of this repository, and activate.
- cPanel File Manager / FTP: Upload
claude-wp-bridge.phptowp-content/plugins/claude-wp-bridge/claude-wp-bridge.phpand activate from Plugins.
Updates: Once active, Claude can update the plugin itself using claude/upload-file to overwrite the PHP file. No deactivation needed — the new code loads on the next request.
3. Create an Application Password
- Go to Users → Your Profile in wp-admin
- Scroll to Application Passwords
- Enter a name (e.g.
Claude Code) and click Add New Application Password - Copy the generated password — you won't see it again
4. Configure Claude Code
Create or edit .claude/settings.json in your project:
{
"mcpServers": {
"wordpress": {
"command": "npx",
"args": ["@automattic/mcp-wordpress-remote"],
"env": {
"WORDPRESS_USERNAME": "your-wp-username",
"WORDPRESS_PASSWORD": "xxxx xxxx xxxx xxxx xxxx xxxx",
"WORDPRESS_URL": "https://your-site.com"
}
}
}
}
Note: Use the Application Password (spaces included), not your login password.
Install the proxy if needed:
npm install -g @automattic/mcp-wordpress-remote
5. Verify
Open Claude Code in your project directory and run:
What WordPress abilities are available?
Claude will call mcp-adapter-discover-abilities and list all registered tools.
Available tools
All tools are under the claude/ namespace and require admin-level authentication.
| Tool | Type | Description |
|---|---|---|
claude/site-map |
read | Site name, URL, WordPress version, active theme, and full page list |
claude/list-pages |
read | All pages with ID, title, slug, status, and URL |
claude/get-page |
read | Raw HTML content of a page by ID |
claude/update-page |
write | Replace a page's HTML content (bypasses kses, preserves raw HTML) |
claude/list-theme-files |
read | Files in the active theme, optionally filtered by extension |
claude/get-theme-file |
read | Content of a theme file by relative path |
claude/update-theme-file |
write | Write to a theme file (creates missing directories) |
claude/upload-file |
write | Write any file to plugins/ or themes/, with base64 support |
claude/list-plugins |
read | All installed plugins with name, version, status (active/inactive) |
claude/manage-plugin |
write | Activate or deactivate a plugin by slug |
Example Claude Code session
You: What pages does my site have?
→ mcp-adapter-execute-ability("claude/list-pages", {"status": "publish"})
You: Show me the HTML of the Home page (ID 34)
→ mcp-adapter-execute-ability("claude/get-page", {"page_id": 34})
You: Add a newsletter section before the footer in the Home page
→ [Claude reads the page, modifies the HTML, calls update-page]
→ mcp-adapter-execute-ability("claude/update-page", {"page_id": 34, "content": "..."})
You: List the CSS files in my theme
→ mcp-adapter-execute-ability("claude/list-theme-files", {"ext": "css"})
You: Update style.css to change the primary color to #e63946
→ [Claude reads the file, edits it, writes it back]
→ mcp-adapter-execute-ability("claude/update-theme-file", {"path": "style.css", "content": "..."})
You: What plugins are installed and which ones are inactive?
→ mcp-adapter-execute-ability("claude/list-plugins", {"status": "any"})
You: Activate the contact-form-7 plugin
→ mcp-adapter-execute-ability("claude/manage-plugin", {"plugin": "contact-form-7/wp-contact-form-7.php", "action": "activate"})
You: Deploy my updated plugin file
→ mcp-adapter-execute-ability("claude/upload-file", {"path": "plugins/my-plugin/my-plugin.php", "content": "..."})
Security notes
- All abilities require
manage_optionsoredit_pagescapability — only admins can use them - The
update-pageability bypasses WordPress kses filtering by design, so raw HTML/CSS/JS is preserved. Only grant Application Passwords to trusted users. - The
upload-fileability is restricted toplugins/andthemes/subdirectories — it cannot write outsidewp-content/ - Path traversal (
../) is stripped from all file path inputs
Compatibility
Tested with:
- WordPress 7.0
- MCP Adapter 0.5.0
- PHP 8.3
License
MIT
Read the full README on GitHub →
Releases
| Tag | Published | Asset | Downloads |
|---|---|---|---|
| v1.1.0 | Jun 24, 2026 | claude-wp-bridge.zip | 0 |