
This page is part of our MCP specification reference, a plain-English guide to the Model Context Protocol spec (version 2026-07-28), within The MCP Guide. Building a server? See MCP development.
Status in the 2026-07-28 spec: not part of the protocol itself; SDK tiers are an official MCP community policy
The official MCP SDKs are ten libraries, maintained in the modelcontextprotocol GitHub organization, for building MCP servers and clients in TypeScript, Python, C#, Go, Rust, Ruby, Java, Swift, PHP and Kotlin. As of October 2026, six are Tier 1 (fully supported), Java is Tier 2 and Swift, PHP and Kotlin are Tier 3.
The tier tells you how complete the SDK is and how fast its maintainers promise to respond. It is the quickest way to judge whether an SDK is ready for production.
This page lists the SDKs, explains the tiers and gives each SDK's latest GitHub release, checked on 28 October 2026 against the official SDK page and each repository.
Key Takeaways
- There are ten official MCP SDKs; all of them build both servers and clients.
- Tier 1 as of October 2026: TypeScript, Python, C#, Go, Rust and Ruby.
- Tier 1 requires a 100% pass rate on the official conformance tests; Tier 2 requires 80%.
- Extensions such as Tasks and MCP Apps are not required for any tier.
- TypeScript v2 is a new package line that implements the 2026-07-28 spec; v1 still gets fixes for at least six months.
- Tiers can change, so check the SDK page and the repository before you commit.
What the official SDKs are
An SDK (software development kit) handles the protocol plumbing: message formats, transports, version metadata and validation. You write the tools and data access. The SDK page says all official SDKs support creating servers, building clients, "local and remote transport protocols" and "protocol compliance with type safety."
You do not need an SDK to speak MCP. But the spec has many MUST rules, and a conformance-tested SDK gets most of them right for you. Our guide on how to build an MCP server shows the basics in Python and TypeScript.
Why tiers exist
Before tiers, it was hard to know whether a given SDK kept up with the spec. The SDK tiering system "establishes clear expectations for feature completeness, protocol support, and maintenance commitments." It was set up under SEP-1730, which the 2025-11-25 changelog lists among its governance updates. The tiering page says official tiering was published on 23 February 2026.
The tiers
| Requirement | Tier 1 | Tier 2 | Tier 3 |
|---|---|---|---|
| Conformance tests | 100% pass | 80% pass | No minimum |
| New protocol features | Before the new spec release (timeline agreed per release) | Within 6 months | No commitment |
| Issue triage | Within 2 business days | Within a month | None |
| Critical bug fixes | Within 7 days | Within two weeks | None |
| Stable release | Required, clear versioning | At least one | Not required |
Tier 1 SDKs include "all non-experimental features and optional capabilities like sampling and elicitation." The page adds: "Experimental features and protocol extensions (such as Tasks and MCP Apps) are not required for any tier."
Tiers are not permanent. An SDK can drop a tier if conformance tests on its latest stable release "fail continuously for 4 weeks," or if issues sit unaddressed for two months. The feature lifecycle policy also requires Tier 1 SDKs to mark deprecated features with their language's native deprecation tag. Our page on MCP versioning and deprecation explains that policy.
The ten SDKs as of October 2026
Tiers come from the official SDK page. Latest releases come from each repository's GitHub "latest release" on 28 October 2026.
| SDK | Tier | Latest release (date) |
|---|---|---|
| TypeScript | 1 | v2.4.0 (23 Oct 2026) |
| Python | 1 | v2.3.0 (2 Oct 2026) |
| C# | 1 | v2.3.0 (20 Oct 2026) |
| Go | 1 | v1.8.0 (14 Sep 2026) |
| Rust | 1 | rmcp v3.8.0 (26 Oct 2026) |
| Ruby | 1 | v1.8.2 (27 Oct 2026) |
| Java | 2 | v2.1.0 (16 Oct 2026) |
| Swift | 3 | 0.12.1 (7 May 2026) |
| PHP | 3 | v0.9.0 (18 Oct 2026) |
| Kotlin | 3 | 0.16.0 (27 Oct 2026) |
A few details from the READMEs, checked on 28 October 2026:
- TypeScript. The
mainbranch is "v2 of the SDK," with split packages@modelcontextprotocol/serverand@modelcontextprotocol/client, "implementing the 2026-07-28 MCP spec." The older@modelcontextprotocol/sdkpackage (v1.x) gets bug fixes and security updates "for at least six months after the v2 release (2026-07-27)." - Python. Installed with
pip install "mcp[cli]"and requires Python 3.11 or later. Its docs include a "What's new in v2" guide and a migration guide. - Go. The README's version table shows v1.7.0 and later targeting 2026-07-28 while still supporting older versions back to 2024-11-05.
- Rust. The README says it implements "the stable MCP 2026-07-28 specification" and stays compatible with 2025-11-25 and earlier.
- Swift. The README still describes the 2025-11-25 version as the one it implements.
On release day, the 2026-07-28 announcement said the four Tier 1 SDKs at the time (TypeScript, Python, Go and C#) supported the new spec, with Rust in beta. As of October 2026 the SDK page lists Rust and Ruby as Tier 1 too.
How an SDK maps to the spec
Here is the kind of message an SDK builds for you on every request, adapted from the Streamable HTTP transport page. In a Tier 1 SDK you never write this by hand:
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "get_weather",
"arguments": { "location": "Seattle, WA" },
"_meta": {
"io.modelcontextprotocol/protocolVersion": "2026-07-28",
"io.modelcontextprotocol/clientInfo": { "name": "ExampleClient", "version": "1.0.0" },
"io.modelcontextprotocol/clientCapabilities": {}
}
}
}
What changed across spec versions
- 2025-11-25: the SDK tiering system was established (SEP-1730). Our specification changelog lists the rest of that release.
- January to February 2026: conformance tests became available on 23 January, and official tiering was published on 23 February, per the tiering page.
- 2026-07-28: Tier 1 SDKs gained deprecation duties under the new lifecycle policy. The stateless change also meant a new major version for some SDKs, such as TypeScript v2.
Common mistakes
- Picking by popularity alone. Check the tier and whether the SDK targets 2026-07-28.
- Assuming extensions are included. Tasks and MCP Apps support is up to each SDK.
- Upgrading across a major version blind. TypeScript and Python both publish migration guides for v2. Read them, especially if you relied on sessions.
- Using community SDKs as if official. Only the repositories on the SDK page carry an official tier.
- Forgetting to recheck. Tiers move up and down; this table reflects 28 October 2026.
Next step
SDKs implement the core spec and, optionally, extensions. Learn how those optional add-ons work in how MCP extensions work. If you would rather have someone build on these SDKs for you, see our MCP development service, or browse the MCP specification hub.
Frequently asked questions
Which languages have official MCP SDKs?
As of October 2026: TypeScript, Python, C#, Go, Rust, Ruby, Java, Swift, PHP and Kotlin. All ten live in the modelcontextprotocol GitHub organization.
What is a Tier 1 MCP SDK?
A fully supported SDK that passes 100% of the applicable conformance tests, implements all non-experimental features, triages issues within two business days and fixes critical bugs within seven days. As of October 2026, TypeScript, Python, C#, Go, Rust and Ruby are Tier 1.
Which MCP SDK should I use?
Use a Tier 1 SDK in the language your team already knows. Then check that its current release targets the 2026-07-28 spec and supports any extensions you need.
Do the MCP SDKs support the 2026-07-28 spec?
The Tier 1 SDKs were expected to support new spec features by release, and the READMEs for TypeScript, Go and Rust say they target 2026-07-28. Lower-tier SDKs may lag; Swift's README still names 2025-11-25.
Is the TypeScript MCP SDK v1 still supported?
Yes, for now. The README says v1.x gets bug fixes and security updates for at least six months after v2's release on 27 July 2026. New projects should start on v2.











