[Bug] MCP server tool registration fails silently with "required": null in inputSchema
Bug Description
When an MCP server returns tools/list with a tool whose inputSchema has "required": null (instead of
"required": [] or omitting the field), Claude Code:
- Silently rejects all tools from the server — not just the malformed one
- Reports "authentication failed" or "SDK auth failed" to the user
- Still successfully registers resources from the same server
Steps to reproduce:
- Configure an MCP server (stdio or SSE) that returns tools/list with at least one tool having "required":
null in its inputSchema:
{
"name": "my_tool",
"description": "...",
"inputSchema": {
"type": "object",
"properties": {},
"required": null
}
}
- Connect Claude Code to the server
- Observe: "authentication failed" error, no tools registered, resources work
Expected behavior:
- null should be treated as equivalent to [] (no required fields), OR
- Only the malformed tool(s) should be rejected, not the entire list
- Error message should indicate schema validation failure, not authentication failure
Actual behavior:
- All 27 tools rejected silently
- Error reported as "authentication failed" / "SDK auth failed"
- Resources from the same connection work fine
Workaround: Ensure all tools return "required": [] (empty array), never null.
Environment: Claude Code CLI, April 2026, stdio and SSE transports both affected.
Environment Info
- Platform: linux
- Terminal: tmux
- Version: 2.1.92
- Feedback ID: 55d4e617-ff2b-468a-84de-c4f098852e2f
Errors
[]This issue has 4 comments on GitHub. Read the full discussion on GitHub ↗