[!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/.
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)
Both packages have a required peer dependency on zod for schema validation. The SDK uses Zod v4.
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
npm install @modelcontextprotocol/server zod
# or
bun add @modelcontextprotocol/server zod
# or
deno add npm:@modelcontextprotocol/server npm:zod
Client
npm install @modelcontextprotocol/client zod
# or
bun add @modelcontextprotocol/client zod
# or
deno add npm:@modelcontextprotocol/client npm:zod
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.
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/.
MCP TypeScript SDK
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:
examples/)Packages
This monorepo publishes split packages:
@modelcontextprotocol/server: build MCP servers@modelcontextprotocol/client: build MCP clientsBoth packages have a required peer dependency on
zodfor schema validation. The SDK uses Zod v4.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.mdfor details.@modelcontextprotocol/node: Node.js Streamable HTTP transport wrapper forIncomingMessage/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
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.mdfor details.Quick Start (runnable examples)
The runnable examples live under
examples/and are kept in sync with the docs.Alternatively, from within the example package:
Alternatively, from within the example package:
Next steps:
examples/server/README.mdexamples/client/README.mddocs/server.mdanddocs/client.mdDocumentation
Building docs locally
To generate the API reference documentation locally:
The
docs:multiscript checks out both thev1.xandmainbranches 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-livedv1.xbranch. 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.