wtf( )unctionsystem design, drawn

The identifier that was treated as a session

A long-running operation hands back an identifier so the client can come back for the result. Because the identifier is unguessable, the handler skips re-checking who is asking.

The protocol has no sessions. There was no handshake that established who this caller is and there is no per-connection state carrying it forward. What looks like a session is a string, and holding a string is not being someone.

Make each request carry its own authorisation, and tie the handle to the principal it was minted for.
Components — tap one, then tap a slot on the diagram
?There are no sessions here. Anything behaving like one is a bearer token you did not mean to issue.

Outside every boundary: Operation handle (an opaque string), MCP server (no sessions exist; FAILED: trusts the handle), MCP client, Another caller (holds the handle), an empty slot for the proves who is asking, an empty slot for the ties the handle to a subject Connections: MCP client calls proves who is asking (step 1) proves who is asking calls MCP server — checked here (step 2) Operation handle controls ties the handle to a subject — an argument ties the handle to a subject controls MCP server — whose handle is it (step 3) Another caller must NOT reach MCP server — not identity

Operation handlean opaque string
MCP serverno sessions existtrusts the handle
MCP client
Another callerholds the handle