freshcrate
Skin:/
Home > RAG & Memory > typescript-sdk

typescript-sdk

The official TypeScript SDK for Model Context Protocol servers and clients

Why this rank:Strong adoptionRelease freshnessHealthy release cadence

Description

The official TypeScript SDK for Model Context Protocol servers and clients

README

MCP TypeScript SDK

[!IMPORTANT] This is the main branch which contains v2 of the SDK (currently in development, pre-alpha).

We anticipate a stable v2 release in Q1 2026. Until then, v1.x remains the recommended version for production use. v1.x will continue to receive bug fixes and security updates for at least 6 months after v2 ships to give people time to upgrade.

For v1 documentation, see the V1 API docs. For v2 API docs, see /v2/.

NPM Version NPM Version MIT licensed

Table of Contents

Overview

The Model Context Protocol (MCP) allows applications to provide context for LLMs in a standardized way, separating the concerns of providing context from the actual LLM interaction.

This repository contains the TypeScript SDK implementation of the MCP specification. It runs on Node.js, Bun, and Deno, and ships:

  • MCP server libraries (tools/resources/prompts, Streamable HTTP, stdio, auth helpers)
  • MCP client libraries (transports, high-level helpers, OAuth helpers)
  • Optional middleware packages for specific runtimes/frameworks (Express, Hono, Node.js HTTP)
  • Runnable examples (under examples/)

Packages

This monorepo publishes split packages:

  • @modelcontextprotocol/server: build MCP servers
  • @modelcontextprotocol/client: build MCP clients

Tool and prompt schemas use Standard Schema — bring Zod v4, Valibot, ArkType, or any compatible library.

Middleware packages (optional)

The SDK also publishes small "middleware" packages under packages/middleware/ that help you wire MCP into a specific runtime or web framework.

They are intentionally thin adapters: they should not introduce new MCP functionality or business logic. See packages/middleware/README.md for details.

  • @modelcontextprotocol/node: Node.js Streamable HTTP transport wrapper for IncomingMessage / ServerResponse
  • @modelcontextprotocol/express: Express helpers (app defaults + Host header validation)
  • @modelcontextprotocol/hono: Hono helpers (app defaults + JSON body parsing hook + Host header validation)

Installation

Server

npm install @modelcontextprotocol/server
# or
bun add @modelcontextprotocol/server
# or
deno add npm:@modelcontextprotocol/server

Client

npm install @modelcontextprotocol/client
# or
bun add @modelcontextprotocol/client
# or
deno add npm:@modelcontextprotocol/client

Optional middleware packages

The SDK also publishes optional “middleware” packages that help you wire MCP into a specific runtime or web framework (for example Express, Hono, or Node.js http).

These packages are intentionally thin adapters and should not introduce additional MCP features or business logic. See packages/middleware/README.md for details.

# Node.js HTTP (IncomingMessage/ServerResponse) Streamable HTTP transport:
npm install @modelcontextprotocol/node

# Express integration:
npm install @modelcontextprotocol/express express

# Hono integration:
npm install @modelcontextprotocol/hono hono

Quick Start (runnable examples)

The runnable examples live under examples/ and are kept in sync with the docs.

  1. Install dependencies (from repo root):
pnpm install
  1. Run a Streamable HTTP example server:
pnpm --filter @modelcontextprotocol/examples-server exec tsx src/simpleStreamableHttp.ts

Alternatively, from within the example package:

cd examples/server
pnpm tsx src/simpleStreamableHttp.ts
  1. Run the interactive client in another terminal:
pnpm --filter @modelcontextprotocol/examples-client exec tsx src/simpleStreamableHttp.ts

Alternatively, from within the example package:

cd examples/client
pnpm tsx src/simpleStreamableHttp.ts

Next steps:

Documentation

Building docs locally

To generate the API reference documentation locally:

pnpm docs          # Generate V2 docs only (output: tmp/docs/)
pnpm docs:multi    # Generate combined V1 + V2 docs (output: tmp/docs-combined/)

The docs:multi script checks out both the v1.x and main branches via git worktrees, builds each, and produces a combined site with V1 docs at the root and V2 docs under /v2/.

v1 (legacy) documentation and fixes

If you are using the v1 generation of the SDK, the v1 API documentation is available at https://ts.sdk.modelcontextprotocol.io/. The v1 source code and any v1-specific fixes live on the long-lived v1.x branch. V2 API docs are at /v2/.

Contributing

Issues and pull requests are welcome on GitHub at https://github.com/modelcontextprotocol/typescript-sdk.

License

This project is licensed under the Apache License 2.0 for new contributions, with existing code under MIT. See the LICENSE file for details.

Release History

