<?php

declare(strict_types=1);

use RedMCP\McpDispatcher;
use RedMCP\McpDebugLogger;
use RedMCP\McpEnvironment;
use RedMCP\McpHttpHandler;
use RedMCP\RedmineClient;

require __DIR__ . '/../vendor/autoload.php';

$env = McpEnvironment::load(__DIR__ . '/../.env');
$token = $env['mcp_server_token'];
if ($token === null) {
    http_response_code(500);
    header('Content-Type: application/json');
    echo json_encode(['error' => 'MCP_SERVER_TOKEN is required']);
    return;
}

$handler = new McpHttpHandler(
    new McpDispatcher(
        RedmineClient::fromCredentials($env['redmine_url'], $env['redmine_api_key']),
        new McpDebugLogger($env['mcp_debug_log'])
    ),
    $token,
    getenv('MCP_HTTP_PATH') ?: '/mcp'
);
$handler->handle();
