AGNTCon MCPCon Europe 2026: MCP Server bereitstellen

Ein lokaler MCP Server funktioniert zuverlässig, aber der Remote-Aufruf scheitert an fehlender Autorisierung, offenen Dateirechten oder nicht nachvollziehbaren Fehlermeldungen.

Die schnellste sichere Lösung für die AGNTCon MCPCon Europe 2026 MCP-Bereitstellung lautet: zuerst Ressourcen und Vertrauensgrenzen festlegen, danach eine isolierte Laufzeit mit HTTPS, standardkonformer OAuth-2.1-Autorisierung, getrennter Geheimnisverwaltung und bereinigten Logs aufbauen. Erst wenn abgelaufene Tokens, fehlende Berechtigungen und Downstream-Fehler kontrolliert behandelt werden, ist der Dienst für einen produktiven AI Agent geeignet.

Für wen dieser Ablauf gedacht ist

Dieser Leitfaden ist für Sie relevant, wenn Sie einen lokalen STDIO-MCP-Server bereits entwickelt haben und ihn kontrolliert mit mehreren Clients teilen möchten.

Er richtet sich außerdem an Plattformingenieure, die einen einheitlichen Agent-Werkzeugzugang bereitstellen, sowie an Sicherheitsverantwortliche, die Autorisierung, Auditierbarkeit, DSGVO-Anforderungen und Laufzeitisolation bewerten müssen.

Die Veranstaltung AGNTCon + MCPCon Europe ist für den 17.09.2026 und 18.09.2026 in Amsterdam bestätigt. Auf der offiziellen Veranstaltungsseite stehen unter anderem MCP-Herausforderungen, Tool-Schnittstellen und Agent-Infrastruktur auf dem Programm. Die Veranstaltung ist jedoch kein Ersatz für die laufende MCP-Spezifikation: Für eine Bereitstellung müssen Sie immer die zum Deployment-Zeitpunkt gültige Norm und die aktuelle SDK-Dokumentation prüfen. (events.linuxfoundation.org)

Letzte Aktualisierung: 29.07.2026. Die Veranstaltungsdaten wurden anhand der offiziellen Veranstaltungsseite geprüft; die technischen Aussagen wurden gegen die aktuelle MCP-Autorisierungs- und Sicherheitsdokumentation sowie die SDK-Hinweise zu Remote-Transporten abgeglichen.

Vor dem ersten Deployment die Vertrauensgrenze festlegen

Der häufigste Fehler besteht darin, einen lokalen Prozess unverändert hinter einen Reverse Proxy zu stellen. Lokal kann ein Tool auf Dateien, Umgebungsvariablen oder private Netzwerkdienste zugreifen, weil der einzelne Benutzer diese Umgebung kontrolliert. Remote wird aus demselben Zugriff plötzlich eine gemeinsam erreichbare Schnittstelle.

Legen Sie deshalb vor jeder Serverkonfiguration ein Inventar an:

  1. Werkzeuge: Welche Tools werden angeboten? Lesen sie nur Daten oder führen sie Schreibaktionen, Löschungen, Deployments oder finanzielle Vorgänge aus?
  2. Ressourcen: Welche Dateien, Datenbanken, Ticketsysteme, Repositories oder internen APIs können erreicht werden?
  3. Identität: Handelt der MCP Server im Namen eines Benutzers, eines festen Dienstkontos oder einer Kombination aus beidem?
  4. Einwilligung: Für welche Aktionen muss ein Benutzer ausdrücklich zustimmen?
  5. Ausschlüsse: Welche lokalen Werkzeuge dürfen niemals über das Internet aufgerufen werden?

Bewerten Sie jede Funktion nach drei Stufen:

  • Lesen ohne sensible Inhalte: kann unter enger Netz- und Datenbegrenzung eventuell automatisiert werden.
  • Lesen vertraulicher Inhalte: benötigt eine belastbare Benutzer- oder Dienstidentität, Protokollierung und Widerrufsmöglichkeit.
  • Schreibende oder irreversible Aktion: sollte eine zusätzliche Freigabe, eine enge Berechtigung und eine klare Audit-Spur erhalten.

