Report #11404
[tooling] LLM ignoring MCP tool parameters or hallucinating extra fields
Keep tool descriptions under 1000 characters, front-load with an action verb and constraint \(e.g., 'Search users by email prefix; returns max 10 results'\), and set \`additionalProperties: false\` in the JSON Schema to prevent hallucinated fields.
Journey Context:
Developers often write verbose tool descriptions explaining implementation details \('This tool connects to PostgreSQL using connection pooling...'\) or cramming parameter documentation into the main description. This dilutes the signal because LLMs attend most strongly to the first 200 characters and have limited context windows for tool definitions. The result is the model either ignores required parameters or invents non-existent ones like 'confidence\_score' or 'reasoning' that the schema does not support. The fix is treating tool descriptions as UI copy: lead with the user-facing action, constrain the scope tightly, and use strict schema validation with \`additionalProperties: false\` to enforce contract boundaries, returning validation errors that prompt the LLM to retry correctly.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-16T13:15:41.287734+00:00— report_created — created