Skip to content
GuideAI Security
Xither Staff7 min read

Enterprise MCP

Evaluating MCP Gateways: Buy Against the Specification, Not the Feature Grid

An MCP gateway's real job is to enforce, at your boundary, controls the Model Context Protocol already makes mandatory. That makes the strongest evaluation questions conformance questions with verbatim answers in the spec — not feature questions, where every vendor says yes. The current revision also changed the session model and deprecated a registration mechanism, so shortlists assembled from 2025 material are testing for the wrong things.

In this guide · 8 steps
  1. 01Why the feature grid fails here
  2. 02What changed in the current revision
  3. 03Eight conformance questions with answers already written
  4. 04Build, buy, or defer
  5. 05Where a gateway is the wrong instrument
  6. 06Reading what vendors disclose — and what they leave out
  7. 07Questions buyers actually ask
  8. 08The takeaway

An MCP gateway sits between your agents and your systems and enforces who may call which tool, under whose identity, with what left behind in the audit log. Most of what it should enforce is already mandatory in the Model Context Protocol specification. So evaluate gateways on conformance, not features: the spec supplies the correct answers before any vendor call.

2026-07-28

The current MCP protocol revision. Revisions are dated by the last backwards-incompatible change, so an evaluation checklist assembled from earlier material is not merely dated — it may test for guarantees the protocol no longer makes.[^mcp-versioning]

MCP specification — Versioning

MUST NOT

The specification's language on token passthrough: MCP servers "MUST NOT accept any tokens that were not explicitly issued for the MCP server." This is the single highest-value conformance question in an MCP evaluation, and it has a binary answer.[^mcp-security]

MCP specification — Security Best Practices

Stateless

The protocol's current position: MCP "is stateless and has no protocol-level sessions." Servers needing continuity mint an explicit handle passed back as an ordinary tool argument — and "MUST NOT treat possession of a state handle as authentication."[^mcp-security]

MCP specification — Security Best Practices

1. Why the feature grid fails here

Run a normal gateway bake-off and you will build a matrix with rows like "RBAC," "audit logging," "SSO," and "OAuth support." Every serious vendor will tick every row. The matrix produces no ranking because the rows are not discriminating — they are category table stakes, phrased at a level of abstraction where nobody can fail.

The MCP specification is unusually generous to buyers here, because it does not describe capabilities in the abstract. It states obligations in RFC 2119 language — MUST, MUST NOT, SHOULD — attached to named mechanisms with named standards behind them. "Do you support OAuth?" is a row every vendor ticks. "Do you validate that inbound tokens carry your gateway in the audience claim, and reject those that do not?" is the same subject rendered falsifiable. One of those questions sorts a shortlist.

The reframe

Stop asking what the gateway can do and start asking what it refuses to do. Every control worth buying is visible as a rejection: a token without the right audience is rejected, a state handle presented by the wrong principal is rejected, an authorization response whose issuer does not match the recorded one is rejected. Vendors describe capabilities readily and refusals rarely, which is exactly why refusals discriminate.

2. What changed in the current revision

MCP moves fast enough that a shortlist assembled six months ago can be testing for guarantees the protocol has since restructured. Three changes in the current revision matter directly to how you evaluate a gateway, and each one invalidates a question you might otherwise have asked.

AreaEarlier revisionsCurrent revision (2026-07-28)What this does to your evaluation
Session modelServer-assigned session IDs, with a "Session Hijacking" attack class and guidance on binding session IDs to usersMCP "is stateless and has no protocol-level sessions"; the attack class is now "State Handle Hijacking" over explicit, tool-argument handles[^mcp-security]"How do you secure MCP sessions?" is now a question about a construct the protocol no longer defines. Ask instead how handles are bound server-side to the authenticated principal.
Client registrationDynamic Client Registration (RFC 7591) as a supported mechanism alongside pre-registrationClient ID Metadata Documents are the SHOULD-support mechanism; Dynamic Client Registration is "deprecated and retained for backwards compatibility"[^mcp-authz]A gateway whose onboarding story rests on Dynamic Client Registration is building on a deprecated path. Ask which mechanisms it supports and what its migration plan is.
Authorization responsePKCE and state validation, without issuer identificationClients MUST apply RFC 9207 issuer validation before sending an authorization code to any token endpoint; servers SHOULD emit `iss`, an obligation the spec says is expected to become MUST[^mcp-authz]A new, checkable control that predates most gateway marketing. Ask whether the gateway records the expected issuer before redirecting and compares it on return.
Changes in the current MCP revision that alter what a buyer should be testing for. Sourced from the specification's own revision pages.

