Token passthrough breaks the trust boundary because the client’s access token can become the credential used to contact the provider. That creates unnecessary exposure and weakens enforcement, since the MCP server can no longer reliably separate authorization from downstream execution. Provider credentials should remain server-side so the policy layer controls each governed call.
Why token passthrough breaks the MCP trust boundary
When an MCP client forwards its own access token to the provider, the server stops being the policy decision point for that downstream call. The provider sees a client-held credential, not a server-held one, so the trust boundary shifts outward and the server loses the clean separation between user authorization and provider execution.
That design sounds convenient, but it removes an important control point. A server-side credential model lets the mcp server decide whether a call is allowed, apply local policy, and present only the authority needed for the governed action. Once the client’s token is reused downstream, the provider can inherit access that was never meant to be an execution credential.
In practice, token passthrough turns the client into part of the credential path. That makes the integration harder to reason about, because the server can no longer guarantee that its own authorization logic is the last gate before the provider is reached. The safer pattern is to keep provider credentials on the server and treat the client token as input to policy, not as the credential that leaves the boundary.
Where the security and operational failure shows up
The main failure is unnecessary exposure. If the client token is accepted by the provider, it may be usable beyond the narrow action the MCP server intended, especially when scopes are broad or audience restrictions are weak. That can create privilege leakage, over-broad access, and confusing audit trails because the downstream request no longer reflects the server’s controlled authorization decision.
It also weakens containment. A server-side design can swap or revoke provider credentials without depending on every client implementation to behave correctly. With passthrough, compromise, logging mistakes, or misrouting at the client layer can expose a credential that was never supposed to be a provider-facing secret in the first place.
Failure mechanism: The client token becomes a downstream bearer credential, so the server loses the ability to enforce a clean authorization-to-execution handoff and to constrain what the provider can accept.
Impact: Access becomes harder to scope, revoke, and audit, and any client-side leak or misuse can expand into provider-level exposure.
How to keep MCP authorization server-side
The practical design rule is to let the MCP server mediate every governed call and present its own provider credential only after policy has been applied. That preserves the boundary between who asked for the action, what the server allowed, and what credential the provider actually receives.
This is why the MCP authorization specification matters here: it frames MCP servers as OAuth 2.1 resource servers, with audience-bound tokens and no token passthrough. The server should remain the policy enforcement point, while the provider credential stays under server control.
That same pattern aligns with standard OAuth token handling. RFC 8707 resource indicators help constrain tokens to the intended audience, and RFC 9728 protected resource metadata gives the server a clean way to advertise and discover the right authorization surface without handing the client direct downstream authority.
Standards & Framework Alignment
This section maps relevant standards and security frameworks to the operational risks and controls described in this guidance.
OWASP API Security Top 10 and OWASP Non-Human Identity Top 10 address the attack and risk surface, while NIST SP 800-53 Rev 5 and NIST CSF 2.0 set the governance and control requirements practitioners need to meet.
| Framework | Control / Reference | Relevance |
|---|---|---|
| NIST SP 800-53 Rev 5 | AC-6 — Least Privilege | Token passthrough can overextend downstream access beyond the server's intent. |
| IA-5 — Authenticator Management | Server-side handling depends on controlled lifecycle and protection of provider credentials. | |
| IA-9 — Identification and Authentication (Non-Organizational Users) | MCP provider access uses non-organizational client and service authentication paths. | |
| Recommendation — Limit downstream access to the minimum authority needed for each MCP call. Manage provider credentials server-side and rotate or revoke them centrally. Authenticate MCP clients and downstream services without reusing the client token as the provider credential. | ||
| OWASP API Security Top 10 | API2 — Broken Authentication | Passing the client token downstream can blur authentication boundaries in the provider call. |
| API5 — Broken Function Level Authorization | The server must enforce which downstream functions the client may trigger. | |
| Recommendation — Keep provider authentication separate from client authentication to prevent token reuse. Enforce function-level authorization at the MCP server before any provider call is made. | ||
| NIST CSF 2.0 | PR.AA-05 — Identity Management, Authentication, and Access Control | The question is about preserving access control boundaries across client, server, and provider. |
| PR.AA-06 — Least Privilege | The issue is whether downstream execution receives more authority than necessary. | |
| Recommendation — Require the MCP server to mediate access and keep provider credentials under server control. Scope downstream authority to the smallest feasible provider credential and audience. | ||
| OWASP Non-Human Identity Top 10 | NHI-02 — Secret Leakage | Client token passthrough increases the chance that provider-facing credentials are exposed outside the server. |
| NHI-05 — Overprivileged NHI | A passed-through credential can give the provider more authority than the governed call needs. | |
| NHI-07 — Long-Lived Secrets | Server-managed credentials should avoid client exposure and unnecessary persistence. | |
| Recommendation — Keep provider credentials off the client path and rotate any exposed token immediately. Reduce provider credential scope so each MCP action uses only the needed authority. Use short-lived, server-held provider credentials instead of reusable client secrets. | ||
Practitioner Guidance
What to verify: Confirm that the client token is used only to authenticate and authorize the MCP interaction, not to authenticate directly to the provider. If the same token can reach multiple downstream services, treat that as a boundary failure unless the design is explicitly audience-restricted.
Decision rule: If a credential can be replayed outside the MCP server without changing the authorization context, keep it server-side and substitute a server-managed provider credential or token exchange flow.
Common mistake: Teams often treat passthrough as simpler because it avoids one extra credential store, but that convenience usually comes at the cost of weaker revocation, weaker attribution, and a larger blast radius when the client is compromised.
Practitioner takeaway: The secure MCP pattern is not “pass everything through,” it is “pass intent through and keep authority bounded,” so the server can still decide, constrain, and audit each downstream call.
Related resources from NHI Mgmt Group
- What happens when an MCP server is launched through a runtime wrapper instead of being containerized first?
- What happens when an MCP server is connected to an AI client without tight command and data controls?
- What happens when an application relies on client-side role declarations instead of server-side authorization?
- What happens when attackers gain access through valid credentials instead of stealing passwords directly?