A reviewer asks which MCP layer defines what a tool, resource or prompt means and how the JSON-RPC messages that carry them are structured. Which layer is it?
Select an answer to reveal the explanation.
Short Explanation
Think of an envelope and the letter inside: the transport is the envelope, the data layer is what the letter actually says. Tools, resources and prompts live in the letter. Don't let 'frames each message' trick you into picking the envelope.
Full Explanation
MCP consists of two layers. The data layer defines the JSON-RPC 2.0 based protocol for client-server communication, including capability and version discovery and the core primitives such as tools, resources, prompts and notifications; it is where message structure and semantics are specified. The transport layer is the outer layer: it handles connection establishment, message framing, delivery and authorization, and the specification states that protocol semantics are identical on every transport. Framing a message does not define its meaning, which is why moving between stdio and Streamable HTTP leaves the primitives unchanged. Authorization is not a separate layer in MCP's model; it is a transport-level concern for HTTP and can restrict what a caller may access, but it does not define what a tool or resource is. A host layer that interprets primitives per application is not part of the specification either; hosts consume primitives, but their definitions come from the data layer so that every host reads them the same way. Exam caveat: some diagrams draw hosts and authorization as boxes, but the specification names exactly two layers. Operational check: when classifying a concern, ask whether it changes message meaning (data layer) or only how bytes move and who may send them (transport layer).