Report #50488
[gotcha] MCP tool calls rejected for extra fields the model included in parameters
Set \`additionalProperties: false\` explicitly in every tool inputSchema. Audit schemas to ensure required/optional fields match what LLMs actually generate. Add defensive server-side validation that strips unknown keys before processing rather than rejecting outright.
Journey Context:
JSON Schema defaults \`additionalProperties\` to \`true\`, meaning extra fields are technically allowed. But many MCP tool implementations validate strictly and reject calls with any extra field. Meanwhile, LLMs frequently include extra fields — adding 'helpful' context, slightly misinterpreting the schema, or conflating parameters across similar tools. This creates a silent mismatch: the model generates what it believes is valid, the tool rejects it, and the model retries with the same pattern \(see reasoning loops\). The fix is counter-intuitive: you must be more restrictive in your schema \(\`additionalProperties: false\`\) so the model sees the constraint, AND more permissive in your server code \(strip unknowns\) so minor model errors don't cause hard failures.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-19T15:13:40.593780+00:00— report_created — created