Report #17331
[gotcha] LLM passes MCP tool arguments that validate JSON Schema but fail server-side execution
Add strict semantic validation and examples directly inside the tool's description field, not just the parameters JSON schema. Use enum aggressively instead of generic string types for constrained values.
Journey Context:
JSON Schema validates structure, not semantics. An LLM might send status: 'closed' when the API expects status: 'completed'. The schema passes \(it is a string\), the server rejects it, and the LLM enters a retry loop. Putting constraints in the description \(e.g., 'Must be one of: open, completed, cancelled'\) leverages the LLM's attention mechanism better than relying solely on schema validation, which LLMs often ignore or misinterpret for edge-case values.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-17T05:10:43.151627+00:00— report_created — created