mcp-vf-hosted (Eigenbau)
Eigenes Projekt unter ~/source/mcps/mcp-vf-hosted/. Python + FastMCP v2. Aktuell AWS Fargate + Cloudflare-Tunnel (Stand 2026-05-11): Stack live in av-production, Service ACTIVE 1/1/0, Health intern 200, Tunnel 4 Connections nach Frankfurt registered, DNS-Cutover offen — mcp-vf.agenticventures.de zeigt noch auf alten Origin (530-Error). Cutover-Befehl bzw. UI-Schritte: _index.
Wofuer
Template um mehrere bestehende stdio-MCPs (mcp-papierkram, mcp-ticketpay, mcp-m365) hinter einem einzigen Custom-Connector-Endpunkt in claude.ai Pro fuer einen Kunden bereitzustellen — ohne lokales Setup beim Kunden, ohne Eigenbau-OAuth, mit EU-Daten-Standort.
Erste Implementierung: Vibe Factory (Andre, 2026-05-02). Wiederverwendbar:
cp -r ~/source/mcps/mcp-vf-hosted ~/source/mcps/mcp-<kunde>-hosted
# pyproject.toml: Name + Description anpassen
# main.py: _SUB_MCP_COMMANDS und _SUB_MCP_ENV anpassen
# Eigenes Scalekit-Resource-Setup, eigenes Railway-ProjektTech-Stack
- FastMCP v2 (Prefect’s Fork) — hat
ScalekitProvider,create_proxy(),mount(namespace=...)— das offiziellemcp.server.fastmcp(v1) hat das nicht - Sub-MCP-Komposition: Stdio-Subprozess +
create_proxy(Client(StdioTransport(...))). API-Drift zwischen v1 und v2 bricht direkten Library-Mount — Proxy isoliert die Welten, Sub-MCPs bleiben unmodifiziert - OAuth: Scalekit AuthKit (EU-Region) via FastMCP
ScalekitProvider— DCR + PRM out-of-the-box - Hosting: Railway EU-West, Cloudflare als CDN/WAF
- Domain-Pattern:
mcp-<kunde>.agenticventures.de
Sicherheits-Schichten
- TLS + WAF + IP-Rate (Cloudflare)
- OAuth 2.1 Discovery + Token-Issuing + Refresh (Scalekit EU)
- JWT-Signature-Validation pro Request (FastMCP
ScalekitProvider, JWKS-Cache) - Per-Subject-Rate-Limit + Audit + Kill-Switch (
GuardMiddleware, eigener Code, In-Memory Token-Bucket) - Upstream-API-Auth via Sub-MCPs (Tokens als ENV pro Subprozess)
Notfall-Schalter
EMERGENCY_DISABLE=true in Railway-ENV → Restart → alle Tool-Calls 503.
Secrets-Hygiene
- Alle
.env*in.gitignore, gitleaks in CI - Secret-Backup: GPG-verschluesselt unter
~/source/mcps/.secrets/<kunde>-mcp-hosting.env.gpg - Scalekit-Owner-Login in 1Password mit MFA
- Quartalsweise Rotation der Upstream-Tokens
Setup
Vollstaendiges Setup-Pattern siehe mcp-vf-hosted.
Related
- mcp-vf-hosted — Pattern + Setup-Pfad
- claude-custom-connector — Constraints + Decision-Tree
- mcp-papierkram, mcp-ticketpay, mcp-m365 — die Sub-MCPs im VF-Mono