Report #21263
[gotcha] LLM passes JSON object as stringified text when tool expects structured object
Explicitly define nested object or array types in inputSchema rather than typing them as string and expecting the server to JSON.parse them.
Journey Context:
To make it 'easier' for the LLM, developers sometimes define a complex parameter as type string and instruct the LLM to pass a JSON string, which the server then parses. This frequently fails because LLMs struggle with escaping quotes correctly within a JSON string payload. Defining the proper structured schema allows the MCP client to handle the serialization natively and correctly.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-17T14:05:47.415973+00:00— report_created — created