mcpField
C
CAPI Gateway

CAPI Gateway

本地服务
github.com/surisoft-io云与基础设施102 周前更新

关于 CAPI Gateway

CAPI Gateway 是一款 API 网关和负载均衡器,可通过 Consul 发现服务并应用路由、安全与可观测性策略。其实验性 MCP 网关能将现有 REST API 和 MCP 后端统一提供给大模型 Agent。

主要功能

  1. 01基于 Consul 的服务发现
  2. 02代理 REST、WebSocket 和 SSE
  3. 03OAuth2/OIDC 与 API Key 认证
  4. 04OPA 授权和分布式限流
  5. 05负载均衡与故障转移
  6. 06OpenTelemetry 跟踪和 Prometheus 指标

适用场景

  1. 01将现有 REST 端点提供为 MCP 工具
  2. 02通过集中策略路由发现的服务
  3. 03聚合上游服务的 OpenAPI 规范

MCP 相关

其实验性 MCP 网关可根据服务元数据将 REST API 转换为 MCP 工具,也能发现并代理现有 MCP 服务。两类后端均汇总在统一 MCP 端点下。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"surisoft-io-capi-core": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"docker.io/surisoft/capi-core:1.417.5"
]
}
}
}
启动命令docker run -i --rm docker.io/surisoft/capi-core:1.417.5

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
ocidocker.io/surisoft/capi-core:1.417.5

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

CAPI

CAPI License Docker Image Version (latest by date)


与我们分享您的使用场景

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,了解所有可用的配置选项。

端口

端口描述配置键
8380REST API 网关capi.rest.port
8381管理 / 指标capi.adminPort
8382WebSocket 网关capi.websocket.port
8383MCP 网关(实验性)capi.mcp.port
8384gRPC 网关(实验性)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 反向代理

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。