More MCP – WordPress MCP Server with OAuth 2.0 (works with Claude, ChatGPT & Gemini)
Turn WordPress into an MCP server for Claude, ChatGPT & Gemini: OAuth 2.0 + API-key auth, 107 built-in tools, 36 toggleable integrations (WooCommerce, Elementor, ACF, SEO & more).
Install
Upload it under Plugins → Add New Plugin → Upload Plugin, then activate.
Install straight from GitHub with WP-CLI:
wp plugin install https://github.com/mordenhost/more-mcp/releases/download/v0.20.0/mordenhost-mcp-0.20.0.zip
More MCP
Give AI assistants a safe, authenticated way into WordPress.
Self-hosted OAuth and API keys, per-tool capability checks, audit logging, and 111 always-on tools plus opt-in integrations.
More MCP is a self-hosted Model Context Protocol server built into WordPress by Mordenhost. Claude, ChatGPT, Gemini, AI coding assistants, and any other MCP-compatible agent operate your site through typed, permission-checked tools — no screen scraping, no browser automation, no copy-paste.
Where a bare MCP bridge stops at exposing functions, More MCP is built for sites that are actually in production. Every request authenticates through OAuth 2.0 or an API key, hits a per-IP rate limit, and passes a WordPress capability check inside the tool handler before it touches anything. Interactions are logged for audit — tool names and argument keys, never the argument values. Nothing leaves your database: no license server, no telemetry, no callback to Mordenhost or anyone else.
A standard installation exposes 111 always-on tools for WordPress core, Gutenberg blocks, and outbound webhooks. Compatible plugins can add specialized tools once an administrator enables their integration, while ten high-impact plugin and theme lifecycle tools remain disabled until an administrator explicitly enables them. The live count depends on the active integrations and permissions and is shown in the Documentation panel, which reads the registry directly; every tool is reachable through the native MCP endpoint, the classic REST API, and the WordPress Abilities API on WordPress 6.9 or later.
Contents
- How it works
- Requirements
- Installation
- Tool inventory
- Plugin integrations
- Supported clients and platforms
- Security and privacy
- Frequently asked questions
- License
How it works
flowchart LR
C["MCP clients"] --> M["Streamable HTTP MCP endpoint"]
O["OAuth 2.0"] --> M
K["More MCP API key"] --> M
R["REST clients"] --> API["Classic REST API"]
A["WordPress 6.9+ consumers"] --> AB["Abilities API"]
M --> G["Authentication, rate limiting, and origin checks"]
G --> T["Shared tool registry and handlers"]
API --> T
AB --> T
T --> P["WordPress capability checks"]
P --> W["WordPress core and Gutenberg APIs"]
P --> I["Detected plugin integrations"]
All three public tool surfaces route into the same registry and handlers, so capability checks and tool behavior remain consistent. The primary endpoint is:
https://yoursite.com/wp-json/more-mcp/v1/mcp
OAuth discovery and authorization endpoints live at the domain root.
Why security matters
MCP tools can read, create, update, and delete WordPress data. More MCP protects that access with:
- OAuth 2.0 authorization code flow with PKCE and refresh-token rotation.
- Static API-key authentication for clients that do not support OAuth.
- Timing-safe credential comparison and authenticated session initialization.
- Origin validation and per-IP rate limiting of 60 requests per minute.
- WordPress capability checks inside every tool handler.
- Audit logging that records tool names and argument keys, never argument values.
- Read-after-write verification for mutation tools.
- Dry-run, confirmation, guard, and undo mechanisms on supported high-impact operations.
Cache-Control: no-storeacross the More MCP namespace to prevent authenticated responses from being reused by URL-keyed edge caches.
At a glance
| Area | What More MCP provides |
|---|---|
| Authentication | OAuth 2.0 or a self-hosted More MCP API key |
| Protocol | MCP 2025-11-25 over Streamable HTTP and JSON-RPC 2.0 |
| Tool count | 111 always registered; 10 opt-in lifecycle tools; plus opt-in integration tools (live count shown in the Documentation panel) |
| WordPress support | WordPress 5.8+; Abilities API integration on WordPress 6.9+ |
| Runtime | PHP 7.4+; PHP 8.0+ recommended |
| Data ownership | Credentials, tokens, sessions, and logs stay in your WordPress database |
| Vendor coupling | None—no license server, telemetry, or More MCP cloud service |
Requirements
- PHP 7.4 or later. PHP 8.0+ is recommended — it is what the plugin is developed and tested against, and PHP 7.4 reached end of life in November 2022, so it no longer receives security fixes from the PHP project.
- WordPress 5.8 or later. Tested up to WordPress 7.0.
- MySQL 5.6+ or MariaDB 10.1+ — activation creates five tables.
- HTTPS, for any client using the OAuth connector flow. The OAuth 2.0 specification requires it, and Claude Desktop's native connector will not complete a handshake over plain HTTP. Static API-key auth works without it but sends the key in a header, so HTTPS is strongly recommended there too.
- Pretty permalinks must be enabled (Settings → Permalinks, anything other than "Plain"). The OAuth endpoints are served from domain-root rewrite rules, which do not exist under the plain permalink structure.
- WordPress 6.9 or later for the Abilities API surface. This is optional — the MCP endpoint and the REST API work on 5.8+ regardless.
Free, self-hosted, and fully featured
More MCP is fully featured in its free, GPL-licensed release. There is no Pro version — all tools ship in the wp.org plugin, and updates go through the standard WordPress plugin updater.
Your credentials stay on your server. More MCP runs entirely inside WordPress: API keys, OAuth tokens, and session state all live in your own database. More MCP makes no outbound connections to any vendor server — no license check, no telemetry, no traffic beacon. If you prefer to keep AI inference local too, Ollama and LM Studio are first-class platforms alongside Claude, ChatGPT, and Gemini.
Tool inventory
Every installation registers 111 always-on tools: 87 WordPress core tools, 21 Gutenberg block tools, and 3 outbound-webhook tools (none are gated on a third-party plugin). Opt-in integrations add more tools once an administrator enables them (WooCommerce alone adds 29), and ten plugin/theme lifecycle tools appear only when an administrator enables them. Exact live counts are shown in the Documentation panel, which reads the registry directly.
WordPress Core (87 tools):
- Posts - create, read, update, delete, search, count (any registered public post type, featured images supported)
- Pages - full CRUD with parent page support
- Post Types - discover all registered public post types on the site
- Post Revisions - list revision history and roll a post back to any prior version
- Media - browse, upload from URL or base64, update alt text/caption/title/description, set as featured image, delete
- Comments - create, read, delete; full moderation suite (list pending, approve, mark spam, trash)
- Users - display names and roles (emails and usernames are not exposed)
- Categories & Tags & Custom Taxonomies - create, update (rename/re-slug/edit/move), delete, assign, count, discover all registered taxonomies
- Term Meta - read, update, delete raw
wp_termmetavalues. For SEO fields on a term, use the SEO Meta tools below instead: Yoast keeps taxonomy SEO in an option and All in One SEO in its own table, so neither is reachable through term meta - Menus - list menus, list menu items, create / update / delete / reorder menu items
- Post Meta - read, update, delete custom fields (works with ACF, MetaBox, JetEngine, Pods, CPT UI)
- SEO Meta - read and write title/description/focus keyword/noindex/canonical/OG/Twitter fields on posts and terms, across six SEO plugins (Yoast SEO, Rank Math, All in One SEO, SEOPress, Slim SEO, The SEO Framework). Each field is routed to wherever the detected plugin actually stores it; a field that plugin does not store is refused by name rather than written to a plausible-looking key that would save cleanly and change nothing on the page
- Site Info - site name, description, WordPress version, timezone
- Site Status - full site health snapshot (WordPress version, PHP version, active theme, active plugins, cron activity) for AI-driven pre-write validation
- Error Log - read recent PHP error log entries so AI agents can diagnose silent failures without shell access
- Cron Schedule - list scheduled WP cron events with next-run timestamps and hook names
- Connection Health - MCP session diagnostic returning route, auth method, session ID, and More MCP version details for any authenticated caller
- Plugins & Themes - list installed plugins and themes with active status
- Theme Appearance - get active theme, read/write theme mods (gated by admin toggle + allowlist), read/write Custom CSS
- Render Context - list the templates a post can be rendered with (resolved live, so it covers the active theme's page templates, a block theme's custom templates, and Elementor's Canvas / Full Width / Theme options) and set which one renders a given post. A value outside the resolved list is refused by name rather than stored, because WordPress would accept any string and silently fall back to the default at render time
- Search - full-text content search across post types
- Permalink Structure - read and update permalink settings (gated by admin toggle)
- Options - read allowlisted core options, read full plugin settings by slug (sensitive keys redacted), and write to allowlisted options when an admin enables it
Plugin and theme management (10 tools, opt-in)
Disabled by default. Enable "Allow AI to manage plugins and themes" under Settings → Access to expose these; while the toggle is off they are not listed to MCP clients at all.
These tools change the code running on your site, not just its content, so they are gated more tightly than anything else in the plugin:
- Every write requires the matching WordPress capability, re-checked inside the handler
- Every write requires a two-part confirmation:
confirm=trueANDconfirm_slugechoing the exact target. A call without confirmation returns a preview of what would change, so the first call is always a dry run wp_install_pluginaccepts WordPress.org slugs only — package URLs are rejected rather than downloaded, and the preview shows name, author, version, and active-install count so a typo-squat is visible before you confirm- More MCP cannot deactivate or delete itself; the
more_mcp_protected_pluginsfilter protects others - Deleting a plugin requires deactivating it first — deletion is irreversible, so deactivation is the checkpoint
- Sites whose filesystem needs FTP/SSH credentials are refused rather than prompted; credentials must never travel through MCP arguments
- Every operation returns the state read back afterwards, so an upgrader that silently no-ops is visible rather than reported as success
Plugins: list pending updates, activate, deactivate, update, install (wp.org), delete. Themes: list status with pending updates, activate (switch), update, delete.
Plugin integrations (conditional)
More MCP detects compatible plugins and can expose specialized MCP tools for them. Each integration is off by default and requires two things before its tools appear: the host plugin must be active, and an administrator must enable that integration under More MCP → Settings → Access → Plugins. This opt-in is a deliberate safety gate — activating a plugin never silently widens the agent's reach until you turn the integration on. The toggle lives in the denylisted more_mcp_settings option, so it is set from the admin screen, not through MCP itself.
The live integration catalogue is pinned by tests/integration-toggles-test.php (79 integrations at the time of writing); the per-integration tool counts below come from each integration's get_tools(). The maximum integration tool count depends on which plugins are installed and enabled and whether Elementor Pro modules are active — a ceiling, not a default. The live count is whatever the detected and enabled integrations actually contribute, and is shown directly in the Documentation panel.
WooCommerce Integration (29 tools): When WooCommerce is active, AI agents can manage your store end-to-end:
- Browse and search products by category, status, or type
- Create and update simple and variable products with prices, SKUs, stock levels
- Manage variable products — list, get, create, update, delete, and batch-update product variations
- Manage global attributes (
pa_*taxonomies) — list registered attributes, list attribute terms, register new attributes, assign attributes to a product as variation axes - Manage coupons — list, search by code, get, create, update, delete (trash or permanent), and bulk-purge trash; supports all standard WC coupon fields (discount type, expiry, usage limits, product/category restrictions, email allowlists)
- View orders, order details, and update order status
- List customers with order count and total spent
- Get store statistics — revenue, order count, average order value by period
Elementor Integration (20 tools, up to 33 with Elementor Pro): When Elementor (free or Pro) is active, AI agents can clone and customize existing Elementor pages without trying to generate page-builder JSON from scratch:
- Clone an existing Elementor page with a new title and fresh element IDs (so the duplicate opens in the editor without ID collisions)
- Bulk-replace text across heading, text-editor, button, image-box, icon-box, icon-list, testimonial, tabs, accordion, toggle, star-rating, call-to-action, and flip-box widgets
- Swap image URLs across image, image-box, background_image, and gallery widget settings
- Get a compact outline of any page (section/container hierarchy, widget types, text snippets) so Claude can reason over a full page in a few KB instead of the raw JSON
- Read full settings for a single widget/container/section/column by ID (for precise agent editing without loading the entire page tree)
- Add a widget or container to an existing page, either from curated parameters for the common widget types or from a full settings object
- Change one element's settings in place, addressed by element ID. Settings are merged by default, not replaced: an Elementor settings object holds content next to styling, so a caller fixing a heading typo does not discard the widget's colours and typography. A wholesale replace is available but has to be asked for
- Delete one element and its descendants, addressed by element ID. The response reports how many elements went, and a dry run reports it before anything is removed
- Move one existing element to a new location (before/after a reference element, or as its first/last child) within the same page, keeping the element's own settings and children. Supports a dry run
- Resolve a Loop Grid / Loop Carousel widget to the separate loop-item template it renders: returns the loop template's post ID and element outline, which you then edit with the ordinary Elementor tools by that post ID
- List local templates and import a template from a JSON payload, regenerating element IDs so the imported elements are addressable
- Read and update the active kit (Site Settings): global colors and typography, theme-style defaults, site identity, layout, background, lightbox, page transitions, and custom CSS
- Discover the live widget registry: list every widget type currently registered (including third-party addon packs) and read any widget's control schema, so installed addons become usable through the existing Elementor tools without a per-vendor adapter
- With Elementor Pro: manage Custom Fonts and Custom Icon sets (list, get, create/update/delete, regenerating the derived @font-face so the font actually renders), manage site-wide Custom Code snippets (head / body_start / body_end HTML/JS, saved inactive for a human to publish), and set Theme Builder template display conditions through Elementor's own save path so the template actually renders at its location
- Both addressed writes take an
expected_widget_typeguard and emit an undo token. Element IDs are per-document and shift when a page is rebuilt, so a stale ID would otherwise edit or delete the wrong part of the page - Atomic widgets (Elementor 4.0+ Editor V4 elements) pass through opaque — we never decode atomic schemas because Elementor itself may shift them. Editing one is refused by name for that reason; deleting one is allowed, because removing a whole element needs only its boundaries, not its schema. Widget-level creation from scratch remains out of scope; the design commitment is to work from an existing-known-good source.
Divi Integration (5 tools):
- Read a compact positional outline from legacy Divi 4
et_pb_*shortcodes or native Divi 5divi/*blocks without rendering the page or executing shortcodes - Read one module or block by a dot-separated zero-based path returned by the outline
- Replace, insert, or delete one whole addressed node. Divi 4 writes accept raw balanced shortcode subtrees and preserve untouched bytes; Divi 5 writes accept whole
divi/*blocks and pass the Gutenberg round-trip check - All writes require
expected_type, object-leveledit_post, supportdry_run, emit undo tokens, re-read stored content, and invalidate Divi's derived resources through the source-verifiedET_Core_PageResourcecontract when available - Divi 4 attributes are never reconstructed or merged; Divi 5 attributes remain whole-block/verbatim. Mixed legacy regions remain opaque and descendants beneath them are not addressable
- Theme Builder management, Theme Options, presets, library layouts, rendering, migration, and live Divi verification remain separate follow-up work
Advanced Custom Fields Integration (4 tools): When ACF (free or Pro) is active, AI agents can read and write ACF fields with the field-type-aware formatting the ACF UI uses — instead of the raw serialized values WordPress meta returns:
- Read a single ACF field, formatted per its Return Format setting (hydrated post objects, parsed repeater rows, image arrays, etc.)
- Read every ACF field on a post in one call, with name/label/type/value bundled — the most efficient way for an AI to discover what fields exist and read them all
- Update an ACF field with type-aware value handling (scalar for text/number, array for repeaters and flex content, post ID for relationships, attachment ID for images)
- Enumerate ACF field groups on the site, optionally filtered by post type — for AI-driven discovery of available custom fields before reading/writing
Meta Box Integration (4 tools): When Meta Box is active, AI agents can read and write custom fields the same way the Meta Box UI does — rather than the raw serialized values WordPress meta returns:
- Read a single custom field with the Meta Box formatting applied
- Read every custom field on a post in one call, with name/label/type/value bundled
- Update a custom field with type-aware value handling
- Enumerate Meta Box field groups on the site for discovery before reading or writing
Cache Integration (6 providers, 15 tools): When a supported cache plugin is active, AI agents can purge cached content after a write so visitors do not see stale pages:
- LiteSpeed Cache (2 tools) — purge all or a specific URL. Purge is driven through LiteSpeed's public
litespeed_purge_all/litespeed_purge_urlaction hooks, not its internal classes, so the integration survives the plugin's internal refactors. No cache-stats tool is exposed because LiteSpeed has no stable public accessor for a file/size count across its disk, object-cache, and CDN layers - WP Rocket (3 tools) — purge all, purge a URL, or purge minified/optimized assets
- W3 Total Cache (4 tools) — purge all, purge a URL, purge minified assets, and read cache status
- Redis Object Cache (2 tools) — read cache status and flush the object cache
- Autoptimize (2 tools) — purge all and read cache stats
- WP-Optimize (2 tools) — purge the page cache and read cache status
Purges drive each plugin's own public API, never direct file or option deletion, so the integration survives the plugin's internal refactors.
Redirection Integration (4 tools): When John Godley's Redirection plugin is active, AI agents can manage 301 / 302 / 307 redirects:
- List redirects with group + URL-substring filters
- Create new redirects (source, target, status code, regex, group, title)
- Update existing redirects (target, status, enabled state)
- List redirect groups
Analytics Integration (3 tools, read-only): When Site Kit by Google, Jetpack Stats, MonsterInsights, or Burst Statistics is active, AI agents can read normalized analytics status and reports through the installed plugin — never by owning vendor credentials or calling a vendor API directly:
- Read provider status: which providers are active, connection/configuration state, and non-secret identifiers (GA4 property, measurement ID, active modules). Credentials, OAuth tokens, and API keys are never returned
- Read a normalized traffic summary over a bounded date range through the plugin's own supported local report path
- Read top content by views through the same plugin-mediated path
- When a provider cannot expose reports without its authenticated flow (Site Kit's REST OAuth, for example), the tool returns an explicit
report_unavailableresult rather than guessing private storage or calling a vendor API
Forms & Lead Capture Integration (7 tools): When Gravity Forms, Fluent Forms, Contact Form 7, WPForms, Ninja Forms, or Elementor Pro Forms is active, AI agents can work with forms and submissions through one normalized surface — the same tool shape regardless of which form plugin is installed (read-only where a provider stores no entries):
- List forms and read a form's normalized field schema (id, label, type, required)
- List submissions, paginated, returning privacy-safe summary rows only (id, date, status, read state), never field values, which can hold personal data
- Read one submission in full through an addressed call; sensitive metadata (IP, user agent, browser/device, payment/transaction fields) is redacted by default
- Read aggregate submission counts by status without returning any submission bodies
- Guarded writes: change a submission's status, or move a submission to trash (never a permanent delete). The trash tool takes a two-part confirmation (
confirm=trueplusconfirm_entry_id), and both writes go through the provider's own API and emit an undo token - An unsupported status for a given provider is refused by name rather than written to a plausible-looking value
Email / SMTP Integration (1 tool, read-only): When WP Mail SMTP, Easy WP SMTP, FluentSMTP, or Post SMTP is active, AI agents can read the site's outgoing-email configuration status:
- Read the active mailer slug, whether setup is complete, the non-secret From name and From email, and the last send-error summary when the plugin exposes one
- Credentials, API keys, and passwords are never returned. FluentSMTP is read from its raw option so its own decrypting helper is never called
Security Integration (6 total, 18 tools, read-only): When a supported security plugin is active, AI agents can read security status — no secret is ever read or returned:
- Wordfence (5 tools) — security status, scan results, blocked IPs, and related diagnostics
- WP Defender (5 tools) — scan results, scan status, blocked IPs, and related diagnostics
- Solid Security (3 tools) — security status, findings, and lockouts
- Sucuri Security (1 tool) — security status
- Really Simple Security (2 tools) — security status and vulnerability feed
- Akismet (2 tools) — spam status and comment check
Backup Integration (5 total, 12 tools, read-only): When a supported backup plugin is active, AI agents can read backup status — package hashes, local storage paths, and log paths are never returned:
- UpdraftPlus (4 tools) — list backup sets, last backup summary, backup status, and start a backup
- BackWPup (2 tools) — list jobs and read a job
- Duplicator (2 tools) — list packages and read status
- WPvivid (2 tools) — list backups and read status
- All-in-One WP Migration (2 tools) — list backups and read status
CRM Integration (3 total, 6 tools, read-only): When a supported CRM plugin is active, AI agents can read marketing and contact data:
- FluentCRM (2 tools) — status and campaign list
- MailPoet (2 tools) — status and campaign list
- Groundhogg (2 tools) — status and campaign list
Membership Integration (4 total, 8 tools, read-only): When a supported membership plugin is active, AI agents can read membership structure:
- Paid Memberships Pro (2 tools) — status and membership levels
- Simple Membership (2 tools) — status and membership levels
- ProfilePress (2 tools) — status and subscription plans
- Restrict Content (2 tools) — status and membership levels
Donations Integration (2 total, 4 tools, read-only): When a supported donation plugin is active, AI agents can read giving data:
- GiveWP (2 tools) — status and campaigns
- Charitable (2 tools) — status and campaigns
Booking Integration (4 total, 8 tools, read-only): When a supported booking plugin is active, AI agents can read service and availability data:
- Amelia (2 tools) — status and service catalog
- LatePoint (2 tools) — status and service catalog
- Bookly (2 tools) — status and service catalog
- BookingPress (2 tools) — status and service catalog
LMS Integration (5 total, 10 tools, read-only): When a supported LMS plugin is active, AI agents can read course structure:
- LearnPress (2 tools) — status and course structure
- Sensei LMS (2 tools) — status and course structure
- Masteriyo LMS (2 tools) — status and course structure
- Tutor LMS (2 tools) — status and course structure
- LifterLMS (2 tools) — status and course structure
Events Integration (3 total, 6 tools, read-only): When a supported events plugin is active, AI agents can read events with hydrated detail:
- The Events Calendar (2 tools) — list events and read one event with venue and organizer detail
- Sugar Calendar (2 tools) — list events and read one event
- Events Manager (2 tools) — list events and read one event
Multilingual Integration (3 total, 7 tools, read-only): When a supported multilingual plugin is active, AI agents can list languages and resolve a post's or term's language and its translation siblings:
- TranslatePress (1 tool) — read the configured language set and URL slugs
- Polylang (3 tools) — list languages, resolve a post's or term's language, and list its translations
- WPML (3 tools) — list languages, resolve a post's or term's language, and list its translations
No secret is read; WPML element types are validated before any filter fires.
E-commerce Integration (2 total, 4 tools, read-only): When a supported e-commerce plugin is active, AI agents can read storefront data:
- Easy Digital Downloads (2 tools) — status and download catalog
- FluentCart (2 tools) — status and product catalog
Custom Fields / Content Models (3 total, 6 tools, read-only): When a supported content-modeling plugin is active, AI agents can discover and read custom content structures:
- Pods (2 tools) — list content models and read one model
- Custom Post Type UI (2 tools) — list custom post types and taxonomies
- MB Custom Post Types (2 tools) — list custom post types and taxonomies
Code Snippets Integration (4 tools): When the Code Snippets plugin is active and the "Allow code snippets" toggle is on, AI agents can manage code snippets — this is the write-side safety gate that is gated on its own dedicated option rather than the shared catalogue:
snippet_listandsnippet_getare read-onlysnippet_createandsnippet_updatewrite CSS or JS only, gated behind the toggle,manage_options, and two-part confirmation- PHP snippet writes are refused by name (that is remote code execution), and every created snippet is saved disabled so a human must activate it. No activate, deactivate, or delete
AI Media Integration (2 tools, off by default): When the "Allow AI media generation" toggle is on, AI agents can generate images and alt text through the AI provider you already configured (OpenAI or Google):
ai_generate_imageandai_generate_alt_textcall the configured provider- Disabled behind the toggle because every call spends provider credits; the key is never returned, requests go only to fixed provider endpoints, and nothing is exposed until you turn it on
Instant Images Integration (1 tool, read-only): When Instant Images is active, AI agents can search Unsplash and Pexels for stock photos using the API keys the plugin already stores:
stock_search_imagesreturns candidates with license and required attribution, ready to hand towp_upload_media_from_url. No new credential store
Image Optimizer Integration (4 total, 4 tools, read-only): When a supported image optimizer is active, AI agents can read optimization status:
- Imagify (1 tool) — optimization status
- EWWW Image Optimizer (1 tool) — optimization status (bytes saved, counts, average compression)
- WP Smush (1 tool) — optimization status
- ShortPixel (1 tool) — optimization status
Where a vendor exposes no stable public accessor for a figure, that figure is reported null rather than guessed.
More MCP and the WordPress Core Abilities API
WordPress 6.9 shipped the Abilities API in November 2025 — a primitive that lets plugins register typed capabilities AI agents can call. Core ships three default abilities (site info, user info, environment info) and the wordpress/mcp-adapter package bridges abilities to the MCP protocol.
Every More MCP tool also registers as a WordPress ability on WordPress 6.9 or later. You get three ways to reach the same tools: (1) More MCP's native /wp-json/more-mcp/v1/mcp endpoint (unchanged and always available), (2) the WordPress MCP Adapter if you install it — More MCP registers a named more-mcp-server alongside adapter's default server, or (3) WordPress core REST directly at /wp-json/wp-abilities/v1/abilities/{name}/run. Same handlers, three transports, one set of per-tool capability gates. The abilities layer can be disabled with a single option flag if needed.
More MCP is a complete, production-ready MCP server that predates the official adapter. It runs the full Streamable HTTP transport, enforces API key authentication on every request, ships OAuth 2.0 for Claude Desktop's native connector flow, rate-limits per-IP, redacts sensitive data, and logs every interaction. Out of the box it registers 111 always-on tools for WordPress core, Gutenberg blocks, and outbound webhooks. Opt-in integrations add more tools once you enable them per product, and ten lifecycle tools are available only after explicit administrator opt-in.
Supported AI platforms
- Claude — Claude Desktop and other Claude clients with MCP support
- OpenAI / ChatGPT — ChatGPT and OpenAI clients that support remote MCP servers
- Google Gemini — Gemini clients and development tools with MCP support
- Groq — MCP-capable applications using Groq-hosted models
- Azure OpenAI — MCP-capable applications using Azure-hosted models
- AWS Bedrock — MCP-capable applications using Bedrock-hosted models
- Ollama / LM Studio - Local self-hosted models (no external data transmission)
- Custom MCP Servers - Connect to any MCP-compatible endpoint
Compatible clients and frameworks
More MCP works with any MCP-compliant client, IDE, or AI agent framework — no per-tool configuration required. Each entry below describes the specific integration path More MCP provides for that target, so customers can answer "will this work with the tool I already use?":
- Desktop AI apps - Claude Desktop (native MCP connector via OAuth 2.0), ChatGPT Desktop, Gemini Advanced.
- AI code IDEs - Claude Code, VS Code (with MCP extension), Cursor, Windsurf, Continue, Cline, Zed, JetBrains AI Assistant.
- API testing tools - Postman, Bruno, Insomnia (use the API key in the
MMCP-Keyheader). - Custom field plugins - Advanced Custom Fields (ACF) has dedicated
acf_*tools that return values formatted per each field's Return Format setting (the same way the ACF UI shows them). MetaBox, JetEngine, Pods, CPT UI, and Custom Field Suite are supported through thewp_get_post_meta/wp_update_post_metatools, so AI agents can populate custom fields just like a human editor. - Page builders - Elementor has dedicated clone-and-customize tools (plus Pro fonts/icons/code when Elementor Pro is active). Divi has structural read tools plus guarded whole-node replace/insert/delete for Divi 4 shortcodes and Divi 5 blocks. Beaver Builder, Bricks, Gutenberg, Spectra, and Stackable remain reachable through standard post or block content, but builder-specific storage is opaque unless covered by a dedicated integration.
- Multilingual - TranslatePress, Polylang, and WPML have dedicated read-only language tools (list languages, resolve a post's or term's language, list translation siblings). Translated posts also appear as separate posts and can be read or written via the standard post tools.
- AI agent frameworks - LangChain, AutoGen, CrewAI, LlamaIndex, Haystack - any MCP-compatible framework can call More MCP's tools.
- AI app platforms - Anthropic Console, OpenAI Playground, Google AI Studio, Vertex AI, Azure AI Studio, Amazon Bedrock Console.
MCP specification compliance
More MCP implements the MCP 2025-11-25 Streamable HTTP transport specification:
- Single
/mcpendpoint for all JSON-RPC communication - POST for client messages, GET for server-sent events, DELETE for session termination
- Cryptographically secure session IDs with transient-based storage
- Origin header validation to prevent DNS rebinding attacks
- Proper CORS handling for browser-based MCP clients
External services
More MCP does not call AI-provider APIs, operate a license server, send telemetry, or make vendor callbacks. It runs inside your WordPress installation and responds only when an authenticated MCP or REST client makes a request.
A separately configured client may send tool results—including requested WordPress content—to its AI provider. That transfer is controlled by the client and the provider account you choose, not by an outbound More MCP integration. Review the terms and privacy policy of your chosen client or provider before granting it access to your site.
Common client providers:
-
Claude — Common client provider for Claude-based MCP connections Terms of Service | Privacy Policy
-
OpenAI — Common client provider for ChatGPT and OpenAI-based MCP connections Terms of Use | Privacy Policy
-
Google Gemini — Common client provider for Gemini-based MCP connections Terms of Service | Privacy Policy
-
Groq — Provider used by MCP-capable clients running Groq-hosted models Terms of Service | Privacy Policy
-
Microsoft Azure OpenAI — Provider used by MCP-capable clients with Azure-hosted models Terms of Service | Privacy Policy
-
AWS Bedrock — Provider used by MCP-capable clients with Bedrock-hosted models Terms of Service | Privacy Policy
-
Ollama / LM Studio — Local self-hosted models (no external data transmission)
-
Custom MCP Servers — User-configured servers (data sent to user-specified endpoints only)
Installation
Requires PHP 7.4 or later (8.0+ recommended) and WordPress 5.8 or later. See Requirements in the description above for the full list, including the HTTPS and pretty-permalink prerequisites for OAuth connectors.
- Upload the
more-mcpfolder to/wp-content/plugins/. - Activate More MCP from Plugins in WordPress.
- Open More MCP → Settings and enable the server.
- Choose an authentication method:
- Use the native OAuth connector flow when your MCP client supports it.
- Otherwise, copy the generated More MCP API key and send it in the
MMCP-Keyheader.
- Configure your MCP client with
https://yoursite.com/wp-json/more-mcp/v1/mcp.
The Settings page shows the exact MCP server URL, the API key, and the required request header for each supported client.
Frequently asked questions
What is MCP and why does my WordPress site need it?
Model Context Protocol (MCP) is an open standard created by Anthropic that lets AI assistants interact with external data sources. Without MCP, AI tools like Claude or ChatGPT can only work with content you copy and paste into them. With More MCP installed, these AI platforms can directly read your WordPress posts, create new content, manage your WooCommerce products, check your security status, and trigger backups — all through a structured, authenticated protocol.
How is More MCP different from other WordPress MCP plugins?
Security is the whole point. Many WordPress MCP bridges expose their tools with little or no authentication, which on a live site is an open door. More MCP requires OAuth 2.0 or an API key on every session, enforces a WordPress capability check inside each tool handler, applies a per-IP rate limit, and redacts sensitive data (user emails, PHP version, stored credentials) from responses. It is designed to be safe to point a production site at.
Does More MCP duplicate what WordPress core now does?
No. WordPress 6.9 added the Abilities API — a primitive for registering AI-callable functions — and the wordpress/mcp-adapter package bridges abilities to MCP. More MCP remains a complete server with its own authenticated Streamable HTTP transport, OAuth 2.0 connector flow, per-IP rate limiting, audit logging, sensitive-data redaction, 111 always-registered WordPress-core, Gutenberg, and webhook tools, and more tools from integrations you enable.
Does More MCP work with WooCommerce?
Yes. When WooCommerce is active and you enable the WooCommerce integration under More MCP → Settings → Access → Plugins, More MCP adds 29 MCP tools spanning product management (simple and variable, including variation CRUD and global attribute management), full coupon management (list/get/create/update/delete + bulk trash purge), order management (view, update status), customer data, and store statistics. The integration is off until you enable it — activating WooCommerce alone does not expose the tools.
Can AI assistants configure my plugins for me?
Yes, with safety controls. More MCP exposes two tools for plugin configuration:
wp_get_plugin_settingslets AI read any plugin's stored settings by slug.
This README is longer than the copy stored here. Read the rest on GitHub →
Releases
17 releases. Each count is every asset in that release; expand a row for the breakdown.