Lane A · user → gateway
Client OAuth
OAuth 2.1 authorization code with PKCE (S256), then a delegated token chain:
- Token A — the user, delegated.
- Token B0 — bootstrap, scope
task:initiateand nothing else. - Task Envelope — signed; names which tools and scopes this task may use.
- Token B — operational;
audisurn:drawbridge:edge:demo, carriestask_envelope_digest, and itsactchain names the runtime.
/mcp accepts Token B only. B0 is rejected at every ordinary tool. A bad
or expired token returns 401 with a WWW-Authenticate
header carrying resource_metadata; if the verifier itself is
unavailable the answer is 503 with retry-after, never a
401.