Back to MCP Servers

WordPress Plugin MCP Server

Official WordPress package that bridges the WordPress Abilities API to MCP, letting AI agents discover and invoke plugin, theme, and core abilities as MCP tools.

Content & CMS by WordPress Basic Auth active
Overview

The WordPress MCP Adapter is the official WordPress package for exposing site functionality to AI agents through the Model Context Protocol. It is part of the "AI Building Blocks for WordPress" initiative and adapts abilities registered via the WordPress Abilities API into MCP primitives: tools (executable functions), resources (contextual data), and prompts (structured guidance templates). Plugin and theme developers register abilities once, and the adapter automatically makes them available to any MCP-compatible AI client.

The adapter ships with a default server mounted at /wp-json/mcp/mcp-adapter-default-server and supports both HTTP (MCP 2025-06-18 compliant) and STDIO transports, with an extensible transport layer for custom protocols. Built-in tools allow AI agents to introspect the system: discover-abilities, get-ability-info, and execute-ability. Abilities marked with meta.mcp.public = true are discoverable through the default server, while developers can also spin up multiple custom servers, each with its own namespace, transport list, permission callbacks, error handler, and observability handler.

This is the canonical implementation going forward. The earlier Automattic/wordpress-mcp repository is being deprecated in favor of WordPress/mcp-adapter, and the Abilities API itself is included in WordPress core starting with version 6.9. The package is GPL-2.0-or-later licensed and distributed via Composer (Packagist) as well as a downloadable plugin from GitHub Releases.

Tools

Tool Description
discover-abilities Lists the WordPress abilities exposed to the MCP server (those with meta.mcp.public = true or explicitly registered on a custom server).
get-ability-info Retrieves metadata for a specific WordPress ability, including its input/output schema and description.
execute-ability Executes a registered WordPress ability with provided arguments, returning its result through MCP.
Setup Guide

Prerequisites

  • PHP 7.4 or higher
  • WordPress 6.8+ (6.9+ recommended)
  • WordPress Abilities API (built into core in 6.9+; install the abilities-api plugin separately for 6.8)
  • A WordPress user with Application Passwords enabled for HTTP transport

Installation

Recommended (Composer, inside a plugin or theme):

composer require wordpress/mcp-adapter

If you are on WordPress 6.8, also install:

composer require wordpress/abilities-api

Using the Jetpack Autoloader is recommended when multiple plugins depend on this package.

Alternative (clone as a plugin):

git clone https://github.com/WordPress/mcp-adapter.git wp-content/plugins/mcp-adapter
cd wp-content/plugins/mcp-adapter && composer install

Initialization

use WP\MCP\Core\McpAdapter;

if ( ! class_exists( McpAdapter::class ) ) {
    return;
}
McpAdapter::instance();

Abilities marked meta.mcp.public = true are automatically exposed by the default server at /wp-json/mcp/mcp-adapter-default-server.

MCP Client Configuration

STDIO via WP-CLI (local development)

{
  "mcpServers": {
    "wordpress-default": {
      "command": "wp",
      "args": [
        "--path=/path/to/wordpress",
        "mcp-adapter",
        "serve",
        "--server=mcp-adapter-default-server",
        "--user=admin"
      ]
    }
  }
}

HTTP via the Automattic remote proxy (Application Passwords)

{
  "mcpServers": {
    "wordpress-http": {
      "command": "npx",
      "args": ["-y", "@automattic/mcp-wordpress-remote@latest"],
      "env": {
        "WP_API_URL": "http://site.test/wp-json/mcp/mcp-adapter-default-server",
        "WP_API_USERNAME": "username",
        "WP_API_PASSWORD": "application-password"
      }
    }
  }
}

Creating a Custom Server

add_action( 'mcp_adapter_init', function ( $adapter ) {
    $adapter->create_server(
        'my-server-id',
        'my-namespace',
        'mcp',
        'My MCP Server',
        'Server description',
        'v1.0.0',
        [ \WP\MCP\Transport\HttpTransport::class ],
        ErrorHandlerClass::class,
        ObservabilityHandlerClass::class,
        [ 'my-plugin/ability-name' ],
        [],
        []
    );
} );
Use Cases
  • Let an AI agent draft, publish, and update WordPress posts and pages by invoking abilities registered by core or content plugins
  • Expose WooCommerce product and order abilities (per the canonical WooCommerce abilities API) so an agent can query inventory or fulfill orders
  • Allow site administrators to ask an agent to introspect available abilities and run admin tasks (user management, settings updates) safely behind permission callbacks
  • Build a custom MCP server scoped to a single plugin's abilities, with its own auth and observability handlers, for partner or SaaS integrations
  • Enable conversational site management through Claude Desktop or Cursor against a local WordPress install via WP-CLI STDIO transport
Example Prompts
  • "Discover the abilities exposed by my WordPress site and list the ones related to posts."
  • "Use get-ability-info on core/create-post and show me the required input schema."
  • "Create a new draft post titled 'Q3 launch recap' with the body I just gave you."
  • "List the last 10 WooCommerce orders with status 'processing' and summarize their totals."
  • "Run the my-plugin/sync-inventory ability and report any errors."
Pros
  • Official WordPress project (not a community fork), aligned with the Abilities API roadmap shipping in WordPress 6.9
  • Automatic conversion of abilities to MCP tools, resources, and prompts, so developers write the integration once
  • Multi-server support with per-server transports, permissions, error handlers, and observability handlers
  • Supports both HTTP (MCP 2025-06-18 spec) and STDIO transports, plus custom transport classes
Limitations
  • Requires WordPress 6.8+ and the Abilities API, plus Composer-based installation; not a drag-and-drop plugin for typical site owners
  • HTTP access depends on a proxy such as @automattic/mcp-wordpress-remote together with Application Passwords; native remote MCP client support is limited
  • Surface area is only as broad as the abilities registered on the site, so out of the box it does little until plugins or custom code register abilities
Alternatives
  • Automattic/wordpress-mcp (predecessor, being deprecated in favor of WordPress/mcp-adapter)
  • @automattic/mcp-wordpress-remote as a thin client-side proxy for connecting MCP clients to a WordPress REST endpoint
  • Community WordPress REST API MCP wrappers built on the standard /wp-json/wp/v2 endpoints when the Abilities API is not available