VOOZH about

URL: https://deepwiki.com/WordPress/mcp-adapter/8-configuration-reference

⇱ Configuration Reference | WordPress/mcp-adapter | DeepWiki


Loading...
Menu

Configuration Reference

This document provides a reference for the three primary configuration systems in MCP Adapter: runtime server configuration via McpAdapter::create_server(), build-time dependency management via composer.json, and static analysis configuration via phpstan.neon.dist.

Child pages provide detailed configuration references:

Configuration Systems

MCP Adapter uses three distinct configuration systems that operate at different lifecycle phases:

Configuration SystemPhasePurposePrimary Interface
Server ConfigurationRuntimeDefine MCP servers, transports, abilities, permissionsMcpAdapter::create_server() method calls
Composer ConfigurationBuild-timeManage dependencies, autoloading, development scriptscomposer.json file
PHPStan ConfigurationDevelopmentStatic analysis rules, PHP version constraintsphpstan.neon.dist file

Sources: includes/Core/McpAdapter.php89-227 composer.json1-97 phpstan.neon.dist1-42

Configuration System Interactions


Sources: mcp-adapter.php1-58 includes/Core/McpAdapter.php1-318 composer.json1-97 phpstan.neon.dist1-42

Plugin Constants

The plugin defines constants during initialization that provide path references and version information.

Defined Constants

ConstantDefined InValuePurpose
WP_MCP_DIRmcp-adapter.php34-44plugin_dir_path(__FILE__)Absolute plugin directory path
WP_MCP_VERSIONmcp-adapter.php34-44'0.4.1'Plugin version string
McpAdapter::VERSIONincludes/Core/McpAdapter.php27'0.4.1'Class constant for version

Sources: mcp-adapter.php34-44 includes/Core/McpAdapter.php27

Plugin Initialization Sequence

The plugin initialization follows a specific sequence to ensure proper dependency loading and server registration timing.

Initialization Hook Targets

ContextHookPrioritySource
HTTP/REST requestsrest_api_init15includes/Core/McpAdapter.php64
WP-CLI commandsinit20includes/Core/McpAdapter.php61

Plugin Bootstrap Sequence


Sources: mcp-adapter.php34-57 includes/Core/McpAdapter.php55-86

Server Configuration Overview

The McpAdapter::create_server() method creates and registers MCP server instances. Full parameter documentation is available in Server Configuration.

create_server() Method Structure


Key Parameters

ParameterTypeDefaultSource
$server_idstring(required)includes/Core/McpAdapter.php92
$mcp_transportsarray(required)includes/Core/McpAdapter.php98
$error_handler?stringNullMcpErrorHandler::classincludes/Core/McpAdapter.php99
$observability_handler?stringNullMcpObservabilityHandler::classincludes/Core/McpAdapter.php100
$transport_permission_callback?callableis_user_logged_in()includes/Core/McpAdapter.php104

Complete parameter reference and validation rules are documented in Server Configuration.

Sources: includes/Core/McpAdapter.php89-227

Validation and Error Handling

The create_server() method validates parameters and returns WP_Error on failure.

Validation Checks

ValidationError CodeSource
Error handler class existsinvalid_error_handlerincludes/Core/McpAdapter.php109-122
Error handler implements interfaceinvalid_error_handlerincludes/Core/McpAdapter.php124-134
Observability handler class existsinvalid_observability_handlerincludes/Core/McpAdapter.php136-149
Observability handler implements interfaceinvalid_observability_handlerincludes/Core/McpAdapter.php151-162
Called during mcp_adapter_initinvalid_timingincludes/Core/McpAdapter.php164-174
Unique $server_idduplicate_server_idincludes/Core/McpAdapter.php176-191

Full validation details are documented in Server Configuration.

Sources: includes/Core/McpAdapter.php108-227

Default Server

The plugin creates a default server with ID mcp-adapter-default-server automatically unless disabled.

Default Server Specifications

PropertyValueSource
Server IDmcp-adapter-default-serverincludes/Core/DefaultServerFactory.php19
Namespacemcpincludes/Core/DefaultServerFactory.php20
Routemcp-adapter-default-serverincludes/Core/DefaultServerFactory.php21
Built-in AbilitiesDiscoverAbilities, ExecuteAbility, GetAbilityInfoincludes/Core/McpAdapter.php277-288

Disabling Default Server

Use the mcp_adapter_create_default_server filter to disable default server creation:


This filter must be added before rest_api_init (priority 15) or init (priority 20).

Sources: includes/Core/McpAdapter.php254-292

Multi-Server Architecture

The McpAdapter singleton maintains a registry of McpServer instances, allowing multiple independent servers per WordPress site.

