Skip to content

Commit 883efeb

Browse files
committed
[McpBundle] Wire & configure services explicitly
1 parent 24797e3 commit 883efeb

File tree

2 files changed

+38
-16
lines changed

2 files changed

+38
-16
lines changed

src/mcp-bundle/config/services.php

Lines changed: 29 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -25,36 +25,51 @@
2525

2626
return static function (ContainerConfigurator $container): void {
2727
$container->services()
28-
->defaults()
29-
->autowire()
30-
->autoconfigure()
3128
->instanceof(NotificationHandlerInterface::class)
3229
->tag('mcp.server.notification_handler')
3330
->instanceof(RequestHandlerInterface::class)
3431
->tag('mcp.server.request_handler')
35-
36-
->set(InitializedHandler::class)
37-
->set(InitializeHandler::class)
38-
->args([
39-
'$name' => param('mcp.app'),
40-
'$version' => param('mcp.version'),
41-
])
42-
->set(PingHandler::class)
43-
->set(ToolCallHandler::class)
44-
->set(ToolListHandler::class)
32+
->set('mcp.server.notification_handler.initialized', InitializedHandler::class)
33+
->args([])
34+
->tag('mcp.server.notification_handler')
35+
->set('mcp.server.request_handler.initialize', InitializeHandler::class)
36+
->args([
37+
'$name' => param('mcp.app'),
38+
'$version' => param('mcp.version'),
39+
])
40+
->tag('mcp.server.request_handler')
41+
->set('mcp.server.request_handler.ping', PingHandler::class)
42+
->args([])
43+
->tag('mcp.server.request_handler')
44+
->set('mcp.server.request_handler.tool_call', ToolCallHandler::class)
45+
->args([
46+
'$toolExecutor' => service('mcp.tool_executor'),
47+
])
48+
->tag('mcp.server.request_handler')
49+
->set('mcp.server.request_handler.tool_list', ToolListHandler::class)
50+
->args([
51+
'$collection' => service('mcp.tool_collection'),
52+
'$pageSize' => 20,
53+
])
4554

4655
->set('mcp.message_factory', Factory::class)
56+
->args([])
4757
->set('mcp.server.json_rpc', JsonRpcHandler::class)
4858
->args([
4959
'$messageFactory' => service('mcp.message_factory'),
5060
'$requestHandlers' => tagged_iterator('mcp.server.request_handler'),
5161
'$notificationHandlers' => tagged_iterator('mcp.server.notification_handler'),
62+
'$logger' => service('logger')->nullOnInvalid(),
5263
])
5364
->set('mcp.server', Server::class)
5465
->args([
5566
'$jsonRpcHandler' => service('mcp.server.json_rpc'),
67+
'$logger' => service('logger')->nullOnInvalid(),
5668
])
5769
->alias(Server::class, 'mcp.server')
58-
->set(CachePoolStore::class)
70+
->set('mcp.server.sse.store.cache_pool', CachePoolStore::class)
71+
->args([
72+
'$cachePool' => service('cache.app'),
73+
])
5974
;
6075
};

src/mcp-bundle/src/McpBundle.php

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
use Symfony\Component\Config\Definition\Configurator\DefinitionConfigurator;
1818
use Symfony\Component\DependencyInjection\ContainerBuilder;
1919
use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator;
20+
use Symfony\Component\DependencyInjection\Reference;
2021
use Symfony\Component\HttpKernel\Bundle\AbstractBundle;
2122

2223
final class McpBundle extends AbstractBundle
@@ -52,13 +53,19 @@ private function configureClient(array $transports, ContainerBuilder $container)
5253

5354
if ($transports['stdio']) {
5455
$container->register('mcp.server.command', McpCommand::class)
55-
->setAutowired(true)
56+
->setArguments([
57+
'$server' => new Reference('mcp.server'),
58+
])
5659
->addTag('console.command');
5760
}
5861

5962
if ($transports['sse']) {
6063
$container->register('mcp.server.controller', McpController::class)
61-
->setAutowired(true)
64+
->setArguments([
65+
'$server' => new Reference('mcp.server'),
66+
'$store' => new Reference('mcp.server.sse.store.cache_pool'),
67+
'$urlGenerator' => new Reference('router'),
68+
])
6269
->setPublic(true)
6370
->addTag('controller.service_arguments');
6471
}

0 commit comments

Comments
 (0)