Die Grenze zwischen STDIO und HTTP ist dabei entscheidend. Die aktuelle MCP-Autorisierungsspezifikation sieht Autorisierung für HTTP-basierte Transporte vor, während STDIO-Implementierungen diese Transportautorisierung nicht auf dieselbe Weise verwenden sollen und typischerweise Zugangsdaten aus der lokalen Umgebung beziehen. Für den Wechsel von STDIO zu HTTP reicht es daher nicht, den Transportnamen zu ändern: Sie müssen das gesamte Identitäts- und Berechtigungsmodell neu prüfen. (modelcontextprotocol.io)

Die passende Transportentscheidung treffen

Für die Entscheidung zwischen lokalem Prozess und entferntem Dienst verwenden Sie diese Gegenüberstellung:

STDIO ist die bessere Wahl, wenn

  • der MCP Client den Prozess auf demselben Rechner startet,
  • keine gemeinsame Nutzung durch mehrere Benutzer nötig ist,
  • lokale Dateisystem- oder Entwicklungswerkzeuge im Vordergrund stehen,
  • die Zugangsdaten sicher in der lokalen Umgebung verwaltet werden können,
  • Sie keinen öffentlich erreichbaren Endpunkt betreiben möchten.

Streamable HTTP ist die bessere Wahl, wenn

  • mehrere Clients oder Agenten denselben Dienst kontrolliert nutzen sollen,
  • die Werkzeuge in einer zentral verwalteten Laufzeit liegen,
  • Sie Zugriff, Sitzungen und Audit-Ereignisse zentral durchsetzen müssen,
  • der Dienst in eine Plattform-, Netzwerk- oder Unternehmensarchitektur integriert wird,
  • Sie den Server unabhängig vom lokalen Client aktualisieren möchten.

Ein öffentlich erreichbarer HTTP-Endpunkt ist nicht automatisch eine gute Remote-Architektur. Wenn die Werkzeuge nur für eine kleine interne Gruppe bestimmt sind, kann ein privates Netzwerk, ein vorgeschaltetes Gateway oder eine organisationsweite Identitätsprüfung sinnvoller sein als ein direkt erreichbarer Dienst. Wenn dagegen externe Clients vorgesehen sind, müssen Sie Ressourcenidentität, OAuth-Metadaten, Tokenprüfung und Fehlerverhalten vollständig umsetzen.

Das aktuelle TypeScript SDK beschreibt Streamable HTTP als empfohlenen Transport für Remote-Server. HTTP-SSE wird dort als ältere Kompatibilitätsvariante geführt, während STDIO für lokale, prozessgestützte Integrationen vorgesehen ist. (ts.sdk.modelcontextprotocol.io)

Entscheidungshilfe für die Bereitstellungsform

Wählen Sie die Variante nach den folgenden Bedingungen:

  • Wenn nur ein lokaler Client auf den Prozess zugreift und keine zentrale Auditierung erforderlich ist, dann behalten Sie STDIO zunächst bei.
  • Wenn mehrere Benutzer oder AI Agenten dieselben Werkzeuge benötigen, dann wechseln Sie zu Streamable HTTP und planen Sie Identität, Sitzungen und Widerruf als feste Bestandteile ein.
  • Wenn der Server vertrauliche Daten liest, dann verwenden Sie keine anonyme öffentliche Schnittstelle, sondern eine standardkonforme Autorisierung mit geprüfter Ressourcenidentität.
  • Wenn ein Tool irreversible Schreibaktionen ausführt, dann verlangen Sie eine zusätzliche Freigabe oder trennen Sie dieses Tool von den automatisch aufrufbaren Funktionen.
  • Wenn Sie keine getrennte Geheimnisverwaltung, Protokollbereinigung und Rücknahme fehlerhafter Releases bereitstellen können, dann verschieben Sie die Remote-Veröffentlichung und nutzen Sie weiterhin eine lokale oder abgeschottete Testumgebung.
  • Wenn der Dienst nur für einen zeitlich begrenzten Test benötigt wird, dann wählen Sie eine isolierte Umgebung mit klarer Laufzeit und dokumentierter Löschung, statt dauerhaft einen offenen Endpunkt zu betreiben.

Diese Liste ist bewusst als Rückfalllogik formuliert: Sobald eine Bedingung für die Remote-Variante nicht erfüllt ist, gehen Sie zur lokaleren oder stärker abgeschotteten Option zurück.