Server Registry Structure


Server Isolation

Each McpServer instance maintains independent configuration:

ComponentIndependenceSource
Server IDUnique identifier in registryincludes/Core/McpAdapter.php36
REST endpointSeparate namespace + routeincludes/Core/McpServer.php1-318
TransportsIndependent transport arrayincludes/Core/McpAdapter.php98
Error handlerPer-server instanceincludes/Core/McpAdapter.php99
Observability handlerPer-server instanceincludes/Core/McpAdapter.php100
AbilitiesFiltered tool/resource/prompt listsincludes/Core/McpAdapter.php101-103
PermissionsPer-server callbackincludes/Core/McpAdapter.php104

Sources: includes/Core/McpAdapter.php36-41 includes/Core/McpAdapter.php194-208

Configuration Hook Requirements

Server creation via create_server() must occur during the mcp_adapter_init action to ensure proper initialization order.

Required Hook Sequence

HookPriorityOperationValidation
wp_abilities_api_categories_init10Register ability categoriesBefore abilities
wp_abilities_api_init10Register abilities with wp_register_ability()Before server creation
rest_api_init or init15 or 20McpAdapter::instance() triggers init()Creates adapter
mcp_adapter_initN/AFires from McpAdapter::init()Call create_server() here

Timing Enforcement

The create_server() method validates timing:


Sources: includes/Core/McpAdapter.php164-174

Hook Usage Example


Sources: includes/Core/McpAdapter.php83

Composer Configuration Reference

The composer.json file manages dependencies, autoloading, and development scripts. Full documentation is in Composer Configuration.

composer.json Structure

SectionKey ConfigurationValueSource
config.platform.phpPHP version constraint"7.4"composer.json31
config.sort-packagesAlphabetical sortingtruecomposer.json33
config.optimize-autoloaderOptimized class maptruecomposer.json34
autoload.psr-4Production namespace"WP\\MCP\\": "includes/"composer.json61-63
autoload-dev.psr-4Test namespace"WP\\MCP\\Tests\\": "tests/"composer.json65-70
requirePHP version"^7.4 || ^8.0"composer.json73

Development Scripts

ScriptCommandPurpose
lint:phpphpcsRun WordPress coding standards
lint:php:fixphpcbfAuto-fix coding standards
lint:php:stanvendor/bin/phpstan analyse --memory-limit=1GRun static analysis
testphpunit --strict-coverageRun unit tests

Sources: composer.json91-96

PHPStan Configuration Reference

The phpstan.neon.dist file configures static analysis at level 8. Full documentation is in PHPStan Configuration.

phpstan.neon.dist Structure

ConfigurationValuePurposeSource
level8Maximum strictnessphpstan.neon.dist16
phpVersion.min70400PHP 7.4.0 minimumphpstan.neon.dist18
phpVersion.max80400PHP 8.4.0 maximumphpstan.neon.dist19
paths["includes/"]Analysis targetphpstan.neon.dist23-24
scanDirectories["../abilities-api"]External code to scanphpstan.neon.dist30-31
excludePaths.analyse["tests/", "vendor/"]Excluded from analysisphpstan.neon.dist32-35

Bootstrap Files

FilePurposeSource
mcp-adapter.phpPlugin constants and initializationphpstan.neon.dist21
vendor/php-stubs/wp-cli-stubs/wp-cli-stubs.phpWP-CLI type definitionsphpstan.neon.dist22

Sources: phpstan.neon.dist20-22

Configuration Best Practices

Server Configuration

  1. Use Descriptive Server IDs: Choose server IDs that clearly identify their purpose (e.g., my-plugin-admin-tools instead of server1)
  2. Validate Custom Handlers: Ensure error and observability handlers implement the correct interfaces before passing to create_server()
  3. Filter Abilities Appropriately: Use the $tools, $resources, and $prompts arrays to expose only relevant abilities per server
  4. Implement Custom Permissions: Define $transport_permission_callback based on your security requirements rather than relying on defaults

Dependency Configuration

  1. Lock Dependencies: Always commit composer.lock to ensure consistent versions across environments
  2. Use Platform Target: Keep config.platform.php at 7.4 to ensure PHP 7.4 compatibility
  3. Minimize Production Dependencies: Keep require minimal; most dependencies should be in require-dev

Development Configuration

  1. Run Static Analysis: Execute composer lint:php:stan before committing code
  2. Check Code Style: Run composer lint:php to ensure WordPress coding standards compliance
  3. Maintain Test Coverage: Run composer test with coverage enabled

Sources: composer.json29-96 phpstan.neon.dist15-19


For detailed configuration documentation, see the child pages:

Refresh this wiki

On this page