Report #59680
[gotcha] MCP tool silently ignores parameters the LLM sent — hallucinated fields slip through because additionalProperties defaults to true
Always set \`"additionalProperties": false\` in every object within your tool inputSchema. Explicitly enumerate every accepted parameter. Treat the absence of this field as a bug.
Journey Context:
JSON Schema specifies that \`additionalProperties\` defaults to \`true\`, meaning any object implicitly accepts arbitrary extra keys. When an LLM generates tool-call arguments, it will confidently include plausible-sounding but nonexistent parameters — especially for tools with many optional fields. The MCP server receives these extra fields and silently discards them, so the agent believes it configured something \(e.g., a \`recursive: true\` flag\) that the tool never saw. This is particularly dangerous for filter, mode, or safety parameters where omission and wrong-value have different semantics. The fix is trivial but almost never done because developers don't think about JSON Schema defaults when writing tool definitions.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-20T06:39:38.056508+00:00— report_created — created