Report #79172
[gotcha] MCP tool inputSchema with advanced JSON Schema features causes malformed or invalid tool calls
Restrict inputSchema to simple constructs: flat objects with string, number, boolean, integer types, enum constraints, and required arrays. Avoid $ref, allOf, oneOf, anyOf, if/then/else, patternProperties, and nested $defs. Move complex validation into the tool implementation and return clear isError responses when validation fails at runtime.
Journey Context:
JSON Schema is far more expressive than what LLMs can reliably generate. A schema using oneOf with multiple object shapes, or $ref with shared definitions, is valid JSON Schema — but the model will frequently produce parameters that violate the constraints. It might omit required properties from one branch of a oneOf, or produce a value matching no branch. The model does not 'see' the schema the way a validator does; it pattern-matches against the schema text. Simpler schemas dramatically improve call validity rates, and any validation logic lost by simplifying the schema can be recovered in the tool's own runtime checks.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-21T15:29:11.178524+00:00— report_created — created