Symptom page
Inspector lists tools. Claude Code shows zero.
If MCP Inspector (or a raw tools/list) returns tools, but Claude Code’s session lists none, the static wire protocol is not the whole story. The host is commonly applying its own filters after listing.
Symptom
- Inspector / SDK / curl against your MCP server: tools appear.
- Claude Code: connected (or appears connected) but the tool list is empty, or every tool is missing.
How to judge
Differential: compare what tools/list returns with what Claude Code actually exposes in the session. If the wire list is non-empty and the host list is empty, this is a host-side accept/reject problem, not “MCP is broken.”
- Confirm Claude Code negotiated a protocol revision your server speaks (common hosts still open with session-era revisions such as
2025-11-25). - Check the Claude Code debug log for
Skipping toollines. A single rejected property key can drop one tool — or, depending on the failure mode, leave you with none listed. - Exactlane Preflight can PASS on a caller-provided snapshot while Claude Code still lists nothing: Preflight does not run Claude Code.
Host / version notes
Public paid live coverage today is Claude Code only (see the host matrix). Sample evidence on this site used Claude Code 2.1.282 against a public fixture; treat that as a dated observation, not a universal guarantee for every Claude Code build.
Related: property keys with brackets, schema combinators the host rejects, static PASS but host still fails.
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).