What do MCP's actual protocol messages look like?medium
MCP defines two core message exchanges: tools/list, where the client asks a server what it can do and the server returns tool names, descriptions, and input schemas, and tools/call, where the client sends a tool name and arguments and the server returns a result in a consistent content shape.
The server never changes the response shape and the client never has to guess how to parse it — that consistency is the actual protocol. A tools/list reply is an array of objects like {name, description, inputSchema}; a tools/call reply is shaped like {content: [{type, text}]}. Because every compliant server returns exactly this shape, a client written against one MCP server works against any other without special-casing.