---
title: "MCP Gateway: Federate, Secure & Govern MCP Servers"
description:
  "Federate remote MCP servers behind one spec-compliant gateway. Verified identity on every call: a bundled OAuth 2.1 authorization server, first-class IdP integrations, per-tool authorization, and audit logs for the MCP you ship and the MCP your teams use."
canonicalUrl: "https://zuplo.com/mcp-gateway"
sourceUrl: "https://zuplo.com/mcp-gateway"
pageType: "product"
generatedAt: "2026-11-10"
---

# One gateway for every MCP server your agents touch.

> Ship MCP to your customers. Govern the MCP your teams use. Same gateway, same OAuth server, same audit trail.

## Know who's behind every call

Most AI gateways trust whatever the caller claims. Zuplo verifies it — and you never build or run an auth server.

- **One click to connect** — A full OAuth server is built in. Customers click Connect — you build nothing.
- **Auth works on the first try** — Agents negotiate auth automatically — no setup guides, no support tickets.
- **A leak stops at one server** — A token for one MCP server is rejected at every other.
- **Your login, not another one** — Users sign in with the account they already have — any identity provider.
- **Cross-App Access (ID-JAG)** (IETF draft) — Your IdP brokers agent access to upstream servers — Zuplo is a named Okta launch partner.

**Sign in with what you already run:** Okta, Microsoft Entra ID, Auth0, Google, Clerk, WorkOS, Amazon Cognito, Keycloak, Logto, OneLogin, PingOne, any OIDC provider.

**For your security review:** OAuth 2.1, PKCE S256, DCR · RFC 7591, CIMD, RFC 8414, RFC 9728, RFC 8707, RFC 7009.

