Skip to content

Commit 7d599f4

Browse files
authored
refactor: integrate cache parameter into setDiscovery() method (#80)
* refactor: integrate cache parameter into setDiscovery() method - Add cache as 4th parameter to setDiscovery() - Rename $cache to $discoveryCache for clarity - Remove separate setCache() method - Update example to use new API * docs: update discovery caching documentation to use new API - Update examples to use cache parameter in setDiscovery() method - Remove references to separate setCache() method calls
1 parent e46b7c1 commit 7d599f4

File tree

3 files changed

+9
-21
lines changed

3 files changed

+9
-21
lines changed

docs/discovery-caching.md

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,7 @@ use Symfony\Component\Cache\Psr16Cache;
2121

2222
$server = Server::make()
2323
->setServerInfo('My Server', '1.0.0')
24-
->setDiscovery(__DIR__, ['.'])
25-
->setCache(new Psr16Cache(new ArrayAdapter())) // Enable caching
24+
->setDiscovery(__DIR__, ['.'], [], new Psr16Cache(new ArrayAdapter())) // Enable caching
2625
->build();
2726
```
2827

@@ -69,8 +68,7 @@ $cache = DoctrineProvider::wrap(new ArrayCache());
6968
$cache = new Psr16Cache(new ArrayAdapter());
7069

7170
$server = Server::make()
72-
->setDiscovery(__DIR__, ['.'])
73-
->setCache($cache)
71+
->setDiscovery(__DIR__, ['.'], [], $cache)
7472
->build();
7573
```
7674

@@ -81,8 +79,7 @@ $server = Server::make()
8179
$cache = new Psr16Cache(new FilesystemAdapter('mcp-discovery', 0, '/var/cache'));
8280

8381
$server = Server::make()
84-
->setDiscovery(__DIR__, ['.'])
85-
->setCache($cache)
82+
->setDiscovery(__DIR__, ['.'], [], $cache)
8683
->build();
8784
```
8885

examples/09-cached-discovery-stdio/server.php

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,7 @@
2626
->setServerInfo('Cached Discovery Calculator', '1.0.0', 'Calculator with cached discovery for better performance.')
2727
->setContainer(container())
2828
->setLogger(logger())
29-
->setDiscovery(__DIR__, ['.'])
30-
->setCache(new Psr16Cache(new ArrayAdapter()))
29+
->setDiscovery(__DIR__, ['.'], [], new Psr16Cache(new ArrayAdapter()))
3130
->build();
3231

3332
$transport = new StdioTransport(logger: logger());

src/Server/ServerBuilder.php

Lines changed: 5 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ final class ServerBuilder
5858

5959
private ?LoggerInterface $logger = null;
6060

61-
private ?CacheInterface $cache = null;
61+
private ?CacheInterface $discoveryCache = null;
6262

6363
private ?ToolCallerInterface $toolCaller = null;
6464

@@ -220,20 +220,12 @@ public function setDiscovery(
220220
string $basePath,
221221
array $scanDirs = ['.', 'src'],
222222
array $excludeDirs = [],
223+
?CacheInterface $cache = null,
223224
): self {
224225
$this->discoveryBasePath = $basePath;
225226
$this->discoveryScanDirs = $scanDirs;
226227
$this->discoveryExcludeDirs = $excludeDirs;
227-
228-
return $this;
229-
}
230-
231-
/**
232-
* Enables discovery caching with the provided cache implementation.
233-
*/
234-
public function setCache(CacheInterface $cache): self
235-
{
236-
$this->cache = $cache;
228+
$this->discoveryCache = $cache;
237229

238230
return $this;
239231
}
@@ -323,8 +315,8 @@ public function build(): Server
323315
if (null !== $this->discoveryBasePath) {
324316
$discovery = new Discoverer($registry, $logger);
325317

326-
if (null !== $this->cache) {
327-
$discovery = new CachedDiscoverer($discovery, $this->cache, $logger);
318+
if (null !== $this->discoveryCache) {
319+
$discovery = new CachedDiscoverer($discovery, $this->discoveryCache, $logger);
328320
}
329321

330322
$discovery->discover($this->discoveryBasePath, $this->discoveryScanDirs, $this->discoveryExcludeDirs);

0 commit comments

Comments
 (0)