A server author wants every conforming MCP client to be able to validate the server's tool input and output schemas without special configuration. Which choice best supports that?
Select an answer to reveal the explanation.
Short Explanation
Pick the dialect everyone's guaranteed to read, and you won't need a translator. In MCP that's 2020-12, and the trap is assuming older means more compatible.
Full Explanation
MCP's JSON Schema rules set JSON Schema 2020-12 as the default dialect: a schema without a $schema field is interpreted as 2020-12, implementations must support at least 2020-12, and implementors are recommended to use it. Schemas may declare another dialect through $schema, but support for additional dialects is optional and only has to be documented, so a client may reject an unsupported dialect with an appropriate error. Writing in 2020-12 therefore maximizes the set of clients that can validate inputSchema and outputSchema without configuration. Draft-04 is older but not guaranteed; implementations are not required to support it, and age does not equal compatibility. MCP tool schemas must be JSON Schema objects, so TypeScript interface strings are not valid schema values and clients would not compile them. Remote $ref links are a liability: implementations must not automatically dereference $ref values that resolve to network URIs, any opt-in fetching must be disabled by default, and schemas that fail to validate because an external reference cannot be resolved should be rejected. Exam caveat: implementations should also bound expensive composition keywords to avoid schemas acting as a denial-of-service vector. Operational check: validate each inputSchema and outputSchema against the 2020-12 meta-schema and confirm no $ref points outside the document.