The pattern across all three is the same: the protocol tightened its identity guarantees and removed an implicit one. A gateway built against the older model is not necessarily insecure, but it is answering a question the specification has stopped asking — and that gap is precisely what a conformance-led evaluation surfaces and a feature grid hides.

3. Eight conformance questions with answers already written

Each row below pairs a normative requirement from the specification with the procurement question it licenses. The middle column is the standard the vendor is being measured against; you are not asking for an opinion, you are asking whether a documented obligation is met. Answers that arrive as "yes, we support OAuth" to a question about audience validation are themselves informative.

ControlWhat the specification requiresWhat to ask the vendor
Token audience validationMCP servers "MUST validate that access tokens were issued specifically for them as the intended audience" and "MUST only accept tokens that are valid for use with their own resources"[^mcp-authz]Show us the rejection path. What happens to a well-formed, unexpired token issued for a different resource?
No token passthrough"MCP servers MUST NOT accept any tokens that were not explicitly issued for the MCP server." Where the server calls upstream APIs it "MUST NOT pass through the token it received from the MCP client"[^mcp-security]When the gateway brokers a call to a downstream SaaS API, whose credential reaches that API, and where was it issued?
Protected Resource Metadata"MCP servers MUST implement OAuth 2.0 Protected Resource Metadata (RFC 9728)" and clients MUST use it for authorization server discovery[^mcp-authz]Does the gateway publish RFC 9728 metadata for the servers it fronts, or does it expect clients to be configured out of band?
Resource indicatorsClients "MUST implement Resource Indicators for OAuth 2.0 (RFC 8707)," including the `resource` parameter in both authorization and token requests, "regardless of whether authorization servers support it"[^mcp-authz]Does the gateway's client side send `resource`, and does its server side act on the audience binding that parameter creates?
Issuer validationClients "MUST apply the validation in RFC 9207 Section 2.4 before transmitting the authorization code to any token endpoint"; on mismatch the client "MUST NOT act on or display" the error fields[^mcp-authz]Where is the expected issuer recorded, and what is compared on the callback? Is comparison done without URI normalization, as the spec requires?
State handle bindingServers "MUST verify all inbound requests," "MUST NOT treat possession of a state handle as authentication," and SHOULD bind handles server-side to the authenticated user[^mcp-security]If an attacker obtains a valid workflow or cart handle belonging to another user, what stops them using it?
Per-client consentProxy servers "MUST implement per-client consent," maintain an approved `client_id` registry per user, and check it before forwarding to third-party authorization[^mcp-security]When a new agent client asks for access to an already-connected upstream, does a human see a consent screen naming that client?
Egress controlClients "MUST consider SSRF risks" when fetching OAuth-related URLs; they SHOULD block private and link-local ranges, and operators SHOULD consider an egress proxy[^mcp-security]The gateway fetches metadata URLs supplied by registered servers. What stops one pointing it at the cloud metadata endpoint?
Conformance questions derived from normative requirements in the MCP specification. The middle column is quoted from the spec pages cited; the right column is the procurement form of the same requirement.

4. Build, buy, or defer

Every requirement in the table above is something an in-house team could implement. The specification is public, the underlying mechanisms are ordinary OAuth, and organizations that already run an API gateway and an identity provider hold most of the pieces. So the honest build-versus-buy question is not whether you could build it, but whether the part you would be building is the part that is actually hard.

The hard part is rarely the first server. It is the tenth, and the governance surface around it: who approved this server's addition, which agents may reach which of its tools, whose identity is on the call when an agent acts, and how any of that is reconstructed six months later during an incident review. A gateway is a bet that this surface grows fast enough to be worth a dedicated control plane. If you are running one internal MCP server behind an existing API gateway, that bet is premature, and the specification's requirements are a checklist for your own implementation rather than a shortlist for procurement.

There is also a legitimate defer option that vendors will not raise. MCP is still changing shape — the current revision restructured the session model and deprecated a registration mechanism.[1][3] Signing a multi-year agreement against a protocol revision that may be superseded inside the contract term is a real risk, and the mitigation is contractual rather than technical: ask what the vendor commits to on revision support, and how quickly past revisions were adopted.

5. Where a gateway is the wrong instrument

