Kein Tool-Call ohne Gateway
MCP hat sich als Standard für die Tool-Anbindung durchgesetzt. Damit verlagert sich die Frage: nicht mehr „wie binde ich das System an“, sondern „wer darf welchen Aufruf, mit welchen Parametern, wie oft — und wo steht das nachher“. Genau das macht das Gateway.
Ein Tool-Gateway ist der Kontrollpunkt zwischen Agent und Werkzeug. Es authentifiziert den aufrufenden Agenten, validiert Ein- und Ausgabe gegen das Tool-Schema, wendet Rate-Limits und Policies an, protokolliert jeden Aufruf mit Parametern und Latenz — und verhindert, dass ein fremder MCP-Server unkontrolliert Einfluss auf den Lauf bekommt.
Was zwischen Agent und System passiert
Ohne Gateway spricht der Agent direkt mit dem Werkzeug. Das funktioniert im Prototyp und ist in Produktion nicht verantwortbar: Es gibt keine Stelle, an der ein Aufruf abgelehnt, begrenzt oder dokumentiert werden kann.
- MCP (Model Context Protocol)
- Offener Standard für die Anbindung von Werkzeugen und Datenquellen an LLM-Anwendungen. Ein einmal gebauter MCP-Server funktioniert mit jedem MCP-fähigen Client — das reduziert Integrationsaufwand und Anbieterbindung.
- MCP Registry
- Verzeichnis verfügbarer MCP-Server samt Tool-Beschreibungen. Sie verschiebt die Werkzeugauswahl von der Startzeit in die Laufzeit: Ein Agent kann Werkzeuge entdecken, die es beim Deployment noch nicht gab.
- Tool-Gateway
- Kontrollpunkt zwischen Agent und Werkzeug mit Authentifizierung, Schema-Validierung, Rate-Limiting, Policy-Entscheid und Audit-Log. Es ist die einzige Stelle, an der ein Aufruf technisch verhindert werden kann.
Werkzeuge, die wir ohnehin betreiben
Der Vorteil eines Managed Service Providers als Plattformbetreiber: Die Systeme, die ein Agent ansprechen soll, betreiben wir häufig bereits. Diese MCP-Server sind Teil des Katalogs, weitere entstehen projektbezogen.
| MCP-Server | Typische Werkzeuge | Standard-Scopes |
|---|---|---|
| PostgreSQL / MariaDB | Lesende Abfragen mit Statement-Allowlist, keine DDL | read:* |
| Microsoft 365 | Mail lesen und senden, Kalender, Kontakte — über delegierte Rechte | read:mail, send:mail |
| Wazuh SIEM | Alert-Abfragen, Agenten-Status, Regel-Nachschlag | read:alerts |
| Prometheus / Grafana | Metrik-Abfragen, Alert-Historie, Dashboard-Verweise | read:metrics |
| Nextcloud | Dateisuche, Dokumentabruf, Freigabe-Status | read:files |
| Proxmox | VM-Status, Snapshot-Liste, Backup-Zustand — lesend im Standard | read:vms |
| Ticketsystem | Ticket lesen, kommentieren, Status setzen, eskalieren | read:tickets, write:comment |
Schreibende Werkzeuge sind nie Standard. Jeder schreibende Scope wird einzeln beantragt, begründet und mit einem Limit versehen — bei Geldbewegungen zusätzlich mit Betragsgrenze und Freigabeschwelle.
Discovery zur Laufzeit
Statisch konfigurierte Werkzeuglisten altern schlecht: Jedes neue Tool erfordert ein Deployment, jede Entfernung hinterlässt tote Verweise. Über die Registry fragt der Agent zur Laufzeit, welche Werkzeuge für seine Aufgabe verfügbar und für seine Identität freigegeben sind.
# Was ein Agent sehen und aufrufen darf. Die Registry liefert nur
# Werkzeuge zurueck, die zu Selector UND Scopes des Agenten passen.
agent: action-agent
discovery:
selector: "domain in (billing, crm) and trust == verified"
refresh: 5m
tools:
# Lesend: grosszuegig, aber mit Statement-Allowlist.
- name: postgres.query
allow: true
constraints: { statements: ["SELECT"], max_rows: 500 }
# Schreibend mit Geld: Limit im Gateway, nicht im Prompt.
# Ein Modell kann eine Prompt-Regel ignorieren — diese hier nicht.
- name: stripe.refund
allow: true
constraints: { max_amount_eur: 250, currency: ["EUR"] }
require_approval_above_eur: 250
idempotent: true
# Nicht verifizierte Quellen: erlaubt, aber isoliert und
# mit markierter Rueckgabe, die nie als Anweisung gilt.
- name: partner.lookup
allow: true
sandbox: strict
egress: ["partner.example:443"]
treat_output_as: untrusted_data
audit:
record: [agent_id, tool, params_sanitized, latency_ms, tokens, decision]
retention: "365d"
Agentic Supply Chain: das neue Risiko
2026 ist das ein eigener Risikotyp und kein Randthema mehr: Ein MCP-Server, ein Connector oder ein Prompt-Template kann sich zur Laufzeit anders verhalten, als es deklariert. Drei Muster sehen wir regelmäßig:
- Tool-Beschreibung als Angriffsfläche. Die Beschreibung eines Werkzeugs landet im Modellkontext. Wer sie kontrolliert, beeinflusst das Verhalten des Agenten — auch ohne je aufgerufen zu werden.
- Rückgabe als Anweisung. Ein Dokument, eine Ticketnotiz oder eine API-Antwort enthält Text, der wie eine Anweisung aussieht. Ohne klare Trennung zwischen Daten und Instruktion folgt das Modell ihr. Das ist Prompt Injection über die Hintertür.
- Verhaltensänderung nach Update. Ein extern gepflegter MCP-Server ändert sein Verhalten in einer neuen Version, ohne dass sich das Schema ändert.
Unsere Gegenmaßnahmen: verifizierte Quellen mit gepinnter Version, Ausführung nicht vertrauenswürdiger Server in einer isolierten Umgebung mit Egress-Allowlist, konsequente Markierung von Rückgaben als Daten — und Schema-Validierung auch auf dem Rückweg. Mehr dazu im Kapitel Sandboxing und Containment.
Was das nicht löst
Ein Gateway prüft Form, Herkunft und Grenzwerte — nicht Absicht. Ein syntaktisch korrekter, formal erlaubter Aufruf mit fachlich falschem Parameter geht durch. Deshalb gehören Betragsgrenzen, Freigabeschwellen und die Eval-Suite zwingend dazu. Und: Wir können fremde MCP-Server isolieren, aber nicht auditieren. Wo das nicht reicht, bauen wir den Konnektor selbst.
Tool-Layer im Detail
Was ist MCP und warum hat es sich durchgesetzt?
MCP standardisiert die Anbindung von Werkzeugen an LLM-Anwendungen. Ein einmal gebauter Server funktioniert mit jedem MCP-fähigen Client. Das senkt Integrationsaufwand und Anbieterbindung so deutlich, dass es sich gegen proprietäre Plugin-Formate durchgesetzt hat.
Können wir eigene MCP-Server einbringen?
Ja. Eigene Server werden in der Registry als verifizierte Quelle registriert und laufen im selben Gateway-Pfad wie unsere. Wir prüfen dabei Schema-Qualität, Fehlerverhalten und ob Werkzeuge sauber zwischen lesend und schreibend trennen.
Wie verhindert das Gateway zu teure Aufrufe?
Über Quoten je Agent und Zeitfenster, Obergrenzen für Rückgabegrößen und harte Budget-Caps je Lauf. Ein Agent, der in einer Schleife dasselbe Werkzeug ruft, läuft in das Rate-Limit statt in die Monatsrechnung.
Werden Parameter im Audit-Log gespeichert?
In sanitisierter Form: Feldnamen, Typen, Wertebereiche und Hashes statt Klartext bei personenbezogenen oder geheimen Feldern. Was genau protokolliert wird, ist je Werkzeug konfigurierbar und Teil des Verarbeitungsverzeichnisses — siehe Trust-Seite.
Was passiert bei einem nicht vertrauenswürdigen MCP-Server?
Er läuft in einer isolierten Umgebung mit Egress-Allowlist, seine Rückgaben werden als Daten markiert und nie als Anweisung interpretiert, und seine Version wird gepinnt. Trotzdem gilt: Isolation ersetzt keine Prüfung des Anbieters.
Funktioniert das auch mit Werkzeugen ohne MCP-Unterstützung?
Ja, über einen Adapter. Wir bauen für REST-, SOAP- oder Datenbank-Schnittstellen einen schlanken MCP-Server, der Schema und Fehlerverhalten sauber definiert. In Bestandsumgebungen ist das eher die Regel als die Ausnahme.
Weiter in der Plattform
Ein Werkzeug, eine Policy, ein Trace
Wir binden in der Sandbox eines Ihrer Systeme als MCP-Server an — mit Scopes, Limit und Audit-Log. Danach sehen Sie an einem echten Aufruf, was protokolliert wird und was nicht.