From 1fdfb853e60aebf9802be2e828416139bbb29841 Mon Sep 17 00:00:00 2001 From: Petr Hahn Date: Fri, 29 May 2026 10:57:08 +0200 Subject: [PATCH 1/3] Update dependencies and enhance type validation in session handling --- composer.json | 4 ++-- src/DI/Helpers/BuilderMan.php | 6 +++++- src/DI/McpExtension.php | 7 ++++--- src/Http/GuzzleBridge.php | 2 +- 4 files changed, 12 insertions(+), 7 deletions(-) diff --git a/composer.json b/composer.json index fc902ec..169d295 100644 --- a/composer.json +++ b/composer.json @@ -25,11 +25,11 @@ "psr/container": "^2.0.2", "psr/cache": "^3.0.0", "psr/simple-cache": "^3.0.0", - "mcp/sdk": "dev-main#369932378f7bcfa29a00efc1530b70c4d501a24b" + "mcp/sdk": "^0.5.0" }, "require-dev": { "ext-pdo": "*", - "contributte/phpstan": "^0.2.0", + "contributte/phpstan": "^0.3.0", "contributte/qa": "^0.5.0", "contributte/tester": "^0.5.0", "mockery/mockery": "^1.6.12", diff --git a/src/DI/Helpers/BuilderMan.php b/src/DI/Helpers/BuilderMan.php index 233b183..24d1a9d 100644 --- a/src/DI/Helpers/BuilderMan.php +++ b/src/DI/Helpers/BuilderMan.php @@ -31,7 +31,11 @@ public function getServiceDefinitionsByTag(string $tag): array $definitions = []; foreach ($builder->findByTag($tag) as $serviceName => $tagValue) { - $definitions[(string) $tagValue] = $builder->getDefinition($serviceName); + if (!is_string($tagValue)) { + continue; + } + + $definitions[$tagValue] = $builder->getDefinition($serviceName); } return $definitions; diff --git a/src/DI/McpExtension.php b/src/DI/McpExtension.php index ff7f127..426de0b 100644 --- a/src/DI/McpExtension.php +++ b/src/DI/McpExtension.php @@ -17,7 +17,7 @@ use Mcp\Server\Builder; use Mcp\Server\Session\FileSessionStore; use Mcp\Server\Session\InMemorySessionStore; -use Mcp\Server\Session\Psr16StoreSession; +use Mcp\Server\Session\Psr16SessionStore; use Nette\Application\IPresenterFactory; use Nette\DI\CompilerExtension; use Nette\DI\Definitions\ServiceDefinition; @@ -178,7 +178,8 @@ private function loadServerConfiguration(string $serverName, stdClass $serverCon // Server:Session switch ($serverConfig->session->type) { case 'file': - $path = $serverConfig->session->path ?? (isset($builder->parameters['tempDir']) ? $builder->parameters['tempDir'] . '/mcp' : null); + $tempDir = $builder->parameters['tempDir'] ?? null; + $path = $serverConfig->session->path ?? (is_string($tempDir) ? $tempDir . '/mcp' : null); if ($path === null) { throw new LogicalException( sprintf('Session path must be configured for file sessions (server "%s"). Either set session.path or ensure %%tempDir%% is available.', $serverName) @@ -198,7 +199,7 @@ private function loadServerConfiguration(string $serverName, stdClass $serverCon } $cacheService = BuilderMan::of($this)->resolveService($serverConfig->session->cache); - $sessionStore = new Statement(Psr16StoreSession::class, [$cacheService, $serverConfig->session->prefix, $serverConfig->session->ttl]); + $sessionStore = new Statement(Psr16SessionStore::class, [$cacheService, $serverConfig->session->prefix, $serverConfig->session->ttl]); break; default: $sessionStore = null; diff --git a/src/Http/GuzzleBridge.php b/src/Http/GuzzleBridge.php index d2bd371..686b14b 100644 --- a/src/Http/GuzzleBridge.php +++ b/src/Http/GuzzleBridge.php @@ -22,7 +22,7 @@ public static function fromNette(IRequest $netteRequest): ServerRequestInterface $headers = []; foreach ($netteRequest->getHeaders() as $name => $value) { - $headers[$name] = is_array($value) ? $value : [$value]; + $headers[$name] = [$value]; } $body = $netteRequest->getRawBody(); From c0cc4d7f160c404d45242590cca5f30a319b128c Mon Sep 17 00:00:00 2001 From: Petr Hahn Date: Fri, 29 May 2026 10:59:29 +0200 Subject: [PATCH 2/3] Update package name in composer.json --- composer.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/composer.json b/composer.json index 169d295..9762f69 100644 --- a/composer.json +++ b/composer.json @@ -1,5 +1,5 @@ { - "name": "contributte/mcp", + "name": "demmmmios/mcp", "description": "Doctrine DBAL for Nette Framework", "keywords": [ "nette", From 66cab145c799c97b4df2a81545fdf19554a1e298 Mon Sep 17 00:00:00 2001 From: Petr Hahn Date: Fri, 29 May 2026 11:55:27 +0200 Subject: [PATCH 3/3] Downgrade PHP version requirement to >=8.3 in composer.json --- composer.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/composer.json b/composer.json index 9762f69..8093cc3 100644 --- a/composer.json +++ b/composer.json @@ -20,7 +20,7 @@ } ], "require": { - "php": ">=8.4", + "php": ">=8.3", "guzzlehttp/guzzle": "^7.10.0", "psr/container": "^2.0.2", "psr/cache": "^3.0.0",