feat: ability and integration infrastructure
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01At3V6SjwbMe6eMzVGW3Hs7
This commit is contained in:
@@ -0,0 +1,38 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace LIT\MCP\Abilities;
|
||||
|
||||
use WP_Error;
|
||||
|
||||
/**
|
||||
* One capability of the MCP server, registered with the WordPress Abilities API.
|
||||
*/
|
||||
interface Ability
|
||||
{
|
||||
/** Ability name, e.g. "lit/guide". */
|
||||
public function name(): string;
|
||||
|
||||
public function label(): string;
|
||||
|
||||
public function description(): string;
|
||||
|
||||
/** @return array<string, mixed> JSON Schema of the input. */
|
||||
public function inputSchema(): array;
|
||||
|
||||
/** @return array<string, mixed>|null JSON Schema of the output, null for image results. */
|
||||
public function outputSchema(): ?array;
|
||||
|
||||
/** @return array{readonly?: bool, destructive?: bool, idempotent?: bool} */
|
||||
public function annotations(): array;
|
||||
|
||||
/** Whether the ability is listed as its own MCP tool (otherwise only via meta-tools). */
|
||||
public function isDirect(): bool;
|
||||
|
||||
/** @param array<string, mixed> $input */
|
||||
public function permission(array $input): bool|WP_Error;
|
||||
|
||||
/** @param array<string, mixed> $input */
|
||||
public function execute(array $input): mixed;
|
||||
}
|
||||
Reference in New Issue
Block a user