[Bug] MCP server tool registration fails silently with "required": null in inputSchema

Resolved 💬 4 comments Opened Apr 6, 2026 by thegreatpissant Closed May 18, 2026

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:

  1. Silently rejects all tools from the server — not just the malformed one
  2. Reports "authentication failed" or "SDK auth failed" to the user
  3. Still successfully registers resources from the same server

Steps to reproduce:

  1. 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
}
}

  1. Connect Claude Code to the server
  2. 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

[]

View original on GitHub ↗

This issue has 4 comments on GitHub. Read the full discussion on GitHub ↗