Proposals · SEP-1730 · Final

SDKs Tiering System

Standards Track · Created 2025-10-29 · Source

Abstract

This SEP proposes a tiering system for Model Context Protocol (MCP) SDKs to establish clear expectations for feature support, maintenance commitments, and quality standards. The system defines three tiers of SDK support with objective, measurable criteria for classification.

Motivation

The MCP ecosystem needs SDK harmonization to help users make informed decisions. Users currently face challenges:

Specification

Tier Definitions

Tier 1: fully supported

SDKs in this tier provides full protocol implementation and is well supported

Requirements:

Tier 2: commitment to be fully supported

SDKs with established implementations actively working toward full protocol support.

Requirements:

Tier 3: Experimental

Early-stage or specialized SDKs exploring the protocol space.

Characteristics:

Conformance Testing

All SDKs must undergo conformance testing using protocol trace validation: for details see Conformance Testing RFC (forthcoming). This SEP is not focusing on Conformance testing. For the initial version of tiering, we will go with the simplified version where we would have an Example server for each SDK and run simplified conformance tests against those.

ValidatorTest SuiteSDKValidatorTest SuiteSDKExecute test scenarioProtocol messagesSubmit traceCompliance reportPass/Fail result

Compliance Scoring:

Tier Advancement Process

  1. Self-Assessment: Maintainers evaluate their SDK against tier criteria
  2. Application: Submit tier advancement request with evidence
  3. Review: Community review period (2 weeks)
  4. Validation: Automated conformance testing, github stats on issues
  5. Decision: Tier assignment by MCP maintainers

Tier Relegation Process

  1. Auto validation:
    1. compliance tests continuously not passing for four week for Tier 1
    2. 20% of compliance tests continuously not passing for four week for Tier 2
  2. Issues:
    1. Issues are not addressed within two months

Requirements matrix

Feature SDK A SDK B SDK C
Protocol Features support (Conformance tests) 85% 60%% 100%
GitHub support stats 10 days 100 days 5 days
Documentation (self reported) Good Minimal Good
Tier (computed from above) Tier 2 Tier 3 Tier 1

Rationale

Why Three Tiers?

Why Time-Based Commitments?

While the community raised concerns about rigid timelines, they provide:

Why Not Just Feature Matrices?

Feature matrices alone don't communicate:

The tiering system combines feature support with quality guarantees.

Alternatives Considered

1. Feature Matrix Only

Rejected because: Doesn't communicate maintenance commitments or quality standards

2. Percentage-Based Scoring

Rejected because: Too granular and doesn't capture qualitative aspects like support

3. Properties-Based System

Rejected because: Multiple overlapping properties could confuse users

4. Latest Version Listing Only

Rejected because: Simply listing "supports MCP date" fails to capture critical information:

5. No Formal System

Rejected because: Current ad-hoc approach creates uncertainty for users

Backward Compatibility

This proposal introduces a new classification system with no breaking changes:

Security Implications

Implementation Plan

Community Impact

SDK Maintainers

SDK Users

Ecosystem

References

Appendix

Simplified conformance tests

While we are working on a comprehensive proposal for conformance testing which will take some time to implement, we want to move forward with at least some automated way to check if SDK has a full set of features. We will start from Servers features set, as we have many more servers than clients and the vast majority of developers using SDKs are Server implementers.

The most straightforward approach is to have an Example Server for each SDK, similar to to Everything Server. Then we will have Conformance Test Client with all the test cases we want to be able to test, for example:

What is needed form SDKs maintainers: implement everything server based on a spec. Spec will look like:

Given well defined spec for the server and SDK documentation, it should be easy to implement it with the help of any coding agent. We want to check it into each SDKs repo as it will serve as an example for server implementers.

Once each SDK has an Everything server, we will run the Conformance Test Client against it.