Symptom page
Claude Code drops tools over schema combinators
Your server advertises tools. tools/list looks fine. Claude Code may omit one or more tools — check the debug log for a schema rejection or skip — because the host (or the API behind it) can reject parts of the JSON Schema.
Symptom
- Schemas use
anyOf,oneOf,allOf,not, uniontypearrays, or other combinators beyond a narrow host-accepted subset. - Inspector or another client still lists the tool.
- Claude Code omits it, or the debug log shows a schema rejection / skip.
How to judge
Differential: same snapshot over tools/list vs Claude Code’s listed set. If the tool is present on the wire and absent in the host, simplify the schema (narrow types, avoid combinators the host does not accept) and re-list before blaming transport.
- Exactlane Preflight’s fixed profile also limits which JSON Schema keywords it interprets: unsupported keywords surface as
UNSUPPORTED, not a silent ignore. That is evidence about the static profile — not a Claude Code run. - A Preflight
PASSdoes not prove Claude Code will accept the same schema. Host filters and the static profile are different contracts.
Host / version notes
Paid live investigation here means running your server in Claude Code and recording what that host lists or skips. Public paid live coverage is Claude Code only; other hosts are outside the current offer.
Related: Inspector lists, Claude Code shows zero, bracket property keys.
Next step
Run free Exactlane Preflight for the static contract. If Claude Code still drops or rejects tools after a PASS — or you already know you need a live host run — the public paid offer is the Claude Code Compatibility Check (US$150) or Check + Bounded Fix (US$300).