| Server IP : 108.167.142.43 / Your IP : 216.73.217.58 Web Server : Apache System : Linux gator4174.hostgator.com 5.14.0-687.39.1.el9_8.x86_64 #1 SMP PREEMPT_DYNAMIC Tue Aug 18 06:09:16 EDT 2026 x86_64 User : delarice ( 2406) PHP Version : 8.3.36 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /home2/delarice/public_html/wp-content/plugins/templately/modules/mcp-core/ |
Upload File : |
<?php
/**
* mcp-core module — the agent-capability registry every MCP surface reads from.
*
* This module owns no capabilities and serves no endpoint. It exists so that the
* things which DO — the capability modules, the WordPress Abilities API bridge,
* and the native MCP server — can all share one declaration of what exists
* without depending on each other:
*
* mcp-abilities ─┐
* mcp-fsi ───────┼──register_classes()──► mcp-core (ToolRegistry)
* │ │
* │ ├──► wp-abilities-api (iff Abilities API / mcp-adapter)
* │ └──► mcp-server (always)
*
* Splitting this out is what keeps that graph acyclic. Before the split the
* registry lived beside the abilities, so the native server had to depend on the
* ability module and the ability module had to depend on the server's
* `ToolDescriptor` for its access levels — a cycle the module-dependency gate
* (spec 004 US6) cannot express and boot ordering cannot satisfy.
*
* Nothing is registered here at boot. `ToolRegistry` is a lazy singleton and
* resolves its descriptors on first use (see ToolRegistry::$pending_classes for
* why resolution must not happen during `plugins_loaded`), so a module that
* boots later can still contribute capabilities.
*
* @package Templately
*/
namespace Templately\Modules\McpCore;
use Templately\Core\Module_Base;
class Module extends Module_Base {
public function get_name(): string {
return 'mcp-core';
}
/**
* Intentionally empty. Consumers reach the registry through
* `Registry\ToolRegistry::get_instance()`; there is no hook to install and
* nothing to eagerly construct.
*/
protected function init_hooks(): void {}
}