BetaMCPG is in public beta. Join the waitlist for managed cloud + early-access features.
MCPG
beta
The gateway

The MCP runtime — sessions, identity, dispatch, plugin chains.

One Rust binary, ~40,000 LOC, built around the MCP spec. Speaks Streamable HTTP + SSE inbound. Routes to HTTP, gRPC, GraphQL, NATS, Kafka, subprocess, multi-step pipelines, or mocks. Plugin chains compose identity → policy → tool-gate → bindings → transforms.

MCP spec
2025-11-25
100% MUST coverage
Binding types
8
HTTP, gRPC, GraphQL, NATS, Kafka, subprocess, pipeline, mock
Plugin loaders
2
Native Rust cdylib + WASM Component Model

Run it

bash
# Single binary
cargo install mcpg
mcpg --config /etc/mcpg/config.yaml

# Or with quickstart (gateway + CP + UI in one)
mcpg-ctl quickstart
Capabilities

What the gateway actually does.

Protocol-correct

  • Full MCP/2 (2025-11-25) coverage — sessions, tools, prompts, resources, completions, notifications
  • Streamable HTTP + SSE transports
  • Resource subscriptions with 4 filter scopes (all, subject, session, CEL)
  • MCP Tasks — background execution, polling, cancellation, results

Identity-first

  • 5 identity plugins — api-key, basic, mtls, oidc, workload (SPIFFE)
  • mTLS with client cert validation + per-SPIFFE-ID attribute stamping
  • OIDC with SSRF guard, JWKS refresh circuit breaker, multi-provider
  • Policy engines compose: Cedar, OPA, Casbin — stack obligations + redactions

Composable

  • Plugin chain at every decision point: identity, authz, tool-gate, transforms
  • Hot-reload bundles, secret watchers, SPIFFE trust bundles
  • Compose policy across tool/prompt/resource calls
  • Per-tool circuit breakers, response caches, rate limits

Observable

  • Per-call samples streamed to control plane (BLAKE3 error hashing)
  • Prometheus metrics + OpenTelemetry tracing native
  • Structured JSON logging with credential redaction (15+ patterns)
  • Tamper-evident audit ledger with Ed25519 signatures
Bindings

Wrap any upstream as an MCP tool.

The gateway speaks MCP inbound. Bindings translate to whatever your tools speak — HTTP, gRPC (proto-less JSON), GraphQL, NATS, Kafka, subprocess, multi-step pipelines.

HTTP
REST, JSON-RPC, OpenAPI-driven dispatch
gRPC
Proto-less JSON↔gRPC translation
GraphQL
Query / mutation dispatch with variables
NATS
Request/reply + queue groups
Kafka
Request/reply with topic resource watches
Subprocess
stdio commands as MCP tools
Pipeline
11-step orchestration with branching
Mock
Fixtures for tests without upstreams

Plug it into anything.

The gateway is the runtime. The control plane is optional. Run a single instance for one team, or operate fleets with the CP and the K8s operator.