Visualizers

Learn by moving things

Interactive explainers for the ideas behind retrieval, embeddings, and agents. A formula tells you what is true; dragging a vector shows you why. Each one also appears inside the article it belongs to, and runs entirely in your browser, so drag, poke, and break it.

Portrait of Sachin Gupta rendered in binary

Click each of MCP's six primitives to see who actually controls it, its method, and a plain example. The trap is assuming the server controls everything; it does not.

Server offers
Client offers
Tools
Model-controlledtools/call

Actions the model decides to invoke, like sending an email or querying a database.

The trap is thinking the server controls everything. It does not: the model picks tools, the app picks resources and roots, the user picks prompts, and the server can turn around and ask the client (sampling, elicitation).

MCP transports: stdio vs HTTP

From: MCP on the Wire

Same JSON-RPC messages, two channels. Toggle stdio and Streamable HTTP to compare where each runs, how the bytes travel, and what it means for auth.

Both carry JSON-RPC 2.0 · pick the channel
client ⇄ pipe ⇄ server process
Where it runs
Local subprocess on the same machine
How bytes travel
Bytes over stdin / stdout, one long-lived pipe
Auth
None needed (same machine, same user)
Best for
Desktop apps and local tools (a filesystem or git server)
The messages are identical; only the channel changes. stdio is the phone call in the same building; Streamable HTTP is the letter across the internet, with all the auth that implies.

Step through how a remote MCP server authorizes a call: a 401 pointing at the auth server, an OAuth 2.1 sign-in, a scoped token bound to that one server, then the call. The server never sees your password.

0 / 7
Client → Server
Server → Client
Client → Auth server
User
Auth server → Client
Client → Server
Server → Client
The MCP server is an OAuth resource server: it never sees your password. A separate authorization server issues a scoped, expiring token bound to that one server, and the tool acts with that.
Visualizers — Sachin Gupta