Skip to content
This repository was archived by the owner on Nov 12, 2025. It is now read-only.

Commit d9e6bdd

Browse files
committed
fix(discovery): allow for tools without an input schema
1 parent 68447f5 commit d9e6bdd

4 files changed

Lines changed: 4 additions & 5 deletions

File tree

src/DependencyInjection/CompilerPass/ToolPass.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,7 @@ public function process(ContainerBuilder $container): void
9797

9898
$inputSchemaClassName = $invokeMethodParameter?->getType()?->getName(); // @phpstan-ignore method.notFound
9999
$inputSchema = $invokeMethodParameter === null
100-
? []
100+
? null
101101
: $schemaExtractor->extract($inputSchemaClassName);
102102

103103
$definition->addTag(name: 'mcp_server.tool', attributes: [

src/Service/ToolRegistry.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ public function getToolsDefinitions(): array
6565
public function addToolDefinition(
6666
string $name,
6767
string $description,
68-
array $inputSchema,
68+
?array $inputSchema,
6969
?string $inputSchemaClass,
7070
array $annotations,
7171
): void {

src/Tool/ToolDefinition.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ class ToolDefinition
2828
public function __construct(
2929
public string $name,
3030
public string $description,
31-
public array $inputSchema,
31+
public ?array $inputSchema,
3232
#[Ignore]
3333
public ?string $inputSchemaClass,
3434
public array $annotations,

tests/Controller/EntrypointControllerTest.php

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -151,8 +151,7 @@ public function testToolList(): void
151151
'openWorldHint' => false,
152152
], $tools[0]['annotations']);
153153

154-
$this->assertArrayHasKey('inputSchema', $tools[1]);
155-
$this->assertSame([], $tools[1]['inputSchema']);
154+
$this->assertArrayNotHasKey('inputSchema', $tools[1]);
156155

157156
$this->assertArrayHasKey('inputSchema', $tools[2]);
158157
$this->assertSame([

0 commit comments

Comments
 (0)