[Examples][Tests] Make the MCP Apps example work over HTTP, and pin it (#439)

* [Examples][Tests] Make the MCP Apps example work over HTTP, and pin it

It was the only example without a session store, so every request under
`php -S` or php-fpm - each its own process - was answered "Session not found
or has expired". It now uses a FileSessionStore like the others.

Inspector snapshots pin what the extension actually puts on the wire: the
ui:// resource's `text/html;profile=mcp-app` MIME type and `ui` marker, and
the `_meta.ui` on the tool that links the two.

* Apply suggestion from @chr-hertel

* Apply suggestion from @chr-hertel
This commit is contained in:
Christopher Hertel 2026-08-18 14:51:34 +02:00 • committed by GitHub
commit 0751a83658
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -18,12 +18,14 @@ use Mcp\Schema\Extension\Apps\McpApps;
use Mcp\Schema\Extension\Apps\ToolVisibility;
use Mcp\Schema\Extension\Apps\UiToolMeta;
use Mcp\Server;
use Mcp\Server\Session\FileSessionStore;
logger()->info('Starting MCP Apps Example Server...');
$server = Server::builder()
->setServerInfo('MCP Apps Weather Example', '1.0.0')
->setLogger(logger())
->setSession(new FileSessionStore(__DIR__.'/sessions'))
->enableExtension(new McpApps())
->addResource(
[WeatherApp::class, 'getWeatherApp'],