Zum Hauptinhalt springen
IngenieurwesenMar 28, 2026

MCP in der Produktion: Transport, Auth und Scaling-Herausforderungen loesen

OS
Open Soft Team

Engineering Team

Vom Prototyp zur Produktion: Was sich aendert

Einen MCP-Server zu erstellen, der auf Ihrem Laptop funktioniert, ist relativ einfach. Einen zu betreiben, der Tausende gleichzeitiger AI-Agenten-Sitzungen ueber eine verteilte Infrastruktur verarbeitet, ist eine voellig andere Engineering-Herausforderung. Produktions-MCP-Deployments muessen fuenf Aspekte behandeln, die Prototypen ignorieren koennen: Transport-Skalierbarkeit, Authentifizierung und Autorisierung, Sitzungsverwaltung im grossen Massstab, Audit-Trails und Multi-Server-Orchestrierung.

Dieser Artikel ist ein technischer Leitfaden fuer Engineering-Teams, die MCP-Server von der Entwicklung in die Produktion ueberfuehren. Wir setzen voraus, dass Sie mindestens einen MCP-Server erstellt haben und die Grundlagen des Protokolls verstehen. Falls nicht, beginnen Sie mit unserem Begleitartikel zum Erstellen Ihres ersten MCP-Servers.

Transport-Skalierbarkeit: stdio vs SSE vs Streamable HTTP

MCP definiert drei Transport-Mechanismen. Die Wahl des richtigen fuer die Produktion ist Ihre erste Architekturentscheidung.

stdio-Transport

Der stdio-Transport kommuniziert ueber Standard-Ein-/Ausgabestrroeme. Die Host-Anwendung startet den MCP-Server als Kindprozess und tauscht JSON-RPC-Nachrichten ueber stdin/stdout aus.

Vorteile:

  • Keine Netzwerkkonfiguration
  • Isolierung auf Prozessebene
  • Keine Portkonflikte
  • Geringste Latenz (kein Netzwerk-Stack)

Einschraenkungen:

  • Server muss auf derselben Maschine wie der Host laufen
  • Ein Serverprozess pro Client-Sitzung
  • Kein Load-Balancing
  • Keine horizontale Skalierung

Am besten geeignet fuer: Lokale Entwicklungstools, IDE-Erweiterungen, Einzelbenutzer-Desktop-Anwendungen.

SSE-Transport (Server-Sent Events)

Der SSE-Transport verwendet HTTP fuer Client-zu-Server-Nachrichten und Server-Sent Events fuer Server-zu-Client-Nachrichten. Der Server laeuft als HTTP-Dienst.

Vorteile:

  • Netzwerkzugaenglich (Remote-Server)
  • Kompatibel mit bestehender HTTP-Infrastruktur
  • Unterstuetzt mehrere gleichzeitige Clients
  • Funktioniert durch Firewalls und Proxies

Einschraenkungen:

  • Unidirektionales Streaming (SSE nur Server-zu-Client)
  • Session-Affinitaet erforderlich (Stateful-Verbindung)
  • Einige Load-Balancer haben Probleme mit langlebigen SSE-Verbindungen
  • Keine eingebaute Reconnect-Semantik im Protokoll

Am besten geeignet fuer: Kleine bis mittelgrosse Deployments, interne Tools, Teams mit bestehender HTTP-Infrastruktur.

Streamable HTTP-Transport

Streamable HTTP ist der neueste Transport, speziell fuer Produktions-Deployments entwickelt. Er verwendet Standard-HTTP-POST fuer alle Nachrichten mit optionalem SSE-Streaming fuer langandauernde Operationen.

Vorteile:

  • Vollstaendig zustandsloses Request/Response-Modell
  • Funktioniert mit jedem HTTP-Load-Balancer
  • Eingebaute Sitzungsverwaltung ueber Mcp-Session-Id-Header
  • Unterstuetzt Streaming- und Nicht-Streaming-Antworten
  • CDN- und Proxy-kompatibel

Einschraenkungen:

  • Serverseitiger Sitzungsspeicher erforderlich (Redis, Datenbank)
  • Etwas hoeherer Overhead pro Nachricht als stdio
  • Neuerer Transport — weniger Ecosystem-Tooling

Am besten geeignet fuer: Produktions-Cloud-Deployments, Multi-Tenant-Plattformen, Enterprise-Umgebungen.

Transport-Vergleichsmatrix

EigenschaftstdioSSEStreamable HTTP
NetzwerkfaehigNeinJaJa
Horizontale SkalierungNeinBegrenztJa
Load-BalancingNeinSession-Affinitaet erforderlichStandard-HTTP-LB
SitzungsverwaltungPro ProzessServerspeicherExterner Store
LatenzGeringsteNiedrigNiedrig
Firewall-kompatibelN/AJaJa

Authentifizierung und Autorisierung

OAuth 2.0-Integration

Produktions-MCP-Server benoetigen eine Moeglichkeit fuer Clients, sich zu authentifizieren und den Zugriff auf bestimmte Tools und Ressourcen einzuschraenken. Das MCP-Protokoll unterstuetzt OAuth 2.0 fuer entfernte Server.