[Explore the auth docs](https://zuplo.com/docs/mcp-gateway/auth/overview)

## Federate remote MCP servers behind one gateway

Yours or third-party — you choose what each one exposes.

## Wire up a virtual MCP server

Stripe, Linear, GitHub, Atlassian, or your own — configured alongside the routes you already have.

The library includes: Stripe, Linear, Notion, GitHub, Atlassian, Cloudflare, Vercel, PayPal, Sentry, Asana, Intercom, Webflow. Setup steps: Upstream, Upstream Auth, Tools, Inbound Auth.

## Scope which tools each team — and each user — can call

Access is decided by policy on every call — not by scopes baked into tokens.

- **Expose only what you choose** — Hidden tools stay blocked — even when a client calls them by name.
- **Fine-grained when you need it** — Decide which user can call which tool on which resource — via OpenFGA, AuthZEN, or Okta FGA.
- **Your rules, in code** — When the rules are yours alone, write them in TypeScript.

## Use MCP Gateway externally to productize, or internally to govern

The MCP you ship to customers and the MCP your team uses — one gateway covers both.

- **External — Ship MCP to customer agents:** Customers connect from Claude or ChatGPT with real sign-in, a curated catalog, and an audit trail.
- **Internal — Govern the MCP your team uses:** Linear, GitHub, and internal servers behind one URL — IT keeps visibility without slowing anyone down.

## Put your first MCP route in production this week

Start free and wire up your first upstream in minutes — or get a guided demo for your architecture.

## See everything your agents do

Every session, tool call, and sign-in — in Zuplo or the dashboards you already watch.

- **Nothing happens off the books** — Every request, tool call, and sign-in lands in Datadog, New Relic, or Splunk.
- **Answers without stitching** — Who, which client, which tool, how long, what failed — in every log row.
- **No opaque 500s** — Every failure returns a documented code that tells clients how to recover.

## Whose credentials hit the upstream?

Pick per route, mix freely across your fleet, and switch without a redeploy — per-user attribution stays in the audit log either way.

- **OAuth — Each user brings their own login:** Users sign in to the upstream themselves; the Gateway handles their tokens.
- **OAuth — One OAuth grant for the whole gateway:** Connect once for every user — the audit log still knows who did what.
- **API key — A unique secret per user, vault-stored (Roadmap):** Every user gets their own vaulted key — rotated without a redeploy.
- **API key — One shared secret, rotated centrally:** One vaulted key for every call. Rotate it once — no client changes, no leaks.

## Hardened before your first request

The defaults that get an MCP gateway through a security review — already on.

- **Bad requests die at the edge** — Malformed and rogue-client calls are rejected before they touch an upstream.
- **Tokens checked first** — Verified before the upstream sees a byte; bad calls get a clean 401.
- **Logins can't be hijacked** — Every authorization is signed, single-use, and expiring — nothing to replay.
- **Secrets stay sealed** — Upstream credentials live encrypted in a vault, decrypted only at request time.
- **Runaway agents hit a ceiling** — Default limits on size and time keep one misbehaving agent from taking you down.

## FAQ

### What is an MCP gateway?

An MCP gateway is a control plane that federates, authenticates, and governs multiple Model Context Protocol servers behind one spec-compliant gateway, with an OAuth-protected route per upstream server. Where an MCP server exposes one set of tools to AI agents, an MCP gateway sits in front of many (yours and remote third-party ones), handling OAuth, credential brokering, virtual-server composition, and observability across all of them. Zuplo's MCP Gateway implements the 2025-11-25 MCP spec over streamable HTTP.

### What is the difference between an MCP server and an MCP gateway?

An MCP server exposes a single set of tools, prompts, and resources to AI clients. That's what you build when you turn an API into MCP. An MCP gateway sits in front of many MCP servers, yours and third-party, and adds a shared OAuth authorization server, upstream credential brokering, virtual-server composition, governance, and observability across all of them. Zuplo ships both: use MCP Server when you're exposing one set of tools, MCP Gateway when you're running many.

### Which MCP spec version does the Gateway implement?

The latest 2025-11-25 spec, over streamable HTTP. Tools, prompts, and resources are first-class MCP primitives; GraphQL operations can also be exposed as MCP tools alongside REST. Any spec-compliant client connects: Claude Desktop, Claude Code, Cursor, ChatGPT (as a custom connector), VS Code, and MCP Inspector all work out of the box.

### Can I use MCP Gateway externally, internally, or both?

Both, and most teams use it for both. Externally, API teams expose tools to customer AI agents: Stripe-style productized MCP for your platform. Internally, IT and security teams put one gateway in front of approved internal and third-party MCP servers, so employees connect Claude, Cursor, and ChatGPT through one governed control plane. Same product, same OAuth server, same audit trail.

### What OAuth does the MCP Gateway support?

A complete OAuth 2.1 authorization server is bundled by default, on every plan. AI clients onboard themselves with Dynamic Client Registration (RFC 7591) or Client ID Metadata Documents; PKCE S256 is required as the MCP spec mandates. The Gateway publishes authorization-server metadata at .well-known/oauth-authorization-server (RFC 8414) and protected-resource metadata at .well-known/oauth-protected-resource (RFC 9728), so MCP clients discover exactly which scopes apply per virtual server. Tokens are bound to a specific virtual server via RFC 8707 resource indicators, so a token issued for one virtual server is rejected at another, and RFC 7009 revocation is built in. Auth0, Okta, Microsoft Entra ID, Clerk, WorkOS, Amazon Cognito, Google, Keycloak, Logto, OneLogin, and PingOne ship as first-class integrations, plus generic OIDC for any other provider.

### How do I federate a remote MCP server through the Gateway?

Bind any route to an upstream MCP server and pick a credential model. Today the gateway ships per-user OAuth (each end-user logging in to the upstream themselves), a shared gateway-wide OAuth grant, and a single shared API key in the encrypted vault. Per-user API keys are on the roadmap. All configured in JSON alongside your existing routes.

### What ships in production hardening by default?

Bearer token validation with spec-compliant WWW-Authenticate challenges pointing at the protected-resource metadata, CSRF-safe OAuth state, encrypted upstream credentials at rest, and sensible default ceilings on tool argument size, capability count, timeout, and response size. Compose prompt-injection or PII scanning as additional inbound policies when you need them. Off-the-shelf defaults you can ship through a security review.

### What does observability look like?

Typed analytics events cover the MCP request lifecycle, capability invocations (tools, prompts, resources), and the full upstream OAuth flow. Structured logs carry trace-ready metadata like tenant, user, client, capability, latency, and failure origin, ready to drop into Datadog, New Relic, or Splunk. Every failure mode returns a documented problem code so MCP clients know exactly what went wrong and how to recover.

## Next steps

Your MCP Gateway, in production today. OAuth, governance, and audit logs on by default. Free to start — no sales call.

- [Start for Free](https://portal.zuplo.com/signup)
- [Get an MCP Demo](/schedule-call)
- [Read the Docs](https://zuplo.com/docs/mcp-gateway/introduction)
