PluginProbe ʕ •ᴥ•ʔ
Booking for Appointments and Events Calendar – Amelia / trunk
Booking for Appointments and Events Calendar – Amelia vtrunk
2.4.4 2.4.3 2.4.2 2.4.1 2.4 trunk 1.2.1 1.2.10 1.2.11 1.2.12 1.2.13 1.2.14 1.2.15 1.2.16 1.2.17 1.2.18 1.2.19 1.2.2 1.2.20 1.2.21 1.2.22 1.2.23 1.2.24 1.2.25 1.2.26 1.2.27 1.2.28 1.2.29 1.2.3 1.2.30 1.2.31 1.2.32 1.2.33 1.2.34 1.2.35 1.2.36 1.2.37 1.2.38 1.2.4 1.2.5 1.2.6 1.2.7 1.2.8 1.2.9 2.0 2.0.1 2.0.2 2.1 2.1.1 2.1.2 2.1.3 2.2 2.2.1 2.3
ameliabooking / vendor / wordpress / php-mcp-schema / src / Server / Tools / DTO / CallToolRequest.php
ameliabooking / vendor / wordpress / php-mcp-schema / src / Server / Tools / DTO Last commit date
CallToolRequest.php 1 month ago CallToolRequestParams.php 1 month ago CallToolResult.php 1 month ago ListToolsRequest.php 1 month ago ListToolsResult.php 1 month ago Tool.php 1 month ago ToolAnnotations.php 1 month ago ToolExecution.php 1 month ago ToolInputSchema.php 1 month ago ToolListChangedNotification.php 1 month ago ToolOutputSchema.php 1 month ago
CallToolRequest.php
105 lines
1 <?php
2
3 declare(strict_types=1);
4
5 namespace WP\McpSchema\Server\Tools\DTO;
6
7 use WP\McpSchema\Common\JsonRpc\DTO\JSONRPCRequest;
8 use WP\McpSchema\Common\Protocol\Union\ClientRequestInterface;
9 use WP\McpSchema\Common\Traits\ValidatesRequiredFields;
10
11 /**
12 * Used by the client to invoke a tool provided by the server.
13 *
14 * @since 2024-11-05
15 * @last-updated 2025-11-25 (modified property: params)
16 *
17 * @mcp-domain Server
18 * @mcp-subdomain Tools
19 * @mcp-version 2025-11-25
20 */
21 class CallToolRequest extends JSONRPCRequest implements ClientRequestInterface
22 {
23 use ValidatesRequiredFields;
24
25 public const METHOD = 'tools/call';
26
27 public const DISCRIMINATOR_FIELD = 'method';
28 public const DISCRIMINATOR_VALUE = 'tools/call';
29
30 /**
31 * @var \WP\McpSchema\Server\Tools\DTO\CallToolRequestParams
32 */
33 protected CallToolRequestParams $typedParams;
34
35 /**
36 * @param '2.0' $jsonrpc @since 2025-11-25
37 * @param string|number $id @since 2025-11-25
38 * @param \WP\McpSchema\Server\Tools\DTO\CallToolRequestParams $params @since 2024-11-05
39 */
40 public function __construct(
41 string $jsonrpc,
42 $id,
43 CallToolRequestParams $params
44 ) {
45 parent::__construct(self::METHOD, $jsonrpc, $id, null);
46 $this->typedParams = $params;
47 }
48
49 /**
50 * Creates an instance from an array.
51 *
52 * @param array{
53 * jsonrpc: '2.0',
54 * id: string|number,
55 * method: 'tools/call',
56 * params: array<string, mixed>|\WP\McpSchema\Server\Tools\DTO\CallToolRequestParams
57 * } $data
58 * @phpstan-param array<string, mixed> $data
59 * @return self
60 */
61 public static function fromArray(array $data): self
62 {
63 self::assertRequired($data, ['jsonrpc', 'id', 'params']);
64
65 /** @var '2.0' $jsonrpc */
66 $jsonrpc = self::asString($data['jsonrpc']);
67
68 /** @var string|number $id */
69 $id = self::asStringOrNumber($data['id']);
70
71 /** @var \WP\McpSchema\Server\Tools\DTO\CallToolRequestParams $params */
72 $params = is_array($data['params'])
73 ? CallToolRequestParams::fromArray(self::asArray($data['params']))
74 : $data['params'];
75
76 return new self(
77 $jsonrpc,
78 $id,
79 $params
80 );
81 }
82
83 /**
84 * Converts the instance to an array.
85 *
86 * @return array<string, mixed>
87 */
88 public function toArray(): array
89 {
90 $result = parent::toArray();
91
92 $result['params'] = $this->typedParams->toArray();
93
94 return $result;
95 }
96
97 /**
98 * @return \WP\McpSchema\Server\Tools\DTO\CallToolRequestParams
99 */
100 public function getTypedParams(): CallToolRequestParams
101 {
102 return $this->typedParams;
103 }
104 }
105