From 9699778389b1da1489ef9d825b1d064e42f5b5b3 Mon Sep 17 00:00:00 2001 From: soyuka Date: Mon, 27 Jul 2026 09:22:59 +0200 Subject: [PATCH] fix(mcp): support mcp/sdk 0.7 and pin symfony/mcp-bundle symfony/mcp-bundle dev-main moved to mcp/sdk ^0.7 with the v0.12.0 release, which no longer resolves against the ^0.6 pin. Composer install fails and every CI job dies before vendor/autoload.php exists. Widen mcp/sdk to ^0.6 || ^0.7 and pin symfony/mcp-bundle to ^0.12 so an upstream dev-main release cannot break the build again. McpController gained a required MiddlewareFactory argument in v0.12.0, so pass one from the Laravel provider. Passing a default-constructed factory keeps the SDK secure defaults, matching the Symfony bundle. --- composer.json | 4 ++-- src/Laravel/ApiPlatformProvider.php | 4 +++- src/Laravel/composer.json | 2 +- src/Mcp/composer.json | 2 +- 4 files changed, 7 insertions(+), 5 deletions(-) diff --git a/composer.json b/composer.json index a91224ff2ce..d009bca075b 100644 --- a/composer.json +++ b/composer.json @@ -142,7 +142,7 @@ "jangregor/phpstan-prophecy": "^2.1.11", "justinrainbow/json-schema": "^6.5.2", "laravel/framework": "^11.0 || ^12.0 || ^13.0", - "mcp/sdk": "^0.6", + "mcp/sdk": "^0.6 || ^0.7", "orchestra/testbench": "^10.9 || ^11.0", "phpspec/prophecy-phpunit": "^2.2", "phpstan/extension-installer": "^1.1", @@ -176,7 +176,7 @@ "symfony/intl": "^6.4 || ^7.0 || ^8.0", "symfony/json-streamer": "^7.4 || ^8.0", "symfony/maker-bundle": "^1.24", - "symfony/mcp-bundle": "dev-main", + "symfony/mcp-bundle": "^0.12", "symfony/mercure-bundle": "*", "symfony/messenger": "^6.4 || ^7.0 || ^8.0", "symfony/object-mapper": "^7.4 || ^8.0", diff --git a/src/Laravel/ApiPlatformProvider.php b/src/Laravel/ApiPlatformProvider.php index f3b4f0f33a4..8eb0b5d4277 100644 --- a/src/Laravel/ApiPlatformProvider.php +++ b/src/Laravel/ApiPlatformProvider.php @@ -187,6 +187,7 @@ use PHPStan\PhpDocParser\Parser\PhpDocParser; use Psr\Log\LoggerInterface; use Symfony\AI\McpBundle\Controller\McpController; +use Symfony\AI\McpBundle\Http\MiddlewareFactory; use Symfony\Bridge\PsrHttpMessage\Factory\HttpFoundationFactory; use Symfony\Bridge\PsrHttpMessage\Factory\PsrHttpFactory; use Symfony\Component\HttpFoundation\RequestStack; @@ -1265,7 +1266,8 @@ private function registerMcp(): void $psrHttpFactory, $httpFoundationFactory, $psr17Factory, - $psr17Factory + $psr17Factory, + new MiddlewareFactory() ); }); } diff --git a/src/Laravel/composer.json b/src/Laravel/composer.json index d19afa36de9..c33c55461fd 100644 --- a/src/Laravel/composer.json +++ b/src/Laravel/composer.json @@ -65,7 +65,7 @@ "phpstan/phpdoc-parser": "^1.29 || ^2.0", "phpunit/phpunit": "^11.5 || ^12.2", "symfony/http-client": "^7.4 || ^8.0", - "symfony/mcp-bundle": "dev-main", + "symfony/mcp-bundle": "^0.12", "symfony/object-mapper": "^7.4 || ^8.0" }, "autoload": { diff --git a/src/Mcp/composer.json b/src/Mcp/composer.json index 389c2dc1f95..f6531135ea0 100644 --- a/src/Mcp/composer.json +++ b/src/Mcp/composer.json @@ -30,7 +30,7 @@ "php": ">=8.2", "api-platform/metadata": "^4.3", "api-platform/json-schema": "^4.3", - "mcp/sdk": "^0.6", + "mcp/sdk": "^0.6 || ^0.7", "symfony/object-mapper": "^7.4 || ^8.0", "symfony/polyfill-php85": "^1.32" },