Die Laufzeit reproduzierbar und nicht privilegiert aufbauen

Nachdem die Vertrauensgrenze dokumentiert ist, erstellen Sie die Laufzeitbasis. Der Dienst sollte weder als Root noch mit einem pauschalen Systemkonto laufen, das auf alle Verzeichnisse und Netzwerkbereiche zugreifen kann.

Gehen Sie in dieser Reihenfolge vor:

  1. Eigenes Dienstkonto anlegen: Der Prozess erhält eine eindeutige Identität ohne interaktive Anmeldung und ohne administrative Rechte.
  2. Dateisystem begrenzen: Binden Sie nur die Verzeichnisse ein, die für das Tool tatsächlich benötigt werden. Schreibrechte erhalten nur Pfade, die aus fachlichen Gründen beschreibbar sein müssen.
  3. Netzwerkzugriffe beschränken: Erlauben Sie nur die Zielsysteme, die aus der Ressourcenliste hervorgehen. Ein Tool, das ein bestimmtes API aufruft, benötigt nicht automatisch Zugriff auf das gesamte private Netzwerk.
  4. Abhängigkeiten einfrieren: Halten Sie Anwendungspakete, Systembibliotheken, Runtime-Version, Konfigurationsschema und Startparameter in einer nachvollziehbaren Build-Basis fest.
  5. Konfiguration außerhalb des Images halten: Geheimnisse und umgebungsspezifische Werte dürfen nicht in das Container-Image oder in ein öffentliches Repository gelangen.
  6. Start und Neustart testen: Prüfen Sie, ob der Dienst nach einem Neustart ohne manuelle Eingriffe hochkommt und ob ein fehlerhafter Downstream-Aufruf den gesamten Prozess beendet.

Eine reproduzierbare Basis ist mehr als eine Dokumentationsdatei. Sie muss Ihnen ermöglichen, dieselbe Version in einer Testumgebung zu starten, einen Sicherheitstest auszuführen und bei einem fehlerhaften Upgrade auf die vorherige Version zurückzukehren.

Typische versteckte Kosten der Remote-Umstellung

Die Umstellung verursacht nicht nur Entwicklungsarbeit. Sie müssen auch diese laufenden Belastungen einplanen:

  • zusätzliche TLS- und Zertifikatsverwaltung,
  • Überwachung von Sitzungen, Tokenfehlern und Downstream-Aufrufen,
  • Pflege der Client-Kompatibilität,
  • Rotation von Schlüsselmaterial,
  • getrennte Testumgebungen für Berechtigungen,
  • Wiederherstellung und Rücknahme fehlerhafter Releases,
  • Prüfung von Datenflüssen im Hinblick auf DSGVO und interne Aufbewahrungsregeln.

Wenn Sie diese Punkte nicht abbilden können, ist ein lokaler STDIO-Betrieb möglicherweise die bessere Zwischenlösung. Ein Remote-MCP-Server ist erst dann ein Plattformbaustein, wenn auch Betrieb, Widerruf und Wiederherstellung definiert sind.

HTTPS und OAuth 2.1 richtig anschließen

Für einen geschützten HTTP-MCP-Server sollten Sie die Autorisierung nicht mit einem selbst erfundenen Header oder einem einzelnen statischen Schlüssel ersetzen. Die MCP-Dokumentation beschreibt OAuth 2.1 mit passenden Sicherheitsmaßnahmen für öffentliche und vertrauliche Clients. Die konkrete Implementierung hängt davon ab, ob ein Benutzer handelt oder ob ein Dienst im Namen einer Anwendung arbeitet. (modelcontextprotocol.io)

Unterscheiden Sie mindestens zwei Fälle:

  • Authorization Code mit PKCE: geeignet, wenn ein Benutzer einen Agenten oder Client autorisiert und die Aktion seiner Identität zugeordnet werden muss.
  • Client Credentials: geeignet, wenn ein vertrauenswürdiger Dienst ohne Benutzerinteraktion auf einen klar abgegrenzten MCP Server zugreift.

