|
| 1 | +--- |
| 2 | +title: SDK Tiering System |
| 3 | +description: Feature completeness, protocol support, and maintenance commitment levels for Model Context Protocol SDKs |
| 4 | +--- |
| 5 | + |
| 6 | +The MCP SDK Tiering System establishes clear expectations for feature completeness, protocol support, and maintenance commitments across official and community-driven SDKs. This helps developers choose the right SDK for their needs and provides SDK maintainers with a clear path to improving adoption expectations. |
| 7 | + |
| 8 | +<Note> |
| 9 | + **Key dates:** |
| 10 | + - **January 23, 2026**: Conformance tests available |
| 11 | + - **February 23, 2026**: Official SDK tiering published |
| 12 | + |
| 13 | +Between January 23 and February 23, SDK maintainers can work with the |
| 14 | +Conformance Testing working group to adopt the tests and set up GitHub issue |
| 15 | +tracking with the standardized labels defined below. |
| 16 | + |
| 17 | +</Note> |
| 18 | + |
| 19 | +## Overview |
| 20 | + |
| 21 | +SDKs are classified into three tiers based on feature completeness, maintenance commitments, and documentation quality: |
| 22 | + |
| 23 | +- **Tier 1**: Fully supported SDKs with complete protocol implementation, including all |
| 24 | + non-experimental features and optional capabilities like sampling and elicitation |
| 25 | +- **Tier 2**: Actively-maintained SDKs working toward full protocol specification support |
| 26 | +- **Tier 3**: Experimental, partially implemented, or specialized SDKs |
| 27 | + |
| 28 | +Experimental features (such as Tasks) and protocol extensions (such as MCP Apps) are not required |
| 29 | +for any tier. |
| 30 | + |
| 31 | +## Tier Requirements |
| 32 | + |
| 33 | +| Requirement | Tier 1: Fully Supported | Tier 2: Commitment to Full Support | Tier 3: Experimental | |
| 34 | +| --------------------------- | ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------- | ---------------------- | |
| 35 | +| **Conformance Tests** | 100% pass rate | 80% pass rate | No minimum | |
| 36 | +| **New Protocol Features** | Before new spec version release, timeline agreed per release based on feature complexity | Within 6 months | No timeline commitment | |
| 37 | +| **Issue Triage** | Within 2 business days | Within a month | No requirement | |
| 38 | +| **Critical Bug Resolution** | Within 7 days | Within two weeks | No requirement | |
| 39 | +| **Stable Release** | Required with clear versioning | At least one stable release | Not required | |
| 40 | +| **Documentation** | Comprehensive with examples for all features | Basic documentation covering core features | No minimum | |
| 41 | +| **Dependency Policy** | Published update policy | Published update policy | Not required | |
| 42 | +| **Roadmap** | Published roadmap | Published plan toward Tier 1 or explanation for remaining Tier 2 | Not required | |
| 43 | + |
| 44 | +**Issue Triage** means labeling and determining whether an issue is valid, not resolving the issue. |
| 45 | + |
| 46 | +**Critical Bug** refers to P0 issues (see [Priority labels](#priority-only-if-actionable) for |
| 47 | +detailed criteria). |
| 48 | + |
| 49 | +**Stable Release** is a published version explicitly marked as production-ready (e.g., version `1.0.0` |
| 50 | +or higher without pre-release identifiers like `-alpha`, `-beta`, or `-rc`). |
| 51 | + |
| 52 | +**Clear Versioning** means following idiomatic versioning patterns with documented |
| 53 | +breaking change policies, so users can understand compatibility expectations when upgrading. |
| 54 | + |
| 55 | +**Roadmap** outlines concrete steps and work items that track implementation of required MCP |
| 56 | +specification components (non-experimental features and optional capabilities as described in |
| 57 | +[Conformance Testing](#conformance-testing)), giving users visibility into upcoming feature support. |
| 58 | + |
| 59 | +## Conformance Testing |
| 60 | + |
| 61 | +All SDKs are evaluated using [automated conformance tests](https://github.com/modelcontextprotocol/conformance) |
| 62 | +that validate protocol support against the published specifications. SDKs receive a conformance score |
| 63 | +based on test results: |
| 64 | + |
| 65 | +- **Tier 1**: 100% conformance required |
| 66 | +- **Tier 2**: 80% conformance required |
| 67 | +- **Tier 3**: No minimum requirement |
| 68 | + |
| 69 | +Conformance scores are calculated against **applicable required tests** only: |
| 70 | + |
| 71 | +- Tests for the specification version the SDK targets |
| 72 | +- Excluding tests marked as pending or skipped |
| 73 | +- Excluding tests for experimental features |
| 74 | +- Excluding legacy backward-compatibility tests (unless the SDK claims legacy support) |
| 75 | + |
| 76 | +Conformance testing validates that SDKs correctly implement the protocol by running standardized test |
| 77 | +scenarios and checking protocol message exchanges. See [Tier Relegation](#tier-relegation) for how |
| 78 | +temporary test failures are handled. |
| 79 | + |
| 80 | +## Tier Advancement |
| 81 | + |
| 82 | +SDK maintainers can request tier advancement by: |
| 83 | + |
| 84 | +1. Self-assessing against tier requirements |
| 85 | +2. Opening an issue in the [modelcontextprotocol/modelcontextprotocol](https://github.com/modelcontextprotocol/modelcontextprotocol) repository with supporting evidence |
| 86 | +3. Passing automated conformance testing |
| 87 | +4. Receiving approval from SDK Working Group maintainers |
| 88 | + |
| 89 | +The SDK Working Group reviews advancement requests and makes final tier assignments. |
| 90 | + |
| 91 | +## Tier Relegation |
| 92 | + |
| 93 | +An SDK may be moved to a lower tier if existing conformance tests on the latest stable release fail |
| 94 | +continuously for 4 weeks: |
| 95 | + |
| 96 | +- **Tier 1 → Tier 2**: Any conformance test fails |
| 97 | +- **Tier 2 → Tier 3**: More than 20% of conformance tests fail |
| 98 | + |
| 99 | +## Issue Triage Labels |
| 100 | + |
| 101 | +SDK repositories must use consistent labels to enable automated reporting on issue handling metrics. |
| 102 | +Tier calculations use these metrics to measure triage response times (time from issue creation to |
| 103 | +first label) and critical bug resolution times (time from P0 label to issue close). |
| 104 | + |
| 105 | +### Type (pick one) |
| 106 | + |
| 107 | +| Label | Description | |
| 108 | +| ------------- | ----------------------------- | |
| 109 | +| `bug` | Something isn't working | |
| 110 | +| `enhancement` | Request for new feature | |
| 111 | +| `question` | Further information requested | |
| 112 | + |
| 113 | +Repositories using [GitHub's native issue types](https://docs.github.com/en/issues/tracking-your-work-with-issues/using-issues/managing-issue-types-in-an-organization) |
| 114 | +satisfy this requirement without needing type labels. |
| 115 | + |
| 116 | +### Status (pick one) |
| 117 | + |
| 118 | +Use these exact label names across all repositories to enable consistent reporting and analysis. |
| 119 | + |
| 120 | +| Label | Description | |
| 121 | +| -------------------- | ------------------------------------------------------- | |
| 122 | +| `needs confirmation` | Unclear if still relevant | |
| 123 | +| `needs repro` | Insufficient information to reproduce | |
| 124 | +| `ready for work` | Has enough information to start | |
| 125 | +| `good first issue` | Good for newcomers | |
| 126 | +| `help wanted` | Contributions welcome from those familiar with codebase | |
| 127 | + |
| 128 | +### Priority (only if actionable) |
| 129 | + |
| 130 | +| Label | Description | |
| 131 | +| ----- | --------------------------------------------------------------- | |
| 132 | +| `P0` | Critical: core functionality failures or high-severity security | |
| 133 | +| `P1` | Significant bug affecting many users | |
| 134 | +| `P2` | Moderate issues, valuable feature requests | |
| 135 | +| `P3` | Nice to haves, rare edge cases | |
| 136 | + |
| 137 | +**P0 (Critical)** issues are: |
| 138 | + |
| 139 | +- **Security vulnerabilities** with CVSS score ≥ 7.0 (High or Critical severity) |
| 140 | +- **Core functionality failures** that prevent basic MCP operations: connection establishment, |
| 141 | + message exchange, or use of core primitives (tools, resources, prompts) |
0 commit comments