Skip to content

Add support required for v0.1.11 Client Conformance tests #1177

@mikekistler

Description

@mikekistler

The v0.1.11 release of the Conformance tests was published a few days ago. The C# SDK is required to pass all the tests in this release to be a "Tier 1" SDK.

I've started work on updating the SDK to run these tests. This work is in this branch:

https://github.com/modelcontextprotocol/csharp-sdk/tree/mdk/client-conformance-v0.1.11

I've managed to get some of the tests passing by fixing the test client, and those fixes are already pushed to the branch. But there are six tests still failing. Copilot believes that all these tests require fixes to the SDK itself to get to passing. Here's the summary from Copilot:

Remaining 6 Failing Tests (require SDK changes):

Test Issue Why Not Fixable with Test Changes
sse-retry Client doesn't send Last-Event-ID header on reconnection Requires SDK transport layer changes
auth/token-endpoint-auth-basic Client uses client_secret_post but should use client_secret_basic SDK doesn't respect token_endpoint_auth_methods_supported
auth/pre-registration Client always tries dynamic registration, ignores pre-registered credentials SDK doesn't support pre-registered client credentials
auth/scope-retry-limit Client doesn't retry authorization with different scopes on 401 SDK needs scope step-up retry logic
auth/client-credentials-jwt Client uses authorization code flow instead of client_credentials SDK doesn't support client_credentials grant type
auth/client-credentials-basic Client uses authorization code flow instead of client_credentials SDK doesn't support client_credentials grant type

The remaining failures all require changes to the SDK's OAuth implementation (in ClientOAuthProvider.cs) to:

  1. Support the client_credentials grant type
  2. Respect token_endpoint_auth_methods_supported
  3. Support pre-registered client credentials
  4. Implement scope step-up retry logic
  5. Send Last-Event-ID header on SSE reconnection

Metadata

Metadata

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions