The structural gap

A gateway sees the traffic you route through it. Nothing else.

Two things are true of nearly every MCP gateway, whatever the vendor. First, it governs by position: tool filtering, allowlists, and logging apply to calls that pass through it, and an agent with a direct connection, a leftover config, or its own API keys is simply outside the perimeter. Second, it usually does not own the secrets. The credentials the MCP servers use still live somewhere, in the server's environment, in a config file, sometimes on the agent host itself, and whoever can reach them can act without the gateway ever knowing.

Neither of those is a design flaw. They are what a gateway is. But they mean the control is positional rather than anchored: move around the position and the control is gone. AgentValet anchors the control to the credential instead. The secret exists only inside the broker's vault, sealed with envelope encryption and decrypted in memory for one call at a time. There is no routed and unrouted traffic, because unrouted traffic has nothing to authenticate with.

MCP gateway · governs by position
agent gateway: catalogue · filter · log mcp server credential in env or config real platform

The credential still exists outside the control point. Any path that reaches it skips the governance.

AgentValet · governs by custody
agent broker: identity · scope · approval credential unsealed in memory real platform

The credential never leaves the vault except in memory, per call. No route to the platform exists without the broker.

Side by side

Gateway features, broker guarantees.

AgentValetTypical MCP gateway
Primary jobCredential custody and enforcement on the real platform call.Central catalogue, tool filtering, rate limits, logging for MCP traffic.
Where the secrets liveIn the vault only. Envelope-encrypted, unsealed in memory per call, never sent to the agent.With the MCP servers or the agent host: env vars, config files, mounted secrets.
CoverageEvery call, because an agent without the broker has no credential.The traffic you routed through it.
MCP supportBoth directions: paste any MCP server URL and it becomes a governed platform with its tools as grantable scopes, and AgentValet exposes its own hosted MCP endpoint over OAuth 2.1.Fronts MCP servers; agents connect to the gateway instead of each server.
Per-agent identityAn RS256 keypair per agent; every audit row is attributable to one named agent.Varies: often API keys or shared tokens per client.
Human approval Risky calls pause at the broker for out-of-band approval before they execute.Rarely; filtering is typically allow-or-deny at config time.
AuditAppend-only at the database level, recording the executed action and the policy version that allowed it.Request logs, mutable like any log store unless you harden them.
RevocationRevoke the agent and the next call fails closed. No secrets to rotate.Deregister the client, then rotate every credential it might have seen.
Related question

Is an LLM gateway the same thing?

No, and the difference matters for this comparison. An LLM gateway (Tenure, LiteLLM, Portkey and similar) proxies the model call: your app talks to it instead of the LLM provider, and it can filter tools before inference and screen the tool calls that come back. An MCP gateway proxies the tool call: it sits between agents and MCP servers. Both are positional controls, and both leave the platform credentials in someone else's hands. If the model-call side is the comparison you wanted, the Tenure page covers it properly.

Worth repeating for both: these tools are complements, not rivals, once the keys are out of reach. A gateway for catalogue and cost control in front, a broker holding the credentials behind. The layers stack because they never touch the same seam.

Put the keys somewhere an agent can't hold them.

Bring one MCP server URL and one agent. The free tier will vault the token, turn the server's tools into grantable scopes, and show you the first audit row within minutes.