diff --git a/advanced-mcp-plugin.php b/advanced-mcp-plugin.php index 19b642a..466685b 100644 --- a/advanced-mcp-plugin.php +++ b/advanced-mcp-plugin.php @@ -33,10 +33,25 @@ spl_autoload_register(function (string $class): void { if (file_exists($file)) require_once $file; }); -// Tool batches merged from the elementor-mcp / wordpress-mcp parity program. -// Each batch registers net-new tools through the asktam_mcp_register_tools hook, -// so core files stay untouched. See includes/Extensions/ and NOTICE.md. -add_action('asktam_mcp_register_tools', ['AskTamMCP\Extensions\Batch1', 'register']); +/** + * Tool-batch loader — part of the elementor-mcp / wordpress-mcp parity program. + * Auto-discovers includes/Extensions/Batch*.php and lets each self-register its + * net-new tools through the asktam_mcp_register_tools hook. Each batch is isolated + * in try/catch so a single faulty batch can never break tool registration. + * Adding a batch = drop a BatchN.php file; no edit to this file is needed. + */ +add_action('asktam_mcp_register_tools', function ($registry): void { + foreach (glob(ASKTAM_MCP_DIR . 'includes/Extensions/Batch*.php') ?: [] as $f) { + $cls = 'AskTamMCP\\Extensions\\' . basename($f, '.php'); + if (class_exists($cls) && method_exists($cls, 'register')) { + try { + $cls::register($registry); + } catch (\Throwable $e) { + error_log('[AskTamMCP] batch ' . basename($f) . ' register failed: ' . $e->getMessage()); + } + } + } +}, 20); add_action('plugins_loaded', function (): void { AskTamMCP\Core\Plugin::instance()->boot();