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
| Kriterium | A: ECS Express + ALB-Cert-Hack | B: ECS Fargate (klass.) + Tunnel-Sidecar | E: All-on-Cloudflare (Containers + Workers) |
|---|---|---|---|
| Custom Domain | manuell Listener-Rule + ACM-Cert auf managed ALB (fragil, kann von ECS-Reconciliation ueberschrieben werden) | Cloudflare-Edge regelt → kein ACM noetig | Cloudflare-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-Lock | AWS hoch | AWS + Cloudflare gemischt | Cloudflare hoch |
| Maturity / Doku | 5+ Jahre Fargate, ECS Express jung | 5+ Jahre Fargate, Tunnel etabliert | GA 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 broken | klar machbar — CDK + bekannte Patterns | komplett neuer Skill in Wrangler/JS-Welt |
| Multi-Tenant (Phase 2) | DynamoDB + ABAC bekannt | DynamoDB + ABAC bekannt | Durable Objects pro Tenant — anderes Modell |
Entscheidung
Heute (Q2 2026): Option B (AWS Fargate klassisch + Cloudflare Tunnel-Sidecar, kein ALB).
Begruendung:
- 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. - 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.
- 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. - 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
- Pattern-File
mcp-hosting-aws-ecs-express.mdwird als deprecated markiert, neuer Pattern-Filemcp-hosting-fargate-tunnel.mdals Standard. mcp-vf-hostedmigrieren von ECS Express auf Fargate-Tunnel-Stack — Migrations-Prompt liegt unter fargate-tunnel-migration-prompt.mcp-gsuite-hostedmigrieren auf das gleiche Pattern (Phase 1A.4 im _index anpassen).mcp-aws-deploy-Skill (Phase 4) wird auf das neue Pattern zugeschnitten.produkt-bundle.mdArchitektur-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:
- CF Containers Pricing+Limits+DSGVO checken
- Test-Migration mit
mcp-gsuite-hosted(Marvin-only, kein Kunden-Risiko) - Vergleich nach 30 Tagen Parallel-Lauf — Cost, Latency, Operations
- Wenn deutlich besser: Migrations-Plan fuer alle Kunden-MCPs
- Wenn vergleichbar: bei B bleiben, naechstes Re-Eval Q1 2027
Cross-Refs
- mcp-hosting-fargate-tunnel — neues Pattern (Standard)
- mcp-hosting-aws-ecs-express — deprecated, Hinweis-Kommentar
- cloudflare-capability-map — strategischer Kontext + Cost-Vergleich
- mcp-remote-vs-lokal — was Cloudflare-Workers-Migration langfristig bedeutet (Sub-MCPs HTTP-native)
- cloudflare-dsgvo — DSGVO-Bewertung Cloudflare als Edge
- produkt-bundle — Compute-Sektion ist anzupassen
- fargate-tunnel-migration-prompt — ausfuehrbarer Migrations-Prompt