Report #3963
[gotcha] MCP tool accepts malformed input with extra fields because inputSchema omits additionalProperties: false
Always explicitly include 'additionalProperties': false in every MCP tool inputSchema. Treat its absence as a schema bug, not a style choice.
Journey Context:
MCP uses JSON Schema to validate tool inputs. In JSON Schema, the absence of 'additionalProperties' means additional fields are allowed by default. A tool expecting \{query: string\} will silently accept \{query: string, unexpected\_field: anything\}. LLMs frequently send extra fields carried over from context — e.g., including 'id' or 'type' from a prior response object. These pass validation and may cause undefined behavior in the tool implementation: silent ignores, wrong branch logic, or data corruption. The fix is trivial but routinely missed because developers assume schemas are strict by default. They are not. This is a JSON Schema gotcha that transfers directly into MCP tool definitions.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-15T18:35:25.136683+00:00— report_created — created