Was ist ein MCP-Server (fortgeschritten)
Model Context Protocol (MCP) ist die Spezifikation für die standardisierte Kommunikation zwischen KI-Clients (Claude, Cursor, GitHub Copilot etc.) und Anwendungen. MCP kennt drei Kernprimitiven:
Der Vorteil, MCP-Server mit Laravel zu bauen: Sie nutzen das gesamte Ökosystem (Eloquent, Cache, Auth, Validierung) direkt weiter.
Diese fortgeschrittene Anleitung geht in die praktische Umsetzung. Für die MCP-Grundlagen siehe Mittelstufe: Laravel MCP.
Installation und Ersteinrichtung
1
Paket installieren
Über Composer:
2
Routen-Datei veröffentlichen
Mit
vendor:publish erzeugen Sie die Registrierungsdatei routes/ai.php.3
Server-Klasse erzeugen
Erzeugen Sie eine Server-Klasse per Artisan.Registrieren Sie Tools, Ressourcen und Prompts in
app/Mcp/Servers/DatabaseServer.php.4
Server registrieren
Registrieren Sie den Server als Route in Der Web-Server wird per HTTP POST angesprochen. Der lokale Server läuft als Artisan-Command und dient CLI-basierten KI-Clients.
routes/ai.php.Tools implementieren
Tools sind Funktionen, die KI-Clients aufrufen. Sie nutzen Service Container, Validierung und Eloquent von Laravel direkt.Tool erstellen
handle und schema.
Parameter definieren (Schema)
Inschema definieren Sie mit dem Illuminate\Contracts\JsonSchema\JsonSchema-Builder die akzeptierten Parameter.
Tool-Annotationen
Die Annotationen aus dem MCP-Protokoll helfen KI-Clients, die Sicherheit von Tools einzuschätzen.Strukturierte Antworten
Für JSON-Antworten, die vom Client leichter geparst werden können, verwenden SieResponse::structured.
Streaming-Antworten
Bei langen Vorgängen können Sie einen Generator zurückgeben und Zwischenergebnisse streamen.Bedingte Registrierung
Sie können Tools nur bestimmten Nutzern anzeigen.Ressourcen implementieren
Ressourcen sind Daten, die der KI-Client als Kontext einliest — Dokumente, Konfigurationen oder dynamische Daten.Statische Ressource
Dynamische Ressource (URI-Template)
URI-Templates liefern Ressourcen abhängig von URL-Parametern.app://users/42/profile ab; {userId} erhalten Sie über $request->get('userId').
Ressourcen-Annotationen
Sie können Priorität und Zielgruppe explizit machen.Prompts implementieren
Prompts sind wiederverwendbare Templates für KI-Clients — für Standardabfragen oder komplexe Workflows.Prompt erstellen
Authentifizierung und Autorisierung
Token-Authentifizierung mit Sanctum
Die einfachste Variante. Der MCP-Client sendetAuthorization: Bearer <token>.
OAuth-2.1-Authentifizierung
Für robustere Authentifizierung nutzen Sie Laravel Passport.AppServiceProvider ein.
Authentifizierung per eigener Middleware
Bei eigenen API-Tokens prüfen Sie denAuthorization-Header per Middleware.
Autorisierung innerhalb eines Tools
Innerhalb derhandle-Methode von Tools oder Ressourcen prüfen Sie Berechtigungen fein granular über $request->user().
Praxisbeispiel: Datenbankoperationen
Vollständige Implementierung eines Tools, das Datensätze via Eloquent sucht und anlegt.Server-Klasse
Such-Tool (Read-only)
Erstellungs-Tool (Schreiben)
Praxisbeispiel: Dateisystem-Tool
Implementierung eines Tools, das per Storage-Facade Dateien liest.Tests
Sie können MCP-Server, Tools, Ressourcen und Prompts mit Laravels Standard-Testwerkzeugen prüfen.Tools testen
Rufen Sie das Tool direkt überServer::tool() auf.
Ressourcen und Prompts testen
Wichtige Assertion-Methoden
Debugging mit dem MCP Inspector
Für interaktives Debugging nutzen Sie den MCP Inspector.Hinweise zum Deployment
HTTP-Streaming und SSE
Wenn Sie im Web-Server Streaming-Responses (Generatoren) verwenden, prüfen Sie die Server-Konfiguration.Kombination mit Laravel Octane
Für stark frequentierte MCP-Server bietet sich Laravel Octane (FrankenPHP oder Swoole) an — der Overhead pro Request sinkt deutlich.Rate Limiting
Beschränken Sie Requests am MCP-Server über diethrottle-Middleware.