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).

MCP message typesRequestid + method + paramsResponseid + result / errorNotificationsid-less, one-wayBidirectional: both client and server can send requests; supports server-initiated events
JSON-RPC in MCP.
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.