关于 CAPI Gateway
CAPI Gateway 是一款 API 网关和负载均衡器,可通过 Consul 发现服务并应用路由、安全与可观测性策略。其实验性 MCP 网关能将现有 REST API 和 MCP 后端统一提供给大模型 Agent。
主要功能
- 01基于 Consul 的服务发现
- 02代理 REST、WebSocket 和 SSE
- 03OAuth2/OIDC 与 API Key 认证
- 04OPA 授权和分布式限流
- 05负载均衡与故障转移
- 06OpenTelemetry 跟踪和 Prometheus 指标
适用场景
- 01将现有 REST 端点提供为 MCP 工具
- 02通过集中策略路由发现的服务
- 03聚合上游服务的 OpenAPI 规范
MCP 相关
其实验性 MCP 网关可根据服务元数据将 REST API 转换为 MCP 工具,也能发现并代理现有 MCP 服务。两类后端均汇总在统一 MCP 端点下。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
CAPI 网关
轻量级 API 网关
CAPI 是一款基于 Undertow 异步代理架构构建的轻量级 API 网关和负载均衡器。服务会在 HashiCorp Consul 中注册,CAPI 会自动发现这些服务、创建代理处理器,并应用安全、限流和可观测性策略——无需数据库。
功能特性
- REST、WebSocket 和 SSE 网关,支持完全异步代理(后端调用期间不会阻塞任何线程)
- 通过 HashiCorp Consul 进行服务发现(自动创建和移除路由)
- OAuth2 / OIDC 令牌验证(支持多提供方和基于 Cookie 的身份验证)
- API Key 身份验证,支持针对每个密钥进行限流(通过 Consul KV)
- 通过 OPA(Open Policy Agent)进行精细授权(异步策略评估)
- 分布式限流(Hazelcast,支持 Kubernetes 服务发现)
- 负载均衡(Round Robin)和故障转移
- 分布式跟踪(OpenTelemetry / OTLP)
- Prometheus 指标
- 从上游服务聚合 OpenAPI 规范
- TLS 终止和动态信任库管理(通过 Consul KV 热重载)
- CORS 管理
- 管理 API,支持健康状况、指标和路由检查
- 多实例支持(可将路由定向到特定 CAPI 实例)
- 反向代理标头(
X-Forwarded-*) - [Experimental] MCP 网关——将服务公开为 MCP 工具,供大模型 Agent 使用(基于 Streamable HTTP 的 JSON-RPC 2.0)
- [Experimental] gRPC 网关——面向 gRPC 服务的透明 HTTP/2 反向代理,支持基于标头的路由
REST 到 MCP 的桥接
CAPI 的 MCP 网关可将任何现有 REST API 转换为 MCP 工具——无需修改后端代码。
在 Consul 中注册带有 MCP 元数据的服务后,大模型 Agent(Claude Desktop、Cursor、自定义 Agent)即可立即发现并调用该服务。您的 REST 服务无需了解 MCP、JSON-RPC 或工具架构。CAPI 会处理转换:
LLM Agent CAPI Your REST API
(unchanged)
tools/list ──────────────► reads Consul metadata
◄────────────── returns tool catalog
tools/call ──────────────► extracts arguments
{"name":"..."} POST /endpoint ──────────────► handles request
wraps response ◄────────────── returns JSON
◄────────────── MCP-formatted result
CAPI 还支持真实的 MCP Server 后端——即已经使用 JSON-RPC 2.0 通信的服务。使用 mcp-type: server 注册这些服务后,CAPI 会通过 tools/list 自动发现其工具,并透明地代理 tools/call 请求。REST 和 MCP Server 后端都会聚合到一个统一的 MCP 端点下。
与要求所有后端都是 MCP Server 的专用 MCP 网关不同,CAPI 可弥合现有 REST 基础设施与大模型原生协议之间的鸿沟。请参阅 MCP 网关文档和演示,了解同时使用这两种后端类型的实际示例。
快速入门
CAPI 需要设置 CAPI_CONFIG_FILE 环境变量,并将其指向有效的配置文件。
从 JAR 运行
CAPI_CONFIG_FILE=config/config.yaml java -jar capi-core.jar
使用 Docker 运行
docker run -p 8380:8380 -p 8381:8381 \
-v $(pwd)/config/config.yaml:/capi/config/config.yaml \
-e CAPI_CONFIG_FILE=/capi/config/config.yaml \
surisoft/capi-core
使用 Helm 运行(Kubernetes)
Helm Chart 位于 helm/capi-core/。
helm install capi-core helm/capi-core
# With custom values
helm install capi-core helm/capi-core -f my-values.yaml
# Enable SSL and truststore
helm install capi-core helm/capi-core \
--set capi.ssl.enabled=true \
--set capi.ssl.keystoreBase64=<base64-encoded-keystore> \
--set capi.ssl.password=changeit
请参阅 helm/capi-core/values.yaml,了解所有可用的配置选项。
端口
| 端口 | 描述 | 配置键 |
|---|---|---|
| 8380 | REST API 网关 | capi.rest.port |
| 8381 | 管理 / 指标 | capi.adminPort |
| 8382 | WebSocket 网关 | capi.websocket.port |
| 8383 | MCP 网关(实验性) | capi.mcp.port |
| 8384 | gRPC 网关(实验性) | capi.grpc.port |
运行模式
runningMode 字段用于控制 CAPI 代理的服务类型:
| 模式 | 描述 |
|---|---|
full | 代理 REST、WebSocket 和 SSE 服务(默认) |
websocket | 仅代理 WebSocket 服务 |
sse | 仅代理 SSE 服务 |
文档
| 文档 | 描述 |
|---|---|
| 服务注册 | 如何在 Consul 中注册服务,并通过元数据配置路由、安全和限流 |
| 安全 | OAuth2/OIDC 和 OPA 授权配置 |
| 管理 API | 管理端点参考(健康状态、指标、路由、OpenAPI) |
| 配置参考 | 完整的 YAML 配置参考,涵盖所有字段 |
| MCP 网关(实验性) | 通过 JSON-RPC 2.0 集成大模型工具的 MCP 网关 |
| gRPC 网关(实验性) | 基于请求头路由的透明 gRPC 反向代理 |
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。