Steps to Reproduce:
- Open the attached “IN-145344” project in the Unity Editor. (Note: This project already includes a script that globally overrides serialization to use snake_case via [InitializeOnLoad], simulating the customer's environment).
- Allow the project to finish loading and compiling so the global override is applied.
- Open your OS terminal and run the MCP relay manually to intercept the payload: ~/.unity/relay/relay_mac_arm64.app/Contents/MacOS/relay_mac_arm64 --mcp (Note: Path assumes macOS ARM; adjust accordingly for Windows/Linux)
- Paste the following JSON-RPC request into the terminal and press Enter: { "jsonrpc": "2.0", "method": "tools/list", "params": {}, "id": 1 }
- Inspect the JSON response generated by the relay.
Actual Result: The global Newtonsoft.Json settings pollute the AI Assistant's serialization. In the returned JSON payload, the strictly required "inputSchema" property for all tools has been stripped.
When a user attempts to connect via Claude Code, Claude strictly searches for the "inputSchema" key, evaluates it as undefined, throws the error invalid_type: expected object, received undefined, and immediately drops the connection.
Expected Result: The AI Assistant should instantiate a private, isolated JsonSerializer (or explicitly pass isolated JsonSerializerSettings) for all MCP communication. The JSON payload should remain strictly compliant with the MCP specification (retaining the "inputSchema") regardless of any project-level JsonConvert.DefaultSettings.
Reproducible with: 2.9.0-pre.2, 2.11.0-pre.2 (6000.0.76f1)
Reproducible on: macOS 26.5.1
Not reproducible on: No other environments tested