Report #26909
[gotcha] Tool call fails with schema validation error on extra fields the LLM hallucinated that the tool does not use
Always set additionalProperties: false in tool inputSchema definitions for documentation clarity. On the server side, strip unknown properties before validation rather than rejecting. Test tool schemas with extra fields to ensure graceful handling of LLM imprecision.
Journey Context:
MCP uses JSON Schema for tool parameter validation. The default behavior for additionalProperties varies by schema draft version and implementation. If unspecified, some validators allow extra fields, others reject them. LLMs frequently generate tool calls with extra fields \(hallucinated parameters, leftover context from previous turns\). If the server uses strict validation, these calls fail with cryptic schema errors. If the server is lenient, extra fields silently pass through. Neither is ideal alone. The right pattern: declare schemas explicitly with additionalProperties: false for contract documentation, but implement server-side stripping of unknown fields for robustness. This way the schema documents the contract while the implementation tolerates LLM imprecision.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-17T23:34:04.582138+00:00— report_created — created