Two teams building against MCP revision 2026-07-28 disagree because a prose page on the specification site seems to describe a field slightly differently from the published schema. Which source does the specification name as the source of truth for protocol messages and structures?
Select an answer to reveal the explanation.
Short Explanation
When two maps disagree, you trust the survey the maps were drawn from. For MCP that's the TypeScript schema; the JSON Schema is generated from it. Watch the reversed option — it names the right two files with the arrow pointing the wrong way.
Full Explanation
The base protocol page states that the full specification of MCP is defined as a TypeScript schema, which is the source of truth for all protocol messages and structures. A JSON Schema is also published, and it is automatically generated from the TypeScript source for use by automated tooling. When prose and schema appear to disagree, the TypeScript schema governs message shapes. The option that reverses the relationship, claiming the TypeScript is generated from the JSON Schema, inverts the documented pipeline; the generated artifact is the JSON Schema. Treating the prose pages as authoritative over the schema misstates the hierarchy: the prose explains requirements and behaviour, while the schema is designated as the definitive structural reference, so schema files are not mere examples. An SDK, even an official one, is an implementation of the specification and can contain bugs or lag behind a revision; its behaviour does not define the protocol. Exam caveat: prose still carries normative MUST and SHOULD rules about behaviour that a type definition cannot express, so the schema settles structure, not every behavioural question. Operational check: resolve a field dispute by opening the schema for the exact revision directory, here 2026-07-28, and comparing the field's type and optionality there.