/ 目录 / 演练场 / jetski
● 社区 hyprmcp ⚡ 即开即用

jetski

作者 hyprmcp · hyprmcp/jetski

为任何 MCP 服务器添加 OAuth、实时日志和 prompt 分析,无需修改其代码——自动生成客户端入门指南。

Jetski (hyprmcp) 是一个 MCP 网关,部署在 MCP 服务器前面,增加了 OAuth 2.1 + DCR 认证、prompt/工具分析和实时日志。自动为 Claude、Cursor、VS Code 生成安装指南。用 Go 构建,配合 Postgres 数据库的 Angular 仪表板和 Kubernetes 编排。

为什么要用

核心特性

实时演示

实际使用效果

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

为没有 OAuth 的 MCP 服务器添加 OAuth

👤 将 MCPs 部署给外部用户的平台团队 ⏱ ~60 min advanced

何时使用: 你的 MCP 在本地运行良好,但上游没有认证;在暴露之前你需要身份验证。

前置条件
  • Kubernetes 集群(开发环境可用 k3s/minikube) — Jetski 使用 Metacontroller + CRDs
  • PostgreSQL — 任何可访问的 PG;Jetski 会自动创建其 schema
步骤
  1. 部署 Jetski
    将 Jetski 的 Helm chart 部署到我的集群;确认所有 pod 就绪。✓ 已复制
    → 网关 + 仪表板在线
  2. 注册你的 MCP 上游
    在 Jetski 后面添加我的内部 MCP(svc.internal:9000),要求 OAuth。✓ 已复制
    → 返回 Jetski URL
  3. 分享入门链接
    给我这个网关 URL 的复制/粘贴 Claude Desktop 配置。✓ 已复制
    → 可用的配置片段

结果: 一个经过认证的、按用户划分的 MCP,无需修改上游代码。

注意事项
  • Dex OIDC 配置错误会导致用户陷入重定向循环 — 验证 issuer URL 与客户端外部看到的内容一致(不是内部集群 DNS)
  • DCR 会随着时间推移创建大量孤立客户端 — 定期清理过期的客户端;Dex 支持 TTL
搭配使用: agent · proxy-2

准确查看哪些 prompt 触发了哪些工具

👤 MCP 作者和 prompt 工程师 ⏱ ~30 min intermediate

何时使用: 用户报告'它不工作',而你看不到他们说的是什么。

步骤
  1. 打开分析
    显示我今天排名前 10 的 prompt 和每个触发的工具调用。✓ 已复制
    → Prompt 到工具的分解
  2. 找到失败模式
    筛选返回错误的工具调用。常见的 prompt 形态是什么?✓ 已复制
    → 错误集群
  3. 改进工具描述
    提议一个工具描述调整,将模糊的 prompt 路由到正确的工具。✓ 已复制
    → 具体的改变

结果: 基于数据的工具表面改进。

一键为团队成员入门

👤 向 MCP 工具添加人员的团队负责人 ⏱ ~10 min beginner

何时使用: 你已经设置了网关,不想编写安装文档。

步骤
  1. 生成入门
    给队友 Alice 一个一键入门 URL 来使用网关。✓ 已复制
    → 带有每个客户端说明的可分享 URL
  2. 验证
    确认 Alice 出现在今天的分析中,且她的令牌已配置。✓ 已复制
    → Alice 可见,工具可调用

结果: 零文档入门。

组合

与其他 MCP 搭配,撬动十倍杠杆

jetski + agent

1mcp/agent 进行聚合;Jetski 在上面添加分析

把 1mcp/agent 放在 Jetski 后面,这样我们可以在一个栈中获得聚合 + OAuth + 分析。✓ 已复制
jetski + vurb-ts

使用 Vurb 构建,在 Jetski 后面运行

在 Jetski 后面部署我用 Vurb 构建的 MCP,实现认证和可观测性,无需代码改变。✓ 已复制

工具

此 MCP 暴露的能力

工具输入参数何时调用成本
(gateway) All upstream MCP tools pass through with OAuth 通过 Jetski 的任何工具调用 1 upstream call
admin_register_upstream name, url, auth_required 添加新的上游(仅管理员) free

成本与限制

运行它的成本

API 配额
无 — 直接通过
每次调用 Token 数
最小网关开销
费用
免费、开源
提示
在小型共享实例上运行 Postgres;日志和分析是主要的存储成本。

安全

权限、密钥、影响范围

最小权限: 在你的 IdP 处进行 OAuth 配置
凭据存储: 环境驱动;Postgres 保存会话 + 客户端注册
数据出站: 上游 MCP 调用;OIDC 到你配置的 IdP
切勿授予: 不向终端用户授予管理员作用域

故障排查

常见错误与修复

OIDC issuer 不匹配

Dex 中的 issuer URL 必须与客户端外部看到的内容一致,而不是内部集群 DNS。

验证: curl /.well-known/openid-configuration from outside
空的分析仪表板

确保网关在至少一个请求前面;仪表板以近实时方式更新。

验证: Make a test tool call and refresh
PG 连接错误

验证 DATABASE_URL 环境变量和网络策略允许网关 → PG。

验证: kubectl exec into gateway pod and psql the URL

替代方案

jetski 对比其他方案

替代方案何时用它替代权衡
1mcp/agent你想要 OAuth + 聚合,但不需要 K8s没有 Postgres 支持的分析仪表板
tbxark/mcp-proxy最小化;仅聚合,无认证无认证,无分析
使用 Kong/Envoy 自建你已经有服务网格文化MCP 特定路由需要大量自定义工作

更多

资源

📖 阅读 GitHub 上的官方 README

🐙 查看未解决的 issue

🔍 浏览全部 400+ MCP 服务器和 Skills