diff --git a/docs/discovery-caching.md b/docs/discovery-caching.md index 8ba63f0a..423fdc09 100644 --- a/docs/discovery-caching.md +++ b/docs/discovery-caching.md @@ -21,8 +21,7 @@ use Symfony\Component\Cache\Psr16Cache; $server = Server::make() ->setServerInfo('My Server', '1.0.0') - ->setDiscovery(__DIR__, ['.']) - ->setCache(new Psr16Cache(new ArrayAdapter())) // Enable caching + ->setDiscovery(__DIR__, ['.'], [], new Psr16Cache(new ArrayAdapter())) // Enable caching ->build(); ``` @@ -69,8 +68,7 @@ $cache = DoctrineProvider::wrap(new ArrayCache()); $cache = new Psr16Cache(new ArrayAdapter()); $server = Server::make() - ->setDiscovery(__DIR__, ['.']) - ->setCache($cache) + ->setDiscovery(__DIR__, ['.'], [], $cache) ->build(); ``` @@ -81,8 +79,7 @@ $server = Server::make() $cache = new Psr16Cache(new FilesystemAdapter('mcp-discovery', 0, '/var/cache')); $server = Server::make() - ->setDiscovery(__DIR__, ['.']) - ->setCache($cache) + ->setDiscovery(__DIR__, ['.'], [], $cache) ->build(); ``` diff --git a/examples/09-cached-discovery-stdio/server.php b/examples/09-cached-discovery-stdio/server.php index 5210a8ed..c2cbd24e 100644 --- a/examples/09-cached-discovery-stdio/server.php +++ b/examples/09-cached-discovery-stdio/server.php @@ -26,8 +26,7 @@ ->setServerInfo('Cached Discovery Calculator', '1.0.0', 'Calculator with cached discovery for better performance.') ->setContainer(container()) ->setLogger(logger()) - ->setDiscovery(__DIR__, ['.']) - ->setCache(new Psr16Cache(new ArrayAdapter())) + ->setDiscovery(__DIR__, ['.'], [], new Psr16Cache(new ArrayAdapter())) ->build(); $transport = new StdioTransport(logger: logger()); diff --git a/src/Server/ServerBuilder.php b/src/Server/ServerBuilder.php index a231aec3..40fd5647 100644 --- a/src/Server/ServerBuilder.php +++ b/src/Server/ServerBuilder.php @@ -58,7 +58,7 @@ final class ServerBuilder private ?LoggerInterface $logger = null; - private ?CacheInterface $cache = null; + private ?CacheInterface $discoveryCache = null; private ?ToolCallerInterface $toolCaller = null; @@ -220,20 +220,12 @@ public function setDiscovery( string $basePath, array $scanDirs = ['.', 'src'], array $excludeDirs = [], + ?CacheInterface $cache = null, ): self { $this->discoveryBasePath = $basePath; $this->discoveryScanDirs = $scanDirs; $this->discoveryExcludeDirs = $excludeDirs; - - return $this; - } - - /** - * Enables discovery caching with the provided cache implementation. - */ - public function setCache(CacheInterface $cache): self - { - $this->cache = $cache; + $this->discoveryCache = $cache; return $this; } @@ -323,8 +315,8 @@ public function build(): Server if (null !== $this->discoveryBasePath) { $discovery = new Discoverer($registry, $logger); - if (null !== $this->cache) { - $discovery = new CachedDiscoverer($discovery, $this->cache, $logger); + if (null !== $this->discoveryCache) { + $discovery = new CachedDiscoverer($discovery, $this->discoveryCache, $logger); } $discovery->discover($this->discoveryBasePath, $this->discoveryScanDirs, $this->discoveryExcludeDirs);