Für beide Wege prüfen Sie:

  1. Der MCP-Endpunkt ist nur über HTTPS erreichbar.
  2. Die Redirect-URI ist entweder eine geschützte HTTPS-Adresse oder eine erlaubte lokale Loopback-Adresse.
  3. Der Client entdeckt die Autorisierungsmetadaten über die vorgesehenen Well-known-Endpunkte.
  4. Der angeforderte resource-Wert verweist auf den MCP Server, für den das Token ausgestellt werden soll.
  5. Der Server prüft Signatur beziehungsweise Introspektion, Ablaufzeit, Aussteller, Client-Kontext und Zielgruppe.
  6. Tokens in Query-Parametern werden abgelehnt.
  7. Ein Token für einen anderen Dienst wird nicht akzeptiert.
  8. Ein vom Client erhaltenes Token wird nicht unverändert an eine Downstream-API weitergereicht.

Gerade der letzte Punkt ist wichtig. Token Passthrough erzeugt eine verwirrte Stellvertreterrolle: Der MCP Server könnte ein Token weiterreichen, das nicht für ihn bestimmt war, während das Downstream-System fälschlich annimmt, der MCP Server habe die Berechtigung geprüft. Die MCP-Sicherheitsleitlinie verbietet dieses Muster ausdrücklich und verlangt stattdessen getrennte, für das jeweilige Ziel ausgestellte Zugangsdaten. (modelcontextprotocol.io)

Ein häufiger Implementierungsfehler ist außerdem die unvollständige Tokenprüfung: Der Server validiert zwar, dass ein Token technisch gültig ist, prüft aber nicht, ob es für genau diesen MCP Server ausgestellt wurde. Für einen produktiven Dienst reicht „Signatur korrekt“ daher nicht aus.

Geheimnisse und Protokolle getrennt verwalten

Sie sollten mindestens drei Geheimnisklassen voneinander trennen:

  • Client-Geheimnisse oder Client-Nachweise: Sie identifizieren eine Anwendung gegenüber dem Autorisierungsdienst.
  • Downstream-Zugangsdaten: Sie erlauben dem MCP Server den Zugriff auf eine interne API oder Datenquelle.
  • Benutzer- oder Sitzungs-Tokens: Sie repräsentieren die Berechtigung eines Benutzers oder Agenten für den MCP Server.

Diese Werte dürfen nicht gemeinsam in einer einzigen Konfigurationsdatei liegen. Verwenden Sie einen geeigneten Geheimnisspeicher, begrenzen Sie die Leserechte auf den tatsächlich benötigten Prozess und planen Sie Rotation sowie Widerruf vor dem ersten produktiven Zugriff.

Ihre Logs sollten eine Aktion nachvollziehbar machen, ohne die Berechtigung selbst zu kopieren. Sinnvolle Felder sind:

  • Zeitpunkt und Dienstversion,
  • anonymisierte oder interne Vorgangskennung,
  • Client- oder Benutzerreferenz,
  • aufgerufenes Tool,
  • Ergebnisstatus,
  • Fehlerklasse,
  • Downstream-Ziel in normalisierter Form,
  • Latenz- oder Timeout-Kategorie.

Nicht in die Logs gehören Authorization-Header, vollständige Cookies, Refresh-Tokens, API-Schlüssel, komplette Request-Payloads mit personenbezogenen Daten und unmaskierte Dateiinhalte. Prüfen Sie zusätzlich, ob Reverse Proxy, Tracing-System oder Fehlerdienst sensible Header automatisch mitspeichern.

Den Client kontrolliert anschließen

Verbinden Sie den ersten Client nicht direkt mit der Produktionsumgebung. Verwenden Sie zunächst eine Testinstanz mit absichtlich begrenzten Werkzeugen und ungefährlichen Beispieldaten.

Führen Sie diese Abfolge aus:

  1. Rufen Sie den MCP-Endpunkt ohne Zugangsdaten auf. Erwartet wird eine kontrollierte Nichtautorisierungsantwort, keine interne Stack-Trace-Ausgabe.
  2. Verwenden Sie ein abgelaufenes Token. Der Client muss eine erneute Autorisierung oder Token-Erneuerung auslösen können.
  3. Verwenden Sie ein Token mit falscher Zielgruppe. Der Server muss es ablehnen, auch wenn die Signatur gültig ist.
  4. Testen Sie einen Benutzer ohne Schreibrecht an einem schreibenden Tool.
  5. Simulieren Sie einen nicht erreichbaren Downstream-Dienst.
  6. Prüfen Sie Timeout, Wiederholung und Abbruchverhalten.
  7. Vergleichen Sie Clientmeldung und Serverlog: Der Client benötigt eine verständliche Fehlerklasse, der Server eine diagnostische, aber bereinigte Ursache.
  8. Testen Sie einen Neustart während einer laufenden Sitzung.

