Add OAuth to an MCP server that doesn't speak it
Когда использовать: Your MCP works great locally but the upstream has no auth; you need identity before exposing it.
Предварительные требования
- Kubernetes cluster (or k3s/minikube for dev) — Jetski uses Metacontroller + CRDs
- PostgreSQL — Any reachable PG; Jetski creates its schema
Поток
-
Deploy JetskiApply Jetski's Helm chart to my cluster; confirm all pods ready.✓ Скопировано→ Gateway + dashboard live
-
Register your MCP upstreamAdd my internal MCP at svc.internal:9000 behind Jetski with OAuth required.✓ Скопировано→ Jetski URL returned
-
Share onboarding linkGive me the copy/paste Claude Desktop config for this gateway URL.✓ Скопировано→ Working config snippet
Итог: An authenticated, per-user MCP without touching upstream code.
Подводные камни
- Dex OIDC misconfig leaves users in a redirect loop — Verify issuer URL matches what clients see externally (not internal cluster DNS)
- DCR creates tons of orphan clients over time — Prune stale clients periodically; Dex supports TTL