Why it matters
Every integration eventually requires understanding the protocol. Getting the shapes right avoids bugs and enables debugging.
Advertisement
The architecture
Request: id (unique), method (like initialize, list_tools), params (method-specific).
Response: id (matches request), result (on success) or error (on failure).
Advertisement
How it works end to end
Method categories: lifecycle (initialize, ping), listing (list_tools, list_resources), invocation (call_tool, get_resource), notifications (progress, log).
Bidirectional: server can send requests to client (sampling requests, elicitation).
Batching: multiple requests in single message. Not always supported.