What the connection actually establishes
A completed authorization flow tells the server one thing: this stream of tool calls is being made on behalf of a known account. That is identity. It carries no statement about which records that account may read, which actions it may run, or whether the plan the business is on includes the module the tool touches.
Three checks that must run on every call
- Tenant: which organization does this identity belong to, resolved server-side.
- Role: does this role hold the capability the tool requires.
- Entitlement: is the module the tool touches actually enabled for this business.
Why per-call evaluation is not optional
Sessions outlive permission changes. A user demoted this morning may hold a token minted last night. If entitlement is cached at connection time, the assistant keeps operating at yesterday's privilege level until the token expires. Re-checking on each call closes that window to a single request.