Der Client darf aus einer Fehlermeldung nicht ableiten können, welche internen Hostnamen, Dateipfade, Datenbanktabellen oder Geheimnisnamen existieren. Gleichzeitig müssen Sie im Serverlog erkennen können, ob der Fehler aus der Authentifizierung, der Berechtigung, dem Transport, dem MCP-Protokoll oder dem Downstream-System stammt.

Die Erstabnahme als Entscheidungsliste durchführen

Bevor Sie einen Remote-MCP-Server als produktionsfähig kennzeichnen, müssen alle folgenden Punkte mit „erfüllt“ beantwortet werden:

  • [ ] Sind alle exponierten Tools und Ressourcen dokumentiert?
  • [ ] Ist für jede Schreibaktion ein Freigabe- oder Berechtigungsmodell definiert?
  • [ ] Läuft der Prozess mit einem nicht privilegierten Konto?
  • [ ] Sind Dateisystem und ausgehende Netzwerke eingeschränkt?
  • [ ] Ist die Build- und Konfigurationsbasis reproduzierbar?
  • [ ] Ist der HTTP-Endpunkt ausschließlich über HTTPS erreichbar?
  • [ ] Werden Autorisierungsmetadaten und Ressourcenidentität korrekt behandelt?
  • [ ] Prüft der Server die Zielgruppe jedes Tokens?
  • [ ] Ist Token Passthrough ausgeschlossen?
  • [ ] Sind Client-Geheimnisse, Downstream-Zugangsdaten und Benutzertokens getrennt?
  • [ ] Sind Authorization-Header und Geheimnisfelder aus Logs entfernt?
  • [ ] Funktionieren Ablauf, Rotation und Widerruf?
  • [ ] Sind Antworten auf fehlende Rechte und Downstream-Fehler diagnostizierbar, ohne interne Details preiszugeben?
  • [ ] Existiert ein getesteter Rollback-Weg?
  • [ ] Wurde die Konfiguration mit mindestens einem nicht berechtigten Client geprüft?

Wenn eine dieser Antworten „nein“ lautet, sollten Sie den Dienst als Test- oder Entwicklungsumgebung behandeln. „Der Client kann eine Verbindung herstellen“ bestätigt lediglich die Erreichbarkeit. Es bestätigt weder die Zugriffstrennung noch die sichere Behandlung von Fehlern.

Nach dem Start die Wartung fest einplanen

Die Wartung beginnt am Tag der Inbetriebnahme. Protokolländerungen, SDK-Aktualisierungen und Änderungen am Autorisierungsdienst können die Sicherheitsannahmen Ihres Servers verändern.

Legen Sie deshalb einen wiederkehrenden Prüfprozess fest:

  1. Aktualisieren Sie MCP-Spezifikation und SDK nicht blind, sondern zuerst in einer isolierten Testumgebung.
  2. Wiederholen Sie die Tests für falsche Zielgruppen, abgelaufene Tokens, fehlende Rechte und widerrufene Sitzungen.
  3. Prüfen Sie, ob neue Tools zusätzliche Dateisystem- oder Netzwerkrechte erhalten.
  4. Rotieren Sie Schlüssel und Downstream-Zugangsdaten nach einem dokumentierten Verfahren.
  5. Testen Sie Backups und die Wiederherstellung der Konfiguration ohne Geheimnisse im Klartext.
  6. Halten Sie eine Rückfallversion bereit, falls Client- oder Protokollkompatibilität nach einem Upgrade bricht.
  7. Überprüfen Sie regelmäßig, ob Logs weiterhin frei von personenbezogenen Daten und Geheimnissen bleiben.

