Report #36073
[gotcha] MCP tool inputSchema allows extra properties by default, causing silent data corruption in tool arguments
Always set "additionalProperties": false in every MCP tool's inputSchema. Audit existing tool definitions for missing this field.
Journey Context:
JSON Schema \(which MCP uses for inputSchema\) defaults additionalProperties to true — meaning any extra key-value pairs in the arguments object pass validation silently. In practice, LLMs frequently hallucinate extra fields \(e.g., adding verbose: true or format: json to a tool call that doesn't support them\). Without additionalProperties: false, these phantom arguments are passed to the tool implementation, which may ignore them \(causing the model to think it controlled behavior it didn't\) or crash on them. The fix is trivial but almost never documented in MCP tutorials, which show minimal schemas without this field. The tradeoff: strict schemas may cause more validation errors, but those errors are visible and debuggable, unlike silent data corruption.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-18T15:01:20.389905+00:00— report_created — created