[{"data":1,"prerenderedAt":21},["ShallowReactive",2],{"blog-post-de-was-ist-ein-mcp-gateway":3},{"slug":4,"lang":5,"title":6,"description":7,"heading":8,"translationKey":9,"date":10,"keywords":11,"readingMinutes":17,"html":18,"alternates":19},"was-ist-ein-mcp-gateway","de","Was ist ein MCP Gateway und wann braucht man eines?","Ein MCP Gateway steht zwischen KI-Agenten und Tools wie Jira oder GitHub. Was es bei jedem Aufruf prüft und wann sich der Einsatz für ein Team lohnt.","Was ist ein MCP Gateway, und wann braucht ein Team eines?","mcp-gateway","2026-07-10",[12,13,14,15,16],"MCP Gateway","Was ist ein MCP Gateway","MCP Server Sicherheit","Model Context Protocol","MCP Gateway selbst gehostet",6,"\u003Cp>Das Model Context Protocol (MCP) hat sich als gängiger Weg etabliert, KI-Assistenten mit anderen\nSystemen zu verbinden. Ein MCP-Client, etwa Claude Code, Cursor oder VS Code, spricht mit einem\nMCP-Server, und dieser Server stellt Werkzeuge bereit, zum Beispiel „Jira-Issues suchen“ oder\n„Kommentar zu einem Pull Request schreiben“. Das Modell entscheidet, welches Werkzeug es aufruft,\nund der Server führt den Aufruf im eigentlichen System aus.\u003C\u002Fp>\n\u003Cp>Für eine einzelne Entwicklerin mit einem einzelnen Werkzeug funktioniert das gut. Schwieriger wird\nes, wenn ein Unternehmen viele Agenten und viele Werkzeuge hat und zusätzlich Anforderungen aus\nIT-Sicherheit oder Compliance erfüllen muss. Ein MCP Gateway setzt hier an, indem es einen einzigen\nKontrollpunkt zwischen alle MCP-Clients und alle Werkzeuge stellt. Dieser Artikel erklärt, was ein\nGateway tut, worin es sich von direkt angebundenen MCP-Servern unterscheidet und wann sich die\nzusätzliche Komponente lohnt.\u003C\u002Fp>\n\u003Ch2>Wie Agenten ohne Gateway angebunden sind\u003C\u002Fh2>\n\u003Cp>Im direkten Aufbau konfiguriert jede Person die benötigten MCP-Server in ihrem eigenen Client. Jeder\nServer meldet sich mit einem Zugangsschlüssel beim Zielsystem an, meist mit einem persönlichen\nAPI-Token oder einer OAuth-Freigabe der Person, die ihn eingerichtet hat. Manche Hersteller bieten\ninzwischen eigene Remote-MCP-Server an. Diese funktionieren nach demselben Prinzip: Der Agent\nhandelt mit den Rechten der angemeldeten Person.\u003C\u002Fp>\n\u003Cp>Daraus ergeben sich drei praktische Folgen. Erstens hat der Agent meist sämtliche Rechte eines\nMenschen, obwohl er nur einen kleinen Teil davon braucht. Ein Token, mit dem man Tickets lesen kann,\nerlaubt oft auch das Löschen. Zweitens gibt es keinen zentralen Ort, an dem man sieht, welcher Agent\nwelches System erreicht; die Konfiguration steckt in einzelnen Clients und persönlichen Tokens.\nDrittens hängt die Protokollierung vom jeweiligen Zielsystem ab. Manche Systeme zeichnen API-Aufrufe\ndetailliert auf, andere kaum, und keines hält fest, was der Agent versucht hat, aber nicht durfte.\u003C\u002Fp>\n\u003Ch2>Was ein MCP Gateway tut\u003C\u002Fh2>\n\u003Cp>Ein Gateway ist ein Proxy, der gegenüber den Clients MCP spricht und in ihrem Auftrag mit den\nZielsystemen kommuniziert. Der Agent hält keine Zugangsdaten mehr für Jira oder GitHub, sondern\neinen einzigen Schlüssel für das Gateway. Die Zugangsdaten für die Zielsysteme liegen verschlüsselt\nim Gateway und werden nie an den Client zurückgegeben.\u003C\u002Fp>\n\u003Cp>Bei jedem Aufruf durchläuft ein Gateway typischerweise dieselben Schritte:\u003C\u002Fp>\n\u003Col>\n\u003Cli>\u003Cstrong>Authentifizierung.\u003C\u002Fstrong> Wer ruft an? Die Anfrage trägt einen API-Schlüssel, der eine Person oder\neinen Agenten identifiziert.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Autorisierung.\u003C\u002Fstrong> Darf dieser Aufrufer diese Operation auf dieser Ressource mit diesen\nParameterwerten ausführen? Zum Beispiel: Issues lesen, aber nur im Projekt \u003Ccode>MOB\u003C\u002Fcode>, und niemals\nlöschen.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Datenregeln.\u003C\u002Fstrong> Enthalten Anfrage oder Antwort Werte, die nicht weitergegeben werden dürfen,\netwa E-Mail-Adressen oder Kontonummern? Diese lassen sich maskieren oder entfernen.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Rate Limiting.\u003C\u002Fstrong> Bleibt der Aufrufer innerhalb seiner Grenzen? Eine fehlerhafte Agenten-Schleife\nsollte gebremst werden, bevor sie Hunderte Tickets anlegt.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Audit.\u003C\u002Fstrong> Der Aufruf wird mit seinem Ergebnis protokolliert, egal ob er erlaubt, abgelehnt, zur\nFreigabe angehalten oder wegen des Limits gebremst wurde.\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Cfigure class=\"post-figure\">\n\u003Csvg viewBox=\"0 0 760 240\" xmlns=\"http:\u002F\u002Fwww.w3.org\u002F2000\u002Fsvg\" role=\"img\" aria-labelledby=\"mcpgw-flow-title\">\n  \u003Ctitle id=\"mcpgw-flow-title\">Ein MCP-Gateway prüft jeden Aufruf zwischen Agent und Tool in fünf Schritten.\u003C\u002Ftitle>\n  \u003Crect class=\"fig-box fig-box--ai\" x=\"16\" y=\"100\" width=\"112\" height=\"60\" rx=\"10\"\u002F>\n  \u003Ctext class=\"fig-t fig-c-ai\" x=\"72\" y=\"126\" text-anchor=\"middle\">KI-Agent\u003C\u002Ftext>\n  \u003Ctext class=\"fig-s\" x=\"72\" y=\"145\" text-anchor=\"middle\">Claude Code\u003C\u002Ftext>\n  \u003Crect class=\"fig-box fig-box--primary\" x=\"140\" y=\"40\" width=\"470\" height=\"180\" rx=\"14\"\u002F>\n  \u003Ctext class=\"fig-h fig-c-primary\" x=\"156\" y=\"66\">VORDIX · MCP GATEWAY\u003C\u002Ftext>\n  \u003Ctext class=\"fig-s\" x=\"594\" y=\"66\" text-anchor=\"end\">jeder Aufruf\u003C\u002Ftext>\n  \u003Cpath class=\"fig-flow\" d=\"M72 160 V182 H640\"\u002F>\n  \u003Cpath class=\"fig-flow\" d=\"M610 182 C625 182 625 70 640 70\"\u002F>\n  \u003Cpath class=\"fig-flow\" d=\"M610 182 C625 182 625 126 640 126\"\u002F>\n  \u003Cg>\n    \u003Crect class=\"fig-box\" x=\"152\" y=\"92\" width=\"84\" height=\"64\" rx=\"8\"\u002F>\n    \u003Ctext class=\"fig-s\" x=\"194\" y=\"110\" text-anchor=\"middle\">01\u003C\u002Ftext>\n    \u003Ctext class=\"fig-t\" x=\"194\" y=\"130\" text-anchor=\"middle\">Identität\u003C\u002Ftext>\n    \u003Ctext class=\"fig-s\" x=\"194\" y=\"147\" text-anchor=\"middle\">API-Key\u003C\u002Ftext>\n  \u003C\u002Fg>\n  \u003Cg>\n    \u003Crect class=\"fig-box\" x=\"244\" y=\"92\" width=\"84\" height=\"64\" rx=\"8\"\u002F>\n    \u003Ctext class=\"fig-s\" x=\"286\" y=\"110\" text-anchor=\"middle\">02\u003C\u002Ftext>\n    \u003Ctext class=\"fig-t\" x=\"286\" y=\"130\" text-anchor=\"middle\">Rechte\u003C\u002Ftext>\n    \u003Ctext class=\"fig-s\" x=\"286\" y=\"147\" text-anchor=\"middle\">Op · Wert\u003C\u002Ftext>\n  \u003C\u002Fg>\n  \u003Cg>\n    \u003Crect class=\"fig-box\" x=\"336\" y=\"92\" width=\"84\" height=\"64\" rx=\"8\"\u002F>\n    \u003Ctext class=\"fig-s\" x=\"378\" y=\"110\" text-anchor=\"middle\">03\u003C\u002Ftext>\n    \u003Ctext class=\"fig-t\" x=\"378\" y=\"130\" text-anchor=\"middle\">Maskieren\u003C\u002Ftext>\n    \u003Ctext class=\"fig-s\" x=\"378\" y=\"147\" text-anchor=\"middle\">PII\u003C\u002Ftext>\n  \u003C\u002Fg>\n  \u003Cg>\n    \u003Crect class=\"fig-box\" x=\"428\" y=\"92\" width=\"84\" height=\"64\" rx=\"8\"\u002F>\n    \u003Ctext class=\"fig-s\" x=\"470\" y=\"110\" text-anchor=\"middle\">04\u003C\u002Ftext>\n    \u003Ctext class=\"fig-t\" x=\"470\" y=\"130\" text-anchor=\"middle\">Rate Limit\u003C\u002Ftext>\n    \u003Ctext class=\"fig-s\" x=\"470\" y=\"147\" text-anchor=\"middle\">pro Key\u003C\u002Ftext>\n  \u003C\u002Fg>\n  \u003Cg>\n    \u003Crect class=\"fig-box\" x=\"520\" y=\"92\" width=\"84\" height=\"64\" rx=\"8\"\u002F>\n    \u003Ctext class=\"fig-s\" x=\"562\" y=\"110\" text-anchor=\"middle\">05\u003C\u002Ftext>\n    \u003Ctext class=\"fig-t\" x=\"562\" y=\"130\" text-anchor=\"middle\">Audit\u003C\u002Ftext>\n    \u003Ctext class=\"fig-s\" x=\"562\" y=\"147\" text-anchor=\"middle\">Hash-Kette\u003C\u002Ftext>\n  \u003C\u002Fg>\n  \u003Crect class=\"fig-box\" x=\"640\" y=\"48\" width=\"104\" height=\"44\" rx=\"8\"\u002F>\n  \u003Ctext class=\"fig-t\" x=\"692\" y=\"75\" text-anchor=\"middle\">Jira\u003C\u002Ftext>\n  \u003Crect class=\"fig-box\" x=\"640\" y=\"104\" width=\"104\" height=\"44\" rx=\"8\"\u002F>\n  \u003Ctext class=\"fig-t\" x=\"692\" y=\"131\" text-anchor=\"middle\">GitHub\u003C\u002Ftext>\n  \u003Crect class=\"fig-box\" x=\"640\" y=\"160\" width=\"104\" height=\"44\" rx=\"8\"\u002F>\n  \u003Ctext class=\"fig-t\" x=\"692\" y=\"187\" text-anchor=\"middle\">Confluence\u003C\u002Ftext>\n\u003C\u002Fsvg>\n\u003Cfigcaption>Ein Aufruf durch das Gateway: Die fünf Prüfungen laufen der Reihe nach, bevor die Anfrage Jira, GitHub oder Confluence erreicht.\u003C\u002Ffigcaption>\n\u003C\u002Ffigure>\n\n\u003Cp>Ein nützlicher Nebeneffekt: Der Agent sieht nur die Werkzeuge, die er auch aufrufen darf. Die Liste\nder verfügbaren Werkzeuge wird gefiltert, bevor sie beim Modell ankommt. Das verringert auch die\nWahrscheinlichkeit, dass das Modell eine Operation versucht, die es nichts angeht.\u003C\u002Fp>\n\u003Ch2>Gateway oder direkte MCP-Server?\u003C\u002Fh2>\n\u003Cp>Der Unterschied liegt weniger im Funktionsumfang als darin, wo Entscheidungen getroffen werden. Bei\ndirekten Servern ist die Zugriffskontrolle eine Eigenschaft jedes einzelnen Tokens und jedes\nZielsystems. Bei einem Gateway ist sie eine Richtlinie an einer Stelle, die bei jedem Aufruf\nausgewertet wird.\u003C\u002Fp>\n\u003Cfigure class=\"post-figure\">\n\u003Csvg viewBox=\"0 0 760 310\" xmlns=\"http:\u002F\u002Fwww.w3.org\u002F2000\u002Fsvg\" role=\"img\" aria-labelledby=\"mcpgw-compare-title\">\n  \u003Ctitle id=\"mcpgw-compare-title\">Ohne Gateway hält jeder Client Tokens für jedes Tool; mit Gateway hat jeder Agent einen Key und eine Richtlinie entscheidet.\u003C\u002Ftitle>\n  \u003Ctext class=\"fig-h fig-c-deny\" x=\"20\" y=\"32\">OHNE GATEWAY\u003C\u002Ftext>\n  \u003Ctext class=\"fig-h fig-c-primary\" x=\"400\" y=\"32\">MIT GATEWAY\u003C\u002Ftext>\n  \u003Cpath class=\"fig-edge fig-edge--faint\" d=\"M370 20 V296\"\u002F>\n  \u003Cpath class=\"fig-edge\" d=\"M116 80 C180 80 180 80 244 80\"\u002F>\n  \u003Cpath class=\"fig-edge\" d=\"M116 80 C180 80 180 150 244 150\"\u002F>\n  \u003Cpath class=\"fig-edge\" d=\"M116 80 C180 80 180 220 244 220\"\u002F>\n  \u003Cpath class=\"fig-edge\" d=\"M116 150 C180 150 180 80 244 80\"\u002F>\n  \u003Cpath class=\"fig-edge\" d=\"M116 150 C180 150 180 150 244 150\"\u002F>\n  \u003Cpath class=\"fig-edge\" d=\"M116 150 C180 150 180 220 244 220\"\u002F>\n  \u003Cpath class=\"fig-edge\" d=\"M116 220 C180 220 180 80 244 80\"\u002F>\n  \u003Cpath class=\"fig-edge\" d=\"M116 220 C180 220 180 150 244 150\"\u002F>\n  \u003Cpath class=\"fig-edge\" d=\"M116 220 C180 220 180 220 244 220\"\u002F>\n  \u003Ccircle class=\"fig-box fig-box--deny\" cx=\"180\" cy=\"115\" r=\"4\"\u002F>\n  \u003Ccircle class=\"fig-box fig-box--deny\" cx=\"180\" cy=\"150\" r=\"4\"\u002F>\n  \u003Ccircle class=\"fig-box fig-box--deny\" cx=\"180\" cy=\"185\" r=\"4\"\u002F>\n  \u003Ccircle class=\"fig-box fig-box--deny\" cx=\"180\" cy=\"220\" r=\"4\"\u002F>\n  \u003Ccircle class=\"fig-box fig-box--deny\" cx=\"180\" cy=\"80\" r=\"4\"\u002F>\n  \u003Crect class=\"fig-box fig-box--ai\" x=\"20\" y=\"60\" width=\"96\" height=\"40\" rx=\"8\"\u002F>\n  \u003Ctext class=\"fig-t\" x=\"68\" y=\"85\" text-anchor=\"middle\">Laptop\u003C\u002Ftext>\n  \u003Crect class=\"fig-box\" x=\"244\" y=\"60\" width=\"96\" height=\"40\" rx=\"8\"\u002F>\n  \u003Ctext class=\"fig-t\" x=\"292\" y=\"85\" text-anchor=\"middle\">Jira\u003C\u002Ftext>\n  \u003Crect class=\"fig-box fig-box--ai\" x=\"20\" y=\"130\" width=\"96\" height=\"40\" rx=\"8\"\u002F>\n  \u003Ctext class=\"fig-t\" x=\"68\" y=\"155\" text-anchor=\"middle\">CI-Job\u003C\u002Ftext>\n  \u003Crect class=\"fig-box\" x=\"244\" y=\"130\" width=\"96\" height=\"40\" rx=\"8\"\u002F>\n  \u003Ctext class=\"fig-t\" x=\"292\" y=\"155\" text-anchor=\"middle\">GitHub\u003C\u002Ftext>\n  \u003Crect class=\"fig-box fig-box--ai\" x=\"20\" y=\"200\" width=\"96\" height=\"40\" rx=\"8\"\u002F>\n  \u003Ctext class=\"fig-t\" x=\"68\" y=\"225\" text-anchor=\"middle\">Agent\u003C\u002Ftext>\n  \u003Crect class=\"fig-box\" x=\"244\" y=\"200\" width=\"96\" height=\"40\" rx=\"8\"\u002F>\n  \u003Ctext class=\"fig-t\" x=\"292\" y=\"225\" text-anchor=\"middle\">Slack\u003C\u002Ftext>\n  \u003Crect class=\"fig-box fig-box--primary\" x=\"516\" y=\"60\" width=\"108\" height=\"180\" rx=\"12\"\u002F>\n  \u003Ctext class=\"fig-t fig-c-primary\" x=\"570\" y=\"146\" text-anchor=\"middle\">Vordix\u003C\u002Ftext>\n  \u003Ctext class=\"fig-s\" x=\"570\" y=\"164\" text-anchor=\"middle\">eine Richtlinie\u003C\u002Ftext>\n  \u003Crect class=\"fig-box fig-box--ai\" x=\"400\" y=\"60\" width=\"96\" height=\"40\" rx=\"8\"\u002F>\n  \u003Ctext class=\"fig-t\" x=\"448\" y=\"85\" text-anchor=\"middle\">Laptop\u003C\u002Ftext>\n  \u003Crect class=\"fig-box\" x=\"644\" y=\"60\" width=\"96\" height=\"40\" rx=\"8\"\u002F>\n  \u003Ctext class=\"fig-t\" x=\"692\" y=\"85\" text-anchor=\"middle\">Jira\u003C\u002Ftext>\n  \u003Cpath class=\"fig-flow fig-flow--ai\" d=\"M496 80 C506 80 506 150 516 150\"\u002F>\n  \u003Cpath class=\"fig-flow\" d=\"M624 150 C634 150 634 80 644 80\"\u002F>\n  \u003Crect class=\"fig-box fig-box--ai\" x=\"400\" y=\"130\" width=\"96\" height=\"40\" rx=\"8\"\u002F>\n  \u003Ctext class=\"fig-t\" x=\"448\" y=\"155\" text-anchor=\"middle\">CI-Job\u003C\u002Ftext>\n  \u003Crect class=\"fig-box\" x=\"644\" y=\"130\" width=\"96\" height=\"40\" rx=\"8\"\u002F>\n  \u003Ctext class=\"fig-t\" x=\"692\" y=\"155\" text-anchor=\"middle\">GitHub\u003C\u002Ftext>\n  \u003Cpath class=\"fig-flow fig-flow--ai\" d=\"M496 150 C506 150 506 150 516 150\"\u002F>\n  \u003Cpath class=\"fig-flow\" d=\"M624 150 C634 150 634 150 644 150\"\u002F>\n  \u003Crect class=\"fig-box fig-box--ai\" x=\"400\" y=\"200\" width=\"96\" height=\"40\" rx=\"8\"\u002F>\n  \u003Ctext class=\"fig-t\" x=\"448\" y=\"225\" text-anchor=\"middle\">Agent\u003C\u002Ftext>\n  \u003Crect class=\"fig-box\" x=\"644\" y=\"200\" width=\"96\" height=\"40\" rx=\"8\"\u002F>\n  \u003Ctext class=\"fig-t\" x=\"692\" y=\"225\" text-anchor=\"middle\">Slack\u003C\u002Ftext>\n  \u003Cpath class=\"fig-flow fig-flow--ai\" d=\"M496 220 C506 220 506 150 516 150\"\u002F>\n  \u003Cpath class=\"fig-flow\" d=\"M624 150 C634 150 634 220 644 220\"\u002F>\n  \u003Ctext class=\"fig-s\" x=\"20\" y=\"268\">× 9 persönliche Tokens\u003C\u002Ftext>\n  \u003Ctext class=\"fig-s\" x=\"20\" y=\"284\">× volle Rechte des Inhabers\u003C\u002Ftext>\n  \u003Ctext class=\"fig-s\" x=\"20\" y=\"300\">× Ablehnungen nicht protokolliert\u003C\u002Ftext>\n  \u003Ctext class=\"fig-s fig-c-ok\" x=\"400\" y=\"268\">✓ 1 Key pro Agent\u003C\u002Ftext>\n  \u003Ctext class=\"fig-s fig-c-ok\" x=\"400\" y=\"284\">✓ Rechte pro Operation\u003C\u002Ftext>\n  \u003Ctext class=\"fig-s fig-c-ok\" x=\"400\" y=\"300\">✓ jeder Aufruf protokolliert\u003C\u002Ftext>\n\u003C\u002Fsvg>\n\u003Cfigcaption>Links: Jeder Client hält für jedes Tool ein eigenes Token. Rechts: Jeder Agent hat einen Gateway-Key, und eine Richtlinie entscheidet, was bei welchem Tool ankommt.\u003C\u002Ffigcaption>\n\u003C\u002Ffigure>\n\n\u003Ctable>\n\u003Cthead>\n\u003Ctr>\n\u003Cth>Frage\u003C\u002Fth>\n\u003Cth>Direkte MCP-Server\u003C\u002Fth>\n\u003Cth>MCP Gateway\u003C\u002Fth>\n\u003C\u002Ftr>\n\u003C\u002Fthead>\n\u003Ctbody>\u003Ctr>\n\u003Ctd>Welche Rechte hat der Agent?\u003C\u002Ftd>\n\u003Ctd>Die der Token-Inhaberin\u003C\u002Ftd>\n\u003Ctd>Die pro Operation freigegebenen\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>Wo wird der Zugriff konfiguriert?\u003C\u002Ftd>\n\u003Ctd>In jedem Client und jedem Tool\u003C\u002Ftd>\n\u003Ctd>In einer Richtlinie\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>Werden abgelehnte Versuche protokolliert?\u003C\u002Ftd>\n\u003Ctd>Meist nicht\u003C\u002Ftd>\n\u003Ctd>Ja, mit Begründung\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>Lässt sich ein Schlüssel für alle Tools sperren?\u003C\u002Ftd>\n\u003Ctd>Nein, ein Token pro Tool\u003C\u002Ftd>\n\u003Ctd>Ja\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>Wer hält die Zugangsdaten der Tools?\u003C\u002Ftd>\n\u003Ctd>Der Rechner des Clients\u003C\u002Ftd>\n\u003Ctd>Das Gateway\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003C\u002Ftbody>\u003C\u002Ftable>\n\u003Cp>Ein Gateway ersetzt das Berechtigungsmodell des Zielsystems nicht. Jira setzt seine eigenen Rechte\nfür das Konto, mit dem das Gateway arbeitet, weiterhin durch. Das Gateway ergänzt darüber eine\nengere Schicht, die auf den Agenten und seine Aufgabe zugeschnitten ist.\u003C\u002Fp>\n\u003Ch2>Wann ein Team ein Gateway braucht\u003C\u002Fh2>\n\u003Cp>Nicht jedes Team braucht eines. Wer als einzelner Entwickler einen Agenten an einem Testprojekt\nausprobiert, kommt ohne Gateway aus; es würde vor allem Einrichtungsaufwand bedeuten.\u003C\u002Fp>\n\u003Cp>Anders sieht es aus, wenn mehrere der folgenden Punkte zutreffen:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Mehr als eine Handvoll Personen oder Agenten nutzen KI-Clients auf gemeinsamen Systemen.\u003C\u002Fli>\n\u003Cli>Agenten dürfen schreiben und nicht nur lesen: Tickets, Pull Requests, Seiten, Nachrichten.\u003C\u002Fli>\n\u003Cli>Die Systeme enthalten personenbezogene Daten oder Kundendaten.\u003C\u002Fli>\n\u003Cli>IT-Sicherheit oder Compliance wollen wissen, wer worauf zugreifen kann, und verlangen Nachweise.\u003C\u002Fli>\n\u003Cli>Das Unternehmen nutzt mehr als einen KI-Client oder Anbieter und möchte die Governance nicht für\njeden neu aufbauen.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>In diesen Fällen ist der Aufwand für eine zentrale Komponente in der Regel geringer als der Aufwand,\nZugriffe zu prüfen, die über viele Werkzeuge und persönliche Tokens verteilt sind.\nZwei konkrete Beispiele für solche Schreibzugriffe sind ein Agent, der\n\u003Ca href=\"\u002Fde\u002Fblog\u002Fki-agent-jira-sprintplanung\">Sprints in Jira vorbereitet\u003C\u002Fa>, und ein Agent, der\n\u003Ca href=\"\u002Fde\u002Fblog\u002Fki-code-review-berechtigungen-github-azure-devops\">Pull Requests auf GitHub oder in Azure DevOps prüft\u003C\u002Fa>.\u003C\u002Fp>\n\u003Ch2>Worauf man bei einem MCP Gateway achten sollte\u003C\u002Fh2>\n\u003Cp>Gateways unterscheiden sich deutlich. Folgende Kriterien helfen beim Vergleich:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>Granularität.\u003C\u002Fstrong> Lässt sich der Zugriff pro Operation und pro Parameterwert einschränken, etwa\npro Repository oder Jira-Projekt, oder nur pro Werkzeug?\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Filterung der Antworten.\u003C\u002Fstrong> Können Felder oder sensible Werte aus der Antwort entfernt werden,\nbevor das Modell sie sieht?\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Qualität des Audit-Logs.\u003C\u002Fstrong> Sind nachträgliche Änderungen erkennbar? Sind abgelehnte Aufrufe\nenthalten? Lässt sich das Log an bestehende Sicherheitswerkzeuge übergeben?\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Betrieb.\u003C\u002Fstrong> Läuft das Gateway auf der eigenen Infrastruktur, oder geht jeder Aufruf durch die\nCloud eines Dritten?\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Schnittstellen.\u003C\u002Fstrong> Nur MCP, oder können auch Skripte und CI-Jobs dieselben kontrollierten\nOperationen über REST nutzen?\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Abdeckung.\u003C\u002Fstrong> Welche Werkzeuge und welche Operationen werden heute unterstützt?\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch2>Wie Vordix das umsetzt\u003C\u002Fh2>\n\u003Cp>Vordix ist ein selbst gehostetes MCP Gateway. Es läuft als Docker-Compose-Deployment auf der\nInfrastruktur des Kunden, und im Aufrufpfad liegt kein Dienst, den Vordix betreibt.\u003C\u002Fp>\n\u003Cp>Der Zugriff wird auf drei Ebenen konfiguriert. Die Organisation legt eine Obergrenze fest, was\nüberhaupt erlaubt werden kann. Ein Projekt wählt innerhalb dieser Obergrenze aus. Ein Workspace ist\nschließlich der eigentliche Gateway-Endpunkt mit eigener URL, eigenem Rate Limit und eigenem\nNotschalter, und mit ihm verbindet sich der Agent. Regeln für einen einzelnen Agenten werden\numgesetzt, indem dieser Agent einen eigenen Workspace bekommt. Innerhalb dieser Ebenen lässt sich der\nZugriff nach Integration, Operation, Parameterwert und Antwortfeld einschränken. Jede Operation ist\nsowohl über MCP als auch über REST verfügbar.\u003C\u002Fp>\n\u003Cp>Jeder Aufruf landet in einem nur erweiterbaren, per Hash-Kette gesicherten Audit-Log, auch\nabgelehnte Aufrufe samt Begründung. Menschen melden sich per SSO an, zum Beispiel über Entra ID oder\nOkta. API-Schlüssel werden genau einmal angezeigt und nur als Hash gespeichert. Die unterstützten\nWerkzeuge decken Planung, Dokumentation, Code, Daten und Kommunikation ab; der\n\u003Ca href=\"\u002Fde\u002Fblog\u002Fki-agenten-softwareentwicklung\">Überblick über KI-Agenten in der Softwareentwicklung\u003C\u002Fa>\ngeht sie Phase für Phase durch.\u003C\u002Fp>\n\u003Ch2>Trade-offs und Einschränkungen\u003C\u002Fh2>\n\u003Cp>Ein Gateway fügt jedem Aufruf einen zusätzlichen Netzwerkschritt hinzu, und es ist eine weitere\nKomponente, die betrieben und verfügbar gehalten werden muss. Fällt das Gateway aus, erreichen die\nAgenten die Werkzeuge nicht. Außerdem braucht es jemanden, der die Richtlinien verantwortet. Die\nwichtigste Einschränkung in der Praxis ist die Abdeckung: Ein Gateway kann nur die Operationen\nkontrollieren, die es implementiert. Ein Team sollte daher prüfen, ob die benötigten Operationen\nunterstützt werden, bevor es Agenten hinter das Gateway verlegt.\u003C\u002Fp>\n\u003Ch2>Fazit\u003C\u002Fh2>\n\u003Cp>Ein MCP Gateway macht aus dem Agentenzugriff, der sonst in vielen persönlichen Tokens steckt, eine\neinzige überprüfbare Richtlinie, die bei jedem Aufruf ausgewertet und in einem Log festgehalten\nwird. Für eine einzelne Person ist das oft mehr als nötig. Für ein Team mit mehreren Agenten,\nSchreibrechten und sensiblen Daten ist es ein praktikabler Weg, Agenten arbeiten zu lassen, ohne den\nÜberblick darüber zu verlieren, was sie dürfen. Wie ein solches Protokoll aussehen sollte, beschreibt\nder Artikel \u003Ca href=\"\u002Fde\u002Fblog\u002Faudit-log-ki-agenten-eu-ai-act\">Audit-Log für KI-Agenten und der EU AI Act\u003C\u002Fa>.\u003C\u002Fp>\n\u003Cp>Wenn Sie ein Gateway für Ihre eigenen Werkzeuge konfiguriert sehen möchten, können Sie eine\nVordix-Demo anfragen.\u003C\u002Fp>\n",{"de":4,"en":20},"what-is-an-mcp-gateway",1790588073412]