3 Commits

Author SHA1 Message Date
Pietro Zullo 6160a6bdde fix(python): achieve 100% client conformance (20/20) — fix sse-retry (#1019)
The conformance client was just sleeping during sse-retry instead of
calling the test_reconnection tool. The MCP SDK transport already handles
SSE reconnection with Last-Event-ID correctly — we just needed to
trigger the stream closure by calling the tool.

Also added comprehensive documentation to the conformance client explaining:
- How the conformance framework works
- What each scenario expects
- Why each configuration decision was made
- Links to spec references for each scenario

Python client conformance: 20/20 (100%)
2026-02-15 17:03:19 -08:00
Pietro Zullo 0eeeee6d1a fix(python): improve client conformance (pre-registration, CIMD, scope step-up) (#1011)
* fix(python): handle pre-registration and CIMD in conformance client

Configure OAuthClientProvider correctly for each auth scenario:
- Pre-registration: populate storage with client_id/secret from MCP_CONFORMANCE_CONTEXT
- CIMD: pass client_metadata_url for URL-based client IDs
- Use asyncio.get_running_loop() for reliable future creation

* fix(python): use correct CIMD URL for conformance test (conformance-test.local)

* fix(python): exercise tools in auth scenarios to trigger scope step-up

The conformance client was doing nothing after connecting in auth scenarios,
so the scope-step-up 403 flow never triggered. Now calls tools after auth
so httpx's OAuthClientProvider can handle the re-authorization.

Client conformance: 19/20 (was 18/20)
2026-02-15 16:13:35 -08:00
Pietro Zullo 29f23adda1 feat: conformance test infrastructure for server + client (#1008)
- Update Python conformance server with all required tool/resource/prompt names
- Add Python conformance client with headless OAuth for auth scenarios
- Add integration test (test_conformance.py) with 11 tests covering both runners
- Update CI workflow: test-type 'both', separate clients list
- Add SEP-1330 enum elicitation to TypeScript conformance server

Python server conformance: 30/30 (100%)
Python client conformance: 16/20 (80%) — 4 auth gaps in upstream SDK
2026-02-14 18:54:59 -08:00