Why this distinction matters in 2026
When enterprises in 2026 evaluate agent infrastructure, the most common confusion is treating registries and gateways as interchangeable components that can ship in the same product slot. They are not the same thing, and conflating them introduces real holes.
The failure modes are different. The security surface is different. The governance requirements are different. This article draws the line, covers the three places they overlap, and connects back to the orchestration problem both are trying to solve. For the broader treatment of why the orchestration layer is non-negotiable, see The Agent Orchestration Layer.
The registry: catalog plane
The agent registry is the source of record for the agents and MCP servers that exist, what capabilities each supports, who owns each one, and who is allowed to call each one. Identity, capability schema, access policy, versioning, ownership. The capability schema itself is what makes the registry usable at runtime: a typical entry carries an agent_id, a version string (semver, with the previous active version retained for rollback), a tools array where each tool advertises a JSON Schema for its arguments and a returned-type contract, and a policy_ref pointing at the access policy currently bound to that version. The tool half of that shape is not our invention — the MCP tools specification defines a tool as a name, an optional title, a description, an inputSchema that "MUST be a valid JSON Schema object (not null)", an optional outputSchema, and optional annotations. When the registry approves a new version, those four fields are what the gateway reads on the next call to decide whether an incoming invocation matches the surface the registry now advertises.
One reason the registry cannot simply trust what an agent submits: the same specification warns that "clients MUST consider tool annotations to be untrusted unless they come from trusted servers," and notes that tool-name uniqueness is scoped to a single server, so anything aggregating tools across servers "SHOULD implement a disambiguation strategy such as prefixing tool names with a server identifier." Establishing which servers are trusted, and owning the namespace that disambiguates them, is catalog-plane work.
The registry is not a broker or an intermediary in the invocation path. It exists as a catalog every interested component queries to gather information. Each entry provides an audit foundation that lets invocations be traced.
The single question the registry answers: does this agent exist and am I using it correctly?
The gateway: data plane
The agent gateway is where enforcement happens — at the invocation point, between the orchestrator / LLM and the registered agents and MCP servers. It handles authentication, authorization, routing, rate limiting, and circuit breaking. It generates the per-call observability record: the resolved MCP tool, the resolved arguments, the resolved result, the agent version that served the call, and the policy snapshot the gateway used to authorize it.
That is a policy enforcement point in the sense the access-control literature already uses. NIST's glossary defines a policy enforcement point as a component that "enforces policy decisions in response to a request from a subject requesting access to a protected object; the access control decisions are made by the policy decision point" — and, in the CNSSI wording carried in the same entry, as "a system entity that requests and subsequently enforces authorization decisions." The registry/gateway split is that split. NIST SP 800-207, Zero Trust Architecture (August 2020) applies the same decomposition to network access, which is why zero-trust reviewers usually recognize this architecture on sight.
The vendor implementations name the same jobs. AWS describes Amazon Bedrock AgentCore Gateway as "a fully managed AI gateway that provides a single, secure entry point for agentic traffic" that "converts APIs, Lambda functions, and existing services into Model Context Protocol (MCP)-compatible tools," and states that it "is the only solution that provides both comprehensive ingress authentication and egress authentication in a fully managed service" in its developer guide. Its capability list is a data-plane list: Security Guard, Translation, Composition, Secure Credential Exchange, Semantic Tool Selection, Infrastructure Manager.
The single question the gateway answers, per invocation: should this particular call actually happen right now?
Side-by-side: what each plane answers
Five questions show where the two planes diverge — and why neither can stand in for the other.
| Question | Registry (catalog plane) | Gateway (data plane) |
|---|---|---|
| What exists? | Source of record for every registered agent and version | Consults the registry's view at call time |
| Should this invocation run right now? | Out of scope — registry only describes what is allowed in principle | Decided per call against current policy and identity |
| What does the audit record contain? | Approval state at the moment of registration | Resolved call record (tool, arguments, result, agent version, identity) |
| Where does a policy change land first? | Authored here when an agent or version updates | Picked up on the next call after the registry update |
| What fails if this plane is missing? | Gateway loses source of truth and drifts to whatever was loaded last | Registry intentions are never enforced at runtime |
Security governance: what the combined layer protects
Neither the registry nor the gateway alone covers enterprise security requirements. Three properties depend on both planes being co-designed.
- 01
Access policy without enforcement is a document
The registry defines which agent can invoke which other agent and which user roles are authorized. The gateway executes that policy as a runtime decision. A registry without a gateway is a directory of intentions; a gateway without a registry has no source of truth for what to enforce, so it falls back on whatever was loaded last.
- 02
Both planes must be attributed in the audit record
A complete audit record includes the gateway side (who invoked, what version of the agent ran, which MCP tools were called, with what inputs) and the registry side (which version was current and what policy was in effect at the moment of the decision). Without attribution from both, the audit is either raw logs without semantic meaning, or registry snapshots without corresponding invocations. The gateway half has a standard vocabulary: OpenTelemetry's GenAI semantic conventions define
gen_ai.tool.name,gen_ai.tool.call.id,gen_ai.tool.type,gen_ai.agent.id,gen_ai.agent.name, and agen_ai.operation.namewhose well-known values includeexecute_toolandinvoke_agent. The MCP specification's own security guidance is blunter still: clients SHOULD "log tool usage for audit purposes." - 03
Policies must propagate ahead of time
When access is revoked or an agent deprecated, there is a window between the registry update and the gateway enforcing the new state. Real-time propagation is a baseline security property, not a performance optimization. Stale policy enforced past its revocation window is a security incident in slow motion.
Three additional governance properties — traceable identity, enforced approval gates, blast-radius control — also depend on the combined layer. We cover them in the orchestration article. Governance is not a separate plane bolted on top of an orchestration stack; governance is what makes the orchestration stack trustworthy enough to run production code.
Two questions that reveal whether a vendor has both
Most vendor decks list the same features. The two questions below cut through the feature parity and expose the architecture.
- 01
Deprecation propagation
If you deprecate an agent version in the registry right now, how long until the gateway stops routing invocations to it? The right answer is real-time, or at the next call. Anything that includes a sync interval, a cache TTL, or a manual cache flush exposes a window where the gateway is enforcing a state the registry has retired.
- 02
Access revocation
If you revoke a user's access in the registry right now, how long until the gateway stops authorizing their invocations? Same question, same correct answer. If the answers differ for these two scenarios, you are looking at two products with different sync semantics, not a unified control plane.
How Jarvis Registry implements both
Jarvis Registry is a unified registry and gateway, not two products synced together. The catalog and data planes share schemas and policy objects. It indexes A2A agents, MCP providers, and external providers like AWS AgentCore and Azure AI Foundry as part of a federation layer. Both of those carry their own catalog semantics that a federation layer has to read: AgentCore Gateway composes "multiple APIs, functions, tools, agents, and model providers behind a single endpoint" and supports "OpenAPI, Smithy, and Lambda as tool input types" per the AWS developer guide, while Microsoft Foundry Agent Service gives each agent "a dedicated Microsoft Entra identity," snapshots versions automatically, and publishes agents into the Entra Agent Registry per Microsoft Learn. Access policy, capability schema, and version information are stored in one place and read by the gateway in real time at call evaluation.
The product registers as the unified MCP endpoint that Jarvis Chat, Claude Desktop, Claude Code, VS Code, Cursor, GitHub Copilot, Microsoft Copilot, Windsurf, and ChatGPT all connect to. From the client's perspective there is one MCP server. Behind it Jarvis Registry is brokering invocations across providers, with one audit trail and one policy surface.
Deprecation in the registry takes effect in the gateway on the next call. Access policy revocation does the same. The per-call audit record names the registry version and the policy configuration in effect at the moment of the call — eliminating the post-hoc reconciliation that splits the registry-gateway-as-two-products architecture.
Governance is not an additional layer tacked on. Governance is the system.
References
Primary sources behind the protocol and vendor claims in this article. All URLs verified August 2026.
| Source | URL |
|---|---|
| Model Context Protocol — Tools (revision 2026-07-28): tool definition, inputSchema JSON Schema requirement, untrusted annotations, audit logging guidance | modelcontextprotocol.io/specification/2026-07-28/server/tools |
| Model Context Protocol — Authorization: resource-indicator and audience-validation requirements | modelcontextprotocol.io/specification/draft/basic/authorization |
| RFC 8707 — Resource Indicators for OAuth 2.0 (February 2020) | rfc-editor.org/rfc/rfc8707 |
| RFC 9728 — OAuth 2.0 Protected Resource Metadata | rfc-editor.org/rfc/rfc9728 |
| NIST Computer Security Resource Center — glossary entry, "policy enforcement point" | csrc.nist.gov/glossary/term/policy_enforcement_point |
| NIST SP 800-207 — Zero Trust Architecture (Rose, Borchert, Mitchell, Connelly; August 2020) | csrc.nist.gov/pubs/sp/800/207/final |
| OpenTelemetry — GenAI spans convention (gen_ai.tool.*, gen_ai.agent.*, gen_ai.operation.name) | github.com/open-telemetry/semantic-conventions-genai — gen-ai-spans.md |
| Model Context Protocol — Versioning: per-request protocol version declaration, accepted or rejected independently per request | modelcontextprotocol.io/specification/versioning |
| Model Context Protocol — Feature Lifecycle and Deprecation Policy: twelve-month minimum deprecation window, ninety-day expedited-removal floor | modelcontextprotocol.io/community/feature-lifecycle |
| AWS — Amazon Bedrock AgentCore Gateway developer guide | docs.aws.amazon.com/bedrock-agentcore/latest/devguide/gateway.html |
| AWS — AgentCore Gateway rate limit best practices: 30-second propagation window, fail-open behaviour | docs.aws.amazon.com/bedrock-agentcore/latest/devguide/gateway-rate-limits-best-practices.html |
| Microsoft Learn — Quotas and limits for Microsoft Foundry Agent Service: 1,000 valid agent revisions, terminal HTTP 400 at the cap | learn.microsoft.com/en-us/azure/foundry/agents/concepts/limits-quotas-regions |
| Microsoft Learn — What is Microsoft Foundry Agent Service? (agent identity, version snapshots, Entra Agent Registry) | learn.microsoft.com/en-us/azure/foundry/agents/overview |
Common questions
-
What is the difference between an agent registry and an agent gateway?
The registry is the catalog plane: source of record for which agents exist, what they do, who owns them, who can call them, and what version is current. Out of the call path. The gateway is the data plane: in the call path, enforcing authentication, authorization, routing, and observability for every invocation. Different planes, different failure modes, different vocabularies. Both are required for governed agentic AI in 2026. -
Can I buy a registry without a gateway, or vice versa?
You can. We do not recommend it. A registry without a gateway is a directory of agents nobody is enforcing access to. A gateway without a registry is enforcing whatever policy was last loaded into it, with no source of truth for whether the policy is current. Both shapes pass a basic demo and fail the first audit. The architectural answer is one product where both planes share schemas, policy objects, and version reference. -
How do registries and gateways interact with the orchestration layer?
The orchestration layer sits above both. It uses the registry to discover which agents and MCP servers exist (and what they can do); it relies on the gateway to enforce the access policy on each invocation it triggers. The orchestration layer itself owns workflow lineage, logic-step semantics, approval gates, bounded autonomous agent pools, and the tool-level audit. The full breakdown is in /agent-registry/agent-orchestration-layer/. -
What are the diagnostic questions that catch a vendor pretending to have both?
Two. First: if you deprecate an agent version in the registry now, how long until the gateway stops routing invocations to it? Second: if you revoke a user's access in the registry now, how long until the gateway stops authorizing their invocations? The right answer to both is real-time, or at the next call. Any sync interval, cache TTL, or manual flush exposes the registry-gateway split as two products with reconciliation between them, not a unified control plane. -
Where does Jarvis Registry fit in this architecture?
Jarvis Registry is a unified registry and gateway in one product. The catalog plane and the data plane share schemas, policy objects, and version reference, so deprecation and revocation propagate on the next call rather than the next sync. Federates across AWS AgentCore, Azure AI Foundry, Cloudflare MCP Server Portals, and self-hosted MCP and A2A servers. Connects Jarvis Chat, Claude Desktop, Claude Code, VS Code, Cursor, GitHub Copilot, Microsoft Copilot, Windsurf, and ChatGPT through one MCP-compatible endpoint.