Skip to content

Commit cdff778

Browse files
committed
Rolled back to single CallToolResult instead of decorator for structuredContent
1 parent 538549f commit cdff778

File tree

6 files changed

+9
-126
lines changed

6 files changed

+9
-126
lines changed

src/Schema/Result/CallToolResult.php

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
use Mcp\Schema\Content\EmbeddedResource;
1818
use Mcp\Schema\Content\ImageContent;
1919
use Mcp\Schema\Content\TextContent;
20+
use Mcp\Schema\JsonRpc\ResultInterface;
2021

2122
/**
2223
* The server's response to a tool call.
@@ -32,17 +33,19 @@
3233
*
3334
* @author Kyrian Obikwelu <[email protected]>
3435
*/
35-
class CallToolResult implements CallToolResultInterface
36+
class CallToolResult implements ResultInterface
3637
{
3738
/**
3839
* Create a new CallToolResult.
3940
*
40-
* @param Content[] $content The content of the tool result
41-
* @param bool $isError Whether the tool execution resulted in an error. If not set, this is assumed to be false (the call was successful).
41+
* @param Content[] $content The content of the tool result
42+
* @param bool $isError Whether the tool execution resulted in an error. If not set, this is assumed to be false (the call was successful).
43+
* @param mixed[] $structuredContent JSON content for `structuredContent`
4244
*/
4345
public function __construct(
4446
public readonly array $content,
4547
public readonly bool $isError = false,
48+
public readonly ?array $structuredContent = null,
4649
) {
4750
foreach ($this->content as $item) {
4851
if (!$item instanceof Content) {

src/Schema/Result/CallToolResultInterface.php

Lines changed: 0 additions & 18 deletions
This file was deleted.

src/Schema/Result/CallToolStructuredContentResult.php

Lines changed: 0 additions & 34 deletions
This file was deleted.

src/Server/Handler/Request/CallToolHandler.php

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@
2121
use Mcp\Schema\JsonRpc\Response;
2222
use Mcp\Schema\Request\CallToolRequest;
2323
use Mcp\Schema\Result\CallToolResult;
24-
use Mcp\Schema\Result\CallToolResultInterface;
2524
use Mcp\Server\Session\SessionInterface;
2625
use Psr\Log\LoggerInterface;
2726
use Psr\Log\NullLogger;
@@ -61,7 +60,7 @@ public function handle(Request $request, SessionInterface $session): Response|Er
6160

6261
$result = $this->referenceHandler->handle($reference, $arguments);
6362

64-
if (!$result instanceof CallToolResultInterface) {
63+
if (!$result instanceof CallToolResult) {
6564
$result = new CallToolResult($reference->formatResult($result));
6665
}
6766

tests/Unit/Schema/Result/CallToolStructuredContentResultTest.php

Lines changed: 0 additions & 65 deletions
This file was deleted.

tests/Unit/Server/Handler/Request/CallToolHandlerTest.php

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@
2121
use Mcp\Schema\JsonRpc\Response;
2222
use Mcp\Schema\Request\CallToolRequest;
2323
use Mcp\Schema\Result\CallToolResult;
24-
use Mcp\Schema\Result\CallToolStructuredContentResult;
2524
use Mcp\Server\Handler\Request\CallToolHandler;
2625
use Mcp\Server\Session\SessionInterface;
2726
use PHPUnit\Framework\MockObject\MockObject;
@@ -347,8 +346,7 @@ public function testHandleReturnsStructuredContentResult(): void
347346
{
348347
$request = $this->createCallToolRequest('structured_tool', ['query' => 'php']);
349348
$toolReference = $this->createMock(ToolReference::class);
350-
$innerResult = new CallToolResult([new TextContent('Rendered results')]);
351-
$structuredResult = new CallToolStructuredContentResult(['result' => 'Rendered results'], $innerResult);
349+
$structuredResult = new CallToolResult([new TextContent('Rendered results')], false, ['result' => 'Rendered results']);
352350

353351
$this->referenceProvider
354352
->expects($this->once())
@@ -376,7 +374,7 @@ public function testHandleReturnsCallToolResult(): void
376374
{
377375
$request = $this->createCallToolRequest('result_tool', ['query' => 'php']);
378376
$toolReference = $this->createMock(ToolReference::class);
379-
$callToolResult = new CallToolResult([new TextContent('Rendered results')]);
377+
$callToolResult = new CallToolResult([new TextContent('Error result')], true);
380378

381379
$this->referenceProvider
382380
->expects($this->once())

0 commit comments

Comments
 (0)