PATH:
home
/
thebhoeo
/
.trash
/
backwpup
/
vendor
/
wordpress
/
mcp-adapter
/
includes
/
Abilities
<?php /** * Helper trait for WordPress abilities providing MCP-related utilities. * * @package McpAdapter */ declare( strict_types=1 ); namespace WP\MCP\Abilities; use WP_Error; /** * Trait McpAbilityHelperTrait * * Provides helper methods for MCP abilities including MCP exposure checking and metadata handling. */ trait McpAbilityHelperTrait { /** * Checks if ability is publicly exposed via MCP. * * Validates against the ability's mcp.public metadata flag. * Only abilities with mcp.public=true are accessible via default MCP server. * * @param string $ability_name The ability name to check. * * @return bool|\WP_Error True if publicly exposed, WP_Error if not. */ protected static function check_ability_mcp_exposure( string $ability_name ) { $ability = wp_get_ability( $ability_name ); if ( ! $ability ) { return new WP_Error( 'ability_not_found', "Ability '{$ability_name}' not found" ); } $meta = $ability->get_meta(); $is_public_mcp = $meta['mcp']['public'] ?? false; if ( ! $is_public_mcp ) { return new WP_Error( 'ability_not_public_mcp', sprintf( 'Ability "%s" is not exposed via MCP (mcp.public!=true)', $ability_name ) ); } return true; } /** * Checks if ability is publicly exposed via MCP (simple boolean version). * * This is a simplified version that returns only boolean values, * useful for filtering operations where WP_Error handling isn't needed. * * @param \WP_Ability $ability The ability object to check. * * @return bool True if publicly exposed, false otherwise. */ protected static function is_ability_mcp_public( \WP_Ability $ability ): bool { $meta = $ability->get_meta(); return (bool) ( $meta['mcp']['public'] ?? false ); } /** * Gets the MCP type of an ability. * * Returns the type specified in meta.mcp.type, defaulting to 'tool' if not specified. * * @param \WP_Ability $ability The ability object to check. * * @return string The MCP type ('tool', 'resource', or 'prompt'). Defaults to 'tool'. */ protected static function get_ability_mcp_type( \WP_Ability $ability ): string { $meta = $ability->get_meta(); $type = $meta['mcp']['type'] ?? 'tool'; // Validate type is one of the allowed values if ( ! in_array( $type, array( 'tool', 'resource', 'prompt' ), true ) ) { return 'tool'; } return $type; } }
[-] DiscoverAbilitiesAbility.php
[edit]
[-] McpAbilityHelperTrait.php
[edit]
[-] ExecuteAbilityAbility.php
[edit]
[-] GetAbilityInfoAbility.php
[edit]
[+]
..