Skip to content

Commit b7f86e5

Browse files
committed
Swapped Structured content implementation
1 parent 7887502 commit b7f86e5

File tree

6 files changed

+29
-18
lines changed

6 files changed

+29
-18
lines changed

.env

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,11 +15,11 @@
1515
# https://symfony.com/doc/current/best_practices.html#use-environment-variables-for-infrastructure-configuration
1616

1717
###> symfony/framework-bundle ###
18-
APP_ENV=prod
19-
APP_DEBUG=false
18+
APP_ENV=dev
19+
APP_DEBUG=true
2020
LOG_LEVEL=info
2121
# Where to store logs
22-
APP_LOG_DIR="/tmp/mcp/browser-mcp/log"
22+
#APP_LOG_DIR="/tmp/mcp/browser-mcp/log"
2323
###< symfony/framework-bundle ###
2424

2525
BROWSER_BACKEND=searxng

composer.lock

Lines changed: 4 additions & 4 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/Command/BrowserMcpCommand.php

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -80,8 +80,7 @@ protected function execute(InputInterface $input, OutputInterface $output): int
8080
logger: $this->logger,
8181
);
8282

83-
$server->connect($transport);
84-
$transport->listen();
83+
$server->run($transport);
8584
} catch (\Throwable $e) {
8685
$this->logger->error($e->getMessage(), [
8786
'trace' => $e->getTrace(),

src/Tools/FindTool.php

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@
99
use App\Service\FindService;
1010
use Mcp\Schema\Content\TextContent;
1111
use Mcp\Schema\Result\CallToolResult;
12+
use Mcp\Schema\Result\CallToolResultInterface;
13+
use Mcp\Schema\Result\CallToolStructuredContentResult;
1214

1315
final class FindTool
1416
{
@@ -24,7 +26,7 @@ public function __construct(
2426
public function __invoke(
2527
string $url,
2628
string $regex,
27-
): CallToolResult {
29+
): CallToolResultInterface {
2830
try {
2931
if ('' === trim($url)) {
3032
throw new ToolUsageError('Invalid URL provided. The FindTool requires a non-empty URL.')->setHint('Use an absolute URL from a previous search result or open call.');
@@ -38,12 +40,14 @@ public function __invoke(
3840

3941
$content = new TextContent($result);
4042

41-
return new CallToolResult([$content], null, false);
43+
$callToolResult = new CallToolResult([$content], false);
44+
45+
return new CallToolStructuredContentResult(['result' => $result], $callToolResult);
4246
} catch (ToolUsageError|BackendError $exception) {
4347
$result = "Result: error\n Error Message: ".$exception->getMessage()."\n Hint: ".$exception->getHint();
4448
$content = new TextContent(text: $result);
4549

46-
return new CallToolResult([$content], null, true);
50+
return new CallToolStructuredContentResult(['result' => $result], new CallToolResult([$content], true));
4751
}
4852
}
4953
}

src/Tools/OpenTool.php

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@
99
use App\Service\OpenService;
1010
use Mcp\Schema\Content\TextContent;
1111
use Mcp\Schema\Result\CallToolResult;
12+
use Mcp\Schema\Result\CallToolResultInterface;
13+
use Mcp\Schema\Result\CallToolStructuredContentResult;
1214

1315
final class OpenTool
1416
{
@@ -25,7 +27,7 @@ public function __invoke(
2527
string $url,
2628
int $start_at_line,
2729
int $number_of_lines,
28-
): CallToolResult {
30+
): CallToolResultInterface {
2931
try {
3032
if ('' === trim($url)) {
3133
throw new ToolUsageError('Invalid URL provided.')->setHint('Use an absolute URL such as `https://example.com/article`.');
@@ -43,12 +45,14 @@ public function __invoke(
4345

4446
$content = new TextContent($result);
4547

46-
return new CallToolResult([$content], null, false);
48+
$callToolResult = new CallToolResult([$content], false);
49+
50+
return new CallToolStructuredContentResult(['result' => $result], $callToolResult);
4751
} catch (ToolUsageError|BackendError $exception) {
4852
$result = "Result: error\n Error Message: ".$exception->getMessage()."\n Hint: ".$exception->getHint();
4953
$content = new TextContent(text: $result);
5054

51-
return new CallToolResult([$content], null, true);
55+
return new CallToolStructuredContentResult(['result' => $result], new CallToolResult([$content], true));
5256
}
5357
}
5458
}

src/Tools/SearchTool.php

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@
99
use App\Service\SearchService;
1010
use Mcp\Schema\Content\TextContent;
1111
use Mcp\Schema\Result\CallToolResult;
12+
use Mcp\Schema\Result\CallToolResultInterface;
13+
use Mcp\Schema\Result\CallToolStructuredContentResult;
1214

1315
final class SearchTool
1416
{
@@ -24,17 +26,19 @@ public function __construct(
2426
public function __invoke(
2527
string $query,
2628
int $topn = 5,
27-
): CallToolResult {
29+
): CallToolResultInterface {
2830
try {
2931
$result = $this->searchService->__invoke($query, $topn);
3032
$content = new TextContent($result);
3133

32-
return new CallToolResult([$content], null, false);
34+
$callToolResult = new CallToolResult([$content], false);
35+
36+
return new CallToolStructuredContentResult(['result' => $result], $callToolResult);
3337
} catch (ToolUsageError|BackendError $exception) {
3438
$result = "Result: error\n Error Message: ".$exception->getMessage()."\n Hint: ".$exception->getHint();
3539
$content = new TextContent(text: $result);
3640

37-
return new CallToolResult([$content], null, true);
41+
return new CallToolStructuredContentResult(['result' => $result], new CallToolResult([$content], true));
3842
}
3943
}
4044
}

0 commit comments

Comments
 (0)