Skip to content

Commit 8e5a9da

Browse files
authored
fix(mcp): support mcp/sdk 0.6 ResourceDefinition in Loader (#8302)
1 parent 3e35293 commit 8e5a9da

2 files changed

Lines changed: 9 additions & 1 deletion

File tree

phpstan.neon.dist

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,11 @@ parameters:
4646
-
4747
message: '#Symfony\\Component\\PropertyInfo\\Type#'
4848
identifier: class.notFound
49+
# mcp/sdk 0.6 renamed Mcp\Schema\Resource to ResourceDefinition; Loader resolves at runtime, only one exists per installed version
50+
-
51+
message: '#class Mcp\\Schema\\(Resource|ResourceDefinition) not found#'
52+
identifier: class.notFound
53+
path: src/Mcp/Capability/Registry/Loader.php
4954
# False positives
5055
- message: '#Call to an undefined method Negotiation\\AcceptHeader::getType\(\).#'
5156
-

src/Mcp/Capability/Registry/Loader.php

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
use Mcp\Capability\RegistryInterface;
2525
use Mcp\Schema\Annotations;
2626
use Mcp\Schema\Resource;
27+
use Mcp\Schema\ResourceDefinition;
2728
use Mcp\Schema\Tool;
2829
use Mcp\Schema\ToolAnnotations;
2930

@@ -77,8 +78,10 @@ public function load(RegistryInterface $registry): void
7778
}
7879

7980
if ($mcp instanceof McpResource) {
81+
// mcp/sdk 0.6 renamed Mcp\Schema\Resource to ResourceDefinition; support both while symfony/mcp-bundle still pins ^0.5
82+
$resourceClass = class_exists(ResourceDefinition::class) ? ResourceDefinition::class : Resource::class;
8083
$registry->registerResource(
81-
new Resource(
84+
new $resourceClass(
8285
uri: $mcp->getUri(),
8386
name: $mcp->getName(),
8487
description: $mcp->getDescription(),

0 commit comments

Comments
 (0)