[BUG] Strict MCP schema validation in v2.0.21+ breaks working MCPs with no opt-out or migration path
Resolved 💬 4 comments Opened Oct 30, 2025 by PHMD Closed Jan 9, 2026
Description
Claude Code v2.0.21 introduced strict MCP tool schema validation that breaks previously working MCP servers without providing:
- A way to opt-out of validation
- Warning about the breaking change
- Graceful degradation (disable problematic MCPs instead of blocking entire session)
Affected MCPs
- Official Perplexity MCP (
@perplexity-ai/mcp-server) - time MCP (
yokingma/time-mcp) - Potentially many others in the ecosystem
Error Message
API Error: 400
{
"type":"error",
"error":{
"type":"invalid_request_error",
"message":"tools.XX.custom.input_schema: input_schema does not support oneOf, allOf, or anyOf at the top level"
}
}
Impact
User Experience:
- Users wake up to broken Claude Code after auto-update
- Entire session is blocked (not just the problematic MCP)
- No clear error message about which MCP is causing the issue
- Users weren't using the problematic MCP, but it still blocks startup
Ecosystem Impact:
- Breaking change with no migration period
- MCP maintainers weren't notified in advance
- Official MCPs (like Perplexity) are affected
Steps to Reproduce
- Have Claude Code v2.0.20 or earlier with working MCPs
- Auto-update to v2.0.21+
- Launch Claude Code
- Session fails to start due to schema validation
Timeline of Issue
- Before v2.0.21: Perplexity MCP worked fine (lenient validation)
- v2.0.21 (Oct 2025): Added
structuredContentsupport and strict validation - v2.0.21+: Previously working MCPs now fail validation at startup
Expected Behavior
One or more of:
- Opt-out flag: Environment variable like
CLAUDE_CODE_DISABLE_MCP_SCHEMA_VALIDATION=true - Graceful degradation: Skip problematic MCPs with warning, continue session
- Clear error messages: Tell user which MCP is failing and how to fix it
- Migration period: Warn users for a few versions before enforcing strictly
Actual Behavior
- Hard failure at startup
- No way to bypass validation
- Entire session blocked
- User has to manually debug which MCP is causing issues
Workaround
Downgrade Claude Code:
npm install -g @anthropic-ai/claude-code@2.0.20
Environment
- Claude Code: v2.0.21 - v2.0.29
- Platform: macOS (Darwin 24.5.0)
- Node: v22.14.0
- Auto-updates: Enabled (default)
Suggested Solutions
Option 1: Environment Variable Opt-Out
export CLAUDE_CODE_SKIP_MCP_SCHEMA_VALIDATION=true
Option 2: Graceful Degradation
⚠️ Warning: Perplexity MCP has invalid schema (oneOf at top level)
Skipping this MCP. Claude Code will continue without it.
Fix: Update MCP or see docs.anthropic.com/mcp-validation
Option 3: Config-Level Control
{
"mcpServers": {
"perplexity": {
"skipSchemaValidation": true,
...
}
}
}
Related Issues
- #5973 - Same error with tools.21
- #4886 - Same error with tools.21
- #657 - Invalid Input Schema: OneOf Unsupported
- #4295 - Unsupported JSON Schema Composition
Request
Please provide a way for users to continue using Claude Code while MCP maintainers fix their schemas. A breaking change without an opt-out is very disruptive.
Cross-reference
Filed related issue with Perplexity MCP: perplexityai/modelcontextprotocol#57
This issue has 4 comments on GitHub. Read the full discussion on GitHub ↗