/ 目錄 / 演練場 / jetski
● 社群 hyprmcp ⚡ 即開即用

jetski

作者 hyprmcp · hyprmcp/jetski

Add OAuth, real-time logs, and prompt analytics to any MCP server without touching its code — auto-generated client onboarding included.

Jetski (hyprmcp) is an MCP gateway that sits in front of your MCP servers, adding OAuth 2.1 + DCR authentication, prompt/tool analytics, and real-time logs. Auto-generates setup instructions for Claude, Cursor, VS Code. Built in Go with a Postgres-backed Angular dashboard and Kubernetes orchestration.

為什麼要用

核心特性

即時演示

實際使用效果

jetski.replay ▶ 就緒
0/0

安裝

選擇你的客戶端

~/Library/Application Support/Claude/claude_desktop_config.json  · Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "jetski": {
      "command": "npx",
      "args": [
        "-y",
        "jetski"
      ],
      "_inferred": true
    }
  }
}

開啟 Claude Desktop → Settings → Developer → Edit Config。儲存後重啟應用。

~/.cursor/mcp.json · .cursor/mcp.json
{
  "mcpServers": {
    "jetski": {
      "command": "npx",
      "args": [
        "-y",
        "jetski"
      ],
      "_inferred": true
    }
  }
}

Cursor 使用與 Claude Desktop 相同的 mcpServers 格式。專案級設定優先於全域。

VS Code → Cline → MCP Servers → Edit
{
  "mcpServers": {
    "jetski": {
      "command": "npx",
      "args": [
        "-y",
        "jetski"
      ],
      "_inferred": true
    }
  }
}

點擊 Cline 側欄中的 MCP Servers 圖示,然後選 "Edit Configuration"。

~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "jetski": {
      "command": "npx",
      "args": [
        "-y",
        "jetski"
      ],
      "_inferred": true
    }
  }
}

格式與 Claude Desktop 相同。重啟 Windsurf 生效。

~/.continue/config.json
{
  "mcpServers": [
    {
      "name": "jetski",
      "command": "npx",
      "args": [
        "-y",
        "jetski"
      ]
    }
  ]
}

Continue 使用伺服器物件陣列,而非映射。

~/.config/zed/settings.json
{
  "context_servers": {
    "jetski": {
      "command": {
        "path": "npx",
        "args": [
          "-y",
          "jetski"
        ]
      }
    }
  }
}

加入 context_servers。Zed 儲存後熱重載。

claude mcp add jetski -- npx -y jetski

一行命令搞定。用 claude mcp list 驗證,claude mcp remove 移除。

使用場景

實戰用法: jetski

Add OAuth to an MCP server that doesn't speak it

👤 Platform teams deploying MCPs to users beyond themselves ⏱ ~60 min advanced

何時使用: 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
步驟
  1. Deploy Jetski
    Apply Jetski's Helm chart to my cluster; confirm all pods ready.✓ 已複製
    → Gateway + dashboard live
  2. Register your MCP upstream
    Add my internal MCP at svc.internal:9000 behind Jetski with OAuth required.✓ 已複製
    → Jetski URL returned
  3. Share onboarding link
    Give 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
搭配使用: agent · proxy-2

See exactly which prompts trigger which tools

👤 MCP authors and prompt engineers ⏱ ~30 min intermediate

何時使用: Users report 'it's not working' and you have no visibility into what they're saying.

步驟
  1. Open analytics
    Show me today's top 10 prompts and the tool calls each triggered.✓ 已複製
    → Prompt-to-tool breakdown
  2. Find the failure pattern
    Filter to tool calls that returned errors. What's the common prompt shape?✓ 已複製
    → Error clusters
  3. Improve tool description
    Propose a tool-description tweak that would route ambiguous prompts to the right tool.✓ 已複製
    → Concrete change

結果: Data-driven improvements to your tool surface.

Onboard a teammate in one click

👤 Team leads adding people to MCP tooling ⏱ ~10 min beginner

何時使用: You've set up a gateway and don't want to write setup docs.

步驟
  1. Generate onboarding
    Give teammate Alice a one-click onboarding URL for the gateway.✓ 已複製
    → Shareable URL with per-client instructions
  2. Verify
    Confirm Alice shows up in today's analytics and her tokens are provisioned.✓ 已複製
    → Alice visible, tools callable

結果: Zero-doc onboarding.

組合

與其他 MCP 搭配,撬動十倍槓桿

jetski + agent

1mcp/agent aggregates; Jetski adds analytics on top

Put 1mcp/agent behind Jetski so we get aggregation + OAuth + analytics in one stack.✓ 已複製
jetski + vurb-ts

Build with Vurb, operate behind Jetski

Deploy my Vurb-built MCP behind Jetski for auth and observability without code changes.✓ 已複製

工具

此 MCP 暴露的能力

工具輸入參數何時呼叫成本
(gateway) All upstream MCP tools pass through with OAuth Any tool invocation through Jetski 1 upstream call
admin_register_upstream name, url, auth_required Adding a new upstream (admin-only) free

成本與限制

運行它的成本

API 配額
None — passes through
每次呼叫 Token 數
Minimal gateway overhead
費用
Free, open source
提示
Run Postgres on a small shared instance; logs and analytics are the main storage cost.

安全

權限、密鑰、影響範圍

最小權限: OAuth configuration at your IdP
憑證儲存: Env-driven; Postgres holds sessions + client registrations
資料出站: Upstream MCP calls; OIDC to your configured IdP
切勿授予: Admin scope to end users

故障排查

常見錯誤與修復

OIDC issuer mismatch

Issuer URL in Dex must match what clients see externally, not internal cluster DNS.

驗證: curl /.well-known/openid-configuration from outside
Empty analytics dashboard

Ensure gateway is in front of at least one request; dashboard updates in near-real-time.

驗證: Make a test tool call and refresh
PG connection errors

Verify DATABASE_URL env and network policy allow gateway → PG.

驗證: kubectl exec into gateway pod and psql the URL

替代方案

jetski 對比其他方案

替代方案何時用它替代權衡
1mcp/agentYou want OAuth + aggregation without K8sNo Postgres-backed analytics dashboard
tbxark/mcp-proxyMinimal; just aggregate, no authNo auth, no analytics
Build your own with Kong/EnvoyYou already have a service-mesh cultureSignificant custom work for MCP-specific routing

更多

資源

📖 閱讀 GitHub 上的官方 README

🐙 查看未解決的 issue

🔍 瀏覽全部 400+ MCP 伺服器和 Skills