Der Ablauf sieht folgendermassen aus:

  1. MCP Client verbindet sich mit dem Server und sendet eine initialize-Anfrage
  2. Server antwortet mit 401 Unauthorized und einem WWW-Authenticate-Header mit OAuth-Metadaten-URL
  3. Client ruft OAuth-Konfiguration von /.well-known/oauth-authorization-server ab
  4. Client erhaelt ein Zugriffstoken ueber einen browserbasierten Autorisierungsfluss
  5. Nachfolgende Anfragen enthalten das Bearer-Token im Authorization-Header

Autorisierung auf Tool-Ebene

Authentifizierung allein reicht nicht aus. Produktionssysteme benoetigen eine feinkoernige Autorisierung, die steuert, welche Tools ein Benutzer aufrufen und auf welche Ressourcen er zugreifen kann.

Empfohlene Ansaetze:

  • Rollenbasierte Zugriffssteuerung (RBAC): Tool-Berechtigungen Rollen zuweisen. Beispiel: Die Rolle analyst hat Zugriff auf schreibgeschuetzte Abfrage-Tools, die Rolle admin auf Schreiboperationen.
  • Scope-basierte Steuerung: OAuth-Scopes verwenden, um den Tool-Zugriff einzuschraenken. Beispiel: Der Scope mcp:tools:query:read erlaubt nur SELECT-Abfragen.
  • Dynamische Tool-Filterung: Die Liste verfuegbarer Tools basierend auf den Berechtigungen des authentifizierten Benutzers filtern.

Horizontale Skalierung mit Redis

Bei Verwendung des zustandslosen Streamable-HTTP-Transports koennen Sie mehrere MCP-Server-Instanzen hinter einem Load-Balancer betreiben. Der Sitzungszustand wird in Redis gespeichert und ueber alle Instanzen geteilt.

Client → Load Balancer → MCP Server 1 ↔ Redis
                       → MCP Server 2 ↔ Redis
                       → MCP Server 3 ↔ Redis

Jede Anfrage enthaelt den Mcp-Session-Id-Header, und jede Server-Instanz kann den Sitzungszustand aus Redis abrufen, um die Verarbeitung fortzusetzen.

Auto-Scaling auf Kubernetes

Die Bereitstellung von MCP-Servern auf Kubernetes ermoeglicht das automatische Skalieren von Pods basierend auf der Anzahl aktiver Sitzungen oder der CPU-Auslastung. Verwenden Sie benutzerdefinierte Metriken mit dem Horizontal Pod Autoscaler (HPA).

Audit-Logging

Enterprise-Deployments erfordern detaillierte Audit-Trails fuer jeden Aufruf eines externen Tools durch eine AI. Fuer jeden Tool-Aufruf protokollieren Sie:

  • Zeitstempel: Zeitpunkt des Aufrufs
  • Benutzer-ID: Der Benutzer, der die AI-Aktion ausgeloest hat
  • Tool-Name: Das aufgerufene MCP-Tool
  • Eingabeparameter: Die an das Tool gesendeten Daten
  • Ausgabeergebnis: Die vom Tool zurueckgegebenen Daten
  • Ausfuehrungsdauer: Die fuer den Tool-Aufruf benoetigte Zeit
  • Fehler: Aufgetretene Fehler

Verwenden Sie strukturierte Protokollierung (JSON-Format) und senden Sie Logs an ein zentrales Logmanagement-System (ELK Stack, Datadog, CloudWatch).

Gateway-Architektur

Fuer Deployments im grossen Massstab sollten Sie ein MCP-Gateway-Muster implementieren. Das Gateway fungiert als Reverse-Proxy zwischen MCP Clients und Backend-MCP-Servern.

Verantwortlichkeiten des Gateways:

  • Zentralisierte Authentifizierung: Alle OAuth-Validierung am Gateway durchfuehren
  • Ratenbegrenzung: Benutzer- und Tool-spezifische Ratenlimits anwenden
  • Routing: Anfragen basierend auf dem Tool-Namen an die entsprechenden Backend-Server weiterleiten
  • Audit-Log-Erfassung: Alle Tool-Aufrufe auf Gateway-Ebene protokollieren
  • Circuit Breaker: Fallback-Behandlung bei Backend-Server-Ausfaellen

FAQ

F: Kann man den stdio-Transport in der Produktion verwenden? A: Ja, aber nur in begrenzten Szenarien. Er eignet sich fuer Desktop-Anwendungen, bei denen jeder Benutzer seinen eigenen lokalen MCP-Server-Prozess ausfuehrt. Fuer gemeinsam genutzte Server-Infrastruktur verwenden Sie Streamable HTTP.

F: Muessen MCP-Sitzungen persistiert werden? A: Ja, wenn Sie Streamable HTTP verwenden. Der Sitzungszustand umfasst Client-Faehigkeiten, die ausgehandelte Protokollversion und registrierte Benachrichtigungen. Redis ist der empfohlene Sitzungsspeicher.

F: Wie sollte man MCP-Server versionieren? A: Verwenden Sie das Server-Versionsfeld in der initialize-Antwort. Bei inkompatiblen Aenderungen (Entfernung von Tools, Schemaanpassungen) erhoehen Sie die Major-Version und unterstuetzen waehrend einer Migrationsphase sowohl alte als auch neue Versionen.

F: Was ist die maximale Nachrichtengroesse fuer MCP? A: Das Protokoll definiert kein Maximum, aber praktische Grenzen haengen vom Transport ab. Bei Streamable HTTP halten Sie Antworten unter 10 MB. Bei stdio koennen System-Pipe-Puffer (typischerweise 64 KB) Chunking fuer grosse Antworten erfordern.