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:
2026-09-25 15:27:08 +02:00
co-authored by Claude Opus 5.5
parent f69efcb953
commit 3b7fabf17a
7 changed files with 397 additions and 0 deletions
+38
View File
@@ -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;
}