Skip to content

Commit 65d4610

Browse files
authored
Merge pull request modelcontextprotocol#1777 from modelcontextprotocol/ihrpr/sdk-tiers
SEP-1730: SDK tiers definition
2 parents b1a48a5 + bbad2ca commit 65d4610

4 files changed

Lines changed: 147 additions & 1 deletion

File tree

AGENTS.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,3 +60,7 @@ npm run check:seps # Check SEP documents
6060
# Workflow
6161
npm run prep # Full prep before committing (check, generate, format)
6262
```
63+
64+
## Commit Guidelines
65+
66+
- Do not include model names or details (e.g., "Claude", "Opus") in commit messages

docs/community/sdk-tiers.mdx

Lines changed: 141 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,141 @@
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)

docs/docs.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -366,6 +366,7 @@
366366
"pages": [
367367
"community/governance",
368368
"community/sep-guidelines",
369+
"community/sdk-tiers",
369370
"community/working-interest-groups",
370371
"community/antitrust"
371372
]

docs/docs/sdk.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ title: SDKs
33
description: Official SDKs for building with Model Context Protocol
44
---
55

6-
Build MCP servers and clients using our official SDKs. All SDKs provide the same core functionality and full protocol support.
6+
Build MCP servers and clients using our official SDKs. SDKs are classified into tiers based on feature completeness, protocol support, and maintenance commitment. Learn more about [SDK tiers](/community/sdk-tiers).
77

88
## Available SDKs
99

0 commit comments

Comments
 (0)