$vars Query vars. * @return list */ public static function register_query_var( array $vars ): array { $vars[] = 'agentmatica_ucp_profile'; return $vars; } public static function maybe_serve_profile(): void { if ( ! get_query_var( 'agentmatica_ucp_profile' ) ) { return; } status_header( 200 ); nocache_headers(); header( 'Content-Type: application/json; charset=utf-8' ); echo wp_json_encode( self::build_profile(), JSON_UNESCAPED_SLASHES | JSON_PRETTY_PRINT ); exit; } /** * @return array */ public static function build_profile(): array { $mcp_endpoint = Agentmatica_Public_Urls::get_mcp_endpoint_url(); $capabilities = array( 'dev.ucp.shopping.catalog.search' => array( array( 'version' => self::UCP_VERSION, 'spec' => 'https://ucp.dev/' . self::UCP_VERSION . '/specification/catalog/search', 'schema' => 'https://ucp.dev/' . self::UCP_VERSION . '/schemas/shopping/catalog_search.json', ), ), 'dev.ucp.shopping.catalog.lookup' => array( array( 'version' => self::UCP_VERSION, 'spec' => 'https://ucp.dev/' . self::UCP_VERSION . '/specification/catalog/lookup', 'schema' => 'https://ucp.dev/' . self::UCP_VERSION . '/schemas/shopping/catalog_lookup.json', ), ), ); if ( class_exists( 'WooCommerce' ) ) { $capabilities['dev.ucp.shopping.cart'] = array( array( 'version' => self::UCP_VERSION, 'spec' => 'https://ucp.dev/' . self::UCP_VERSION . '/specification/cart', 'schema' => 'https://ucp.dev/' . self::UCP_VERSION . '/schemas/shopping/cart.json', ), ); $capabilities['dev.ucp.shopping.checkout'] = array( array( 'version' => self::UCP_VERSION, 'spec' => 'https://ucp.dev/' . self::UCP_VERSION . '/specification/checkout', 'schema' => 'https://ucp.dev/' . self::UCP_VERSION . '/schemas/shopping/checkout.json', ), ); } return array( 'ucp' => array( 'version' => self::UCP_VERSION, 'services' => array( 'dev.ucp.shopping' => array( array( 'version' => self::UCP_VERSION, 'spec' => 'https://ucp.dev/' . self::UCP_VERSION . '/specification/overview', 'transport' => 'mcp', 'schema' => 'https://ucp.dev/' . self::UCP_VERSION . '/services/shopping/mcp.openrpc.json', 'endpoint' => $mcp_endpoint, ), ), ), 'capabilities' => $capabilities, ), ); } public static function get_well_known_url(): string { return Agentmatica_Public_Urls::get_ucp_profile_url(); } }