Conditional Operations
An agent holds an auth token where list_calendar_events is fully granted but create_calendar_event is conditional. When it attempts to create an event, the resource challenges with the actual call parameters. The agent sends the conditional resource token to its Person Server (PS), which federates with the AS. The AS evaluates the concrete request — not just intent — before issuing a narrow per-call auth token.
Agent presents the auth token. Resource checks: 'create_calendar_event' is in r3_conditional, not r3_granted.
Resource issues a 401 challenge with a NEW resource token that embeds the actual call parameters (title, attendees, time).
KEY: The AS will now evaluate the CONCRETE call — not just that the agent wants to create events, but WHO is being invited to WHICH meeting.
This lets the AS enforce fine-grained policy: e.g., 'allow meeting creation but require approval when inviting executives'.
Step 1: POST /mcp/tools/call (create_event) → 401 AAuth-Requirement (conditional)
calendar.example.com
application/json
DPoP eyJhbGciOiJFUzI1NiIsImtpZCI6ImFzLWtleS0xIiwidHlwIjoiYXV0aCtqd3QifQ…
sig=("@method" "@authority" "@path" "authorization");created=1741824100;alg="ed2…
sig=:Q29uZGl0aW9uYWxPcENhbGxTaWduYXR1cmVCYXNlNjQ=:
{
"name": "create_calendar_event",
"arguments": {
"title": "Budget Review",
"start": "2026-05-15T09:00:00Z",
"end": "2026-05-15T10:00:00Z",
"attendees": [
"alice@example.com",
"cfo@example.com",
"ceo@example.com"
]
}
}{"alg":"ES256","kid":"as-key-1","typ"?:"aa-auth+jwt"}{"iss"?:"https://as.example.com","dwk"?:"aauth-access.json","aud"?:"https://calendar.example.com","jti"?:"at-6b1c3d","agent"?:"aauth:local@agent.example","sub"?:"user:alice@example.com","r3_uri"?:"https://calendar.example.com/r3/a1b2c3d4e5f67890","r3_s256"?:"ZzKlMnOpQrStUvWxYz0123456789AbCdEfGhIjKlMn","r3_granted"?:{"vocabulary":"urn:aauth:vocabulary:mcp","operations":},"r3_conditional"?:{"vocabulary":"urn:aauth:vocabulary:mcp","operations":},"iat"?:1741824000,"exp"?:1741824900}{"alg":"ES256","kid":"resource-key-2","typ"?:"aa-resource+jwt"}{"iss"?:"https://calendar.example.com","dwk"?:"aauth-resource.json","aud"?:"https://as.example.com","jti"?:"rt-cond-9a3b","agent"?:"aauth:local@agent.example","agent_jkt"?:"NzbLsXh8uDCcd-6MNwXF4W_7noWXFZAfHkxZsRGC9Xs","r3_uri"?:"https://calendar.example.com/r3/a1b2c3d4e5f67890","r3_s256"?:"ZzKlMnOpQrStUvWxYz0123456789AbCdEfGhIjKlMn","call_params":{"name":"create_calendar_event","arguments":},"iat"?:1741824100,"exp"?:1741824200}