Two honest limits are worth stating before anyone signs. First, conformance is a floor, not a grade. A gateway that meets every requirement above has met the minimum bar the protocol sets for any compliant implementation; it has not thereby proven it is well-operated, well-supported, or a fit for your topology. Conformance sorts a shortlist and eliminates the unserious. It does not pick a winner.

Second, and more consequentially: a gateway can only enforce what passes through it. The specification's most severe attack class for many organizations is local MCP server compromise, where a developer's client executes a downloaded server binary with the developer's own privileges — the spec's illustration is a startup command that exfiltrates an SSH key.[2] That traffic never touches a gateway. If your actual exposure is engineers wiring up local servers on laptops, the control you need is client configuration policy and endpoint management, and a gateway purchase will leave the real risk exactly where it was.

6. Reading what vendors disclose — and what they leave out

Enterprise MCP gateway pages are, at the time of writing, considerably less specific than the specification they implement. Reading the product pages of five enterprise gateway and control-plane vendors for our own catalog in August 2026, we found the same vocabulary throughout — role-based access control, audit trails, SSO, OAuth — and, across all five, no statement of which protocol revision the product targets and no mention of the audience-validation or issuer-validation requirements above. That is an observation about five pages on one date, not a market survey; the point is that the specific questions in this guide were not pre-answered by any of the marketing we read.

Treat that silence as information rather than as a defect. A page that does not mention deployment topology has not promised on-premise availability; a page that does not name a certification has not claimed one. The practical discipline is to record, per vendor, both what the page states and what it conspicuously does not, and to carry the second list into the vendor call as your agenda. A conformance question that a vendor cannot answer in the call is a finding, and it is a finding you obtained before signing rather than after.

On vendor-stated compliance

SOC 2, HIPAA and similar attestations that appear on a product page are vendor-stated claims about the vendor's own organization. They are not statements about MCP conformance, and they are not independent verification of anything in the table above. Ask for the report; treat the page as a pointer to a document, never as the document.

7. Questions buyers actually ask

Do we need a gateway if we run only one MCP server?

Probably not yet. One server behind an existing API gateway and identity provider is a configuration problem, not a control-plane problem. Use the conformance table as a checklist for your own implementation and revisit when the count grows or when servers start being added by teams outside your own.

Is MCP conformance the same as being secure?

No. Conformance is the floor the protocol sets for any compliant implementation. It eliminates the unserious and gives you falsifiable questions; it says nothing about operational maturity, support quality, or fit with your topology. Treat it as a filter applied before the real evaluation, not as the evaluation.

Does an MCP gateway replace our API gateway?

Generally not. They govern different traffic and different identities: an API gateway mediates service-to-service calls, while an MCP gateway mediates an agent's tool access on behalf of a user. Some vendors offer both in one product. Ask which component enforces which control rather than assuming consolidation.

What if a vendor targets an older protocol revision?

It is a question, not a disqualification — but ask it explicitly, because most product pages do not state a revision at all. Establish which revision the product targets, how quickly the vendor adopted past revisions, and what they commit to for future ones. A vendor who cannot name a revision has told you something.

8. The takeaway

The reason to lead with conformance is not pedantry about standards. It is that this is a young category where marketing vocabulary has converged faster than implementations have, and the specification is the only shared, dated, falsifiable reference the whole market is measured against. Buying against it costs nothing, requires no benchmark you have to trust someone else to run, and produces questions vendors cannot answer generically.

Before the vendor call

  • Confirm which MCP protocol revision the vendor targets, and check it against the current revision named on the specification's versioning page
  • Convert each MUST in the table above into a question phrased as a rejection: what gets refused, and how would we observe the refusal?
  • Ask specifically about token audience validation and token passthrough — these are MUST NOT requirements with binary answers
  • Establish whether registration relies on Dynamic Client Registration, now deprecated, and what the migration path is
  • Ask where the expected issuer is recorded and how it is compared on the authorization callback
  • Map your actual exposure first: if the risk is local servers on developer laptops, a gateway does not address it
  • Record, per vendor, what the product page does NOT state — that list is the agenda for the call
  • Treat every compliance badge as a pointer to a report you should request, not as verification

Sources

Every quantitative or attributed claim above is linked to a primary source. Last verified at publication.

  1. [1]
    Versioning — Model Context Protocol specification
    Model Context Protocol · accessed
  2. [2]
  3. [3]
Steps8