Skip to main content

Why a Registry + Connect Authority Beats a Gateway

· 4 min read

In the world of MCP (Model Context Protocol), two architectural patterns often come up for discussion: using a Registry as a Connect Authority versus deploying a traditional Gateway. While both approaches aim to manage and secure connections between clients and servers, they do so in fundamentally different ways.

In this article, we will explore why the MCP Registry + Connect Authority model often outperforms the traditional Gateway approach.

A gateway centralizes runtime traffic. A connect authority centralizes permission.
Considering that the HAPI MCP servers already enforce auth, policy, rate limits, and observability, a proxy gateway is mostly cost and risk.

tip

Aren't MCP Servers already proxying traffic to backends?

Here's the "Why Registry + Connect Authority beats a gateway" comparison chart that breaks down the key dimensions:

Why Connect Authority beats a traditional MCP Gateway

DimensionTraditional MCP Gateway
<<proxy data-plane>>
Registry + Connect Authority
<<descriptor + direct connect>>
Why it wins
What it isOne endpoint that proxies MCP trafficRegistry issues permission to connect, traffic goes direct to serverYou get control without becoming the hot path
Traffic pathClient → Gateway → ServerClient → Server (after descriptor)No latency tax, no bandwidth bottleneck
ScalingMust scale for all requestsScales for connect issuance onlyControl-plane load is tiny vs data-plane load
Reliability blast radiusGateway outage = everything breaksRegistry outage affects new connects; existing sessions can continue (depending on TTL/refresh model)Fewer "all systems down" moments
Security boundaryCentralized, attractive targetDistributed enforcement at HAPI servers; Registry only governs connectsSmaller attack surface, less sensitive runtime exposure
Moderation / revocationUsually possible, but requires proxying or complex routingStop issuing descriptors → no new sessions; refresh → hard cut-offRuntime-effective moderation without proxy
Auth terminationOften at gateway (adds complexity + secrets)At HAPI server (already your design)Keeps secrets and policy where they belong
Policy / RBACCentralized policy engine neededEnforced by HAPI; descriptor may carry hints (optional)No duplicated policy stack
Rate limitingCentral choke point; risks noisy-neighborPer-server / per-tenant at HAPIBetter isolation and fairness
ObservabilityCentralized, but expensive and noisyHAPI produces real runtime telemetry; Registry logs issuanceSignals are cleaner and cheaper
Multi-tenancyRequires strict separation at gatewayNatural with per-tenant descriptors + HAPI enforcementTenant governance without a monolith
Data privacyGateway can see payloads (risk)Registry never sees tool payloadsBig win for trust + compliance
Implementation complexityMedium-to-high (proxy, routing, retries, SSE quirks)Low-to-medium (issue token + validate token + refresh)Fewer moving parts, fewer outages
Vendor lock-in riskOften higher (gateway semantics creep)Lower (descriptor is portable, servers remain standard)You can swap implementations later
Best fitCentralized platform teams who want full proxy controlEcosystems + enterprises that want governance without data-planeScales socially and technically

When you still want a gateway

Well, sometimes a gateway is still useful.
You may still want a proxy gateway when you need:

  • protocol bridging (stdio ↔ HTTP) - stdio is legacy and we enforce HTTP natively, stdio is not supported
  • multi-protocol consolidation (gRPC + HTTP + websockets)
  • deep traffic transformation (e.g., SOAP ↔ REST)
  • deep payload inspection / transformation
  • single endpoint requirements for legacy network constraints
  • centralized caching of tool results (rare)

But for streamable HTTP only + HAPI enforced servers, the connect authority model is the cleaner default.

With that said, you can always pair both patterns: use the Registry as a Connect Authority and deploy gateways where needed. They're not mutually exclusive. What matters is that you separate permission (Registry) from enforcement (HAPI servers), and avoid becoming a fragile, high-risk data-plane bottleneck.

What about you? Have you used either pattern? Share your experiences in the comments!

Be HAPI, and stay tuned for more MCP architecture deep dives. Go Rebels! ✊🏼