Description
Part of the AI Building Blocks for WordPress initiative.
The MCP Adapter bridges WordPress’s Abilities API with the Model Context Protocol (MCP) specification, providing a standardized way for AI agents to interact with WordPress functionality. It includes HTTP and STDIO transport support, comprehensive error handling, and an extensible architecture for custom integrations.
Features:
- Ability-to-MCP Conversion – Automatically converts WordPress abilities into MCP tools, resources, and prompts.
- Multi-Server Management – Create and manage multiple MCP servers with unique configurations.
- Extensible Transport Layer – Built-in HTTP and STDIO transports, plus support for custom transport protocols.
- Flexible Error Handling – Default WordPress-compatible error logging with support for custom, server-specific handlers.
- Observability – Zero-overhead metrics tracking with configurable handlers.
- Permission Control – Granular, configurable permission checking for all exposed functionality.
Installation
- Go to Plugins > Add New in your WordPress admin, search for “MCP Adapter”, and click Install Now.
- Activate the plugin through the ‘Plugins’ screen in WordPress.
- Register the abilities you want to expose, or install a plugin that registers them for you.
You can also upload the plugin ZIP via Plugins > Add New > Upload Plugin, or install it with WP-CLI:
wp plugin install mcp-adapter --activate
FAQ
-
What is MCP?
-
Model Context Protocol is an open standard for connecting AI agents to external systems. Instead of every AI client needing its own custom integration, a system exposes what it can do as MCP tools, resources and prompts, and any MCP-compatible client can use them. See modelcontextprotocol.io for the specification.
-
What is MCP Adapter?
-
MCP Adapter is the server and transport layer. It does not provide any AI features itself.
What it exposes comes from the WordPress Abilities API. An ability is a single capability registered by WordPress core or by another plugin, such as reading posts or updating a setting. MCP Adapter takes the abilities registered on your site, makes them available to MCP clients, and handles protocol negotiation, permissions and error handling.
That means you also need abilities on the site for this to be useful, from core or from a plugin that registers its own.
-
How do AI agents connect to my site?
-
The adapter registers MCP endpoints over the built-in HTTP transport. Point an MCP-compatible client at the endpoint and authenticate as a WordPress user. The adapter supports exact MCP revisions
2025-11-25and2026-07-28. See the getting started guide for endpoint details. -
Does every registered ability get exposed automatically?
-
No, exposure is opt-in. An ability is only reachable over MCP if it has been marked public, and permission checks still run against the current user before anything executes. See the documentation for how to opt abilities in and out.
-
Where do I report bugs or request features?
-
On the GitHub repository. Security issues should follow the process in SECURITY.md rather than being reported publicly.
Plugin developers should depend on MCP Adapter by adding
Requires Plugins: mcp-adapterto their plugin header. See the README for WP-CLI and wp-env options.
Reviews
There are no reviews for this plugin.
Contributors & Developers
“MCP Adapter” is open source software. The following people have contributed to this plugin.
ContributorsTranslate “MCP Adapter” into your language.
Interested in development?
Browse the code, check out the SVN repository, or subscribe to the development log by RSS.
Changelog
0.7.0 – 2026-10-02
Breaking Changes
- The adapter serves exactly two MCP schema revisions,
2025-11-25and2026-07-28. Clients that propose2025-06-18or2024-11-05still connect and are served through the2025-11-25schema. - The generated DTO classes, the
McpToolValidator,McpResourceValidator, andMcpPromptValidatorclasses, and themcp_adapter_validation_enabledfilter have been removed. Wire validation always runs through the selected schema. - Invalid protocol fields are no longer silently dropped or repaired. Components that no supported revision can represent are rejected.
- Custom transports must delegate to
HttpRequestHandlerorMcpWireOrchestrator. JSON-RPC batch requests are rejected. WP\MCP\Cliclasses arefinal.
Added
- MCP
2026-07-28support, including the sessionlessserver/discoverlifecycle and the new HTTP headers. - Direct callable tools can request elicitation input under
2026-07-28by returningMcpInputRequired. McpRequestContext, an immutable per-request context with the selected schema, transport, and session data.
Changed
- Using MCP Adapter as a bundled library is deprecated. Install the MCP Adapter plugin instead.
Fixed
mcp-adapter/get-ability-infoserializes an emptyinput_schemaas{}instead of[].- Default abilities register when another plugin initializes the Abilities API before the MCP server initializes.
See the 0.7.0 migration guide and CHANGELOG.md for the full list of changes.
0.6.1 – 2026-08-13
Fixed
- The release ZIP no longer ships a Jetpack Autoloader class map pointing at files the ZIP omits. In 0.6.0 the class map listed test-only global classes, including
WP_CLIandWP_CLI_Command, and mapped them to files undertests/phpunit/, which the release artifact excludes. Any plugin callingclass_exists( 'WP_CLI' )on a normal web request could therefore trigger an uncaught fatal error.class_exists( 'WP_CLI' )now returnsfalsewhen WP-CLI is unavailable (#283).
No API, hook, or protocol behavior changed. Upgrading from 0.6.0 requires no migration. Installations built from source or required through Composer were unaffected.
0.6.0 – 2026-08-12
Breaking Changes
- WordPress 6.9 or newer is now required. The standalone Abilities API plugin is no longer a supported installation path.
- Abilities with
meta.public: trueare now exposed through the default MCP server unlessmeta.mcp.publicexplicitly opts out. Existing permission callbacks and capability checks still apply. - On multisite only, active Streamable HTTP sessions must reconnect once after upgrading, because session storage moves from a network-wide key to separate per-site keys. Single-site installations are unaffected.
- The MIME validation helpers previously exposed by
McpValidatorhave been removed. Integrations calling them directly should apply their own application-specific MIME validation.
Added
- Support for
resources/templates/list, returning an empty template list when no templates are available. - Blocked direct execution of plugin PHP files.
- Expanded automated compatibility, dependency, and Plugin Check coverage.
Changed
- Jetpack Autoloader is now used so the newest available
WP\MCPclasses win when the standalone adapter and another plugin bundle different versions. - Session storage is scoped by blog on WordPress multisite.
- Concurrent session mutations are protected with bounded retries, reducing the risk of one request overwriting another session.
- Documentation clarifies that the Abilities API is included in WordPress 6.9 and newer, documents the required ability
categoryfield, and improves examples throughout.
Fixed
_metais preserved on resource contents, embedded resources, content blocks, and prompt messages.- Malformed
_metais omitted without discarding the payload it accompanies. mimeTypeis emitted exactly as declared, including values with parameters such astext/html;profile=mcp-app.- Blob-only resource contents are handled correctly.
- Resource URI schemes are matched case-insensitively, so clients can read resources even when they normalize the scheme to lowercase.
- Empty arguments are normalized for schema-defining abilities, allowing valid zero-argument tool calls to execute.
wp mcp-adapter servekeeps JSON-RPC stdout clean when selecting the default server.- WP-CLI’s global
--userargument is used instead of registering a conflicting local option.
For older releases, see CHANGELOG.md.
