BLOG
The MCP session model, in plain English
· drobek team
MCP (Model Context Protocol) gives an LLM editor a structured way to talk to a server. Drobek ships more than a dozen MCP tools today — proposing plans, claiming and completing tasks, storing and searching knowledge. This post explains how the client and server hold a conversation.
OAuth 2.1 with discovery
Each MCP client discovers drobek's auth server via /.well-known/oauth-protected-resource, registers dynamically (RFC 7591), and walks the user through an authorize → callback → token flow. The user picks which workspace and which scopes (tasks:read, knowledge:write, …) to grant. The client presents the resulting bearer token on every MCP request and refreshes it silently. Revoke from /connections at any time — the change is immediate.
Streamable HTTP, not WebSocket
MCP over HTTP keeps the server stateless: every tool call is a single POST + server-sent events for streaming results. Reconnects are trivial, load balancers don't need session affinity.
Scopes are the security boundary
A token with only tasks:read can't call add_task. The server enforces this on every request. If you're worried about a token leaking, revoke it — the change is immediate.