|
25 | 25 |
|
26 | 26 | return static function (ContainerConfigurator $container): void {
|
27 | 27 | $container->services()
|
28 |
| - ->defaults() |
29 |
| - ->autowire() |
30 |
| - ->autoconfigure() |
31 | 28 | ->instanceof(NotificationHandlerInterface::class)
|
32 | 29 | ->tag('mcp.server.notification_handler')
|
33 | 30 | ->instanceof(RequestHandlerInterface::class)
|
34 | 31 | ->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 | + ]) |
45 | 54 |
|
46 | 55 | ->set('mcp.message_factory', Factory::class)
|
| 56 | + ->args([]) |
47 | 57 | ->set('mcp.server.json_rpc', JsonRpcHandler::class)
|
48 | 58 | ->args([
|
49 | 59 | '$messageFactory' => service('mcp.message_factory'),
|
50 | 60 | '$requestHandlers' => tagged_iterator('mcp.server.request_handler'),
|
51 | 61 | '$notificationHandlers' => tagged_iterator('mcp.server.notification_handler'),
|
| 62 | + '$logger' => service('logger')->nullOnInvalid(), |
52 | 63 | ])
|
53 | 64 | ->set('mcp.server', Server::class)
|
54 | 65 | ->args([
|
55 | 66 | '$jsonRpcHandler' => service('mcp.server.json_rpc'),
|
| 67 | + '$logger' => service('logger')->nullOnInvalid(), |
56 | 68 | ])
|
57 | 69 | ->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 | + ]) |
59 | 74 | ;
|
60 | 75 | };
|
0 commit comments