PluginProbe
Imagify Image Optimization: Optimize Images | Compress & Convert to WebP/AVIF / trunk
Imagify Image Optimization: Optimize Images | Compress & Convert to WebP/AVIF vtrunk
2.3.4 2.3.3 2.3.2 2.3.1 2.3.0 2.2.9 2.2.8 trunk 1.10 1.3.3 1.3.4 1.3.5 1.3.5.1 1.3.5.2 1.3.6 1.3.6.1 1.4 1.4.1 1.4.2 1.4.3 1.4.4 1.4.5 1.4.6 1.4.7 1.5 All 103 releases
← All changes | inc/main.php +24 -0 2.2.8 → trunk View file →
@@ -30,6 +30,30 @@
30 30 ]
31 31 );
32 32
33 33 $plugin->init( $providers );
34 +
35 + // Boot the MCP adapter after providers/subscribers are wired so that
36 + // ConfigSubscriber and AbilitiesSubscriber are already listening before
37 + // the adapter fires `mcp_adapter_init` / `wp_abilities_api_*` actions
38 + // (those fire from `rest_api_init` priority 15, well after `plugins_loaded`).
39 + $can_boot_mcp_adapter =
40 + class_exists( \WP\MCP\Core\McpAdapter::class )
41 + && function_exists( 'wp_register_ability' )
42 + && function_exists( 'wp_get_ability' )
43 + && function_exists( 'wp_get_abilities' )
44 + && function_exists( 'wp_register_ability_category' );
45 +
46 + if ( $can_boot_mcp_adapter ) {
47 + \WP\MCP\Core\McpAdapter::instance();
48 +
49 + // Boot the shared MCP OAuth library (wp-media/mcp-oauth) so Claude Desktop
50 + // (and any other MCP client) can authenticate against the isolated
51 + // `mcp-oauth-server` it registers. The library self-wires its own
52 + // WordPress hooks and is enabled by default; Imagify has no custom OAuth
53 + // code. It relies on the MCP adapter, so it only boots when the adapter can.
54 + if ( class_exists( \WPMedia\MCP\OAuth\Bootstrap::class ) ) {
55 + \WPMedia\MCP\OAuth\Bootstrap::instance();
56 + }
57 + }
34 58 }
35 59 add_action( 'plugins_loaded', 'imagify_init' );