Skip to content

Conformance Testing #684

Closed
Closed

Description

@alexhancock

Rust SDK Conformance

Doing some work for https://github.com/modelcontextprotocol/conformance/blob/main/SDK_INTEGRATION.md so we can tier ourselves as an SDK and evaluate

My initial conformance server and client are here: https://github.com/modelcontextprotocol/rust-sdk/tree/alexhancock/conformance and below is some data from the first run

Server Conformance Tests

Command:

cd ~/Development/conformance
npx tsx src/index.ts server --url http://localhost:8001/mcp --suite active

Output:

=== SUMMARY ===
✓ server-initialize: 1 passed, 0 failed
✓ logging-set-level: 1 passed, 0 failed
✓ ping: 1 passed, 0 failed
✓ completion-complete: 1 passed, 0 failed
✓ tools-list: 1 passed, 0 failed
✓ tools-call-simple-text: 1 passed, 0 failed
✓ tools-call-image: 1 passed, 0 failed
✓ tools-call-audio: 1 passed, 0 failed
✓ tools-call-embedded-resource: 1 passed, 0 failed
✓ tools-call-mixed-content: 1 passed, 0 failed
✓ tools-call-with-logging: 1 passed, 0 failed
✓ tools-call-error: 1 passed, 0 failed
✓ tools-call-with-progress: 1 passed, 0 failed
✓ tools-call-sampling: 1 passed, 0 failed
✓ tools-call-elicitation: 1 passed, 0 failed
✗ elicitation-sep1034-defaults: 2 passed, 3 failed
✓ server-sse-multiple-streams: 2 passed, 0 failed
✗ elicitation-sep1330-enums: 4 passed, 1 failed
✓ resources-list: 1 passed, 0 failed
✓ resources-read-text: 1 passed, 0 failed
✓ resources-read-binary: 1 passed, 0 failed
✓ resources-templates-read: 1 passed, 0 failed
✓ resources-subscribe: 1 passed, 0 failed
✓ resources-unsubscribe: 1 passed, 0 failed
✓ prompts-list: 1 passed, 0 failed
✓ prompts-get-simple: 1 passed, 0 failed
✗ prompts-get-with-args: 0 passed, 1 failed
✗ prompts-get-embedded-resource: 0 passed, 1 failed
✓ prompts-get-with-image: 1 passed, 0 failed
✗ dns-rebinding-protection: 1 passed, 1 failed

Total: 33 passed, 7 failed
```

# Client Conformance Tests

Command:

```
npx tsx src/index.ts client \
  --command "$HOME/Development/rust-sdk/target/release/conformance-client" \
  --suite all

Output:

=== SUITE SUMMARY ===

✓ initialize: 1 passed, 0 failed
✓ tools_call: 1 passed, 0 failed
✓ elicitation-sep1034-client-defaults: 5 passed, 0 failed
✓ sse-retry: 3 passed, 0 failed
✓ auth/metadata-default: 14 passed, 0 failed
✓ auth/metadata-var1: 14 passed, 0 failed
✓ auth/metadata-var2: 14 passed, 0 failed
✗ auth/metadata-var3: 0 passed, 4 failed
✓ auth/basic-cimd: 14 passed, 0 failed
✗ auth/scope-from-www-authenticate: 11 passed, 0 failed, 1 warnings
✓ auth/scope-from-scopes-supported: 15 passed, 0 failed
✓ auth/scope-omitted-when-undefined: 15 passed, 0 failed
✗ auth/scope-step-up: 13 passed, 1 failed
✓ auth/scope-retry-limit: 11 passed, 0 failed
✓ auth/token-endpoint-auth-basic: 19 passed, 0 failed
✓ auth/token-endpoint-auth-post: 19 passed, 0 failed
✓ auth/token-endpoint-auth-none: 19 passed, 0 failed
✗ auth/resource-mismatch: 14 passed, 1 failed
✓ auth/pre-registration: 14 passed, 0 failed
✓ auth/2025-03-26-oauth-metadata-backcompat: 12 passed, 0 failed
✗ auth/2025-03-26-oauth-endpoint-fallback: 0 passed, 3 failed
✗ auth/client-credentials-jwt: 4 passed, 1 failed
✓ auth/client-credentials-basic: 9 passed, 0 failed
✗ auth/cross-app-access-complete-flow: 10 passed, 2 failed

Total: 251 passed, 12 failed, 1 warnings

Activity

  1. alexhancock commented on Feb 25, 2026

    @alexhancock
    ContributorAuthor

    Results from the first run of the audit here: https://github.com/modelcontextprotocol/rust-sdk/blob/alexhancock/conformance/conformance/results/2026-02-25-rust-sdk-assessment.md

    The initial result is tier 3 but it doesn't look too heavy to get to tier 2 status: https://github.com/modelcontextprotocol/rust-sdk/blob/alexhancock/conformance/conformance/results/2026-02-25-rust-sdk-remediation.md

    @DaleSeo @jamadeo @michaelneale @jokemanfire We can do these things soon and discuss more tomorrow. Then ideally tier ourselves as 2 soon.

    @felixweinberger Does that sound reasonable to knock the missing things out for tier 2 status, and tier ourselves that way once complete?

  2. jokemanfire commented on Feb 26, 2026

    @jokemanfire
    Member

    The Tier2 looks easy , but Tier1 seems that there are two tasks that require code development。

  3. added
    enhancementNew feature or request
    P1High: significant functionality gap or spec violation
    on Feb 26, 2026
  4. linked a pull request that will close this issuefix: pass client conformance suite #960on Jul 7, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    P1High: significant functionality gap or spec violationenhancementNew feature or request

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions