Skip to main content

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 routes/ai.php.
Der Web-Server wird per HTTP POST angesprochen. Der lokale Server läuft als Artisan-Command und dient CLI-basierten KI-Clients.

Tools implementieren

Tools sind Funktionen, die KI-Clients aufrufen. Sie nutzen Service Container, Validierung und Eloquent von Laravel direkt.

Tool erstellen

Implementieren Sie in der erzeugten Klasse die Methoden handle und schema.

Parameter definieren (Schema)

In schema 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 Sie Response::structured.

Streaming-Antworten

Bei langen Vorgängen können Sie einen Generator zurückgeben und Zwischenergebnisse streamen.
Beim Web-Server wird der Stream automatisch als SSE (Server-Sent Events) ausgeliefert.

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.
Der KI-Client fragt die Ressource z. B. per URI 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

Mit asAssistant() werden Nachrichten als Aussagen des KI-Assistenten behandelt. So kombinieren Sie System-Prompt und Nutzermitteilungen, um das Verhalten der KI genau zu steuern.

Authentifizierung und Autorisierung

Token-Authentifizierung mit Sanctum

Die einfachste Variante. Der MCP-Client sendet Authorization: Bearer <token>.

OAuth-2.1-Authentifizierung

Für robustere Authentifizierung nutzen Sie Laravel Passport.
Wenn Sie OAuth nutzen, veröffentlichen Sie die MCP-Autorisierungs-Views und binden sie im AppServiceProvider ein.

Authentifizierung per eigener Middleware

Bei eigenen API-Tokens prüfen Sie den Authorization-Header per Middleware.

Autorisierung innerhalb eines Tools

Innerhalb der handle-Methode von Tools oder Ressourcen prüfen Sie Berechtigungen fein granular über $request->user().
shouldRegister blendet ein Tool lediglich aus der Liste aus. Die eigentliche Autorisierung beim Aufruf des Tools muss in handle erfolgen.

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.
Bei Datei-Tools ist Pfad-Sanitisierung Pflicht. Verweigern Sie Pfade mit .., damit kein Zugriff außerhalb erlaubter Verzeichnisse möglich ist.

Tests

Sie können MCP-Server, Tools, Ressourcen und Prompts mit Laravels Standard-Testwerkzeugen prüfen.

Tools testen

Rufen Sie das Tool direkt über Server::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.
Bei Octane wird Zustand über Requests hinweg geteilt. Vermeiden Sie in Tools statische Properties oder globalen Zustand.

Rate Limiting

Beschränken Sie Requests am MCP-Server über die throttle-Middleware.

Caching

Bei häufig genutzten Read-only-Tools lohnt sich Caching.

Logging und Monitoring

Loggen Sie MCP-Tool-Aufrufe, um die Nutzung durch KI-Clients nachzuvollziehen.
In der Produktion empfiehlt es sich, MCP-Server-Performance und Exceptions mit Laravel Telescope oder Sentry zu überwachen.
Zuletzt geändert am 13. Juli 2026