Align the 2026-07-28 wire with spec PR #3002 and SEP-2575 HTTP statuses (#1752)

Co-authored-by: Stephen Halter <halter73@gmail.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Co-authored-by: tarekgh <tarek.mahmoud.sayed@gmail.com>
This commit is contained in:
Paul Carleton 2026-07-28 00:08:03 +01:00 • committed by GitHub
commit 26f60ab7f4
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -321,6 +321,27 @@ try
}
break;
}
case "json-schema-ref-no-deref":
{
// SEP-2106: listing tools must not dereference network $refs in a tool's
// inputSchema — the scenario's canary endpoint observes any such fetch.
await mcpClient.ListToolsAsync();
break;
}
case "sep-2322-client-request-state":
{
// SEP-2322 (MRTR): drive the client's input-required auto-loop. The mock
// inspects the raw tools/call params: requestState echoed byte-exact (and
// omitted when the server sent none), a fresh JSON-RPC id per retry, no
// MRTR params bleeding into the unrelated call, and a missing resultType
// parsing as a terminal (complete) result.
await mcpClient.ListToolsAsync();
await mcpClient.CallToolAsync(toolName: "test_mrtr_echo_state", arguments: new Dictionary<string, object?>());
await mcpClient.CallToolAsync(toolName: "test_mrtr_unrelated", arguments: new Dictionary<string, object?>());
await mcpClient.CallToolAsync(toolName: "test_mrtr_no_state", arguments: new Dictionary<string, object?>());
await mcpClient.CallToolAsync(toolName: "test_mrtr_no_result_type", arguments: new Dictionary<string, object?>());
break;
}
default:
// No extra processing for other scenarios
break;