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 <virgil@lethean.io>
This commit is contained in:
Snider 2026-03-04 12:48:55 +00:00
parent 8138840cad
commit be85428d4c

View file

@ -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);