Skip to content

Commit 44750cc

Browse files
committed
[mcp-sdk] Use foreach instead of array_map because array_map does not accept generators
1 parent aee7a35 commit 44750cc

File tree

3 files changed

+30
-10
lines changed

3 files changed

+30
-10
lines changed

src/mcp-sdk/src/Server/RequestHandler/PromptListHandler.php

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,14 @@ public function __construct(
2727
public function createResponse(Request $message): Response
2828
{
2929
$nextCursor = null;
30-
$prompts = array_map(function (MetadataInterface $metadata) use (&$nextCursor) {
30+
$prompts = [];
31+
32+
$metadataList = $this->collection->getMetadata(
33+
$this->pageSize,
34+
$message->params['cursor'] ?? null
35+
);
36+
37+
foreach ($metadataList as $metadata) {
3138
$nextCursor = $metadata->getName();
3239
$result = [
3340
'name' => $metadata->getName(),
@@ -55,8 +62,8 @@ public function createResponse(Request $message): Response
5562
$result['arguments'] = $arguments;
5663
}
5764

58-
return $result;
59-
}, $this->collection->getMetadata($this->pageSize, $message->params['cursor'] ?? null));
65+
$prompts[] = $result;
66+
}
6067

6168
$result = [
6269
'prompts' => $prompts,

src/mcp-sdk/src/Server/RequestHandler/ResourceListHandler.php

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,14 @@ public function __construct(
2727
public function createResponse(Request $message): Response
2828
{
2929
$nextCursor = null;
30-
$resources = array_map(function (MetadataInterface $metadata) use (&$nextCursor) {
30+
$resources = [];
31+
32+
$metadataList = $this->collection->getMetadata(
33+
$this->pageSize,
34+
$message->params['cursor'] ?? null
35+
);
36+
37+
foreach ($metadataList as $metadata) {
3138
$nextCursor = $metadata->getUri();
3239
$result = [
3340
'uri' => $metadata->getUri(),
@@ -49,8 +56,8 @@ public function createResponse(Request $message): Response
4956
$result['size'] = $size;
5057
}
5158

52-
return $result;
53-
}, $this->collection->getMetadata($this->pageSize, $message->params['cursor'] ?? null));
59+
$resources[] = $result;
60+
}
5461

5562
$result = [
5663
'resources' => $resources,

src/mcp-sdk/src/Server/RequestHandler/ToolListHandler.php

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -27,19 +27,25 @@ public function __construct(
2727
public function createResponse(Request $message): Response
2828
{
2929
$nextCursor = null;
30-
$tools = array_map(function (MetadataInterface $tool) use (&$nextCursor) {
30+
$tools = [];
31+
32+
$metadataList = $this->collection->getMetadata(
33+
$this->pageSize,
34+
$message->params['cursor'] ?? null
35+
);
36+
37+
foreach ($metadataList as $tool) {
3138
$nextCursor = $tool->getName();
3239
$inputSchema = $tool->getInputSchema();
33-
34-
return [
40+
$tools[] = [
3541
'name' => $tool->getName(),
3642
'description' => $tool->getDescription(),
3743
'inputSchema' => [] === $inputSchema ? [
3844
'type' => 'object',
3945
'$schema' => 'http://json-schema.org/draft-07/schema#',
4046
] : $inputSchema,
4147
];
42-
}, $this->collection->getMetadata($this->pageSize, $message->params['cursor'] ?? null));
48+
}
4349

4450
$result = [
4551
'tools' => $tools,

0 commit comments

Comments
 (0)