From be85428d4cd8f889bba0273c4c5d7cffe5079887 Mon Sep 17 00:00:00 2001 From: Snider Date: Wed, 4 Mar 2026 12:48:55 +0000 Subject: [PATCH] feat: register middleware aliases via lifecycle events Register mcp.auth, mcp.workspace, mcp.authenticate, mcp.quota, and mcp.dependencies aliases via $event->middleware() in both McpRoutesRegistering and ConsoleBooting handlers. Routes now use the 'mcp.auth' alias instead of the full class name. Follows the same pattern as php-api (auth.api, api.scope, etc.) and leverages the framework's processMiddleware() support in all fire* methods. Co-Authored-By: Virgil --- src/Mcp/Boot.php | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/src/Mcp/Boot.php b/src/Mcp/Boot.php index 8359551..68631a5 100644 --- a/src/Mcp/Boot.php +++ b/src/Mcp/Boot.php @@ -92,10 +92,17 @@ class Boot extends ServiceProvider public function onMcpRoutes(McpRoutesRegistering $event): void { + // Register middleware aliases + $event->middleware('mcp.auth', Middleware\McpApiKeyAuth::class); + $event->middleware('mcp.workspace', Middleware\ValidateWorkspaceContext::class); + $event->middleware('mcp.authenticate', Middleware\McpAuthenticate::class); + $event->middleware('mcp.quota', Middleware\CheckMcpQuota::class); + $event->middleware('mcp.dependencies', Middleware\ValidateToolDependencies::class); + $domain = config('mcp.domain'); $event->routes(fn () => Route::domain($domain) - ->middleware(Middleware\McpApiKeyAuth::class) + ->middleware('mcp.auth') ->name('mcp.') ->group(function () { Route::post('tools/call', [Controllers\McpApiController::class, 'callTool'])->name('tools.call'); @@ -112,6 +119,13 @@ class Boot extends ServiceProvider public function onConsole(ConsoleBooting $event): void { + // Middleware aliases for CLI context (artisan route:list etc.) + $event->middleware('mcp.auth', Middleware\McpApiKeyAuth::class); + $event->middleware('mcp.workspace', Middleware\ValidateWorkspaceContext::class); + $event->middleware('mcp.authenticate', Middleware\McpAuthenticate::class); + $event->middleware('mcp.quota', Middleware\CheckMcpQuota::class); + $event->middleware('mcp.dependencies', Middleware\ValidateToolDependencies::class); + $event->command(Console\Commands\McpAgentServerCommand::class); $event->command(Console\Commands\PruneMetricsCommand::class); $event->command(Console\Commands\VerifyAuditLogCommand::class);