Fix manual registration of capabilities via ServerBuilder

This commit is contained in:
Christopher Hertel 2025-09-01 23:56:50 +02:00
commit 4812b563a1
2 changed files with 4 additions and 7 deletions

View file

@ -570,12 +570,6 @@ parameters:
count: 1
path: src/Server/ServerBuilder.php
-
message: '#^Method Mcp\\Server\\ServerBuilder\:\:registerManualElements\(\) is unused\.$#'
identifier: method.unused
count: 1
path: src/Server/ServerBuilder.php
-
message: '#^Method Mcp\\Server\\ServerBuilder\:\:withDiscovery\(\) has parameter \$excludeDirs with no value type specified in iterable type array\.$#'
identifier: missingType.iterableValue

View file

@ -34,6 +34,7 @@ use Mcp\Server;
use Psr\Container\ContainerInterface;
use Psr\EventDispatcher\EventDispatcherInterface;
use Psr\Log\LoggerInterface;
use Psr\Log\NullLogger;
use Psr\SimpleCache\CacheInterface;
/**
@ -218,6 +219,8 @@ final class ServerBuilder
$container = $this->container ?? new Container();
$registry = new Registry(new ReferenceHandler($container), $this->eventDispatcher, $this->logger);
$this->registerManualElements($registry, $this->logger);
if (null !== $this->discoveryBasePath) {
$discovery = new Discoverer($registry, $this->logger);
$discovery->discover($this->discoveryBasePath, $this->discoveryScanDirs, $this->discoveryExcludeDirs);
@ -233,7 +236,7 @@ final class ServerBuilder
* Helper to perform the actual registration based on stored data.
* Moved into the builder.
*/
private function registerManualElements(Registry $registry, LoggerInterface $logger): void
private function registerManualElements(Registry $registry, LoggerInterface $logger = new NullLogger()): void
{
if (empty($this->manualTools) && empty($this->manualResources) && empty($this->manualResourceTemplates) && empty($this->manualPrompts)) {
return;