31 lines
749 B
PHP
31 lines
749 B
PHP
<?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();
|