Teams should use a broker when multiple clients, shared deployments, or restart resilience make direct per-server registration and in-memory sessions too fragile. A broker is the right pattern when the identity problem is coordination, not just connectivity. The tradeoff is that the broker must then be monitored, audited, and versioned as part of the access path.
Why This Matters for Security Teams
MCP client registration and session state become security decisions the moment more than one client, server, or workflow depends on them. A direct connection can be simple for a single integration, but it is fragile when teams need shared policy enforcement, replay protection, restart resilience, or centralized revocation. That is why brokered designs are not just an architecture choice, they are an identity and control-plane choice.
The real risk is that session state often becomes the hidden trust layer. If registration is scattered across clients or sessions live only in memory, teams lose auditability and make it harder to prove which identity invoked which tool at which time. In MCP-heavy environments, that creates the same operational blind spots seen in broader agentic systems, where access paths expand faster than oversight. NHIMG’s The State of MCP Server Security 2025 notes that 53% of MCP servers expose credentials through hard-coded values in configuration files, a reminder that convenience often outruns governance.
Current guidance suggests using a broker when coordination, revocation, and state continuity are security requirements rather than engineering preferences. In practice, many security teams encounter broken assumptions about trust only after a shared session leaks across clients or a restart silently resets the control boundary.
How It Works in Practice
A broker sits between MCP clients and MCP servers to manage registration, session creation, and often token exchange or state persistence. Instead of each client establishing a separate trust relationship with each server, the broker becomes the policy checkpoint that validates identity, assigns session context, and decides whether a request can proceed. That design aligns well with modern guidance on runtime authorization, where decisions are made at the moment of request rather than only at onboarding. The OWASP Top 10 for Agentic Applications 2026 and NIST control thinking both reinforce this shift toward request-time enforcement.
In practice, a strong broker pattern usually includes:
- Per-client or per-tenant registration with explicit policy bindings.
- Short-lived session state stored outside the client process, not only in memory.
- Server-side validation of session claims before tool execution.
- Revocation hooks so compromised sessions can be invalidated quickly.
- Audit logs that tie registration, session refresh, and tool invocation together.
This matters because brokered session handling can also support restart recovery and consistent enforcement across multiple clients. It is especially useful when teams need a central place to apply least privilege, detect reuse of stale sessions, or manage shared deployments where one client should never inherit another client’s access. NHIMG’s Gemini CLI Breach — Silent Code Execution is a useful reminder that tool access paths can be abused when session boundaries are weak. These controls tend to break down when brokers become a single, unprotected choke point without strong authentication, lifecycle management, and monitoring.
Common Variations and Edge Cases
Tighter broker control often increases latency and operational overhead, so organisations have to balance centralized governance against deployment simplicity. That tradeoff is real, especially when a small team is running a single-purpose MCP server and does not yet need shared state or cross-client policy.
Best practice is evolving for mixed environments. A direct registration model may still be acceptable for isolated development, short-lived lab environments, or a single trusted client with no persistence requirements. But once teams introduce multi-user access, HA failover, or agent workflows that need consistent authorization history, the broker usually becomes the safer boundary. That is also where broker design should be paired with runtime policy and not treated as a substitute for it. The Analysis of Claude Code Security shows how fast autonomous tooling can move beyond the assumptions of its original request.
There is no universal standard for broker internals yet, but the practical rule is clear: if losing in-memory state, duplicating registrations, or reusing sessions across clients would create unauthorized access, then the broker belongs in the trust path. If not, the added complexity may be unnecessary.
Standards & Framework Alignment
This section maps relevant standards and security frameworks to the operational risks and controls described in this guidance.
OWASP Agentic AI Top 10, CSA MAESTRO and OWASP Non-Human Identity Top 10 address the attack and risk surface, while NIST AI RMF and NIST CSF 2.0 set the governance and control requirements practitioners need to meet.
| Framework | Control / Reference | Relevance |
|---|---|---|
| OWASP Agentic AI Top 10 | A1 | Brokered sessions reduce weak trust boundaries in agentic tool access. |
| CSA MAESTRO | ID-1 | Brokered registration supports workload identity and session governance. |
| NIST AI RMF | GOVERN | Session brokers help establish accountable AI system oversight. |
| OWASP Non-Human Identity Top 10 | NHI-01 | Brokered access reduces exposure from weak NHI session handling. |
| NIST CSF 2.0 | PR.AC-4 | Brokers enforce least privilege and conditional access for MCP sessions. |
Map MCP registration and session checks to access control and review entitlements regularly.
Related resources from NHI Mgmt Group
- How should security teams implement Client ID Metadata Documents?
- How should security teams handle Dynamic Client Registration in remote MCP deployments?
- Should teams use Dynamic Client Registration for AI agent workflows?
- How should security teams govern MCP requests without relying on session state?