Harbor:用五个工具替代逐端点映射的 MCP 网关
开源项目 Harbor 提出 Code Mode 思路,仅用五个通用工具让 AI 客户端通过编写 JavaScript…
Harbor 是一款面向生产环境的 Model Context Protocol(MCP)网关,定位是让 Claude、Cursor、GPT 等 AI 客户端能够与既有后端 API 对话,而无需对这些 API 做任何改造。它在 Hacker News 上获得了开发者社区的关注。
核心思路:Code Mode
传统做法是为每个 API 端点单独生成一个 MCP 工具,但一个真实业务的后端往往拥有数百个端点,会直接撑爆 AI 的上下文窗口。Harbor 选择了另一种路径——Code Mode:
- AI 客户端只拿到五个通用工具,而非「一个端点一个工具」;
- AI 用 JavaScript 编写调用逻辑,由网关在隔离的 V8 沙箱中执行;
- 每次调用都经过校验,再附带正确凭证转发到后端;
- 内置熔断与重试,保证稳定性。
这种做法的优势是网关成为「纯适配层」,业务侧接口完全不需要改动。
主要能力
Harbor 的功能覆盖认证、安全、可观测性等企业落地常被提及的几个维度:
- 五件套工具集:discover_services、discover_skills、get_skill_details、search_code、api_execute;
- V8 沙箱隔离:AI 编写的 JavaScript 无法访问网络、文件系统或框架内部;
- 可插拔认证:支持 static-token、oauth-introspection、jwt-validation(本地 JWKS,无需 AS 往返)以及 oauth-2.1(RFC 8414 / OIDC 自动发现);
- OAuth 2.1 受保护资源:RFC 9728 discovery 元数据、401 时的 WWW-Authenticate、完整 MCP 认证流程;
- 可插拔后端:可注册自定义 token 缓存后端,无需 fork;
- 逐服务配置:每个服务独立声明认证、熔断策略与 spec 来源;
- 零 API 改动:后端代码完全无需调整;
- Service Skills:以 Markdown 形式编写的 SOP,AI 在调用前先阅读;
- 熔断器:按端点、服务维度的计数式熔断;
- 结构化审计日志:每一次 api_execute 调用都会记录代码、端点、耗时与结果;
- 传输层:同时支持 Streamable HTTP 与 stdio 两种 MCP 传输方式。
快速上手
环境要求为 Node.js 22+、npm 10+ 以及本地编译工具(macOS 上需 Xcode CLT,Linux 上需 build-essential)。克隆仓库并安装依赖后,执行 bash examples/demo/start.sh 即可启动三个本地后端加 MCP 网关的完整演示。
- E2E 冒烟测试:
python3 tests/demo_e2e.py --start-services; - 接入 Cursor:在
~/.cursor/mcp.json中添加 harbor 服务配置; - 接入 Claude Desktop:在
~/Library/Application Support/Claude/claude_desktop_config.json中添加对应配置; - 开发模式:
npm run dev启动 tsx watch 热重载; - 测试:
npm test运行 312 个单元与集成测试; - 类型检查与构建:
npm run typecheck、npm run build。
项目仓库位于 github.com/vdssinha/harbor,文档覆盖入门、服务接入、Skill 编写、配置、自定义适配器、OAuth 2.1、架构、工具层、请求生命周期与 FAQ 等主题,并附带 ROADMAP 说明后续规划。
许可与社区
Harbor 采用 Apache License 2.0 开源协议,项目欢迎贡献,并在 CONTRIBUTING.md 中提供了设置、编码规范、PR 流程以及「good first issues」入口。对于已经在使用 MCP、但被「端点爆炸」困扰的团队来说,Code Mode 提供了一条值得评估的工程化路径。
