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.195 ·

MCP Tool Schema Normalization

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

MCP tools whose input schemas use top-level anyOf, oneOf, or allOf can now be normalized into a flat object schema, making them usable in Claude Code without being dropped.

Details
  • Controlled by the tengu_mcp_normalize_root_combinators feature flag. Set to ["*"] for all MCP servers, or a list of hostnames to target specific ones. Hostname entries support subdomain matching: "example.com" also matches api.example.com.
  • Only URL-based MCP servers (those with a url property) are eligible. stdio and sdk-type servers have no url and are never normalized regardless of flag value.
  • The injected note in the tool description differs by combinator type:
  • allOf only: "Input constraint: all listed parameters apply together (flattened from a JSON Schema allOf)."
  • oneOf: "Input constraint: Provide parameters for exactly one of: (param_a, param_b) or (param_c)."
  • anyOf: "Input constraint: Provide parameters for at least one of: (param_a, param_b) or (param_c)."
  • If parameter groups cannot be extracted from the schema branches, the note falls back to: "Input constraint: Provide parameters for exactly one of the documented parameter groups (flattened from a JSON Schema oneOf)."
  • Only property names matching /^[a-zA-Z0-9_.-]{1,64}$/ are included in the flattened schema; others are silently excluded.
  • Top-level schema fields preserved through normalization: $defs, definitions, $schema, additionalProperties, description, title.
  • If normalization fails for any reason, the tool is dropped with a logged reason (e.g., "input schema has top-level anyOf that is not an array") rather than silently accepted with a broken schema.
Evidence

Schema normalization (search for "Input constraint: all listed parameters apply together", "Provide parameters for exactly one of", "Provide parameters for at least one of", Mxp, tengu_mcp_normalize_root_combinators)

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.195: 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.195. 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_normalize_root_combinators, 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_normalize_root_combinators, 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 →

How sure we are
One source agreesOne thing we can check says the same as this entry.
The name it cites is new in this buildNew in this build: tengu_mcp_normalize_root_combinators

See this entry in the whole of v2.1.195 →

Feedback