The Abilities API gives WordPress a way to register what a site can do, but it doesn’t talk to AI clients by itself. That’s the MCP Adapter’s job: the official plugin, maintained by the WordPress AI Team, that takes your registered abilities and serves them over the Model Context Protocol. This lesson gets it installed and confirms it’s running, nothing else.
A local WordPress 6.9+ environment with terminal access and WP-CLI available (built by Course 1’s environment setup lesson). You’ll also need Composer and Git installed locally, plus PHP 7.4 or later.
Step 1: Get the plugin
The MCP Adapter is not in the WordPress.org plugin directory. It’s distributed from
its GitHub repository, github.com/WordPress/mcp-adapter,
either as a packaged release zip or as source you clone directly. For development work
where you want to read the source, follow along with updates, or eventually contribute,
cloning it straight into wp-content/plugins is the simplest path.
# File: terminal, from your WordPress install's wp-content/plugins directory
git clone https://github.com/WordPress/mcp-adapter.git
cd mcp-adapter
composer install
composer install pulls in wordpress/php-mcp-schema, the typed DTO package the
adapter uses internally to represent MCP protocol objects, along with the Jetpack
Autoloader the plugin uses to avoid version conflicts if more than one plugin on the
site ends up depending on the adapter.
Step 2: Activate it
# File: terminal
wp plugin activate mcp-adapter
If you’d rather use the packaged release instead of building from source, WP-CLI can install directly from the GitHub release zip in one step:
# File: terminal, alternative install method
wp plugin install https://github.com/WordPress/mcp-adapter/releases/latest/download/mcp-adapter.zip --activate
Either method activates the same plugin. The clone-and-composer install route is
worth knowing because you’ll want to read the adapter’s source directly more than once
in this course, its classes and hooks aren’t yet documented as exhaustively as core
WordPress functions.
If your local environment is itself built with wp-env, there’s a third option: adding
the release zip directly to your project’s .wp-env.json, so the plugin installs and
activates automatically every time the environment starts, with no manual install step
at all:
// File: .wp-env.json
{
"$schema": "https://schemas.wp.org/trunk/wp-env.json",
"plugins": [
"https://github.com/WordPress/mcp-adapter/releases/latest/download/mcp-adapter.zip"
]
}
This is worth knowing if you’re following along in a disposable wp-env container: it
means tearing the environment down and starting fresh always brings the adapter back up
already active, rather than requiring you to redo the install steps by hand each time.
Step 3: Understand what just got registered
On activation, the adapter automatically creates a default MCP server with no configuration required. That default server exposes three built-in meta-tools your AI client can call: one to discover which of your abilities are public, one to fetch a given ability’s full schema, and one to actually execute an ability. You’ll register your own custom servers starting in Lesson 6, but the default server is enough to confirm the plugin is alive.
The plugin also registers two new WP-CLI commands: wp mcp-adapter list, which lists
every registered MCP server, and wp mcp-adapter serve, which serves a server over
STDIO. Both are covered in depth in Lessons 7 and 10.
Test it
# File: terminal
wp plugin list --status=active | grep mcp-adapter
wp mcp-adapter list --format=table
You should see mcp-adapter in the active plugin list, and the list command should
print at least one row: the default server, with an ID of
mcp-adapter-default-server. If that row is missing, the plugin activated but its
internal mcp_adapter_init hook (where servers get created) never fired, usually a sign
something errored silently during activation.
# File: terminal, confirm the core class is loaded
wp eval 'var_dump( class_exists( "WP\MCP\Core\McpAdapter" ) );'
This should print bool(true).
If you clone the repository but skip composer install, activating the plugin will
either fatal error or silently fail, because the WP\MCP\Core\McpAdapter class and its
dependencies live in the vendor/ directory that Composer generates, not in the
repository itself. Always run composer install inside the plugin’s own directory
before activating. If you later see “Class not found” errors after pulling updates,
re-running composer install (or composer dump-autoload if only the autoloader is
stale) usually fixes it.
Recap
You now have the official MCP Adapter installed from source, its Composer dependencies
resolved, and a default MCP server already running with zero configuration. The next
lesson registers the ability that server will actually expose: a real, working “create a
draft post” action using wp_register_ability().
Resources & further reading
- MCP Adapter repository, GitHub
- From Abilities to AI Agents: Introducing the WordPress MCP Adapter
- Abilities API reference, developer.wordpress.org
- WP-CLI