VersionChangesUrgencyDate
@modelcontextprotocol/fastify@2.0.0-alpha.2### Patch Changes - [#1840](https://github.com/modelcontextprotocol/typescript-sdk/pull/1840) [`424cbae`](https://github.com/modelcontextprotocol/typescript-sdk/commit/424cbaeee13b7fe18d38048295135395b9ad81bb) Thanks [@KKonstantinov](https://github.com/KKonstantinov)! - tsdown exports resolution fix - Updated dependencies \[[`424cbae`](https://github.com/modelcontextprotocol/typescript-sdk/commit/424cbaeee13b7fe18d38048295135395b9ad81bb)]: - @modelcontextprotocol/server@2.0.0-alpMedium4/1/2026
@modelcontextprotocol/server@2.0.0-alpha.2### Patch Changes - [#1840](https://github.com/modelcontextprotocol/typescript-sdk/pull/1840) [`424cbae`](https://github.com/modelcontextprotocol/typescript-sdk/commit/424cbaeee13b7fe18d38048295135395b9ad81bb) Thanks [@KKonstantinov](https://github.com/KKonstantinov)! - tsdown exports resolution fix Medium4/1/2026
@modelcontextprotocol/hono@2.0.0-alpha.2### Patch Changes - [#1840](https://github.com/modelcontextprotocol/typescript-sdk/pull/1840) [`424cbae`](https://github.com/modelcontextprotocol/typescript-sdk/commit/424cbaeee13b7fe18d38048295135395b9ad81bb) Thanks [@KKonstantinov](https://github.com/KKonstantinov)! - tsdown exports resolution fix - Updated dependencies \[[`424cbae`](https://github.com/modelcontextprotocol/typescript-sdk/commit/424cbaeee13b7fe18d38048295135395b9ad81bb)]: - @modelcontextprotocol/server@2.0.0-alpMedium4/1/2026
@modelcontextprotocol/express@2.0.0-alpha.2### Patch Changes - [#1840](https://github.com/modelcontextprotocol/typescript-sdk/pull/1840) [`424cbae`](https://github.com/modelcontextprotocol/typescript-sdk/commit/424cbaeee13b7fe18d38048295135395b9ad81bb) Thanks [@KKonstantinov](https://github.com/KKonstantinov)! - tsdown exports resolution fix - Updated dependencies \[[`424cbae`](https://github.com/modelcontextprotocol/typescript-sdk/commit/424cbaeee13b7fe18d38048295135395b9ad81bb)]: - @modelcontextprotocol/server@2.0.0-alpMedium4/1/2026
@modelcontextprotocol/node@2.0.0-alpha.2### Patch Changes - [#1840](https://github.com/modelcontextprotocol/typescript-sdk/pull/1840) [`424cbae`](https://github.com/modelcontextprotocol/typescript-sdk/commit/424cbaeee13b7fe18d38048295135395b9ad81bb) Thanks [@KKonstantinov](https://github.com/KKonstantinov)! - tsdown exports resolution fix - Updated dependencies \[[`424cbae`](https://github.com/modelcontextprotocol/typescript-sdk/commit/424cbaeee13b7fe18d38048295135395b9ad81bb)]: - @modelcontextprotocol/server@2.0.0-alpMedium4/1/2026
@modelcontextprotocol/client@2.0.0-alpha.2### Patch Changes - [#1840](https://github.com/modelcontextprotocol/typescript-sdk/pull/1840) [`424cbae`](https://github.com/modelcontextprotocol/typescript-sdk/commit/424cbaeee13b7fe18d38048295135395b9ad81bb) Thanks [@KKonstantinov](https://github.com/KKonstantinov)! - tsdown exports resolution fix Medium4/1/2026
@modelcontextprotocol/hono@2.0.0-alpha.1### Patch Changes - [#1534](https://github.com/modelcontextprotocol/typescript-sdk/pull/1534) [`69a0626`](https://github.com/modelcontextprotocol/typescript-sdk/commit/69a062693f61e024d7a366db0c3e3ba74ff59d8e) Thanks [@josefaidt](https://github.com/josefaidt)! - remove npm references, use pnpm - [#1534](https://github.com/modelcontextprotocol/typescript-sdk/pull/1534) [`69a0626`](https://github.com/modelcontextprotocol/typescript-sdk/commit/69a062693f61e024d7a366db0c3e3ba74ff59d8e) Thanks Medium4/1/2026
@modelcontextprotocol/server@2.0.0-alpha.1### Major Changes - [#1389](https://github.com/modelcontextprotocol/typescript-sdk/pull/1389) [`108f2f3`](https://github.com/modelcontextprotocol/typescript-sdk/commit/108f2f3ab6a1267587c7c4f900b6eca3cc2dae51) Thanks [@DePasqualeOrg](https://github.com/DePasqualeOrg)! - Fix error handling for unknown tools and resources per MCP spec. **Tools:** Unknown or disabled tool calls now return JSON-RPC protocol errors with code `-32602` (InvalidParams) instead of `CallToolResult` with `isEMedium4/1/2026
@modelcontextprotocol/fastify@2.0.0-alpha.1### Minor Changes - [#1536](https://github.com/modelcontextprotocol/typescript-sdk/pull/1536) [`81e4b2a`](https://github.com/modelcontextprotocol/typescript-sdk/commit/81e4b2a412ab52ada436061502dd711a67555519) Thanks [@andyfleming](https://github.com/andyfleming)! - Add Fastify middleware adapter for MCP servers, following the same pattern as the Express and Hono adapters. ### Patch Changes - Updated dependencies \[[`e86b183`](https://github.com/modelcontextprotocol/typescript-sdk/comMedium4/1/2026
@modelcontextprotocol/client@2.0.0-alpha.1### Major Changes - [#1783](https://github.com/modelcontextprotocol/typescript-sdk/pull/1783) [`045c62a`](https://github.com/modelcontextprotocol/typescript-sdk/commit/045c62a1e0ada756afe90dd1442534e362269dbf) Thanks [@felixweinberger](https://github.com/felixweinberger)! - Remove `WebSocketClientTransport`. WebSocket is not a spec-defined transport; use stdio or Streamable HTTP. The `Transport` interface remains exported for custom implementations. See #142. ### Minor Changes - [#152Medium4/1/2026
@modelcontextprotocol/express@2.0.0-alpha.1### Patch Changes - [#1534](https://github.com/modelcontextprotocol/typescript-sdk/pull/1534) [`69a0626`](https://github.com/modelcontextprotocol/typescript-sdk/commit/69a062693f61e024d7a366db0c3e3ba74ff59d8e) Thanks [@josefaidt](https://github.com/josefaidt)! - remove npm references, use pnpm - [#1534](https://github.com/modelcontextprotocol/typescript-sdk/pull/1534) [`69a0626`](https://github.com/modelcontextprotocol/typescript-sdk/commit/69a062693f61e024d7a366db0c3e3ba74ff59d8e) Thanks Medium4/1/2026
@modelcontextprotocol/node@2.0.0-alpha.1### Patch Changes - [#1504](https://github.com/modelcontextprotocol/typescript-sdk/pull/1504) [`327243c`](https://github.com/modelcontextprotocol/typescript-sdk/commit/327243cebd96e07686c88f7fa9ca22a5a7a7993d) Thanks [@corvid-agent](https://github.com/corvid-agent)! - Add missing `hono` peer dependency to `@modelcontextprotocol/node`. The package already depends on `@hono/node-server` which requires `hono` at runtime, but `hono` was only listed in the workspace root, not as a peer dependeMedium4/1/2026
v1.29.0## What's Changed * fix: treat v1.x as primary branch for npm latest tag (backport #1577) by @felixweinberger in https://github.com/modelcontextprotocol/typescript-sdk/pull/1749 * [v1.x] fix: disallow null (infinite) requested TTL by @LucaButBoring in https://github.com/modelcontextprotocol/typescript-sdk/pull/1339 * [v1.x] fix: add missing size field to ResourceSchema by @olaservo in https://github.com/modelcontextprotocol/typescript-sdk/pull/1575 * Add typings exports by @tdraier in https:Medium3/30/2026
v1.29.0## What's Changed * fix: treat v1.x as primary branch for npm latest tag (backport #1577) by @felixweinberger in https://github.com/modelcontextprotocol/typescript-sdk/pull/1749 * [v1.x] fix: disallow null (infinite) requested TTL by @LucaButBoring in https://github.com/modelcontextprotocol/typescript-sdk/pull/1339 * [v1.x] fix: add missing size field to ResourceSchema by @olaservo in https://github.com/modelcontextprotocol/typescript-sdk/pull/1575 * Add typings exports by @tdraier in https:Medium3/30/2026
v1.29.0## What's Changed * fix: treat v1.x as primary branch for npm latest tag (backport #1577) by @felixweinberger in https://github.com/modelcontextprotocol/typescript-sdk/pull/1749 * [v1.x] fix: disallow null (infinite) requested TTL by @LucaButBoring in https://github.com/modelcontextprotocol/typescript-sdk/pull/1339 * [v1.x] fix: add missing size field to ResourceSchema by @olaservo in https://github.com/modelcontextprotocol/typescript-sdk/pull/1575 * Add typings exports by @tdraier in https:Medium3/30/2026
v1.29.0## What's Changed * fix: treat v1.x as primary branch for npm latest tag (backport #1577) by @felixweinberger in https://github.com/modelcontextprotocol/typescript-sdk/pull/1749 * [v1.x] fix: disallow null (infinite) requested TTL by @LucaButBoring in https://github.com/modelcontextprotocol/typescript-sdk/pull/1339 * [v1.x] fix: add missing size field to ResourceSchema by @olaservo in https://github.com/modelcontextprotocol/typescript-sdk/pull/1575 * Add typings exports by @tdraier in https:Medium3/30/2026
v1.29.0## What's Changed * fix: treat v1.x as primary branch for npm latest tag (backport #1577) by @felixweinberger in https://github.com/modelcontextprotocol/typescript-sdk/pull/1749 * [v1.x] fix: disallow null (infinite) requested TTL by @LucaButBoring in https://github.com/modelcontextprotocol/typescript-sdk/pull/1339 * [v1.x] fix: add missing size field to ResourceSchema by @olaservo in https://github.com/modelcontextprotocol/typescript-sdk/pull/1575 * Add typings exports by @tdraier in https:Medium3/30/2026
v1.29.0## What's Changed * fix: treat v1.x as primary branch for npm latest tag (backport #1577) by @felixweinberger in https://github.com/modelcontextprotocol/typescript-sdk/pull/1749 * [v1.x] fix: disallow null (infinite) requested TTL by @LucaButBoring in https://github.com/modelcontextprotocol/typescript-sdk/pull/1339 * [v1.x] fix: add missing size field to ResourceSchema by @olaservo in https://github.com/modelcontextprotocol/typescript-sdk/pull/1575 * Add typings exports by @tdraier in https:Medium3/30/2026
v1.29.0## What's Changed * fix: treat v1.x as primary branch for npm latest tag (backport #1577) by @felixweinberger in https://github.com/modelcontextprotocol/typescript-sdk/pull/1749 * [v1.x] fix: disallow null (infinite) requested TTL by @LucaButBoring in https://github.com/modelcontextprotocol/typescript-sdk/pull/1339 * [v1.x] fix: add missing size field to ResourceSchema by @olaservo in https://github.com/modelcontextprotocol/typescript-sdk/pull/1575 * Add typings exports by @tdraier in https:Medium3/30/2026
v1.29.0## What's Changed * fix: treat v1.x as primary branch for npm latest tag (backport #1577) by @felixweinberger in https://github.com/modelcontextprotocol/typescript-sdk/pull/1749 * [v1.x] fix: disallow null (infinite) requested TTL by @LucaButBoring in https://github.com/modelcontextprotocol/typescript-sdk/pull/1339 * [v1.x] fix: add missing size field to ResourceSchema by @olaservo in https://github.com/modelcontextprotocol/typescript-sdk/pull/1575 * Add typings exports by @tdraier in https:Medium3/30/2026
v1.29.0## What's Changed * fix: treat v1.x as primary branch for npm latest tag (backport #1577) by @felixweinberger in https://github.com/modelcontextprotocol/typescript-sdk/pull/1749 * [v1.x] fix: disallow null (infinite) requested TTL by @LucaButBoring in https://github.com/modelcontextprotocol/typescript-sdk/pull/1339 * [v1.x] fix: add missing size field to ResourceSchema by @olaservo in https://github.com/modelcontextprotocol/typescript-sdk/pull/1575 * Add typings exports by @tdraier in https:Medium3/30/2026
v1.29.0## What's Changed * fix: treat v1.x as primary branch for npm latest tag (backport #1577) by @felixweinberger in https://github.com/modelcontextprotocol/typescript-sdk/pull/1749 * [v1.x] fix: disallow null (infinite) requested TTL by @LucaButBoring in https://github.com/modelcontextprotocol/typescript-sdk/pull/1339 * [v1.x] fix: add missing size field to ResourceSchema by @olaservo in https://github.com/modelcontextprotocol/typescript-sdk/pull/1575 * Add typings exports by @tdraier in https:Low3/30/2026
v1.29.0## What's Changed * fix: treat v1.x as primary branch for npm latest tag (backport #1577) by @felixweinberger in https://github.com/modelcontextprotocol/typescript-sdk/pull/1749 * [v1.x] fix: disallow null (infinite) requested TTL by @LucaButBoring in https://github.com/modelcontextprotocol/typescript-sdk/pull/1339 * [v1.x] fix: add missing size field to ResourceSchema by @olaservo in https://github.com/modelcontextprotocol/typescript-sdk/pull/1575 * Add typings exports by @tdraier in https:Low3/30/2026
v1.29.0## What's Changed * fix: treat v1.x as primary branch for npm latest tag (backport #1577) by @felixweinberger in https://github.com/modelcontextprotocol/typescript-sdk/pull/1749 * [v1.x] fix: disallow null (infinite) requested TTL by @LucaButBoring in https://github.com/modelcontextprotocol/typescript-sdk/pull/1339 * [v1.x] fix: add missing size field to ResourceSchema by @olaservo in https://github.com/modelcontextprotocol/typescript-sdk/pull/1575 * Add typings exports by @tdraier in https:Low3/30/2026
v1.29.0## What's Changed * fix: treat v1.x as primary branch for npm latest tag (backport #1577) by @felixweinberger in https://github.com/modelcontextprotocol/typescript-sdk/pull/1749 * [v1.x] fix: disallow null (infinite) requested TTL by @LucaButBoring in https://github.com/modelcontextprotocol/typescript-sdk/pull/1339 * [v1.x] fix: add missing size field to ResourceSchema by @olaservo in https://github.com/modelcontextprotocol/typescript-sdk/pull/1575 * Add typings exports by @tdraier in https:Low3/30/2026
v1.29.0## What's Changed * fix: treat v1.x as primary branch for npm latest tag (backport #1577) by @felixweinberger in https://github.com/modelcontextprotocol/typescript-sdk/pull/1749 * [v1.x] fix: disallow null (infinite) requested TTL by @LucaButBoring in https://github.com/modelcontextprotocol/typescript-sdk/pull/1339 * [v1.x] fix: add missing size field to ResourceSchema by @olaservo in https://github.com/modelcontextprotocol/typescript-sdk/pull/1575 * Add typings exports by @tdraier in https:Low3/30/2026
v1.29.0## What's Changed * fix: treat v1.x as primary branch for npm latest tag (backport #1577) by @felixweinberger in https://github.com/modelcontextprotocol/typescript-sdk/pull/1749 * [v1.x] fix: disallow null (infinite) requested TTL by @LucaButBoring in https://github.com/modelcontextprotocol/typescript-sdk/pull/1339 * [v1.x] fix: add missing size field to ResourceSchema by @olaservo in https://github.com/modelcontextprotocol/typescript-sdk/pull/1575 * Add typings exports by @tdraier in https:Low3/30/2026
v1.29.0## What's Changed * fix: treat v1.x as primary branch for npm latest tag (backport #1577) by @felixweinberger in https://github.com/modelcontextprotocol/typescript-sdk/pull/1749 * [v1.x] fix: disallow null (infinite) requested TTL by @LucaButBoring in https://github.com/modelcontextprotocol/typescript-sdk/pull/1339 * [v1.x] fix: add missing size field to ResourceSchema by @olaservo in https://github.com/modelcontextprotocol/typescript-sdk/pull/1575 * Add typings exports by @tdraier in https:Low3/30/2026
v1.29.0## What's Changed * fix: treat v1.x as primary branch for npm latest tag (backport #1577) by @felixweinberger in https://github.com/modelcontextprotocol/typescript-sdk/pull/1749 * [v1.x] fix: disallow null (infinite) requested TTL by @LucaButBoring in https://github.com/modelcontextprotocol/typescript-sdk/pull/1339 * [v1.x] fix: add missing size field to ResourceSchema by @olaservo in https://github.com/modelcontextprotocol/typescript-sdk/pull/1575 * Add typings exports by @tdraier in https:Low3/30/2026
v1.29.0## What's Changed * fix: treat v1.x as primary branch for npm latest tag (backport #1577) by @felixweinberger in https://github.com/modelcontextprotocol/typescript-sdk/pull/1749 * [v1.x] fix: disallow null (infinite) requested TTL by @LucaButBoring in https://github.com/modelcontextprotocol/typescript-sdk/pull/1339 * [v1.x] fix: add missing size field to ResourceSchema by @olaservo in https://github.com/modelcontextprotocol/typescript-sdk/pull/1575 * Add typings exports by @tdraier in https:Low3/30/2026
v1.29.0## What's Changed * fix: treat v1.x as primary branch for npm latest tag (backport #1577) by @felixweinberger in https://github.com/modelcontextprotocol/typescript-sdk/pull/1749 * [v1.x] fix: disallow null (infinite) requested TTL by @LucaButBoring in https://github.com/modelcontextprotocol/typescript-sdk/pull/1339 * [v1.x] fix: add missing size field to ResourceSchema by @olaservo in https://github.com/modelcontextprotocol/typescript-sdk/pull/1575 * Add typings exports by @tdraier in https:Low3/30/2026
v1.29.0## What's Changed * fix: treat v1.x as primary branch for npm latest tag (backport #1577) by @felixweinberger in https://github.com/modelcontextprotocol/typescript-sdk/pull/1749 * [v1.x] fix: disallow null (infinite) requested TTL by @LucaButBoring in https://github.com/modelcontextprotocol/typescript-sdk/pull/1339 * [v1.x] fix: add missing size field to ResourceSchema by @olaservo in https://github.com/modelcontextprotocol/typescript-sdk/pull/1575 * Add typings exports by @tdraier in https:Low3/30/2026
v1.29.0## What's Changed * fix: treat v1.x as primary branch for npm latest tag (backport #1577) by @felixweinberger in https://github.com/modelcontextprotocol/typescript-sdk/pull/1749 * [v1.x] fix: disallow null (infinite) requested TTL by @LucaButBoring in https://github.com/modelcontextprotocol/typescript-sdk/pull/1339 * [v1.x] fix: add missing size field to ResourceSchema by @olaservo in https://github.com/modelcontextprotocol/typescript-sdk/pull/1575 * Add typings exports by @tdraier in https:Low3/30/2026
v1.29.0## What's Changed * fix: treat v1.x as primary branch for npm latest tag (backport #1577) by @felixweinberger in https://github.com/modelcontextprotocol/typescript-sdk/pull/1749 * [v1.x] fix: disallow null (infinite) requested TTL by @LucaButBoring in https://github.com/modelcontextprotocol/typescript-sdk/pull/1339 * [v1.x] fix: add missing size field to ResourceSchema by @olaservo in https://github.com/modelcontextprotocol/typescript-sdk/pull/1575 * Add typings exports by @tdraier in https:Low3/30/2026
v1.29.0## What's Changed * fix: treat v1.x as primary branch for npm latest tag (backport #1577) by @felixweinberger in https://github.com/modelcontextprotocol/typescript-sdk/pull/1749 * [v1.x] fix: disallow null (infinite) requested TTL by @LucaButBoring in https://github.com/modelcontextprotocol/typescript-sdk/pull/1339 * [v1.x] fix: add missing size field to ResourceSchema by @olaservo in https://github.com/modelcontextprotocol/typescript-sdk/pull/1575 * Add typings exports by @tdraier in https:Low3/30/2026
v1.29.0## What's Changed * fix: treat v1.x as primary branch for npm latest tag (backport #1577) by @felixweinberger in https://github.com/modelcontextprotocol/typescript-sdk/pull/1749 * [v1.x] fix: disallow null (infinite) requested TTL by @LucaButBoring in https://github.com/modelcontextprotocol/typescript-sdk/pull/1339 * [v1.x] fix: add missing size field to ResourceSchema by @olaservo in https://github.com/modelcontextprotocol/typescript-sdk/pull/1575 * Add typings exports by @tdraier in https:Low3/30/2026
v1.29.0## What's Changed * fix: treat v1.x as primary branch for npm latest tag (backport #1577) by @felixweinberger in https://github.com/modelcontextprotocol/typescript-sdk/pull/1749 * [v1.x] fix: disallow null (infinite) requested TTL by @LucaButBoring in https://github.com/modelcontextprotocol/typescript-sdk/pull/1339 * [v1.x] fix: add missing size field to ResourceSchema by @olaservo in https://github.com/modelcontextprotocol/typescript-sdk/pull/1575 * Add typings exports by @tdraier in https:Low3/30/2026
v1.29.0## What's Changed * fix: treat v1.x as primary branch for npm latest tag (backport #1577) by @felixweinberger in https://github.com/modelcontextprotocol/typescript-sdk/pull/1749 * [v1.x] fix: disallow null (infinite) requested TTL by @LucaButBoring in https://github.com/modelcontextprotocol/typescript-sdk/pull/1339 * [v1.x] fix: add missing size field to ResourceSchema by @olaservo in https://github.com/modelcontextprotocol/typescript-sdk/pull/1575 * Add typings exports by @tdraier in https:Low3/30/2026
v1.29.0## What's Changed * fix: treat v1.x as primary branch for npm latest tag (backport #1577) by @felixweinberger in https://github.com/modelcontextprotocol/typescript-sdk/pull/1749 * [v1.x] fix: disallow null (infinite) requested TTL by @LucaButBoring in https://github.com/modelcontextprotocol/typescript-sdk/pull/1339 * [v1.x] fix: add missing size field to ResourceSchema by @olaservo in https://github.com/modelcontextprotocol/typescript-sdk/pull/1575 * Add typings exports by @tdraier in https:Low3/30/2026
v1.29.0## What's Changed * fix: treat v1.x as primary branch for npm latest tag (backport #1577) by @felixweinberger in https://github.com/modelcontextprotocol/typescript-sdk/pull/1749 * [v1.x] fix: disallow null (infinite) requested TTL by @LucaButBoring in https://github.com/modelcontextprotocol/typescript-sdk/pull/1339 * [v1.x] fix: add missing size field to ResourceSchema by @olaservo in https://github.com/modelcontextprotocol/typescript-sdk/pull/1575 * Add typings exports by @tdraier in https:Low3/30/2026
v1.29.0## What's Changed * fix: treat v1.x as primary branch for npm latest tag (backport #1577) by @felixweinberger in https://github.com/modelcontextprotocol/typescript-sdk/pull/1749 * [v1.x] fix: disallow null (infinite) requested TTL by @LucaButBoring in https://github.com/modelcontextprotocol/typescript-sdk/pull/1339 * [v1.x] fix: add missing size field to ResourceSchema by @olaservo in https://github.com/modelcontextprotocol/typescript-sdk/pull/1575 * Add typings exports by @tdraier in https:Low3/30/2026
v1.29.0## What's Changed * fix: treat v1.x as primary branch for npm latest tag (backport #1577) by @felixweinberger in https://github.com/modelcontextprotocol/typescript-sdk/pull/1749 * [v1.x] fix: disallow null (infinite) requested TTL by @LucaButBoring in https://github.com/modelcontextprotocol/typescript-sdk/pull/1339 * [v1.x] fix: add missing size field to ResourceSchema by @olaservo in https://github.com/modelcontextprotocol/typescript-sdk/pull/1575 * Add typings exports by @tdraier in https:Low3/30/2026
v1.29.0## What's Changed * fix: treat v1.x as primary branch for npm latest tag (backport #1577) by @felixweinberger in https://github.com/modelcontextprotocol/typescript-sdk/pull/1749 * [v1.x] fix: disallow null (infinite) requested TTL by @LucaButBoring in https://github.com/modelcontextprotocol/typescript-sdk/pull/1339 * [v1.x] fix: add missing size field to ResourceSchema by @olaservo in https://github.com/modelcontextprotocol/typescript-sdk/pull/1575 * Add typings exports by @tdraier in https:Low3/30/2026
v1.29.0## What's Changed * fix: treat v1.x as primary branch for npm latest tag (backport #1577) by @felixweinberger in https://github.com/modelcontextprotocol/typescript-sdk/pull/1749 * [v1.x] fix: disallow null (infinite) requested TTL by @LucaButBoring in https://github.com/modelcontextprotocol/typescript-sdk/pull/1339 * [v1.x] fix: add missing size field to ResourceSchema by @olaservo in https://github.com/modelcontextprotocol/typescript-sdk/pull/1575 * Add typings exports by @tdraier in https:Low3/30/2026
v1.29.0## What's Changed * fix: treat v1.x as primary branch for npm latest tag (backport #1577) by @felixweinberger in https://github.com/modelcontextprotocol/typescript-sdk/pull/1749 * [v1.x] fix: disallow null (infinite) requested TTL by @LucaButBoring in https://github.com/modelcontextprotocol/typescript-sdk/pull/1339 * [v1.x] fix: add missing size field to ResourceSchema by @olaservo in https://github.com/modelcontextprotocol/typescript-sdk/pull/1575 * Add typings exports by @tdraier in https:Low3/30/2026
v1.29.0## What's Changed * fix: treat v1.x as primary branch for npm latest tag (backport #1577) by @felixweinberger in https://github.com/modelcontextprotocol/typescript-sdk/pull/1749 * [v1.x] fix: disallow null (infinite) requested TTL by @LucaButBoring in https://github.com/modelcontextprotocol/typescript-sdk/pull/1339 * [v1.x] fix: add missing size field to ResourceSchema by @olaservo in https://github.com/modelcontextprotocol/typescript-sdk/pull/1575 * Add typings exports by @tdraier in https:Low3/30/2026
v1.29.0## What's Changed * fix: treat v1.x as primary branch for npm latest tag (backport #1577) by @felixweinberger in https://github.com/modelcontextprotocol/typescript-sdk/pull/1749 * [v1.x] fix: disallow null (infinite) requested TTL by @LucaButBoring in https://github.com/modelcontextprotocol/typescript-sdk/pull/1339 * [v1.x] fix: add missing size field to ResourceSchema by @olaservo in https://github.com/modelcontextprotocol/typescript-sdk/pull/1575 * Add typings exports by @tdraier in https:Low3/30/2026
v1.29.0## What's Changed * fix: treat v1.x as primary branch for npm latest tag (backport #1577) by @felixweinberger in https://github.com/modelcontextprotocol/typescript-sdk/pull/1749 * [v1.x] fix: disallow null (infinite) requested TTL by @LucaButBoring in https://github.com/modelcontextprotocol/typescript-sdk/pull/1339 * [v1.x] fix: add missing size field to ResourceSchema by @olaservo in https://github.com/modelcontextprotocol/typescript-sdk/pull/1575 * Add typings exports by @tdraier in https:Low3/30/2026
v1.29.0## What's Changed * fix: treat v1.x as primary branch for npm latest tag (backport #1577) by @felixweinberger in https://github.com/modelcontextprotocol/typescript-sdk/pull/1749 * [v1.x] fix: disallow null (infinite) requested TTL by @LucaButBoring in https://github.com/modelcontextprotocol/typescript-sdk/pull/1339 * [v1.x] fix: add missing size field to ResourceSchema by @olaservo in https://github.com/modelcontextprotocol/typescript-sdk/pull/1575 * Add typings exports by @tdraier in https:Low3/30/2026
v1.29.0## What's Changed * fix: treat v1.x as primary branch for npm latest tag (backport #1577) by @felixweinberger in https://github.com/modelcontextprotocol/typescript-sdk/pull/1749 * [v1.x] fix: disallow null (infinite) requested TTL by @LucaButBoring in https://github.com/modelcontextprotocol/typescript-sdk/pull/1339 * [v1.x] fix: add missing size field to ResourceSchema by @olaservo in https://github.com/modelcontextprotocol/typescript-sdk/pull/1575 * Add typings exports by @tdraier in https:Low3/30/2026
v1.29.0## What's Changed * fix: treat v1.x as primary branch for npm latest tag (backport #1577) by @felixweinberger in https://github.com/modelcontextprotocol/typescript-sdk/pull/1749 * [v1.x] fix: disallow null (infinite) requested TTL by @LucaButBoring in https://github.com/modelcontextprotocol/typescript-sdk/pull/1339 * [v1.x] fix: add missing size field to ResourceSchema by @olaservo in https://github.com/modelcontextprotocol/typescript-sdk/pull/1575 * Add typings exports by @tdraier in https:Low3/30/2026
v1.29.0## What's Changed * fix: treat v1.x as primary branch for npm latest tag (backport #1577) by @felixweinberger in https://github.com/modelcontextprotocol/typescript-sdk/pull/1749 * [v1.x] fix: disallow null (infinite) requested TTL by @LucaButBoring in https://github.com/modelcontextprotocol/typescript-sdk/pull/1339 * [v1.x] fix: add missing size field to ResourceSchema by @olaservo in https://github.com/modelcontextprotocol/typescript-sdk/pull/1575 * Add typings exports by @tdraier in https:Low3/30/2026
v1.29.0## What's Changed * fix: treat v1.x as primary branch for npm latest tag (backport #1577) by @felixweinberger in https://github.com/modelcontextprotocol/typescript-sdk/pull/1749 * [v1.x] fix: disallow null (infinite) requested TTL by @LucaButBoring in https://github.com/modelcontextprotocol/typescript-sdk/pull/1339 * [v1.x] fix: add missing size field to ResourceSchema by @olaservo in https://github.com/modelcontextprotocol/typescript-sdk/pull/1575 * Add typings exports by @tdraier in https:Low3/30/2026
v1.29.0## What's Changed * fix: treat v1.x as primary branch for npm latest tag (backport #1577) by @felixweinberger in https://github.com/modelcontextprotocol/typescript-sdk/pull/1749 * [v1.x] fix: disallow null (infinite) requested TTL by @LucaButBoring in https://github.com/modelcontextprotocol/typescript-sdk/pull/1339 * [v1.x] fix: add missing size field to ResourceSchema by @olaservo in https://github.com/modelcontextprotocol/typescript-sdk/pull/1575 * Add typings exports by @tdraier in https:Low3/30/2026
v1.29.0## What's Changed * fix: treat v1.x as primary branch for npm latest tag (backport #1577) by @felixweinberger in https://github.com/modelcontextprotocol/typescript-sdk/pull/1749 * [v1.x] fix: disallow null (infinite) requested TTL by @LucaButBoring in https://github.com/modelcontextprotocol/typescript-sdk/pull/1339 * [v1.x] fix: add missing size field to ResourceSchema by @olaservo in https://github.com/modelcontextprotocol/typescript-sdk/pull/1575 * Add typings exports by @tdraier in https:Low3/30/2026
v1.29.0## What's Changed * fix: treat v1.x as primary branch for npm latest tag (backport #1577) by @felixweinberger in https://github.com/modelcontextprotocol/typescript-sdk/pull/1749 * [v1.x] fix: disallow null (infinite) requested TTL by @LucaButBoring in https://github.com/modelcontextprotocol/typescript-sdk/pull/1339 * [v1.x] fix: add missing size field to ResourceSchema by @olaservo in https://github.com/modelcontextprotocol/typescript-sdk/pull/1575 * Add typings exports by @tdraier in https:Low3/30/2026
v1.29.0## What's Changed * fix: treat v1.x as primary branch for npm latest tag (backport #1577) by @felixweinberger in https://github.com/modelcontextprotocol/typescript-sdk/pull/1749 * [v1.x] fix: disallow null (infinite) requested TTL by @LucaButBoring in https://github.com/modelcontextprotocol/typescript-sdk/pull/1339 * [v1.x] fix: add missing size field to ResourceSchema by @olaservo in https://github.com/modelcontextprotocol/typescript-sdk/pull/1575 * Add typings exports by @tdraier in https:Low3/30/2026
v1.29.0## What's Changed * fix: treat v1.x as primary branch for npm latest tag (backport #1577) by @felixweinberger in https://github.com/modelcontextprotocol/typescript-sdk/pull/1749 * [v1.x] fix: disallow null (infinite) requested TTL by @LucaButBoring in https://github.com/modelcontextprotocol/typescript-sdk/pull/1339 * [v1.x] fix: add missing size field to ResourceSchema by @olaservo in https://github.com/modelcontextprotocol/typescript-sdk/pull/1575 * Add typings exports by @tdraier in https:Low3/30/2026
v1.29.0## What's Changed * fix: treat v1.x as primary branch for npm latest tag (backport #1577) by @felixweinberger in https://github.com/modelcontextprotocol/typescript-sdk/pull/1749 * [v1.x] fix: disallow null (infinite) requested TTL by @LucaButBoring in https://github.com/modelcontextprotocol/typescript-sdk/pull/1339 * [v1.x] fix: add missing size field to ResourceSchema by @olaservo in https://github.com/modelcontextprotocol/typescript-sdk/pull/1575 * Add typings exports by @tdraier in https:Low3/30/2026
v1.28.0## What's Changed * feat: use scopes_supported from resource metadata by default (fixes #580) by @antogyn in https://github.com/modelcontextprotocol/typescript-sdk/pull/757 * [v1.x backport] Default to client_secret_basic when server omits token_endpoint_auth_methods_supported by @pcarleton in https://github.com/modelcontextprotocol/typescript-sdk/pull/1611 * fix: reject plain JSON Schema objects passed as inputSchema by @tiluckdave in https://github.com/modelcontextprotocol/typescript-sdk/puMedium3/25/2026
v1.27.1## What's Changed * feat: implement auth/pre-registration conformance scenario by @felixweinberger in https://github.com/modelcontextprotocol/typescript-sdk/pull/1545 * docs: add governance documentation for SEP-1730 by @felixweinberger in https://github.com/modelcontextprotocol/typescript-sdk/pull/1547 * docs: comprehensive feature documentation for SEP-1730 Tier 1 by @felixweinberger in https://github.com/modelcontextprotocol/typescript-sdk/pull/1548 * fix: prevent command injection in exaLow2/24/2026
v1.27.0## What's Changed * feat: add conformance test infrastructure for v1.x by @felixweinberger in https://github.com/modelcontextprotocol/typescript-sdk/pull/1518 * feat: backport discoverOAuthServerInfo() and discovery caching to v1.x by @felixweinberger in https://github.com/modelcontextprotocol/typescript-sdk/pull/1533 * feat: add url property to RequestInfo interface by @valentinbeggi in https://github.com/modelcontextprotocol/typescript-sdk/pull/1353 * [v1.x] feat(tasks): add streaming methLow2/16/2026
v1.26.0Addresses "Sharing server/transport instances can leak cross-client response data" in this GHSA https://github.com/modelcontextprotocol/typescript-sdk/security/advisories/GHSA-345p-7cg4-v4c7 ## What's Changed * chore: bump v1.25.3 for backport fixes by @pcarleton in https://github.com/modelcontextprotocol/typescript-sdk/pull/1412 * fix(deps): resolve npm audit vulnerabilities and bump dependencies (v1.x backport) by @samuv in https://github.com/modelcontextprotocol/typescript-sdk/pull/138Low2/4/2026
v1.25.3## What's Changed * [v1.x backport] Use correct schema for client sampling validation when tools are present by @olaservo in https://github.com/modelcontextprotocol/typescript-sdk/pull/1407 * fix: prevent Hono from overriding global Response object (v1.x) by @mattzcarey in https://github.com/modelcontextprotocol/typescript-sdk/pull/1411 **Full Changelog**: https://github.com/modelcontextprotocol/typescript-sdk/compare/v1.25.2...v1.25.3Low1/20/2026
v1.25.2## What's Changed * ci: trigger workflow on v1.x branch by @felixweinberger in https://github.com/modelcontextprotocol/typescript-sdk/pull/1319 * fix: README badges links destinations by @antonpk1 in https://github.com/modelcontextprotocol/typescript-sdk/pull/907 * fix: prevent ReDoS in UriTemplate regex patterns (v1.x backport) by @pcarleton in https://github.com/modelcontextprotocol/typescript-sdk/pull/1365 ## New Contributors * @antonpk1 made their first contribution in https://github.Low1/7/2026
1.25.1## What's Changed * spec types - backwards compatibility changes by @KKonstantinov in https://github.com/modelcontextprotocol/typescript-sdk/pull/1306 * chore: bump version for patch fix by @felixweinberger in https://github.com/modelcontextprotocol/typescript-sdk/pull/1307 **Full Changelog**: https://github.com/modelcontextprotocol/typescript-sdk/compare/1.25.0...1.25.1Low12/16/2025
1.25.0## What's Changed * list changed handlers on client constructor by @mattzcarey in https://github.com/modelcontextprotocol/typescript-sdk/pull/1206 * Role - moved from inline to reusable type by @KKonstantinov in https://github.com/modelcontextprotocol/typescript-sdk/pull/1221 * fix: use versioned npm tag for non-main branch releases by @pcarleton in https://github.com/modelcontextprotocol/typescript-sdk/pull/1236 * No automatic completion support unless needed - Revisited yet again by @cliffLow12/15/2025
1.23.1## Fixed: - Disabled SSE priming events to fix backwards compatibility - 1.23.x clients crash on empty SSE data (JSON.parse("")) This is a patch for servers still on 1.23.x that were breaking clients not handling the the `2025-11-25` priming event behavior with empty SSE `data` fields. See https://github.com/modelcontextprotocol/typescript-sdk/pull/1233 for more details. **Full Changelog**: https://github.com/modelcontextprotocol/typescript-sdk/compare/1.23.0...1.23.1Low12/4/2025
1.24.3## What's Changed * chore: fix dev dependency security vulnerabilities by @felixweinberger in https://github.com/modelcontextprotocol/typescript-sdk/pull/1227 * chore(deps): bump express from 5.0.1 to 5.2.1 in the npm_and_yarn group across 1 directory by @dependabot[bot] in https://github.com/modelcontextprotocol/typescript-sdk/pull/1228 * fix: release HTTP connections after POST responses by @mattzcarey in https://github.com/modelcontextprotocol/typescript-sdk/pull/1214 * fix: skip primingLow12/4/2025
1.24.2## What's Changed * feat: add optional resource annotations by @vhorvath2010 in https://github.com/modelcontextprotocol/typescript-sdk/pull/954 * chore: refresh CLAUDE.md by @LucaButBoring in https://github.com/modelcontextprotocol/typescript-sdk/pull/1217 * refactor: make Server class framework-agnostic by moving express to separate module by @cytle in https://github.com/modelcontextprotocol/typescript-sdk/pull/1223 * chore: bump version to 1.24.2 by @pcarleton in https://github.com/modelcoLow12/3/2025
1.24.1## What's Changed * fix(streamableHttp): fix infinite retries when maxRetries is set to 0 by @mrorigo in https://github.com/modelcontextprotocol/typescript-sdk/pull/1216 * chore: update protocol version to 2025-11-25 by @dsp-ant in https://github.com/modelcontextprotocol/typescript-sdk/pull/1218 * chore: bump version for release by @felixweinberger in https://github.com/modelcontextprotocol/typescript-sdk/pull/1219 ## New Contributors * @mrorigo made their first contribution in https://giLow12/2/2025
1.24.0## Summary This release brings us up to speed with the latest MCP spec `2025-11-25`. Take a look at the [latest spec](https://modelcontextprotocol.io/specification/2025-11-25) as well as the release [blog post.](https://blog.modelcontextprotocol.io/posts/2025-11-25-first-mcp-anniversary/) ## What's Changed * fix: update spec links from latest to draft by @domdomegg in https://github.com/modelcontextprotocol/typescript-sdk/pull/1171 * Make sure to consume HTTP error response bodies by @GreeLow12/2/2025
1.23.0## What's Changed * Migrate to vitest from jest by @mattzcarey in https://github.com/modelcontextprotocol/typescript-sdk/pull/1074 * ci: add workflow_dispatch trigger for manual CI runs by @felixweinberger in https://github.com/modelcontextprotocol/typescript-sdk/pull/1114 * Fix: @types/node incompatibility with vite warnings on npm install by @KKonstantinov in https://github.com/modelcontextprotocol/typescript-sdk/pull/1121 * Fix: clean up accidental spec.types.ts by @KKonstantinov in httpsLow11/25/2025
1.23.0-beta.0## Special Note: zod v4 This `beta` release adds support for zod v4, a highly requested addition. Special thanks to @dclark27 @colinhacks for all the work on https://github.com/modelcontextprotocol/typescript-sdk/pull/1040 which adds this support while staying backwards compatible with zod v3! NOTE: if you run into any issues with zod v4 in this SDK please raise an issue! We'll be monitoring actively for any issues while trying to use zod v4 as it's a highly anticipated update. In order Low11/20/2025
1.22.0## What's Changed * `registerTool`: accept ZodType<object> for input and output schema by @ksinder in https://github.com/modelcontextprotocol/typescript-sdk/pull/816 * SEP-1319: Decouple Request Payloads, Remove passthrough iteration, Typecheck fixes by @KKonstantinov in https://github.com/modelcontextprotocol/typescript-sdk/pull/1086 * add pkg-pr-new bot by @pcarleton in https://github.com/modelcontextprotocol/typescript-sdk/pull/1088 * Upgrade to Node LTS by @mattzcarey in https://github.cLow11/13/2025
1.21.2## What's changed This is a patch release for a regression highlighted by [#1103](https://github.com/modelcontextprotocol/typescript-sdk/issues/1103) This patch contains only the cherry picked fix in [#1108](https://github.com/modelcontextprotocol/typescript-sdk/pull/1108) **Full Changelog**: https://github.com/modelcontextprotocol/typescript-sdk/compare/1.21.1...1.21.2Low11/13/2025
1.21.1## What's Changed * Only use path-based discovery URLs from the authorization server to discover metadata by @roadmapper in https://github.com/modelcontextprotocol/typescript-sdk/pull/1070 * Add @deprecated annotations to legacy APIs by @domdomegg in https://github.com/modelcontextprotocol/typescript-sdk/pull/1018 * fix: Support `WWW-Authenticate` `scope` param for SEP-835 by @chipgpt in https://github.com/modelcontextprotocol/typescript-sdk/pull/983 * move CLI script to dedicated scripts diLow11/7/2025
1.21.0## What's Changed * feat: pluggable JSON schema validator providers by @mattzcarey in https://github.com/modelcontextprotocol/typescript-sdk/pull/1012 * Update metadata.ts by @pcarleton in https://github.com/modelcontextprotocol/typescript-sdk/pull/1010 * fix: Prefer the `token_endpoint_auth_method` response from DCR registration by @chipgpt in https://github.com/modelcontextprotocol/typescript-sdk/pull/1022 * Fix: Non-existent tool, disabled tool and inputSchema validation return MCP protoLow10/30/2025
1.20.2## What's Changed * fix: Zod to JSONSchema pipe strategies by @pierreliefauche in https://github.com/modelcontextprotocol/typescript-sdk/pull/962 * chore: bump version for weekly release by @felixweinberger in https://github.com/modelcontextprotocol/typescript-sdk/pull/1042 ## New Contributors * @pierreliefauche made their first contribution in https://github.com/modelcontextprotocol/typescript-sdk/pull/962 **Full Changelog**: https://github.com/modelcontextprotocol/typescript-sdk/compaLow10/24/2025
1.20.1## What's Changed * fix: Add Accept header to auth metadata request by @SVLaursen in https://github.com/modelcontextprotocol/typescript-sdk/pull/901 * Allow empty string as valid URL in DCR workflow by @fredericbarthelet in https://github.com/modelcontextprotocol/typescript-sdk/pull/987 * docs: fix summary contents at readme by @starfish719 in https://github.com/modelcontextprotocol/typescript-sdk/pull/1025 * chore: bump version to 1.20.1 for release by @felixweinberger in https://github.comLow10/16/2025
1.20.0## What's Changed * docs: improve main README with better quick start, include examples of stateless HTTP, explain tools v resources v prompts by @domdomegg in https://github.com/modelcontextprotocol/typescript-sdk/pull/980 * chore: add lint:fix script by @mattzcarey in https://github.com/modelcontextprotocol/typescript-sdk/pull/1013 * Default to S256 code challenge if not specified in authorization server metadata by @LucaButBoring in https://github.com/modelcontextprotocol/typescript-sdk/puLow10/9/2025
1.19.0## What's Changed * fix: prevent infinite recursion when server throws 401 after successful authentication by @arjunkmrm in https://github.com/modelcontextprotocol/typescript-sdk/pull/945 * fix: change Icon.sizes from string to string[] by @domdomegg in https://github.com/modelcontextprotocol/typescript-sdk/pull/981 * MCP: Icons type as per SEP-973, spec types test improvements, ImplementationSchema use IconsSchema by @KKonstantinov in https://github.com/modelcontextprotocol/typescript-sdk/puLow10/2/2025
1.18.2## What's Changed * Updates the sampling code example in the README by @viniciuscsouza in https://github.com/modelcontextprotocol/typescript-sdk/pull/958 * Use redirect Uri passed in in `demoInMemoryOAuthProvider` by @TylerLeonhardt in https://github.com/modelcontextprotocol/typescript-sdk/pull/931 * fix(auth-router): correct Protected Resource Metadata for pathful RS and add explicit resourceServerUrl (RFC 9728) by @blustAI in https://github.com/modelcontextprotocol/typescript-sdk/pull/858 Low9/25/2025
1.18.1## What's Changed * fix: prevent streamable http wite after end from crashing the node process by @MQ37 in https://github.com/modelcontextprotocol/typescript-sdk/pull/933 * chore: update version to 1.18.1 for weekly release by @felixweinberger in https://github.com/modelcontextprotocol/typescript-sdk/pull/950 ## New Contributors * @MQ37 made their first contribution in https://github.com/modelcontextprotocol/typescript-sdk/pull/933 **Full Changelog**: https://github.com/modelcontextprotLow9/18/2025
1.18.0## What's Changed * mcp: update SDK for SEP 973 + add to example server by @jesselumarie in https://github.com/modelcontextprotocol/typescript-sdk/pull/904 * feat: add _meta field support to tool definitions by @knguyen-figma in https://github.com/modelcontextprotocol/typescript-sdk/pull/922 * Fix automatic log level handling for sessionless connections by @cliffhall in https://github.com/modelcontextprotocol/typescript-sdk/pull/917 * 1.17.6 by @ihrpr in https://github.com/modelcontextprotocLow9/18/2025
1.17.5## What's Changed * Automatic handling of logging level by @cliffhall in https://github.com/modelcontextprotocol/typescript-sdk/pull/882 * Fix the SDK vs Spec types test that is breaking CI by @cliffhall in https://github.com/modelcontextprotocol/typescript-sdk/pull/908 **Full Changelog**: https://github.com/modelcontextprotocol/typescript-sdk/compare/1.17.4...1.17.5Low9/2/2025
1.17.4## What's Changed * feature(middleware): Composable fetch middleware for auth and cross‑cutting concerns by @m-paternostro in https://github.com/modelcontextprotocol/typescript-sdk/pull/485 * restrict url schemes allowed in oauth metadata by @pcarleton in https://github.com/modelcontextprotocol/typescript-sdk/pull/877 * [auth] OAuth protected-resource-metadata: fallback on 4xx not just 404 by @pcarleton in https://github.com/modelcontextprotocol/typescript-sdk/pull/879 * chore: bump versionLow8/21/2025
1.17.3## What's Changed * Fix quit command in Example client with OAuth by @DaleSeo in https://github.com/modelcontextprotocol/typescript-sdk/pull/864 * fix: client import & server imports by @jatinsandilya in https://github.com/modelcontextprotocol/typescript-sdk/pull/851 * fix: pass fetchfn parameter to registerClient and refreshAuthorizatio… by @arjunkmrm in https://github.com/modelcontextprotocol/typescript-sdk/pull/850 * docs: correct parameter schema key in Dynamic Servers documentation by @Low8/14/2025
1.17.2## What's Changed * fix: retry next endpoint on CORS error during auth server discovery by @xiaoyijun in https://github.com/modelcontextprotocol/typescript-sdk/pull/827 **Full Changelog**: https://github.com/modelcontextprotocol/typescript-sdk/compare/1.17.1...1.17.2Low8/7/2025
1.17.1## What's Changed * (fix): Update fallbackRequestHandler type to match _requestHandlers leaves type by @fredericbarthelet in https://github.com/modelcontextprotocol/typescript-sdk/pull/784 * fix: prevent responses being sent to wrong client when multiple transports connect by @grimmerk in https://github.com/modelcontextprotocol/typescript-sdk/pull/820 * 1.17.1 by @ihrpr in https://github.com/modelcontextprotocol/typescript-sdk/pull/831 **Full Changelog**: https://github.com/modelcontextpLow7/31/2025
1.17.0## What's Changed * Add CODEOWNERS file for sdk by @ihrpr in https://github.com/modelcontextprotocol/typescript-sdk/pull/781 * Add more robust base64 check by @cliffhall in https://github.com/modelcontextprotocol/typescript-sdk/pull/786 * update codeowners by @ihrpr in https://github.com/modelcontextprotocol/typescript-sdk/pull/803 * Fix indent by @jiec-msft in https://github.com/modelcontextprotocol/typescript-sdk/pull/807 * fix: Explicitly declare accpet type to json when exchanging oauthLow7/24/2025
1.16.0## What's Changed * Add type compatibility test between SDK and spec types by @ochafik in https://github.com/modelcontextprotocol/typescript-sdk/pull/729 * Add OIDC ID token support by @dankelleher in https://github.com/modelcontextprotocol/typescript-sdk/pull/680 * Add prompt=consent for OIDC offline_access scope by @dankelleher in https://github.com/modelcontextprotocol/typescript-sdk/pull/681 * Non-critical: Readme syntax and typographical error fixes by @freakynit in https://github.com/mLow7/17/2025
1.15.1## What's Changed * fix(client): Some mcp server need default env(#393, #196) by @sunrabbit123 in https://github.com/modelcontextprotocol/typescript-sdk/pull/394 * feat: Add CORS configuration for browser-based MCP clients by @jerome3o-anthropic in https://github.com/modelcontextprotocol/typescript-sdk/pull/713 * Add onsessionclosed hook to StreamableHTTPServerTransport by @jerome3o-anthropic in https://github.com/modelcontextprotocol/typescript-sdk/pull/743 * add custom headers on initial _Low7/10/2025
1.15.0## What's Changed > [!NOTE] > This release reverts a [breaking change](https://github.com/modelcontextprotocol/typescript-sdk/pull/670) introduced in version [1.13.3](https://github.com/modelcontextprotocol/typescript-sdk/releases/tag/1.13.3). * Allow custom fetch in SSEClientTransport and StreamableHTTPClientTransport by @cliffhall in https://github.com/modelcontextprotocol/typescript-sdk/pull/721 * Revert "fix: add type safety for tool output schemas in ToolCallback" by @sushichan044 iLow7/3/2025
1.14.0## What's Changed > [!WARNING] > This introduces breaking changes, which are required to comply with the spec - [more details](https://github.com/modelcontextprotocol/modelcontextprotocol/pull/897) * Rename reject to decline by @ihrpr in https://github.com/modelcontextprotocol/typescript-sdk/pull/727 * 1.14.0 by @ihrpr in https://github.com/modelcontextprotocol/typescript-sdk/pull/728 **Full Changelog**: https://github.com/modelcontextprotocol/typescript-sdk/compare/1.13.3...1.14.0Low7/3/2025
1.13.3## What's Changed * Implement DNS Rebinding Protections per spec by @ddworken in https://github.com/modelcontextprotocol/typescript-sdk/pull/565 * fix lint by @ihrpr in https://github.com/modelcontextprotocol/typescript-sdk/pull/704 * fix: add missing eventsource-parser dependency by @domnit in https://github.com/modelcontextprotocol/typescript-sdk/pull/424 * fix: add windows env PROGRAMFILES, avoid some exe can not be found by @muzea in https://github.com/modelcontextprotocol/typescript-sdkLow7/1/2025

