- Pinterest berichtet von seinen Erfahrungen beim Aufbau mit MCP als Standard zur Tool-Anbindung für AI-Agenten und der produktionsreifen Integration in echte Engineering-Workflows wie IDEs, interne Chats und AI-Agenten
- Entscheidung für eine Architektur aus mehreren domänenspezifischen MCP-Servern (Presto, Spark, Airflow usw.) plus zentralem Register statt eines einzelnen monolithischen Servers
- Anwendung des Least-Privilege-Prinzips auf sensible Daten durch eine doppelte Authentifizierungsebene aus Endnutzer-JWT + SPIFFE-Mesh-Identität und zugriffskontrollen auf Basis von Business-Gruppen
- Erreichte messbare Ergebnisse von 66.000 Aufrufen pro Monat, 844 monatlich aktiven Nutzern und geschätzt 7.000 eingesparten Stunden pro Monat
- Der Schlüssel dazu, MCP nicht nur als Experiment, sondern als Produktivitätsinfrastruktur für Engineers zu etablieren, waren ein sicherheitsorientiertes Design, eine integrierte Deployment-Pipeline und die direkte Integration in Tools, die Mitarbeitende bereits nutzen
Hintergrund der MCP-Einführung
- Model Context Protocol (MCP) ist ein Open-Source-Standard, der beim Austausch zwischen LLMs und Tools bzw. Datenquellen ein einheitliches Client-Server-Protokoll nutzt, statt für jedes Modell und jedes Tool eigene Integrationen zu implementieren
- Pinterest nutzt MCP nicht für simples Q&A, sondern als Grundlage für die Automatisierung von Engineering-Aufgaben — von „Lies die Logs und finde das Problem“ bis zu „Analysiere ein Bug-Ticket und schlage einen Fix-PR vor“
Entwurf der anfänglichen Architektur
Cloud-Hosting statt lokal
- Zwar werden auch lokale MCP-Server (stdio-Kommunikation) unterstützt, als Standardpfad (paved path) wurden jedoch intern in der Cloud gehostete MCP-Server gewählt
- Ziel war der Betrieb in einer Umgebung, in der sich internes Routing und Sicherheitslogik leicht anwenden lassen
- Lokale Server sind nur für Experimente erlaubt
Viele kleine Server vs. ein monolithischer Server
- Statt eines einzelnen großen Servers entschied man sich für mehrere kleine MCP-Server pro Domäne
- So lassen sich pro Server unterschiedliche Zugriffskontrollen anwenden
- Außerdem wird verhindert, dass der Kontext des Modells unnötig aufgebläht wird
- Frühes Feedback: Der Aufbau eines neuen MCP-Servers erforderte zu viel Vorarbeit wie Deployment-Pipeline, Service-Konfiguration und Betriebs-Setup
- Als Lösung wurde eine integrierte Deployment-Pipeline aufgebaut — Teams müssen nur noch die Tool-Logik definieren, die Plattform übernimmt Deployment und Skalierung automatisch
Internes MCP-Register
- Eine Single Source of Truth, die die Liste freigegebener MCP-Server und deren Verbindungswege verwaltet
- Web-UI: Menschen können Server durchsuchen sowie zuständiges Team, Support-Kanal, Sicherheitsstatus, Live-Status und verfügbare Tools einsehen
- API: AI-Clients (interner AI-Chat, IDE-Integration, Agenten) nutzen sie zur Server-Erkennung und -Validierung sowie zur Entscheidung „Darf dieser Nutzer Server X verwenden?“
- Nur im Register eingetragene Server gelten als für Produktion freigegebene Server — es bildet das Rückgrat der Governance
Aktueller Stand der produktiven MCP-Server
Wichtige Server (nach Nutzung)
- Presto MCP-Server: Der am stärksten genutzte Server nach Traffic — Agenten (einschließlich AI-gestützter IDEs) fragen Presto-basierte Daten on demand ab und können Daten direkt im Workflow nutzen, ohne in Dashboards wechseln zu müssen
- Spark MCP-Server: Grundlage der AI-gestützten Spark-Debugging-Erfahrung — unterstützt die Diagnose fehlgeschlagener Spark-Jobs, die Zusammenfassung von Logs und die strukturierte Erfassung von Root-Cause-Analysen, wodurch operative Threads in wiederverwendbares Wissen überführt werden
- Knowledge MCP-Server: Ein allgemeiner Wissensendpunkt — interne AI-Bots nutzen ihn für Unternehmenswissen, Q&A, Dokumentation und Debugging-Fragen
Integration in interne Pinterest-Services
- Integration von MCP-Tools in die interne LLM-Web-Chat-Oberfläche, die viele Pinterest-Mitarbeitende täglich nutzen
- Das Frontend verarbeitet automatisch den OAuth-Flow und gibt anschließend die Liste der Tools zurück, die für den aktuellen Nutzer erlaubt sind
- Der AI-Chat-Agent bindet MCP-Tools direkt an das Agenten-Toolset und bietet damit die gleiche Erfahrung wie bei normalen Tool-Aufrufen
- AI-Bots auf der internen Chat-Plattform wurden ebenfalls mit MCP-Tools ausgestattet
- Authentifizierung und Autorisierung laufen über die Register-API
- Unterstützung dafür, bestimmte MCP-Tools auf bestimmte Kanäle zu beschränken (z. B. Spark-MCP-Tools nur im Airflow-Support-Kanal)
Sicherheit, Governance und Richtlinien
MCP-Sicherheitsstandard
- Es wurde ein eigener MCP Security Standard definiert — für alle MCP-Server, die nicht nur experimentell sind, sind ein zuständiges Team, die Registrierung im internen Register sowie die Freigabe von Review-Tickets durch Sicherheit/Recht/Datenschutz/(falls zutreffend) GenAI verpflichtend
- Auf Basis der Review-Ergebnisse werden Sicherheitsrichtlinien wie die zugelassenen Nutzergruppen für den Server festgelegt
Doppelte Schicht für Authentifizierung (AuthN) und Autorisierung (AuthZ)
-
Flow auf Basis von Endnutzer-JWTs
- Der Nutzer interagiert über eine Oberfläche wie AI-Chat, IDE-Plugin oder AI-Bot
- Der Client führt einen OAuth-Flow gegen den internen Auth-Stack aus und übergibt anschließend das JWT an das MCP-Register und den Zielserver
- Envoy validiert das JWT, setzt die Header
X-Forwarded-UserundX-Forwarded-Groupsund wendet grobgranulare Sicherheitsrichtlinien an - Innerhalb des Servers erfolgt die feingranulare Rechtekontrolle mit dem Decorator
@authorize_tool(policy='…')(z. B. darfget_revenue_metricsnur von der Gruppe Ads-eng aufgerufen werden)
-
Zugriffskontrolle auf Basis von Business-Gruppen
- Statt allen authentifizierten Pinterest-Mitarbeitenden und -Auftragnehmern pauschalen Zugriff zu geben, extrahieren sensible Server die Mitgliedschaft in Business-Gruppen aus dem JWT und prüfen, ob der Nutzer zu einer freigegebenen Gruppe gehört
- Der Presto MCP-Server ist technisch über breite Oberflächen erreichbar, aber nur freigegebene Gruppen wie Ads, Finance und bestimmte Infrastruktur-Teams können Sessions aufbauen und hochprivilegierte Tools ausführen
-
SPIFFE-basierter Flow nur für Services
- In risikoarmen, schreibgeschützten Szenarien wird ausschließlich SPIFFE-basierte Authentifizierung (Mesh-Identität) verwendet
- Sie kommt nur zum Einsatz, wenn kein Endnutzer im Loop ist und der Blast Radius streng begrenzt ist
Unterschiede zum MCP-OAuth-Standard
- Die offizielle MCP-Spezifikation definiert pro Server einen OAuth-2.0-Authentifizierungsflow (Consent-Screen, serverseitige Token-Verwaltung), Pinterest verwendet jedoch einen Ansatz zur Wiederverwendung bestehender Sessions
- Wenn Nutzer Oberflächen wie den AI-Chat öffnen, sind sie bereits über den internen Auth-Stack authentifiziert — zusätzliche Login-Prompts oder Consent-Dialoge sind nicht nötig
- Envoy und Policy-Decorator übernehmen die Autorisierung transparent im Hintergrund
Human-in-the-Loop
- Da MCP-Server automatisierte Aktionen ermöglichen, ist der Blast Radius größer als bei manueller Bedienung
- Entsprechend der Agenten-Guidance ist vor sensiblen oder kostspieligen Aktionen eine menschliche Freigabe erforderlich — der Agent schlägt die Aktion vor, und ein Mensch genehmigt oder lehnt sie ab (auch gesammelt möglich)
- Mithilfe von elicitation wird vor riskanten Aktionen (z. B. dem Überschreiben von Tabellendaten) eine Bestätigung angefordert
Observability und Erfolgskennzahlen
- Auf alle MCP-Server werden Bibliotheksfunktionen angewendet — Logging von Ein- und Ausgaben, Aufrufzahlen, Exception-Tracking und Telemetrie sind standardmäßig enthalten
- Metriken auf Ökosystem-Ebene: Anzahl registrierter MCP-Server und Tools, Gesamtzahl der Server-Aufrufe sowie geschätzte Zeiteinsparung pro Aufruf (von Server-Eigentümern auf Basis leichten Nutzerfeedbacks und des Vergleichs mit früheren manuellen Workflows geschätzt)
- Eine einzige North-Star-Metrik: eingesparte Zeit (time saved) — Anzahl der Aufrufe × eingesparte Minuten pro Aufruf zur groben Abschätzung der Wirkung
- 66.000 Aufrufe pro Monat, 844 monatlich aktive Nutzer, geschätzt 7.000 eingesparte Stunden pro Monat
Noch keine Kommentare.