The Future & Going Commercial

Future-Proofing for WordPress Core

⏱ 13 min

Both halves of this stack are still moving. The Abilities API shipped in WordPress core 6.9, which is recent, and the MCP Adapter is an actively developed plugin, not a finished, frozen product. Code you write today needs to survive both kinds of change gracefully: core additions that are backward-compatible by WordPress’s own long-standing policy, and adapter releases that might genuinely change internals you’re depending on. This lesson is about depending on the right things, and watching the right places, so neither kind of change breaks you.

What you'll learn in this lesson
Depend on interfaces and documented functions, not internals
The difference between a stable contract and an implementation detail.
How WordPress core actually handles deprecation
Why this is lower-risk than most other platforms.
Version-pinning the MCP Adapter deliberately
Reading its changelog before upgrading, not just running composer update blind.
Where the real roadmap lives
make.wordpress.org/ai/, not speculation or old archived repos.
Prerequisites

This lesson assumes you’ve used the observability and error-handling interfaces from Lesson 3 and the create_server() API from Lesson 2, since this lesson is specifically about which of those things are safe to depend on long-term.

Step 1: Depend on the interface, not the default implementation

The MCP Adapter ships NullMcpObservabilityHandler and ErrorLogMcpErrorHandler as convenient defaults, but the actual stable contract you should be coding against is the interface each one implements: WP\MCP\Infrastructure\Observability\Contracts\McpObservabilityHandlerInterface and WP\MCP\Infrastructure\ErrorHandling\Contracts\McpErrorHandlerInterface. Your own handler implements the interface; it doesn’t extend or wrap the default classes. This is ordinary good PHP practice, but it matters more than usual here because the default implementations are the parts most likely to gain new internal behavior between releases, while the interface’s method signature is the part the adapter’s own maintainers have the strongest incentive to keep stable.

// File: my-plugin.php
// Depend on this (stable contract):
use WP\MCP\Infrastructure\Observability\Contracts\McpObservabilityHandlerInterface;

// Not on internals of this (an implementation detail you don't control):
// WP\MCP\Infrastructure\Observability\NullMcpObservabilityHandler

Step 2: Trust core’s own deprecation policy, but verify plugin behavior yourself

WordPress core has a strong, decades-long track record of not removing functions outright, deprecating them with _deprecated_function() and a clear notice while keeping the old behavior working for a long transition window. That policy gives you real confidence that wp_register_ability() and the rest of the Abilities API’s core functions won’t disappear or silently change behavior without a loud, documented warning first.

The MCP Adapter, as a plugin rather than core, doesn’t carry that same multi-year compatibility guarantee by default, plugin authors set their own policy. Read its actual changelog before bumping a version pin, and treat a major version bump in its own versioning the same way you’d treat any other dependency’s major bump: a signal to actually read the notes, not just update and hope.

Step 3: Pin and review, don’t float and hope

// File: composer.json
{
	"require": {
		"php": ">=8.1"
	}
}

If you’re depending on the MCP Adapter as an installed plugin rather than a Composer dependency (the common case, since it’s typically installed as a regular WordPress plugin), the equivalent discipline is: don’t enable auto-updates on it for a production site without first reading the release notes in a staging environment. This isn’t paranoia specific to this plugin, it’s the same policy a careful team already applies to WooCommerce or any other plugin core business logic depends on.

Step 4: Track the real roadmap, not guesses

The old feature-plugin repo is archived

github.com/WordPress/abilities-api was the pre-core feature-plugin repository used to develop the Abilities API before it merged into WordPress core 6.9. It’s now archived. If you find tutorials or old bookmarks pointing at it as if it were an active project, treat that as outdated, the real, current work happens in WordPress core itself and in the separate, actively maintained github.com/WordPress/mcp-adapter repository.

The actual place to watch for what’s coming next is make.wordpress.org/ai/, the WordPress AI team’s public blog, which posts regular contributor summaries covering in-progress work on both the Abilities API and the MCP Adapter. This is meaningfully different from asking an AI model what’s coming, or trusting a third-party blog’s speculation: it’s the team actually doing the work, publishing what they’re actually doing, in public, on a WordPress.org-hosted make blog exactly like every other core team.

Where to look, for what
QuestionWhere to check
Is a core Abilities API function deprecated or changing?Core Trac, and the Abilities API section of developer.wordpress.org
What’s the MCP Adapter’s current version and recent changes?The plugin’s own changelog / GitHub releases
What is the AI team actively working on right now?make.wordpress.org/ai/ weekly contributor summaries
Is a pattern from an old tutorial still accurate?Cross-check against the current developer.wordpress.org reference, not the tutorial’s publish date

Test it

Before your next MCP Adapter update in a real project, do this check as a habit: read the plugin’s changelog entry for the version you’re moving to, grep your own codebase for every class name you reference from the adapter’s namespace, and confirm none of them are internal classes (anything not under a Contracts namespace or not documented as a public entry point).

grep -rn "WP\\\\MCP\\\\" --include="*.php" .

Review that list against what’s actually documented as a stable extension point before assuming an upgrade is safe.

Recap

Future-proofing here means two distinct disciplines: trusting WordPress core’s own strong deprecation policy for the Abilities API itself, while treating the MCP Adapter, a separate, actively developing plugin, with the same version-review discipline you’d apply to any other significant plugin dependency. Depend on documented interfaces (McpObservabilityHandlerInterface, McpErrorHandlerInterface) rather than default implementation classes, and track real progress at make.wordpress.org/ai/, not old archived repositories or speculation.

Resources & further reading

← REST API + MCP Hybrid Architectures Publishing a Commercial MCP Plugin on WordPress.org →