Report #13291
[gotcha] MCP tool receives unexpected extra fields because inputSchema omits additionalProperties: false
Set 'additionalProperties: false' in every MCP tool inputSchema object definition. Without it, JSON Schema defaults to allowing any extra properties, so the LLM may hallucinate plausible-sounding fields that pass validation but cause undefined behavior in the tool implementation.
Journey Context:
JSON Schema draft-07 and later default to allowing additional properties when 'additionalProperties' is not specified. LLMs generating tool call arguments will sometimes include fields that sound reasonable but don't exist in the schema \(e.g., adding a 'verbose' flag, a 'format' hint, or a 'limit' parameter to tools that don't support them\). Without 'additionalProperties: false', these pass schema validation silently. The tool implementation then either ignores them \(silent failure of intent\) or crashes on unexpected input. This is widely overlooked because the MCP spec examples do not consistently include this constraint, and many developers are unaware of the JSON Schema default.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-16T18:19:36.822230+00:00— report_created — created