VOOZH about

URL: https://deepwiki.com/WordPress/mcp-adapter

⇱ WordPress/mcp-adapter | DeepWiki


Loading...
Menu

Overview

This document provides a high-level introduction to the MCP Adapter system architecture, its core components, and how requests flow through the system. For detailed installation instructions, see Installation. For fundamental concepts and terminology, see Key Concepts. For in-depth architectural details, see Architecture.

System Purpose

MCP Adapter is a WordPress package that bridges the WordPress Abilities API with the Model Context Protocol (MCP) specification. It enables AI agents to interact with WordPress functionality by automatically converting WordPress abilities into MCP tools, resources, and prompts.

The system operates through a three-tier architecture:

  1. Transport Layer: HTTP and STDIO communication protocols
  2. Routing Layer: JSON-RPC request routing and session management
  3. Handler Layer: Business logic for tools, resources, prompts, and system operations

Sources: README.md1-11

Architecture Overview

The MCP Adapter follows a modular, layered architecture with clear separation of concerns:


Key architectural patterns:

LayerPurposeKey Components
CoreServer management and component registryMcpAdapter, McpServer, McpComponentRegistry
TransportProtocol implementation and request routingHttpTransport, StdioServerBridge, RequestRouter
HandlerMCP method implementationToolsHandler, ResourcesHandler, PromptsHandler, InitializeHandler, SystemHandler
DomainAbility-to-MCP conversionRegisterAbilityAsMcpTool, RegisterAbilityAsMcpResource, RegisterAbilityAsMcpPrompt
InfrastructureError handling, observability, sessionsMcpErrorFactory, McpObservabilityHandlerInterface, SessionManager

Sources: README.md56-146 includes/Core/McpAdapter.php includes/Core/McpServer.php includes/Core/McpComponentRegistry.php includes/Transport/HttpTransport.php includes/Transport/Infrastructure/RequestRouter.php includes/Cli/StdioServerBridge.php

Request Processing Flow

Every MCP request follows a consistent lifecycle from client to response:


Request lifecycle stages:

  1. Transport Processing: JSON-RPC parsing, session validation, transport permission checks
  2. Request Routing: Method dispatch, observability start tracking
  3. Handler Execution: Parameter validation, component retrieval, permission checks
  4. Ability Execution: WordPress ability callback invocation
  5. Response Building: Metadata attachment, observability recording, JSON-RPC formatting

Sources: includes/Transport/HttpTransport.php includes/Transport/Infrastructure/RequestRouter.php includes/Transport/Infrastructure/SessionManager.php includes/Transport/Infrastructure/HttpSessionValidator.php includes/Handlers/Tools/ToolsHandler.php includes/Handlers/Resources/ResourcesHandler.php includes/Handlers/Prompts/PromptsHandler.php

Component Transformation Pipeline

WordPress abilities are automatically transformed into MCP components through a registration and conversion pipeline:


Transformation rules:

Ability MetadataResulting MCP ComponentRegistration Class
meta.mcp.type = 'tool'McpToolRegisterAbilityAsMcpTool
meta.mcp.type = 'resource'McpResourceRegisterAbilityAsMcpResource
meta.mcp.type = 'prompt'McpPromptRegisterAbilityAsMcpPrompt
meta.mcp.public = trueExposed via REST APIN/A
meta.mcp.public = falseInternal onlyN/A

For detailed information on creating abilities, see Creating Abilities. For schema transformation details, see Schema Transformation.

Sources: includes/Domain/Tools/RegisterAbilityAsMcpTool.php includes/Domain/Resources/RegisterAbilityAsMcpResource.php includes/Domain/Prompts/RegisterAbilityAsMcpPrompt.php includes/Infrastructure/SchemaTransformer.php includes/Core/McpComponentRegistry.php

Multi-Server Architecture

The McpAdapter singleton manages multiple independent McpServer instances, each with isolated configuration:


Server isolation guarantees:

ConfigurationPer-ServerShared
REST endpoint
Component registry
Error handler
Observability handler
Transport permissions
Session management
WordPress abilities

The default server (mcp-adapter-default-server) is automatically created by DefaultServerFactory::create() during the mcp_adapter_init action. Custom servers are created via McpAdapter::create_server() during the same action hook.

For server creation details, see Server Creation and Configuration.

Sources: includes/Core/McpAdapter.php includes/Core/McpServer.php includes/Servers/DefaultServerFactory.php README.md449-471

Key Components and Their Roles

The following table summarizes the primary classes and their responsibilities:

ComponentFile PathPurpose
McpAdapterincludes/Core/McpAdapter.phpSingleton registry managing all McpServer instances
McpServerincludes/Core/McpServer.phpIndividual server configuration with component registry, transports, and handlers
McpComponentRegistryincludes/Core/McpComponentRegistry.phpStorage and retrieval of tools, resources, and prompts
HttpTransportincludes/Transport/HttpTransport.phpHTTP transport implementing MCP 2025-06-18 specification
StdioServerBridgeincludes/Cli/StdioServerBridge.phpSTDIO transport for WP-CLI integration
RequestRouterincludes/Transport/Infrastructure/RequestRouter.phpRoutes JSON-RPC methods to appropriate handlers
SessionManagerincludes/Transport/Infrastructure/SessionManager.phpCreates and validates session identifiers
ToolsHandlerincludes/Handlers/Tools/ToolsHandler.phpHandles tools/list and tools/call methods
ResourcesHandlerincludes/Handlers/Resources/ResourcesHandler.phpHandles resources/list and resources/read methods
PromptsHandlerincludes/Handlers/Prompts/PromptsHandler.phpHandles prompts/list and prompts/get methods
InitializeHandlerincludes/Handlers/Initialize/InitializeHandler.phpHandles initialize method for session creation
SystemHandlerincludes/Handlers/System/SystemHandler.phpHandles system methods like ping and logging/setLevel
RegisterAbilityAsMcpToolincludes/Domain/Tools/RegisterAbilityAsMcpTool.phpConverts WordPress ability to McpTool
RegisterAbilityAsMcpResourceincludes/Domain/Resources/RegisterAbilityAsMcpResource.phpConverts WordPress ability to McpResource
RegisterAbilityAsMcpPromptincludes/Domain/Prompts/RegisterAbilityAsMcpPrompt.phpConverts WordPress ability to McpPrompt
SchemaTransformerincludes/Infrastructure/SchemaTransformer.phpTransforms flattened schemas to MCP-compatible object schemas
McpErrorFactoryincludes/Infrastructure/ErrorHandling/McpErrorFactory.phpCreates standardized JSON-RPC error responses
McpErrorHandlerInterfaceincludes/Infrastructure/ErrorHandling/Contracts/McpErrorHandlerInterface.phpInterface for error handling implementations
McpObservabilityHandlerInterfaceincludes/Infrastructure/Observability/Contracts/McpObservabilityHandlerInterface.phpInterface for observability implementations
ExecuteAbilityAbilityincludes/Abilities/ExecuteAbilityAbility.phpBuilt-in ability for executing any registered WordPress ability
DiscoverAbilitiesAbilityincludes/Abilities/DiscoverAbilitiesAbility.phpBuilt-in ability for discovering available abilities

For detailed information on handlers, see Request Processing Pipeline. For transport details, see Transport System. For infrastructure concerns, see Infrastructure.

Sources: README.md56-146 includes/Core/ includes/Transport/ includes/Handlers/ includes/Domain/ includes/Infrastructure/ includes/Abilities/