-
Notifications
You must be signed in to change notification settings - Fork 1.4k
Description
Rust SDK — Tier 2 Assessment
SDK: modelcontextprotocol/rust-sdk
Version: rmcp v1.0.0 (branch: main) · crates.io/crates/rmcp/1.0.0
Assessed: 2026-03-04
Requested tier: Tier 2
Tool: @modelcontextprotocol/conformance tier-check
Result
All Tier 2 requirements are met.
| # | Requirement | Tier 2 Standard | Value | Status |
|---|---|---|---|---|
| 1 | Server Conformance | ≥ 80% pass rate | 26/30 (86.7%) | ✅ |
| 2 | Client Conformance | ≥ 80% pass rate | 17/20 (85.0%) | ✅ |
| 3 | Issue Triage | Within 1 month | 100% (23/23) | ✅ |
| 4 | P0 Resolution | Within 2 weeks | 0 open | ✅ |
| 5 | Stable Release | At least one ≥ 1.0.0 | rmcp v1.0.0 | ✅ |
| 6 | Spec Tracking | Within 6 months | 6-day gap (evidence) | ✅ |
| 7 | Documentation | Basic docs for core features | 26/48 features documented (evidence) | ✅ |
| 8 | Dependency Policy | Published update policy | dependabot.yml | ✅ |
| 9 | Roadmap | Plan toward Tier 1 | ROADMAP.md | ✅ |
Requirements Detail
1. Server Conformance — ✅ 26/30 (86.7%)
Tested against spec versions 2025-06-18 and 2025-11-25 using the conformance test suite. 4 scenarios fail — all tracked in ROADMAP.md.
Evidence: How to run it yourself
All 30 server scenarios (26 pass, 4 fail)
| Scenario | Status | Checks | Spec Versions |
|---|---|---|---|
| server-server-initialize | PASS | 1/1 | 2025-06-18, 2025-11-25 |
| server-tools-list | PASS | 1/1 | 2025-06-18, 2025-11-25 |
| server-tools-call-simple-text | PASS | 1/1 | 2025-06-18, 2025-11-25 |
| server-tools-call-image | PASS | 1/1 | 2025-06-18, 2025-11-25 |
| server-tools-call-audio | PASS | 1/1 | 2025-06-18, 2025-11-25 |
| server-tools-call-embedded-resource | PASS | 1/1 | 2025-06-18, 2025-11-25 |
| server-tools-call-mixed-content | PASS | 1/1 | 2025-06-18, 2025-11-25 |
| server-tools-call-error | PASS | 1/1 | 2025-06-18, 2025-11-25 |
| server-tools-call-with-logging | PASS | 1/1 | 2025-06-18, 2025-11-25 |
| server-tools-call-with-progress | PASS | 1/1 | 2025-06-18, 2025-11-25 |
| server-tools-call-sampling | PASS | 1/1 | 2025-06-18, 2025-11-25 |
| server-tools-call-elicitation | PASS | 1/1 | 2025-06-18, 2025-11-25 |
| server-server-sse-multiple-streams | PASS | 2/2 | 2025-11-25 |
| server-resources-list | PASS | 1/1 | 2025-06-18, 2025-11-25 |
| server-resources-read-text | PASS | 1/1 | 2025-06-18, 2025-11-25 |
| server-resources-read-binary | PASS | 1/1 | 2025-06-18, 2025-11-25 |
| server-resources-templates-read | PASS | 1/1 | 2025-06-18, 2025-11-25 |
| server-resources-subscribe | PASS | 1/1 | 2025-06-18, 2025-11-25 |
| server-resources-unsubscribe | PASS | 1/1 | 2025-06-18, 2025-11-25 |
| server-prompts-list | PASS | 1/1 | 2025-06-18, 2025-11-25 |
| server-prompts-get-simple | PASS | 1/1 | 2025-06-18, 2025-11-25 |
| server-prompts-get-with-args | FAIL | 0/1 | 2025-06-18, 2025-11-25 |
| server-prompts-get-embedded-resource | FAIL | 0/1 | 2025-06-18, 2025-11-25 |
| server-prompts-get-with-image | PASS | 1/1 | 2025-06-18, 2025-11-25 |
| server-ping | PASS | 1/1 | 2025-06-18, 2025-11-25 |
| server-logging-set-level | PASS | 1/1 | 2025-06-18, 2025-11-25 |
| server-completion-complete | PASS | 1/1 | 2025-06-18, 2025-11-25 |
| server-elicitation-sep1034-defaults | PASS | 5/5 | 2025-11-25 |
| server-elicitation-sep1330-enums | FAIL | 4/5 | 2025-11-25 |
| server-dns-rebinding-protection | FAIL | 1/2 | 2025-11-25 |
2. Client Conformance — ✅ 17/20 (85.0%)
Core: 4/4 (100%), Auth: 13/16 (81%) scored. 4 informational scenarios (draft/extension) are not scored for tier per conformance testing rules. All 3 date-versioned failures are tracked in ROADMAP.md.
Evidence: How to run it yourself
All 24 client scenarios (17/20 scored pass + 4 informational)
| Scenario | Status | Checks | Spec Versions | Notes |
|---|---|---|---|---|
| initialize | PASS | 1/1 | 2025-06-18, 2025-11-25 | |
| tools_call | PASS | 1/1 | 2025-06-18, 2025-11-25 | |
| sse-retry | PASS | 3/3 | 2025-11-25 | |
| elicitation-sep1034-client-defaults | PASS | 5/5 | 2025-11-25 | |
| auth/2025-03-26-oauth-metadata-backcompat | PASS | 12/12 | 2025-03-26 | |
| auth/2025-03-26-oauth-endpoint-fallback | FAIL | 0/3 | 2025-03-26 | Legacy endpoint fallback |
| auth/basic-cimd | PASS | 14/14 | 2025-11-25 | |
| auth/pre-registration | PASS | 14/14 | 2025-11-25 | |
| auth/metadata-default | PASS | 14/14 | 2025-11-25 | |
| auth/metadata-var1 | PASS | 14/14 | 2025-11-25 | |
| auth/metadata-var2 | PASS | 14/14 | 2025-11-25 | |
| auth/metadata-var3 | FAIL | 0/4 | 2025-11-25 | AS metadata discovery variant 3 |
| auth/token-endpoint-auth-post | PASS | 19/19 | 2025-06-18, 2025-11-25 | |
| auth/token-endpoint-auth-basic | PASS | 19/19 | 2025-06-18, 2025-11-25 | |
| auth/token-endpoint-auth-none | PASS | 19/19 | 2025-06-18, 2025-11-25 | |
| auth/scope-from-scopes-supported | PASS | 15/15 | 2025-11-25 | |
| auth/scope-from-www-authenticate | PASS | 11/11 | 2025-11-25 | |
| auth/scope-omitted-when-undefined | PASS | 15/15 | 2025-11-25 | |
| auth/scope-step-up | FAIL | 13/14 | 2025-11-25 | Scope upgrade handling |
| auth/scope-retry-limit | PASS | 11/11 | 2025-11-25 | |
| auth/resource-mismatch | FAIL | 14/15 | draft | Informational — not scored |
| auth/client-credentials-basic | PASS | 9/9 | extension | Informational |
| auth/client-credentials-jwt | FAIL | 4/5 | extension | Informational — not scored |
| auth/cross-app-access-complete-flow | FAIL | 10/12 | extension | Informational — not scored |
3. Issue Triage — ✅ 100% (23/23)
All 23 issues triaged within 2 business days (exceeds Tier 2's 1-month requirement). All 12 required labels are present. Automated triage via triage workflow.
Evidence: Open issues without any triage label
4. P0 Resolution — ✅ 0 open
No open P0 issues.
Evidence: Open P0 issues (should show 0 results)
5. Stable Release — ✅ rmcp v1.0.0
Published on crates.io and GitHub Releases. Companion macro crate also at rmcp-macros v1.0.0. Migration guide published in discussions.
6. Spec Tracking — ✅ < 6-month gap
Accepted SEPS from 2025-11-25 are complete with the sole exception of SEP-1649. It is anticipated that this outstanding item will be resolved within the coming days, comfortably within the six-month compliance window.
7. Documentation — ✅ 26/48 features
All core MCP features (tools, resources, prompts, sampling, roots, logging, completions, transports) are documented with prose and code examples in the README.md. OAuth documented in docs/OAUTH_SUPPORT.md. This meets Tier 2's "basic documentation covering core features" requirement. The remaining 22 features (14 undocumented + 8 partial) are tracked in ROADMAP.md for Tier 1.
Feature coverage table (26/48 PASS, 8 PARTIAL, 14 FAIL)
| # | Feature | Location | Examples | Verdict |
|---|---|---|---|---|
| 1 | Tools - listing | README.md (collapsed) | counter example | PARTIAL |
| 2 | Tools - calling | README.md (collapsed) | counter example | PARTIAL |
| 3 | Tools - text results | README.md (collapsed) | counter example | PARTIAL |
| 4 | Tools - image results | — | — | FAIL |
| 5 | Tools - audio results | — | — | FAIL |
| 6 | Tools - embedded resources | — | — | FAIL |
| 7 | Tools - error handling | — | implicit | PARTIAL |
| 8 | Tools - change notifications | README.md:770 | 1 | PASS |
| 9 | Resources - listing | README.md:132-228 | 2 | PASS |
| 10 | Resources - reading text | README.md:179-196 | 2 | PASS |
| 11 | Resources - reading binary | README.md:134 | — | PARTIAL |
| 12 | Resources - templates | README.md:198-209 | 1 | PASS |
| 13 | Resources - template reading | README.md:227 | 1 | PASS |
| 14 | Resources - subscribing | README.md:779-856 | 2 | PASS |
| 15 | Resources - unsubscribing | README.md:779-856 | 2 | PASS |
| 16 | Resources - change notifications | README.md:230-263 | 2 | PASS |
| 17 | Prompts - listing | README.md:269-382 | 2 | PASS |
| 18 | Prompts - getting simple | README.md:311-313 | 1 | PASS |
| 19 | Prompts - getting with arguments | README.md:319-337 | 1 | PASS |
| 20 | Prompts - embedded resources | — | — | FAIL |
| 21 | Prompts - image content | — | — | FAIL |
| 22 | Prompts - change notifications | README.md:377-379 | 1 | PASS |
| 23 | Sampling - creating messages | README.md:386-455 | 2 | PASS |
| 24 | Elicitation - form mode | examples/servers/README.md | elicitation_stdio.rs | PARTIAL |
| 25 | Elicitation - URL mode | — | — | FAIL |
| 26 | Elicitation - schema validation | examples/servers/README.md | elicitation_stdio.rs | PARTIAL |
| 27 | Elicitation - default values | — | — | FAIL |
| 28 | Elicitation - enum values | examples/servers/README.md | elicitation_enum_inference.rs | PARTIAL |
| 29 | Elicitation - complete notification | — | — | FAIL |
| 30 | Roots - listing | README.md:459-524 | 2 | PASS |
| 31 | Roots - change notifications | README.md:485-523 | 2 | PASS |
| 32 | Logging - sending log messages | README.md:527-598 | 2 | PASS |
| 33 | Logging - setting level | README.md:550-597 | 2 | PASS |
| 34 | Completions - resource argument | README.md:602-690 | 2 | PASS |
| 35 | Completions - prompt argument | README.md:602-690 | 2 | PASS |
| 36 | Ping | — | — | FAIL |
| 37 | Streamable HTTP transport (client) | crates/rmcp/README.md:48-56 | streamable_http.rs | PASS |
| 38 | Streamable HTTP transport (server) | crates/rmcp/README.md:48-56 | counter_streamhttp.rs | PASS |
| 39 | SSE transport - legacy (client) | — | — | FAIL |
| 40 | SSE transport - legacy (server) | — | — | FAIL |
| 41 | stdio transport (client) | README.md:56-73 | everything_stdio.rs | PASS |
| 42 | stdio transport (server) | README.md:77-128 | counter_stdio.rs | PASS |
| 43 | Progress notifications | README.md:702-720 | progress_demo.rs | PASS |
| 44 | Cancellation | README.md:722-746 | 1 | PASS |
| 45 | Pagination | README.md:219 (mention) | — | FAIL |
| 46 | Capability negotiation | README.md (builder API) | in every section | PASS |
| 47 | Protocol version negotiation | — | — | FAIL |
| 48 | JSON Schema 2020-12 support | README.md:53-54 | implicit (schemars) | PARTIAL |
8. Dependency Policy — ✅
.github/dependabot.yml — Weekly Cargo dependency updates and daily GitHub Actions updates. Pull request limits and commit message conventions configured.
9. Roadmap — ✅
ROADMAP.md — Tracks the path from Tier 2 to Tier 1 with concrete work items: 4 server conformance fixes, 3 client conformance fixes, VERSIONING.md creation, and 22 documentation gaps (14 FAIL + 8 PARTIAL features). Also tracks informational (non-scored) draft/extension scenario gaps.
Reproduce This Assessment
Step-by-step instructions
Prerequisites
- Node.js >= 20
- Rust toolchain (for building the SDK)
- GitHub CLI (
gh) authenticated (gh auth login) - Git
Quick check (repository health only, ~30 seconds)
git clone https://github.com/modelcontextprotocol/conformance.git
cd conformance
npm install
npm run build
npm run --silent tier-check -- --repo modelcontextprotocol/rust-sdk --skip-conformanceFull check (with conformance tests, ~5 minutes)
# Terminal 1: Clone and start the SDK's conformance server
git clone https://github.com/modelcontextprotocol/rust-sdk.git
cd rust-sdk
cargo build --release -p mcp-conformance
./target/release/conformance-server &
# Server starts on http://127.0.0.1:8001/mcp
# Terminal 2: Run the full tier-check
cd conformance
npm run --silent tier-check -- \
--repo modelcontextprotocol/rust-sdk \
--conformance-server-url http://127.0.0.1:8001/mcp \
--client-cmd './target/release/conformance-client'Output formats
# Terminal output (default)
npm run --silent tier-check -- --repo modelcontextprotocol/rust-sdk --skip-conformance
# Markdown report
npm run --silent tier-check -- --repo modelcontextprotocol/rust-sdk --skip-conformance --output markdown
# Machine-readable JSON
npm run --silent tier-check -- --repo modelcontextprotocol/rust-sdk --skip-conformance --output json