Skip to content

Commit f3149d6

Browse files
camilleislasseOskarStark
authored andcommitted
[MCP Bundle] Make MonologBundle optional
1 parent 03ab03c commit f3149d6

File tree

5 files changed

+14
-27
lines changed

5 files changed

+14
-27
lines changed

src/mcp-bundle/composer.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,8 @@
2828
"require-dev": {
2929
"phpstan/phpstan": "^2.1",
3030
"phpstan/phpstan-strict-rules": "^2.0",
31-
"phpunit/phpunit": "^11.5.46"
31+
"phpunit/phpunit": "^11.5.46",
32+
"symfony/monolog-bundle": "^3.10 || ^4.0"
3233
},
3334
"minimum-stability": "dev",
3435
"prefer-stable": true,

src/mcp-bundle/config/services.php

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -17,28 +17,26 @@
1717

1818
return static function (ContainerConfigurator $container): void {
1919
$container->services()
20-
->set('monolog.logger.mcp')
21-
->parent('monolog.logger_prototype')
22-
->args(['mcp'])
23-
->tag('monolog.logger', ['channel' => 'mcp'])
24-
2520
->set('mcp.registry', Registry::class)
26-
->args([service('event_dispatcher'), service('monolog.logger.mcp')])
21+
->args([service('event_dispatcher'), service('logger')])
22+
->tag('monolog.logger', ['channel' => 'mcp'])
2723

2824
->set('mcp.server.builder', Builder::class)
2925
->factory([Server::class, 'builder'])
3026
->call('setServerInfo', [param('mcp.app'), param('mcp.version')])
3127
->call('setPaginationLimit', [param('mcp.pagination_limit')])
3228
->call('setInstructions', [param('mcp.instructions')])
33-
->call('setLogger', [service('monolog.logger.mcp')])
3429
->call('setEventDispatcher', [service('event_dispatcher')])
3530
->call('setRegistry', [service('mcp.registry')])
3631
->call('setSession', [service('mcp.session.store')])
3732
->call('addRequestHandlers', [tagged_iterator('mcp.request_handler')])
3833
->call('addNotificationHandlers', [tagged_iterator('mcp.notification_handler')])
3934
->call('addLoaders', [tagged_iterator('mcp.loader')])
4035
->call('setDiscovery', [param('kernel.project_dir'), param('mcp.discovery.scan_dirs'), param('mcp.discovery.exclude_dirs')])
36+
->call('setLogger', [service('logger')])
37+
->tag('monolog.logger', ['channel' => 'mcp'])
4138

4239
->set('mcp.server', Server::class)
43-
->factory([service('mcp.server.builder'), 'build']);
40+
->factory([service('mcp.server.builder'), 'build'])
41+
;
4442
};

src/mcp-bundle/src/Command/McpCommand.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ class McpCommand extends Command
2424
{
2525
public function __construct(
2626
private readonly Server $server,
27-
private readonly LoggerInterface $logger,
27+
private readonly ?LoggerInterface $logger = null,
2828
) {
2929
parent::__construct();
3030
}

src/mcp-bundle/src/McpBundle.php

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,6 @@
3232
use Symfony\Component\Config\Definition\Configurator\DefinitionConfigurator;
3333
use Symfony\Component\DependencyInjection\ChildDefinition;
3434
use Symfony\Component\DependencyInjection\ContainerBuilder;
35-
use Symfony\Component\DependencyInjection\ContainerInterface;
3635
use Symfony\Component\DependencyInjection\Definition;
3736
use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator;
3837
use Symfony\Component\DependencyInjection\Reference;
@@ -144,7 +143,8 @@ private function configureClient(array $transports, array $httpConfig, Container
144143
new Reference('mcp.server'),
145144
new Reference('logger'),
146145
])
147-
->addTag('console.command');
146+
->addTag('console.command')
147+
->addTag('monolog.logger', ['channel' => 'mcp']);
148148
}
149149

150150
if ($transports['http']) {
@@ -155,10 +155,11 @@ private function configureClient(array $transports, array $httpConfig, Container
155155
new Reference('mcp.http_foundation_factory'),
156156
new Reference('mcp.psr17_factory'),
157157
new Reference('mcp.psr17_factory'),
158-
new Reference('monolog.logger.mcp', ContainerInterface::NULL_ON_INVALID_REFERENCE),
158+
new Reference('logger'),
159159
])
160160
->setPublic(true)
161-
->addTag('controller.service_arguments');
161+
->addTag('controller.service_arguments')
162+
->addTag('monolog.logger', ['channel' => 'mcp']);
162163
}
163164

164165
$container->register('mcp.server.route_loader', RouteLoader::class)

src/mcp-bundle/tests/DependencyInjection/McpBundleTest.php

Lines changed: 0 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -51,19 +51,6 @@ public function testCustomConfiguration()
5151
$this->assertSame('This server provides weather and calendar tools', $container->getParameter('mcp.instructions'));
5252
}
5353

54-
public function testMcpLoggerServiceIsCreated()
55-
{
56-
$container = $this->buildContainer([]);
57-
58-
$this->assertTrue($container->hasDefinition('monolog.logger.mcp'));
59-
60-
$definition = $container->getDefinition('monolog.logger.mcp');
61-
$this->assertInstanceOf(\Symfony\Component\DependencyInjection\ChildDefinition::class, $definition);
62-
$this->assertSame('monolog.logger_prototype', $definition->getParent());
63-
$this->assertSame(['mcp'], $definition->getArguments());
64-
$this->assertTrue($definition->hasTag('monolog.logger'));
65-
}
66-
6754
#[DataProvider('provideClientTransportsConfiguration')]
6855
public function testClientTransportsConfiguration(array $config, array $expectedServices)
6956
{

0 commit comments

Comments
 (0)