VOOZH about

URL: https://deepwiki.com/WordPress/mcp-adapter/1.1-what-is-mcp-adapter

⇱ What is MCP Adapter | WordPress/mcp-adapter | DeepWiki


Loading...
Menu

What is MCP Adapter

Purpose and Scope

This document explains the core purpose of MCP Adapter, its relationship to the WordPress Abilities API, and how it enables AI clients to interact with WordPress functionality. For detailed information about key concepts like tools, resources, prompts, and transport layers, see Key Concepts. For architectural details, see Architecture.


What is MCP Adapter

MCP Adapter is a WordPress package that implements the Model Context Protocol (MCP) specification, exposing WordPress functionality to AI agents. It serves as a translation layer between WordPress's Abilities API and the MCP specification, automatically converting registered WordPress abilities into MCP-compliant tools, resources, and prompts.

The adapter is implemented as a singleton registry (McpAdapter) that manages multiple MCP servers, each capable of exposing different sets of abilities through standardized communication protocols.

Key characteristics:

  • Implements MCP specification 2025-06-18
  • Supports both HTTP and STDIO transport protocols
  • Provides automatic ability-to-MCP component conversion
  • Offers multi-server architecture with isolated configurations
  • Includes built-in error handling and observability

The MCP Adapter Position


Sources: README.md1-501 includes/Core/McpAdapter.php1-500


Relationship to WordPress Abilities API

MCP Adapter depends entirely on the WordPress Abilities API for its functionality. The Abilities API provides:

Abilities API ComponentPurposeMCP Adapter Usage
wp_register_ability()Registers abilities with metadataSource of all MCP components
wp_get_ability()Retrieves registered abilitiesUsed by handlers to access abilities
input_schemaDefines ability input structureConverted to MCP tool schemas
output_schemaDefines ability output structureUsed for response validation
execute_callbackExecutes ability logicInvoked by MCP handlers
permission_callbackChecks ability permissionsEnforced during MCP requests

The relationship is one-way: WordPress abilities are registered independently of MCP Adapter, and the adapter automatically discovers and exposes them based on metadata configuration.

Ability Registration Flow


Sources: README.md176-185 includes/Core/McpAdapter.php1-500 includes/Domain/Tools/RegisterAbilityAsMcpTool.php1-200


The Bridge Architecture

MCP Adapter acts as a bridge with three distinct layers:

1. Transport Layer

Handles communication between AI clients and WordPress:

TransportClassProtocolUse Case
HTTPHttpTransportJSON-RPC 2.0 over HTTPProduction AI client connections
STDIOStdioServerBridgeJSON-RPC 2.0 over stdin/stdoutLocal development and WP-CLI testing

Sources: includes/Transport/HttpTransport.php1-500 includes/Cli/StdioServerBridge.php1-300

2. Handler Layer

Processes MCP protocol methods:

HandlerFileMCP Methods
InitializeHandlerincludes/Handlers/Initialize/InitializeHandler.phpinitialize
ToolsHandlerincludes/Handlers/Tools/ToolsHandler.phptools/list, tools/call
ResourcesHandlerincludes/Handlers/Resources/ResourcesHandler.phpresources/list, resources/read
PromptsHandlerincludes/Handlers/Prompts/PromptsHandler.phpprompts/list, prompts/get

Sources: includes/Handlers/ README.md102-108

3. Domain Layer

Transforms WordPress abilities into MCP components:

Conversion ClassSourceTargetResponsibility
RegisterAbilityAsMcpToolWordPress AbilityMcpToolSchema transformation, execution wrapping
RegisterAbilityAsMcpResourceWordPress AbilityMcpResourceURI-based identification, read operations
RegisterAbilityAsMcpPromptWordPress AbilityMcpPromptMessage generation, argument templates

Sources: includes/Domain/Tools/RegisterAbilityAsMcpTool.php includes/Domain/Resources/RegisterAbilityAsMcpResource.php includes/Domain/Prompts/RegisterAbilityAsMcpPrompt.php

Request Flow Through the Bridge


Sources: includes/Transport/HttpTransport.php1-500 includes/Transport/Infrastructure/RequestRouter.php1-300 includes/Handlers/Tools/ToolsHandler.php1-400


Core Components and Their Roles

McpAdapter Singleton

The central registry at includes/Core/McpAdapter.php1-500 manages all MCP servers:

Key methods:

  • instance(): Returns singleton instance
  • init(): Initializes WordPress integration, creates default server
  • create_server(): Creates new MCP server instances
  • get_server(): Retrieves server by ID
  • register_routes(): Registers REST API endpoints

