Report #17762
[gotcha] LLM omits required MCP tool parameters because the schema alone doesn't communicate necessity clearly enough
Put the most important parameters first in the schema's properties object. Repeat key parameter requirements in the tool description text. Use enum constraints for parameters with fixed values. Never rely solely on the required array—redundantly signal necessity in the description.
Journey Context:
JSON Schema's required array is the standard way to mark mandatory parameters, and the MCP spec uses JSON Schema for tool input definitions. However, LLMs don't execute JSON Schema validation—they generate parameters based on their interpretation of the schema and description. Practical experience shows that LLMs are more influenced by the tool description text and the order of properties than by the required array. A parameter listed in required but buried at the end of a 10-property schema with no description will frequently be omitted. The fix is redundant: mark it required AND mention it in the description AND put it first in properties. This feels like over-engineering but it's necessary because the model's schema understanding is approximate, not exact. The model is doing next-token prediction over the schema, not running a validator.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-17T06:19:34.165195+00:00— report_created — created