feat: add PSR-17 factory auto-discovery to HTTP transport (#119)

This commit is contained in:
Kyrian Obikwelu 2025-10-26 22:06:10 +01:00 • committed by GitHub
commit 0963d243bc
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 73 additions and 68 deletions

View file

@ -13,18 +13,15 @@
require_once dirname(__DIR__).'/bootstrap.php';
chdir(__DIR__);
use Http\Discovery\Psr17Factory;
use Laminas\HttpHandlerRunner\Emitter\SapiEmitter;
use Mcp\Example\HttpCombinedRegistration\ManualHandlers;
use Mcp\Server;
use Mcp\Server\Session\FileSessionStore;
use Mcp\Server\Transport\StreamableHttpTransport;
use Nyholm\Psr7\Factory\Psr17Factory;
use Nyholm\Psr7Server\ServerRequestCreator;
$psr17Factory = new Psr17Factory();
$creator = new ServerRequestCreator($psr17Factory, $psr17Factory, $psr17Factory, $psr17Factory);
$request = $creator->fromGlobals();
$request = $psr17Factory->createServerRequestFromGlobals();
$server = Server::builder()
->setServerInfo('Combined HTTP Server', '1.0.0')
@ -40,7 +37,7 @@ $server = Server::builder()
)
->build();
$transport = new StreamableHttpTransport($request, $psr17Factory, $psr17Factory);
$transport = new StreamableHttpTransport($request);
$response = $server->run($transport);

View file

@ -13,17 +13,14 @@
require_once dirname(__DIR__).'/bootstrap.php';
chdir(__DIR__);
use Http\Discovery\Psr17Factory;
use Laminas\HttpHandlerRunner\Emitter\SapiEmitter;
use Mcp\Server;
use Mcp\Server\Session\FileSessionStore;
use Mcp\Server\Transport\StreamableHttpTransport;
use Nyholm\Psr7\Factory\Psr17Factory;
use Nyholm\Psr7Server\ServerRequestCreator;
$psr17Factory = new Psr17Factory();
$creator = new ServerRequestCreator($psr17Factory, $psr17Factory, $psr17Factory, $psr17Factory);
$request = $creator->fromGlobals();
$request = $psr17Factory->createServerRequestFromGlobals();
$server = Server::builder()
->setServerInfo('Event Scheduler Server', '1.0.0')
@ -33,7 +30,7 @@ $server = Server::builder()
->setDiscovery(__DIR__)
->build();
$transport = new StreamableHttpTransport($request, $psr17Factory, $psr17Factory);
$transport = new StreamableHttpTransport($request);
$response = $server->run($transport);

View file

@ -13,17 +13,14 @@
require_once dirname(__DIR__).'/bootstrap.php';
chdir(__DIR__);
use Http\Discovery\Psr17Factory;
use Laminas\HttpHandlerRunner\Emitter\SapiEmitter;
use Mcp\Server;
use Mcp\Server\Session\FileSessionStore;
use Mcp\Server\Transport\StreamableHttpTransport;
use Nyholm\Psr7\Factory\Psr17Factory;
use Nyholm\Psr7Server\ServerRequestCreator;
$psr17Factory = new Psr17Factory();
$creator = new ServerRequestCreator($psr17Factory, $psr17Factory, $psr17Factory, $psr17Factory);
$request = $creator->fromGlobals();
$request = $psr17Factory->createServerRequestFromGlobals();
$server = Server::builder()
->setServerInfo('HTTP User Profiles', '1.0.0')
@ -75,7 +72,7 @@ $server = Server::builder()
)
->build();
$transport = new StreamableHttpTransport($request, $psr17Factory, $psr17Factory);
$transport = new StreamableHttpTransport($request);
$response = $server->run($transport);

View file

@ -13,17 +13,14 @@
require_once dirname(__DIR__).'/bootstrap.php';
chdir(__DIR__);
use Http\Discovery\Psr17Factory;
use Laminas\HttpHandlerRunner\Emitter\SapiEmitter;
use Mcp\Server;
use Mcp\Server\Session\FileSessionStore;
use Mcp\Server\Transport\StreamableHttpTransport;
use Nyholm\Psr7\Factory\Psr17Factory;
use Nyholm\Psr7Server\ServerRequestCreator;
$psr17Factory = new Psr17Factory();
$creator = new ServerRequestCreator($psr17Factory, $psr17Factory, $psr17Factory, $psr17Factory);
$request = $creator->fromGlobals();
$request = $psr17Factory->createServerRequestFromGlobals();
$server = Server::builder()
->setServerInfo('Schema Showcase', '1.0.0')
@ -33,7 +30,7 @@ $server = Server::builder()
->setDiscovery(__DIR__)
->build();
$transport = new StreamableHttpTransport($request, $psr17Factory, $psr17Factory);
$transport = new StreamableHttpTransport($request);
$response = $server->run($transport);