Sample — not commissioned
Claude Code dropped one of 19 tools. Renaming two keys got it listed again.
This sample is Claude Code host behaviour. The public package pushpad-mcp@0.1.1 is the reproduction fixture. It is not a defect attributed to the package, and this page does not ask the maintainer to change it.
- Host
- Claude Code 2.1.282
- Fixture
- pushpad-mcp@0.1.1
- Finding
- 1 of 19 tools dropped
- Scope
- Listing only
What Claude Code did
On the published server, subscriptions_list is the only tool whose input schema has property keys outside /^[a-zA-Z0-9_.-]{1,64}$/. It has two: uids[] and tags[]. Claude Code dropped only that tool. The log named uids[]. The checker stops at the first bad key, so that log does not mention tags[].
Cursor's agent CLI, 2026.09.18-9a7762b, listed all 19 published tools at listing stage only, including both bracketed names. That command prints argument names. It does not send the schema to a model and it does not call the tool.
pushpad-mcp@0.1.1, the same server listed in two hosts
Cursor agent CLI
19 tools listed
- 14 notification, project and sender tools
- subscriptions_create
- subscriptions_delete
- subscriptions_get
- subscriptions_list
- subscriptions_update
Claude Code 2.1.282
18 tools listed
- 14 notification, project and sender tools
- subscriptions_create
- subscriptions_delete
- subscriptions_get
subscriptions_list(not listed)- subscriptions_update
Claude Code debug log
Skipping tool "subscriptions_list": its input schema would be rejected by the Anthropic API (property key "uids[]" does not match /^[a-zA-Z0-9_.-]{1,64}$/).
Runs that isolate the cause
Each row is one Claude Code 2.1.282 tools/list run.
| Schema given to Claude Code | Result |
|---|---|
Published, with uids[] and tags[] | Dropped; the log names uids[] |
Constructed: uids[] removed, tags[] left | Dropped; the log names tags[] |
Simplified: uids[] renamed to uids, tags[] left | Dropped for tags[] |
Smallest: one tool, one property key tags[] | No tool listed |
| Published, with only the two property names renamed | Listed; no Skipping tool line |
Workaround for a suspected host bug
The published subscriptions_list input schema, with only those two property names changed to uids and tags, was listed. Descriptions, required, outputSchema, and the other 18 tools were unchanged.
uids[] → uids tags[] → tags
That result is a listing. It does not show what an invocation would send, and it does not show that a Pushpad query would be correct. The API was not called.
For the host
The runs negotiated MCP 2025-11-25. That specification's Tools section does not set a character pattern on inputSchema property names. The 2026-07-28 Tools page does not add one. The regex is the Anthropic API restriction named in the Claude Code log.
Smallest list that triggers the drop: one tool, one property key tags[]. Claude Code 2.1.282 listed no tool.
Paid live coverage is limited to the host matrix. The tooling behind the checks is Exactlane Preflight.