Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions conformance/client.rb
Original file line number Diff line number Diff line change
Expand Up @@ -182,6 +182,14 @@ def build_provider_for(scenario, context)
case scenario
when "initialize"
client.tools
when "json-schema-2020-12-preservation"
# SEP-1613/SEP-2106: echo the focal tool's observed inputSchema verbatim so the harness
# can diff what the client preserved. Preservation holds because `Client::Tool#input_schema`
# is the parsed response untouched.
tools = client.tools
focal = tools.find { |t| t.name == "json_schema_2020_12_tool" }
abort("Tool json_schema_2020_12_tool not found") unless focal
client.call_tool(name: "json_schema_echo", arguments: { "schema" => focal.input_schema })
when "tools_call"
tools = client.tools
add_numbers = tools.find { |t| t.name == "add_numbers" }
Expand Down
4 changes: 2 additions & 2 deletions conformance/expected_failures.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,9 @@ client:
# are not implemented in `MCP::Client::HTTP` yet.
- http-custom-headers
- http-invalid-tool-headers
# Client-side JSON Schema preservation gaps: `$ref` values must reach the caller unresolved.
# Client-side JSON Schema handling: `$ref` values must reach the caller unresolved,
# and the conformance client does not run the scenario over the modern lifecycle yet.
- json-schema-ref-no-deref
- json-schema-2020-12-preservation
# Unimplemented authorization extensions.
- auth/dpop
- auth/dpop-nonce
Expand Down