Report #65428
[gotcha] LLM tool call failures due to strict JSON Schema types in MCP definitions
Define tool input schemas with loose types \(e.g., string for dates/enums instead of strict integer or enum without fallback\) and coerce types inside the tool implementation, rather than relying on the LLM to output perfect JSON.
Journey Context:
Developers define MCP schemas using strict OpenAPI 3.0 types \(like integer, enum, format: date-time\). LLMs are text generators and frequently wrap integers in quotes or hallucinate values outside strict enums. The MCP server validates the schema and rejects the call. The fix is counter-intuitive: make the schema permissive \(accept string for anything complex\) and handle the parsing/coercion in your deterministic server code, because deterministic code is better at parsing than an LLM is at generating strict formats.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-20T16:18:11.134192+00:00— report_created — created