CAPI Gateway

io.github.surisoft-ioPublished by GitHub account surisoft-iov1.0.0Updated Oct 25, 2026

Apache Camel API Gateway with REST-to-MCP bridging for LLM agents.

The publisher's own server: core.blue

VerifiedSTDIODesktop onlyCloud & InfrastructureDeveloper Tools

Overview

AI-generated overview

CAPI Gateway is a lightweight API gateway that, in its experimental MCP mode, exposes REST and MCP backends as MCP tools for LLM agents.

What you can do
Discover and list tools from REST services registered in Consul, translating their metadata into an MCP tool catalog. Invoke those tools, with CAPI converting arguments into REST calls and wrapping responses in MCP format. Aggregate real MCP Server backends alongside REST backends under one unified MCP endpoint. Proxy REST, WebSocket and SSE traffic with load balancing, failover and reverse proxy headers. Apply OAuth2/OIDC, API key and OPA authorization, throttling, tracing and Prometheus metrics.
When to use it
Useful when you already run REST services behind Consul and want an assistant to call them as MCP tools without changing the backends, or when you want several REST and MCP backends behind one MCP endpoint.
Requirements
Runs locally as a Docker image (surisoft/capi-core) over stdio, or from a JAR or Helm chart. Requires a configuration file pointed to by the CAPI_CONFIG_FILE environment variable, a HashiCorp Consul registry with MCP metadata on services, and network access to the gateway ports (MCP on 8383 by default).
Before you install
The MCP gateway is marked experimental. It proxies requests to your backends and can enforce or bypass security policies depending on configuration, so review OAuth2/OIDC, API key and OPA settings before exposing services. The Helm example passes an SSL keystore and password as values, which should be handled as secrets. Tool calls reach third-party REST services.

Installation

In SourceWeft

  1. Open CAPI Gateway in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

[CAPI]

[CAPI] [License] [Docker Image Version (latest by date)]


[Share your use case with us]

CAPI Gateway

Lightweight API Gateway

CAPI is a lightweight API Gateway and load balancer built on Undertow's async proxy architecture. Services register themselves in HashiCorp Consul, and CAPI automatically discovers them, creates proxy handlers, and applies security, throttling, and observability policies — no database required.

Features

  • REST, WebSocket, and SSE gateway with fully async proxying (zero threads blocked during backend calls)
  • Service discovery via HashiCorp Consul (automatic route creation and removal)
  • OAuth2 / OIDC token validation (multi-provider, cookie-based auth supported)
  • API Key authentication with per-key throttling (via Consul KV)
  • Fine-grained authorization via OPA (Open Policy Agent, async policy evaluation)
  • Distributed throttling (Hazelcast, with Kubernetes discovery)
  • Load balancing (Round Robin) and Failover
  • Distributed tracing (OpenTelemetry / OTLP)
  • Prometheus metrics
  • OpenAPI spec aggregation from upstream services
  • TLS termination and dynamic truststore management (via Consul KV hot-reload)
  • CORS management
  • Admin API with health, metrics, and route inspection
  • Multi-instance support (route targeting per CAPI instance)
  • Reverse proxy headers (X-Forwarded-*)
  • [Experimental] MCP Gateway — expose services as MCP tools for LLM agents (JSON-RPC 2.0 over Streamable HTTP)
  • [Experimental] gRPC Gateway — transparent HTTP/2 reverse proxy for gRPC services with header-based routing

REST-to-MCP Bridging

CAPI's MCP Gateway turns any existing REST API into an MCP tool — no code changes on your backends.

Register a service in Consul with MCP metadata, and LLM agents (Claude Desktop, Cursor, custom agents) can discover and invoke it immediately. Your REST services don't need to know anything about MCP, JSON-RPC, or tool schemas. CAPI handles the translation:

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 also supports real MCP Server backends — services that already speak JSON-RPC 2.0. Register them with mcp-type: server and CAPI discovers their tools automatically via tools/list, then proxies tools/call requests transparently. Both REST and MCP Server backends are aggregated under one unified MCP endpoint.

Unlike dedicated MCP gateways that require all backends to be MCP Servers, CAPI bridges the gap between existing REST infrastructure and LLM-native protocols. See the MCP Gateway docs and the demo for a working example with both backend types.

Quickstart

CAPI requires the CAPI_CONFIG_FILE environment variable pointing to a valid configuration file.

Running from JAR

bash
CAPI_CONFIG_FILE=config/config.yaml java -jar capi-core.jar

Running with Docker

bash
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

Running with Helm (Kubernetes)

A Helm chart is available in helm/capi-core/.

bash
helm install capi-core helm/capi-core
# With custom valueshelm install capi-core helm/capi-core -f my-values.yaml
# Enable SSL and truststorehelm install capi-core helm/capi-core \  --set capi.ssl.enabled=true \  --set capi.ssl.keystoreBase64=<base64-encoded-keystore> \  --set capi.ssl.password=changeit

See helm/capi-core/values.yaml for all available configuration options.

Ports

PortDescriptionConfig key
8380REST API gatewaycapi.rest.port
8381Admin / metricscapi.adminPort
8382WebSocket gatewaycapi.websocket.port
8383MCP Gateway (experimental)capi.mcp.port
8384gRPC Gateway (experimental)capi.grpc.port

Running Modes

The runningMode field controls which types of services CAPI will proxy:

ModeDescription
fullProxies REST, WebSocket, and SSE services (default)
websocketOnly proxies WebSocket services
sseOnly proxies SSE services

Documentation

DocumentDescription
Service RegistrationHow to register services in Consul and configure routing, security, and throttling via metadata
SecurityOAuth2/OIDC and OPA authorization configuration
Admin APIAdmin endpoints reference (health, metrics, routes, OpenAPI)
Configuration ReferenceComplete YAML configuration reference with all fields
MCP Gateway (Experimental)MCP Gateway for LLM tool integration via JSON-RPC 2.0
gRPC Gateway (Experimental)Transparent gRPC reverse proxy with header-based routing

Source: README.md at commit ff325b9

Tools

0
SourceWeft has not started this package in its sandbox yet, so its tools are not known.

Version history

1
  1. v1.0.0LatestSep 16, 2026

Score

50% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts

    Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.

  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts

Other Core integrations