|
13 | 13 | require_once dirname(__DIR__).'/bootstrap.php'; |
14 | 14 | chdir(__DIR__); |
15 | 15 |
|
16 | | -use Mcp\Capability\Registry\Container; |
| 16 | +use Laminas\HttpHandlerRunner\Emitter\SapiEmitter; |
17 | 17 | use Mcp\Server; |
18 | | -use Psr\Log\LoggerInterface; |
| 18 | +use Mcp\Server\Session\FileSessionStore; |
| 19 | +use Mcp\Server\Transport\StreamableHttpTransport; |
| 20 | +use Nyholm\Psr7\Factory\Psr17Factory; |
| 21 | +use Nyholm\Psr7Server\ServerRequestCreator; |
19 | 22 |
|
20 | | -logger()->info('Starting MCP HTTP User Profile Server...'); |
| 23 | +$psr17Factory = new Psr17Factory(); |
| 24 | +$creator = new ServerRequestCreator($psr17Factory, $psr17Factory, $psr17Factory, $psr17Factory); |
21 | 25 |
|
22 | | -// --- Setup DI Container for DI in McpElements class --- |
23 | | -$container = new Container(); |
24 | | -$container->set(LoggerInterface::class, logger()); |
| 26 | +$request = $creator->fromGlobals(); |
25 | 27 |
|
26 | | -Server::make() |
| 28 | +$server = Server::make() |
27 | 29 | ->setServerInfo('HTTP User Profiles', '1.0.0') |
28 | 30 | ->setLogger(logger()) |
29 | | - ->setContainer($container) |
| 31 | + ->setContainer(container()) |
| 32 | + ->setSession(new FileSessionStore(__DIR__.'/sessions')) |
30 | 33 | ->setDiscovery(__DIR__, ['.']) |
31 | 34 | ->addTool( |
32 | 35 | function (float $a, float $b, string $operation = 'add'): array { |
@@ -70,7 +73,12 @@ function (): array { |
70 | 73 | description: 'Current system status and runtime information', |
71 | 74 | mimeType: 'application/json' |
72 | 75 | ) |
73 | | - ->build() |
74 | | - ->connect(new StreamableHttpServerTransport('127.0.0.1', 8080, 'mcp')); |
| 76 | + ->build(); |
75 | 77 |
|
76 | | -logger()->info('Server listener stopped gracefully.'); |
| 78 | +$transport = new StreamableHttpTransport($request, $psr17Factory, $psr17Factory); |
| 79 | + |
| 80 | +$server->connect($transport); |
| 81 | + |
| 82 | +$response = $transport->listen(); |
| 83 | + |
| 84 | +(new SapiEmitter())->emit($response); |
0 commit comments