Enterprise MCP Gateway Architecture
Abstract
The Model Context Protocol (MCP) has become the de-facto interface for connecting LLM agents to enterprise tools, and adoption has been explosive: within a year, large organizations went from zero to dozens of internally built MCP servers. That speed created a governance crisis. Each team implemented authentication independentlysome with no auth, some with API keys, some with full OAuthproducing a fragmented landscape with no consistent way to authorize callers, track who did what, or offboard a departing employee across the fleet. This paper reports an industry deployment that resolves the crisis with a centralized _MCP gateway_ : a single aggregation, governance, and authentication layer that fronts every downstream MCP server. We make four contributions grounded in production experience. First, we present a **two-axis authentication model** that every MCP server must satisfy a _persona axis_ (interactive _user_ vs. automated _nonuser_ ) crossed with a _credential axis_ (no-auth, static/dynamic API key, authorization-code-with-PKCE over static/dynamic clients, client credentials, and platform app-context)all served through a single MCP endpoint. Second, we describe the **gateway authentication layer** itself, which supports three enterprise SSO grants (Authorization Code + PKCE, Device Code, and Resource Owner Password Credentials) and offers callers a choice of token-provisioning models: BringYour-Own-Token (BYOT), Generate-Your-Own-Token (GYOT), and full delegated OAuth via RFC 8693 token exchange. Third, we generalize **three end-to-end identity flows** User __ OAuth2, Non-user __ ServiceAccount, and User __ Service-Accountthat compose client, gateway, and server. Fourth, we document the **deployment evolution** from a CDN/WAF/edge perimeter to private MCP tunnels, and the design of enterprise-wide connectors that let an entire workforce share governed access to AI tools. The architecture is in production, fronting dozens of MCP servers across web, desktop, custom-SDK, and low-code clients.