File tree Expand file tree Collapse file tree 2 files changed +30
-3
lines changed
Expand file tree Collapse file tree 2 files changed +30
-3
lines changed Original file line number Diff line number Diff line change 55namespace Butschster \ContextGenerator \McpServer \Registry ;
66
77use Butschster \ContextGenerator \McpServer \Attribute \Prompt ;
8- use Butschster \ContextGenerator \McpServer \Attribute \Resource ;
8+ use Butschster \ContextGenerator \McpServer \Attribute \Resource as ResourceAttr ;
99use Butschster \ContextGenerator \McpServer \Attribute \Tool ;
1010use Butschster \ContextGenerator \McpServer \Tool \ToolAttributesParser ;
1111use Mcp \Server \Contracts \ReferenceRegistryInterface ;
@@ -45,12 +45,12 @@ public function register(string $className): void
4545 }
4646
4747 // Check for Resource attribute
48- $ resourceAttributes = $ reflection ->getAttributes (Resource ::class);
48+ $ resourceAttributes = $ reflection ->getAttributes (ResourceAttr ::class);
4949 if (!empty ($ resourceAttributes )) {
5050 $ resource = $ resourceAttributes [0 ]->newInstance ();
5151
5252 $ this ->registry ->registerResource (
53- new \ PhpMcp \ Schema \ Resource (
53+ new Resource (
5454 uri: $ resource ->uri ,
5555 name: $ resource ->name ,
5656 description: $ resource ->description ,
Original file line number Diff line number Diff line change 1+ <?php
2+
3+ declare (strict_types=1 );
4+
5+ namespace Butschster \ContextGenerator \McpServer \Registry ;
6+
7+ use PhpMcp \Schema \Annotations ;
8+
9+ final class Resource extends \PhpMcp \Schema \Resource
10+ {
11+ private const string URI_PATTERN = '/^[a-zA-Z][a-zA-Z0-9+.-]*:\/\/[^\s]*$/ ' ;
12+
13+ public function __construct (
14+ public readonly string $ uri ,
15+ public readonly string $ name ,
16+ public readonly ?string $ description = null ,
17+ public readonly ?string $ mimeType = null ,
18+ public readonly ?Annotations $ annotations = null ,
19+ public readonly ?int $ size = null ,
20+ ) {
21+ if (!preg_match (self ::URI_PATTERN , $ uri )) {
22+ throw new \InvalidArgumentException (
23+ "Invalid resource URI: must be a valid URI with a scheme and optional path. " ,
24+ );
25+ }
26+ }
27+ }
You can’t perform that action at this time.
0 commit comments