Initialization hook: mcp_adapter_init fires after default server creation, allowing plugins to create custom servers.

McpServer

Individual server management at includes/Core/McpServer.php1-500:

Properties:

  • id: Unique server identifier (e.g., mcp-adapter-default-server)
  • namespace: REST API namespace (e.g., mcp)
  • route: REST API route (e.g., mcp-adapter-default-server)
  • component_registry: Stores tools, resources, prompts

Key methods:

  • register_abilities(): Converts abilities to MCP components
  • get_tools(): Returns registered tools
  • get_resources(): Returns registered resources
  • get_prompts(): Returns registered prompts

McpComponentRegistry

Component storage at includes/Core/McpComponentRegistry.php1-300:

Stores:

  • Tools as McpTool instances
  • Resources as McpResource instances
  • Prompts as McpPrompt instances

Methods:

  • register_tool(), register_resource(), register_prompt(): Add components
  • get_tool(), get_resource(), get_prompt(): Retrieve by name/URI

Sources: includes/Core/McpAdapter.php1-500 includes/Core/McpServer.php1-500 includes/Core/McpComponentRegistry.php1-300


Transport Protocols

HTTP Transport

The HttpTransport class at includes/Transport/HttpTransport.php1-500 implements MCP over HTTP:

Request handling:

  1. Parse JSON-RPC 2.0 request body
  2. Validate or create session (via HttpSessionValidator)
  3. Check transport permissions
  4. Route to appropriate handler (via RequestRouter)
  5. Build JSON-RPC response (via JsonRpcResponseBuilder)

Endpoint pattern: /wp-json/{namespace}/{route}

Example: /wp-json/mcp/mcp-adapter-default-server

STDIO Transport

The StdioServerBridge class at includes/Cli/StdioServerBridge.php1-300 implements MCP over stdin/stdout:

Invocation: wp mcp-adapter serve --server=server-id --user=username

Request handling:

  1. Read JSON-RPC from stdin
  2. Route to handler
  3. Write JSON-RPC response to stdout

Use case: Local development, WP-CLI testing, process-based MCP clients

Sources: includes/Transport/HttpTransport.php1-500 includes/Cli/StdioServerBridge.php1-300 includes/Cli/McpCommand.php1-200


MCP Component Types

MCP Adapter exposes three types of components as defined in the MCP specification:

Component TypeMCP SpecWordPress AbilityDetermines By
ToolExecutable functionAbility with execute_callbackmeta.mcp.type = 'tool' or default
ResourceReadable data sourceAbility with execute_callback returning datameta.mcp.type = 'resource'
PromptTemplate for AI guidanceAbility returning message structuremeta.mcp.type = 'prompt'

Automatic Component Conversion


Sources: includes/Domain/Tools/RegisterAbilityAsMcpTool.php1-200 includes/Domain/Resources/RegisterAbilityAsMcpResource.php1-200 includes/Domain/Prompts/RegisterAbilityAsMcpPrompt.php1-200


Default Server and Built-in Abilities

MCP Adapter automatically creates a default server with ID mcp-adapter-default-server at includes/Servers/DefaultServerFactory.php1-200 This server includes three built-in abilities for system introspection:

Built-in AbilityClassPurpose
mcp-adapter-discover-abilitiesDiscoverAbilitiesAbilityList all registered WordPress abilities
mcp-adapter-execute-abilityExecuteAbilityAbilityExecute any ability by name
mcp-adapter-get-ability-infoGetAbilityInfoAbilityRetrieve detailed ability information

These abilities enable AI agents to discover and interact with WordPress functionality dynamically.

Sources: includes/Servers/DefaultServerFactory.php1-200 includes/Abilities/DiscoverAbilitiesAbility.php1-200 includes/Abilities/ExecuteAbilityAbility.php1-300


Summary

MCP Adapter is a translation layer that:

  1. Implements the Model Context Protocol specification 2025-06-18
  2. Bridges WordPress Abilities API to MCP-compliant components
  3. Provides HTTP and STDIO transport protocols for AI client communication
  4. Manages multiple isolated MCP servers with independent configurations
  5. Automatically converts WordPress abilities into tools, resources, and prompts
  6. Exposes functionality through REST API endpoints and WP-CLI commands

The adapter enables AI agents to interact with WordPress using standardized protocols, with all functionality derived from the WordPress Abilities API. For detailed information about creating abilities, see Creating Abilities. For security and permissions, see Security and Permissions.

Sources: README.md1-501 includes/Core/McpAdapter.php1-500 includes/Core/McpServer.php1-500