Follow Discord
Sweep 22 Oct 2026 · 04:32Z Build v2.1.308 527 read Stable v2.1.308 Latest v2.1.308 Next v2.1.308 Feeds RSS JSON llms.txt llms-full.txt Unofficial

Claude Code v2.1.216 ·

MCP Tool Schema Validation Upgraded to JSON Schema Draft 2020-12

Entry
JSON All of v2.1.216
EntryKind: in v2.1.216,
ImprovementsSection of the release
What

MCP tool input schemas are now validated against JSON Schema draft 2020-12. Tools with schemas that violate Anthropic API requirements are excluded when the server's tools are loaded; a system message lists which tools were dropped.

Details
  • Added $dynamicAnchor and $dynamicRef (replacing the deprecated $recursiveAnchor/$recursiveRef)
  • Added dependentRequired and dependentSchemas (splitting the old dependencies keyword)
  • Added maxContains and minContains
  • Added complete draft 2020-12 meta-schemas for core, validation, meta-data, format-annotation, content, applicator, and unevaluated vocabularies
  • tengu_mcp_normalize_root_combinators is a per-server-URL feature flag (configured as a list of hostnames, or "*" for all servers): when enabled for a server, tools whose input schema has a top-level anyOf, oneOf, or allOf keyword are flattened — properties are merged from all combinator branches into a single flat properties object, required fields are collected from every branch, and a plain-text constraint note summarising the original branches is prepended to the tool's description. Without this flag, tools with top-level combinators are skipped entirely and logged as tool_schema_normalize_gated.
  • tengu_mcp_drop_invalid_tool_schemas is a per-server-URL feature flag: when enabled, tools whose input schema fails draft 2020-12 meta-validation (checked via an Ajv2020 meta-validator) or whose property keys do not match /^[a-zA-Z0-9_.-]{1,64}$/ are excluded from the tool list and added to a droppedTools list that feeds the "Unavailable MCP Tools" system reminder. Without this flag, such tools are kept but a debug warning is logged that API requests including them may fail.
  • A system-reminder block titled "Unavailable MCP Tools" lists each excluded tool and its rejection reason
Evidence

New validator module (search for "https://json-schema.org/draft/2020-12/meta/core" or "$dynamicAnchor"). Exclusion message (search for "# Unavailable MCP Tools").

Strings lifted out of the shipped bundle, so the claim above can be checked against them.

Read from
Feature flag
tengu_mcp_normalize_root_combinators Not enough to say

Nothing here resolved what this flag was doing on this version, so nothing here should be read as on or off.

This account: no value returned · anonymous baseline: no value returned · compiled default in v2.1.216: not a boolean we can read

These values were read against a different version of Claude Code, so treat them as the nearest reading available instead of one taken on this release.

tengu_mcp_drop_invalid_tool_schemas Not enough to say

Nothing here resolved what this flag was doing on this version, so nothing here should be read as on or off.

This account: no value returned · anonymous baseline: no value returned · compiled default in v2.1.216: not a boolean we can read

These values were read against a different version of Claude Code, so treat them as the nearest reading available instead of one taken on this release.

Read once, for one account on one subscription tier, against v2.1.216. It isn't a statement about your account. What a flag value here can and cannot tell you

What has happened since
Flag reading moved The flag server now returns ["*"] for tengu_mcp_drop_invalid_tool_schemas, read as this account. A reading is one sample. Claude Code evaluates its flags remotely, so no client sees the targeting rule behind a value and this says nothing about your account.
Flag reading moved The flag server now returns nothing at all, having stopped carrying it for tengu_mcp_drop_invalid_tool_schemas, read as this account. A reading is one sample. Claude Code evaluates its flags remotely, so no client sees the targeting rule behind a value and this says nothing about your account.

See this across every release →

See this entry in the whole of v2.1.216 →

Feedback