
This comparison is part of our MCP comparisons, within The MCP Guide. Facts are checked against each vendor's own documentation and pricing pages on the date shown.
Pick the SDK in the language your team already ships. Both official SDKs are Tier 1 and both support the 2026-07-28 spec, so neither is the "safe" choice by default. TypeScript tends to fit web stacks and edge runtimes; Python tends to fit data, ML and scripting teams.
The real differences are in packaging, schemas, runtimes and licence. This page lays them out side by side.
Checked against: TypeScript SDK docs and Python SDK docs on 28 October 2026. eSEOspace did not test either product.
Key Takeaways
- The official SDK page lists both TypeScript and Python as Tier 1.
- The MCP project says both SDKs have passed 1 billion total downloads.
- TypeScript v2 ships as two packages,
@modelcontextprotocol/serverand@modelcontextprotocol/client, at version 2.4.0. - Python ships as one package,
mcp, at version 2.3.0, and needs Python 3.11 or later. - TypeScript schemas are explicit objects (Zod, Valibot, ArkType); Python schemas come from type hints.
- Python is MIT licensed; TypeScript is Apache-2.0 for new contributions, with existing code under MIT.
At a glance
| TypeScript SDK | Python SDK | |
|---|---|---|
| Tier | 1 | 1 |
| Packages | @modelcontextprotocol/server, @modelcontextprotocol/client | mcp (add [cli] for tools) |
| Latest release (28 Oct 2026) | 2.4.0 (23 Oct 2026) | 2.3.0 (2 Oct 2026) |
| Spec target | 2026-07-28 | 2026-07-28 |
| Runtimes | Node.js, Bun, Deno | Python 3.11+ |
| Schema style | Standard Schema objects (Zod v4, Valibot, ArkType) | Type hints, plus Pydantic Field |
| Server API | McpServer with registerTool | MCPServer with @mcp.tool() |
| Web framework helpers | Express, Fastify, Hono, Node.js HTTP | Not documented as separate packages |
| Older major version | v1 gets fixes for at least six months after 27 Jul 2026 | v1 import paths removed in v2 |
| Licence | Apache-2.0 for new contributions, existing code MIT | MIT |
| Tasks extension | Not documented | Not implemented yet, per v2 notes |
What "Tier 1" means for both
The SDK tiering rules set the bar. A Tier 1 SDK must pass 100% of conformance tests, triage issues within 2 business days and fix critical bugs within 7 days. Extensions such as Tasks and MCP Apps "are not required for any tier."
So you get the same support promise in either language. Our page on the official MCP SDKs compares all ten.
Both also shipped on time for the new spec. The 2026-07-28 release post says "All four Tier 1 SDKs speak 2026-07-28 as of today," naming TypeScript, Python, Go and C#. The same post says both TypeScript and Python crossed "the 1 billion total downloads threshold."
Where the TypeScript SDK is stronger
Runtimes and web frameworks. The TypeScript SDK README says it runs on Node.js, Bun and Deno. It also publishes thin middleware packages for Express, Fastify, Hono and Node.js HTTP. The docs have a section on "web-standard runtimes," which matters if you host on edge platforms.
Host header validation in the helpers. The README says the Express, Fastify and Hono helpers include "Host header validation." Host checks are one defense against DNS rebinding on local HTTP servers. Rebinding lets a web page reach a server on localhost.
Choice of schema library. Tool and prompt schemas use Standard Schema, so you can "bring Zod v4, Valibot, ArkType, or any compatible library," per the README. If your app already validates with Zod, your MCP tools can reuse those schemas.
A gentler major-version upgrade. The README says v1 (@modelcontextprotocol/sdk) "continues to receive bug fixes and security updates for at least six months after the v2 release (2026-07-27)." The docs also include a codemod package for v1 to v2 moves.
Split packages. A client app installs only @modelcontextprotocol/client. A server installs only @modelcontextprotocol/server. In the 2026-07-28 release post, Manufact credited "the new client-server split" for cutting its package size by "around 83%." That is one company's figure, not an official benchmark.
Our TypeScript first-tool lesson shows the v2 API in a working server.
Where the Python SDK is stronger
Less code per tool. The Python SDK README shows a full server in about 15 lines. Your function's type hints are the schema. As the README puts it: "no JSON Schema (a: int, b: int is the schema), no request parsing, no validation code."
One package, built-in CLI. Installing mcp[cli] adds mcp dev, mcp run and mcp install. mcp dev opens the MCP Inspector against your server for quick testing.
Every standard transport. The README says the SDK speaks "stdio, Streamable HTTP, and SSE." SSE is the legacy transport, which some older clients still use.
Tracing on by default. The What's new in v2 page says "OpenTelemetry ships on by default." The same page lists pages for OAuth clients and the SEP-990 identity-assertion flow.
A larger framework ecosystem. FastMCP, a separate framework from Prefect, builds on the Python SDK v2. LangChain's MCP support is built on FastMCP. If you live in Python AI tooling, those pieces fit together. See our FastMCP vs official Python SDK comparison.
Our Python first-tool lesson builds the same server as the TypeScript lesson, so you can compare the two line by line.
Upgrading from v1
Both SDKs broke APIs in v2 to match the stateless 2026-07-28 spec.
- TypeScript: the package name changed from
@modelcontextprotocol/sdkto the split packages. v1 stays supported for a while, which gives you time. - Python: the SDK's v2 notes say the class once called FastMCP is now
MCPServer, and the old import path "is gone rather than deprecated." v1 code fails on import until you update it.
If you maintain a v1 server in either language, plan the upgrade now. Our page on the stateless MCP protocol explains what changed underneath.
Pricing
Both SDKs are free and open source. The Python SDK is MIT licensed. The TypeScript SDK is licensed "under the Apache License 2.0 for new contributions, with existing code under MIT," per its README.
Your costs come from hosting, auth and the time to build.
Security and admin controls
Neither SDK decides your security policy. Both give you building blocks.
- Auth: the TypeScript README lists "auth helpers" for servers and "OAuth helpers" for clients. The Python docs have pages for authorization, OAuth clients and identity assertion.
- Transport safety: TypeScript's framework helpers include Host header validation. In either SDK, bind local servers to localhost and confirm rebinding protection is on for your version.
- Logging and tracing: Python ships OpenTelemetry on by default. TypeScript's docs include a middleware section and a testing section.
- Supply chain: pin exact versions and install only the official package names listed above.
For the full list of server-side controls, see the MCP security hub.
Which to choose
Pick the TypeScript SDK if:
- Your team writes TypeScript or JavaScript every day.
- You plan to host on Node.js, Bun, Deno or a web-standard edge runtime.
- You already validate data with Zod, Valibot or ArkType.
- You want ready-made Express, Fastify or Hono helpers.
Pick the Python SDK if:
- Your team writes Python, or the server wraps data science or ML code.
- You want the shortest path from a function to a tool.
- You plan to use FastMCP or LangChain on top.
- Your company prefers MIT-licensed dependencies.
Not sure? Build one small tool in each using the course lessons, then decide. For more matchups, browse our MCP comparisons.
Next step
The language matters less than tool design, auth and hosting. If you want help choosing a stack and shipping a production server, talk to our MCP development team.
Frequently asked questions
Is the TypeScript or Python MCP SDK more complete?
Both are Tier 1, which means 100% on the official conformance tests. Neither documents support for the Tasks extension as of October 2026. Differences are mostly in style, runtimes and packaging.
Which SDK is more popular?
The MCP project's 2026-07-28 release post says both TypeScript and Python passed 1 billion total downloads. It does not rank one above the other.
Can a Python MCP server work with a TypeScript client?
Yes. MCP is a wire protocol based on JSON-RPC. Any compliant client can talk to any compliant server, whatever language each is written in.
Should I start on TypeScript v1 or v2?
Start on v2. The README says v1 gets bug fixes and security updates for at least six months after v2's release on 27 July 2026. New projects should use @modelcontextprotocol/server and @modelcontextprotocol/client.











