Tools
Model-controlled functions with a JSON Schema. The POST of MCP.
Model Context Protocol
Host, client, server. Tools, resources, prompts. One protocol, animated end to end, so the mental model sticks.
01 · Data flow
The LLM never touches your server. The host decides, the client relays, the server answers. Packets below are live.
02 · Lifecycle
Every MCP session follows the same handshake. Click a step or let it auto-play.
03 · Build it
Python with FastMCP on the left, TypeScript SDK on the right. Same shape, same protocol.
04 · Primitives
Three the server offers, three the client offers back. Hover to see who controls each.
Model-controlled functions with a JSON Schema. The POST of MCP.
App-controlled read-only data at a URI. The GET of MCP.
User-controlled templates. Slash commands with arguments.
server → userServer borrows the host's LLM. No API key needed on the server.
server ← hostHost tells the server which folders are in scope. Its sandbox.
server ← hostServer asks the user a structured question mid-call.
server ← user05 · Transports
Host spawns your process. stdin in, stdout out, stderr for logs. Local only, zero auth, fastest to build.
One /mcp endpoint. POST per message, SSE upgrade for streaming, Mcp-Session-Id for state, OAuth 2.1 for auth.
Seven markdown guides and two runnable starter servers live in the repo.
Open MCP-god on GitHub