Die MCP-Spezifikation und die Sicherheitsdokumentation können sich weiterentwickeln. Besonders bei Änderungen an Protected Resource Metadata, OAuth-Discovery oder Tokenbindung sollten Sie nicht von einer vollständigen Rückwärtskompatibilität ausgehen. Prüfen Sie die Release-Hinweise des verwendeten SDKs und wiederholen Sie die Sicherheitsabnahme nach jeder relevanten Änderung. (modelcontextprotocol.io)

Wann eine gemietete Mac-Umgebung sinnvoller ist

Wenn Sie einen MCP Server nur für eine begrenzte Entwicklungsphase, einen Kompatibilitätstest oder eine zeitlich befristete Agent-Pilotumgebung benötigen, kann der Betrieb auf eigener Hardware unnötige Bindung erzeugen. Ein eigener Mac verursacht Anschaffung, lokale Absicherung, Wartung, Netzwerkfreigaben und spätere Rückrüstung. Eine allgemeine Cloud-VM kann dagegen bei macOS-spezifischen Werkzeugketten, lokalen SDKs oder Entwicklungsumgebungen an praktische Grenzen stoßen.

Eine gemietete Mac-Umgebung von Macstripe kann in diesem Fall sinnvoll sein, weil Sie die Test- und Deploymentumgebung zeitlich begrenzen und getrennt von Ihrem Arbeitsplatz aufbauen können. Prüfen Sie vorab dennoch die Anforderungen: Für dauerhaft hohe Last, spezielle physische Schnittstellen oder langfristig planbare Nutzung kann ein eigener Rechner wirtschaftlicher sein. Für temporäre MCP-Tests, isolierte Agent-Entwicklung und die Validierung eines Remote-Workflows ist die Mietoption dagegen oft der sauberere nächste Schritt. Den konkreten Bedarf können Sie über die Konfiguration einer Mac-Umgebung vorbereiten und bei offenen technischen Fragen das Hilfezentrum für Macstripe nutzen.

Häufig gestellte Fragen

Wie bringen Sie einen lokalen MCP Server auf einen entfernten Server?

Beginnen Sie nicht mit einem offenen Port, sondern mit einer Bestandsaufnahme der Tools, Daten und Schreibaktionen. Danach verpacken Sie den Dienst in eine reproduzierbare, nicht privilegierte Laufzeitumgebung, stellen ihn über Streamable HTTP und HTTPS bereit, konfigurieren die Autorisierung und testen anschließend abgelaufene Tokens, fehlende Rechte, widerrufene Sitzungen und Fehler der Downstream-APIs.

Ist OAuth 2.1 für jeden Remote-MCP-Server zwingend?

Die MCP-Autorisierung ist nicht für jede Implementierung verpflichtend. Für HTTP-basierte MCP Server beschreibt die aktuelle Spezifikation jedoch OAuth 2.1 als vorgesehenes Autorisierungsmodell, sobald geschützte Ressourcen oder Aktionen angeboten werden. Ein öffentlich erreichbarer Dienst ohne Benutzer-, Client- oder Dienstautorisierung ist deshalb nur für sehr begrenzte, nicht sensible Anwendungsfälle vertretbar.

Wie verhindern Sie, dass ein MCP Server Zugangsdaten preisgibt?

Trennen Sie Client-Tokens, Downstream-API-Schlüssel und interne Dienstgeheimnisse. Speichern Sie sie nicht im Quelltext, in Container-Images oder in normalen Anwendungslogs. Prüfen Sie die Zielgruppe jedes eingehenden Tokens, verbieten Sie Token Passthrough und protokollieren Sie nur eine maskierte Vorgangskennung, den Benutzer- oder Client-Kontext und das Ergebnis der Autorisierungsprüfung.

Was unterscheidet MCP STDIO von HTTP im Betrieb?

STDIO wird typischerweise als lokaler Kindprozess vom Client gestartet; die Umgebung und die Zugangsdaten liegen meist auf demselben Rechner. HTTP trennt Client und Server, benötigt Netzwerk- und Transportschutz, eine definierte Ressourcenidentität, Autorisierung, Sitzungsregeln und Beobachtbarkeit. Für Remote-Bereitstellungen empfiehlt das offizielle TypeScript SDK Streamable HTTP, während ältere HTTP-SSE-Varianten nur aus Kompatibilitätsgründen weitergeführt werden.

Weiterführende Lektüre