MCP token audience validation

An MCP server must validate that a presented token was issued for that server as the intended resource, not merely that the token is well formed or signed.

01 / The operating case

What changes in a real workflow?

A client presents a token for server A to server B; B cannot infer that A’s authorization grants access to B.

Trace the authority boundary
  1. 01Client / task
  2. 02MCP server
  3. 03Tool call + arguments
  4. 04Downstream effect

02 / Decision boundary

Put the check where it can stop the effect.

Use protected-resource metadata and the resource indicator in the OAuth flow; validate issuer, audience and token lifetime at B.

Architecture review / negative test

Make the boundary testable.

Protected-resource metadata tells clients where authorization is available; the resource indicator directs token issuance toward the intended MCP resource. Servers should validate audience as well as issuer and lifetime. Passing a token received by one server to an unrelated downstream API can turn a protocol credential into unintended authority.

03 / Failure and evidence

What goes wrong, and what can be proven?

Failure mode

Accepting any issuer-valid token enables confused-deputy and token-passthrough failures.

Evidence to retain

Retain only non-secret audience-validation result and request correlation in the access log.

04 / Canonical scope

Why this reference stands alone

MCP authentication covers the whole flow; this focused reference owns the audience-validation step and negative test cases.

Primary references

Read the underlying material

Architecture discussion

Choose one consequential action and make its boundary explicit.

Request a Conversation