Dependencies & License Audit

Loading dependencies...

Similar Packages

hippo-memoryBiologically-inspired memory for AI agents. Decay, retrieval strengthening, consolidation. Zero dependencies.v1.22.0
agentmemoryPersistent memory for AI coding agentsv0.9.26
engineering-notebookCapture and summarize Claude Code sessions into searchable, browsable engineering journals with a web UI and automated daily entries.main@2026-06-02
showcaseShowcase delivers a modern developer portfolio built with TypeScript and React, focusing on interactivity and clean architecture for a seamless user experience.main@2026-06-02
rp1Ready Player One - stop prompting; start shippingv0.7.10

More from modelcontextprotocol

python-sdkThe official Python SDK for Model Context Protocol servers and clients
modelcontextprotocolSpecification and documentation for the Model Context Protocol
registryA community driven registry service for Model Context Protocol (MCP) servers.
go-sdkThe official Go SDK for Model Context Protocol servers and clients. Maintained in collaboration with Google.

More in RAG & Memory

vllmA high-throughput and memory-efficient inference and serving engine for LLMs
spiceaiA portable accelerated SQL query, search, and LLM-inference engine, written in Rust, for data-grounded AI apps and agents.
awesome-opensource-aiCurated list of the best truly open-source AI projects, models, tools, and infrastructure.
antflyNo description