Hosted-MCP-Architektur — Entscheidung 2026-05-11

TL;DR

Alle hosted MCPs (heute mcp-vf-hosted, geplant mcp-gsuite-hosted, kommende Kunden-MCPs) laufen auf AWS ECS Fargate (klassisch, NICHT Express Mode) + Cloudflare Tunnel-Sidecar. Kein ALB, kein ACM-Cert, kein Custom-Domain-Tanz. Tunnel ist der einzige Public-Eingang. ECS Express Mode wird als Sidecar-inkompatibel deprecated. Cloudflare Containers (GA seit 2026-04-13) bleibt als strategische Re-Evaluate-Option fuer Q3-Q4 2026 dokumentiert.

Trigger

Cutover mcp-vf-hosted auf AWS ECS Express schlug fehl wegen ALB-Host-Header-Mismatch (Host: mcp-vf.agenticventures.de → 404 von AWS-managed ALB). Custom-Domain bei ECS Express ist nicht out-of-box loesbar — der AWS-managed ALB nimmt nur den eingebauten *.ecs.<region>.on.aws-Hostname an. Cloudflare-Tunnel-Sidecar waere die Loesung, aber ECS Express unterstuetzt nur einen primary Container, kein Sidecar.

Optionen-Vergleich

KriteriumA: ECS Express + ALB-Cert-HackB: ECS Fargate (klass.) + Tunnel-SidecarE: All-on-Cloudflare (Containers + Workers)
Custom Domainmanuell Listener-Rule + ACM-Cert auf managed ALB (fragil, kann von ECS-Reconciliation ueberschrieben werden)Cloudflare-Edge regelt → kein ACM noetigCloudflare-Edge regelt → kein ACM noetig
Sidecar-Container❌ nicht moeglich (nur 1 primary)✅ Standard (n Container pro Task)✅ Multi-Container in CF-Containers (GA April 2026)
Cost pro MCP (klein)~65 €/Monat (Fargate + ALB-Fix)~36 €/Monat (nur Fargate, kein ALB)~10-30 €/Monat geschaetzt (Request-basiert)
Vendor-LockAWS hochAWS + Cloudflare gemischtCloudflare hoch
Maturity / Doku5+ Jahre Fargate, ECS Express jung5+ Jahre Fargate, Tunnel etabliertGA seit 4 Wochen, jung
DSGVO / EU-Standort✅ AWS Frankfurt✅ AWS Frankfurt + CF Frankfurt-Edge⚠️ pruefen — CF Containers Daten-Residency klaeren
Skill-Automation (mcp-aws-deploy)bestehend, aber Express-Pattern brokenklar machbar — CDK + bekannte Patternskomplett neuer Skill in Wrangler/JS-Welt
Multi-Tenant (Phase 2)DynamoDB + ABAC bekanntDynamoDB + ABAC bekanntDurable Objects pro Tenant — anderes Modell

Entscheidung

Heute (Q2 2026): Option B (AWS Fargate klassisch + Cloudflare Tunnel-Sidecar, kein ALB).

Begruendung:

  1. Sunk Cost ausnutzen. mcp-vf-hosted-Stack ist zu 90% gebaut (CDK-Code, ECR, Secret-Layout, Image, Workflow-Prompts, M365-Re-Enable, Tests). Migration B-Setup ist nur eine partielle Stack-Aenderung, kein Rewrite.
  2. Cloudflare Containers GA ist 4 Wochen alt. Production-Risiko fuer VF (Kunde, der bald aktiv chattet) zu hoch. Erste Best-Practices, Limits, DSGVO-Story muessen sich erst einspielen.
  3. Pattern-Konsistenz. AWS-Fargate-Patterns sind etabliert + Skill-Automation mcp-aws-deploy (Phase 4 der MCP-Pipeline) baut auf bekannte CDK + boto3 + ECS-CLI-Bausteine.
  4. Tunnel-Pattern lernen wir hier einmal. Egal welche Compute-Plattform wir spaeter waehlen — Tunnel + Cloudflare-Edge sind Vendor-konstant. Investition in Wissen ist nicht verloren.

Q3-Q4 2026: Re-Evaluate Option E mit harten Kriterien:

  • 5+ Kunden auf Option B laufen → Praxis-Cost + Operations-Pain-Points messbar
  • Cloudflare Containers haben 3-6 Monate GA-Reifung
  • DSGVO-Story bei Cloudflare Containers (EU-Residency-Garantie?) geklaert
  • Migrations-Aufwand B→E abgeschaetzt — Sub-MCPs Python stdio passt in CF-Containers ohne Rewrite

Wenn alle drei Kriterien gruen: Migration starten. Sonst: B-Pattern weiterfahren.

Was wir NICHT mehr machen

  • ECS Express Mode fuer hosted MCPs. Sidecar-Container sind Hard-Requirement (Tunnel). Express Mode bleibt im Pattern-File als Hinweis „falls jemand wieder versucht wird — geht nicht”.
  • ALB als Public-Eingang. Cloudflare ist Public-Edge, AWS ist Backend. ALB-Setup mit ACM-Cert + Custom-Domain ist Pre-2026-Pattern, vermeiden wir.
  • Public IPs / Inbound-Security-Group-Regeln am ECS-Task. Outbound-Tunnel ersetzt das komplett. Security-Group erlaubt nur ausgehenden Traffic auf Port 443 zu Cloudflare-IPs (oder allgemein 0.0.0.0/0:443).

Konsequenzen

  1. Pattern-File mcp-hosting-aws-ecs-express.md wird als deprecated markiert, neuer Pattern-File mcp-hosting-fargate-tunnel.md als Standard.
  2. mcp-vf-hosted migrieren von ECS Express auf Fargate-Tunnel-Stack — Migrations-Prompt liegt unter fargate-tunnel-migration-prompt.
  3. mcp-gsuite-hosted migrieren auf das gleiche Pattern (Phase 1A.4 im _index anpassen).
  4. mcp-aws-deploy-Skill (Phase 4) wird auf das neue Pattern zugeschnitten.
  5. produkt-bundle.md Architektur-Sektion 1 (Compute) aktualisieren.

ADR offen — Re-Evaluate Q3-Q4 2026

Auslöser fuer Re-Evaluation:

  • 5 Kunden produktiv auf B → genug Daten um Cost + Pain zu beurteilen
  • CF Containers EU-Residency offiziell dokumentiert
  • Anthropic publiziert offizielle MCP-on-Workers-Empfehlung (heute schon halb, aber Container-Story noch nicht vollstaendig)

Aktion zum Re-Eval-Datum:

  1. CF Containers Pricing+Limits+DSGVO checken
  2. Test-Migration mit mcp-gsuite-hosted (Marvin-only, kein Kunden-Risiko)
  3. Vergleich nach 30 Tagen Parallel-Lauf — Cost, Latency, Operations
  4. Wenn deutlich besser: Migrations-Plan fuer alle Kunden-MCPs
  5. Wenn vergleichbar: bei B bleiben, naechstes Re-Eval Q1 2027

Cross-Refs