diff --git a/conformance/expected-failures-2026-07-28.yaml b/conformance/expected-failures-2026-07-28.yaml index 85455fad..41754013 100644 --- a/conformance/expected-failures-2026-07-28.yaml +++ b/conformance/expected-failures-2026-07-28.yaml @@ -9,11 +9,7 @@ # When bumping DRAFT_CONFORMANCE_VERSION, diff # `conformance list --spec-version 2026-07-28` and update #977. -server: - # SEP-2106: composition/conditional/$anchor keywords are stripped from - # published tool input schemas. - # tracked in #1003 - - json-schema-2020-12 +server: [] client: # Client does not yet send MCP-Protocol-Version header pre-initialize as diff --git a/conformance/src/bin/server.rs b/conformance/src/bin/server.rs index ceecca3b..441c5512 100644 --- a/conformance/src/bin/server.rs +++ b/conformance/src/bin/server.rs @@ -556,6 +556,7 @@ impl ServerHandler for ConformanceServer { "type": "object", "$defs": { "address": { + "$anchor": "address", "type": "object", "properties": { "street": { "type": "string" }, @@ -567,6 +568,19 @@ impl ServerHandler for ConformanceServer { "name": { "type": "string" }, "address": { "$ref": "#/$defs/address" } }, + "allOf": [{ + "anyOf": [ + { "required": ["name"] }, + { "required": ["address"] } + ] + }], + "if": { "required": ["address"] }, + "then": { + "properties": { + "address": { "required": ["street"] } + } + }, + "else": { "required": ["name"] }, "additionalProperties": false })), ),