Files
michaelschiemer/src/Framework/Mcp/McpInitializer.php
Michael Schiemer 55a330b223 Enable Discovery debug logging for production troubleshooting
- Add DISCOVERY_LOG_LEVEL=debug
- Add DISCOVERY_SHOW_PROGRESS=true
- Temporary changes for debugging InitializerProcessor fixes on production
2025-08-11 20:13:26 +02:00

52 lines
1.5 KiB
PHP

<?php
declare(strict_types=1);
namespace App\Framework\Mcp;
use App\Framework\DI\Container;
use App\Framework\DI\Initializer;
use App\Framework\Discovery\Results\DiscoveryRegistry;
final readonly class McpInitializer
{
public function __construct(
private Container $container,
private DiscoveryRegistry $discoveryResults,
) {
}
#[Initializer]
public function __invoke(): McpServer
{
$toolResults = $this->discoveryResults->attributes()->get(McpTool::class);
$resourceResults = $this->discoveryResults->attributes()->get(McpResource::class);
// Extract mapped data from discovery results (using DiscoveredAttribute structure)
$tools = [];
foreach ($toolResults as $discoveredAttribute) {
if ($discoveredAttribute->additionalData) {
// Use the additional data from the mapper
$tools[] = $discoveredAttribute->additionalData;
}
}
$resources = [];
foreach ($resourceResults as $discoveredAttribute) {
if ($discoveredAttribute->additionalData) {
// Use the additional data from the mapper
$resources[] = $discoveredAttribute->additionalData;
}
}
$toolRegistry = new McpToolRegistry($tools);
$resourceRegistry = new McpResourceRegistry($resources);
return new McpServer(
$this->container,
$toolRegistry,
$resourceRegistry
);
}
}