Mirror of https://github.com/modelcontextprotocol/typescript-sdk — The official TypeScript SDK for Model Context Protocol servers and clients
  • TypeScript 97.3%
  • JavaScript 2.6%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2025-12-19 14:19:02 +01:00
.changeset [v2] Мonorepo, sdk-client, sdk-server, sdk-core package split (#1279) 2025-12-19 14:19:02 +01:00
.github [v2] Мonorepo, sdk-client, sdk-server, sdk-core package split (#1279) 2025-12-19 14:19:02 +01:00
common [v2] Мonorepo, sdk-client, sdk-server, sdk-core package split (#1279) 2025-12-19 14:19:02 +01:00
docs [v2] Мonorepo, sdk-client, sdk-server, sdk-core package split (#1279) 2025-12-19 14:19:02 +01:00
examples [v2] Мonorepo, sdk-client, sdk-server, sdk-core package split (#1279) 2025-12-19 14:19:02 +01:00
packages [v2] Мonorepo, sdk-client, sdk-server, sdk-core package split (#1279) 2025-12-19 14:19:02 +01:00
scripts [v2] Мonorepo, sdk-client, sdk-server, sdk-core package split (#1279) 2025-12-19 14:19:02 +01:00
test [v2] Мonorepo, sdk-client, sdk-server, sdk-core package split (#1279) 2025-12-19 14:19:02 +01:00
.git-blame-ignore-revs Jerome/fix/dev oauth server required scopes change (#629) 2025-06-17 10:18:58 +01:00
.gitattributes Ignore package-lock.json in diffs 2024-10-28 10:23:57 +00:00
.gitignore chore: add .idea/ to .gitignore (#1134) 2025-11-19 11:49:32 +00:00
.npmrc Add npmrc to always point to npm for public packages 2024-10-31 15:42:58 +00:00
.prettierignore FIX: use a nightly spec.types.ts (#1087) 2025-11-07 14:16:11 +00:00
.prettierrc.json run prettier (#995) 2025-10-02 18:21:00 +01:00
CLAUDE.md [v2] Мonorepo, sdk-client, sdk-server, sdk-core package split (#1279) 2025-12-19 14:19:02 +01:00
CODE_OF_CONDUCT.md run prettier (#995) 2025-10-02 18:21:00 +01:00
CONTRIBUTING.md Add CONTRIBUTING.md 2024-11-20 15:20:30 +00:00
LICENSE Update LICENSE 2024-11-18 22:23:48 +00:00
package-lock.json chore: bump version for patch fix (#1307) 2025-12-16 16:10:07 +01:00
package.json [v2] Мonorepo, sdk-client, sdk-server, sdk-core package split (#1279) 2025-12-19 14:19:02 +01:00
pnpm-lock.yaml [v2] Мonorepo, sdk-client, sdk-server, sdk-core package split (#1279) 2025-12-19 14:19:02 +01:00
pnpm-workspace.yaml [v2] Мonorepo, sdk-client, sdk-server, sdk-core package split (#1279) 2025-12-19 14:19:02 +01:00
README.md [v2] Мonorepo, sdk-client, sdk-server, sdk-core package split (#1279) 2025-12-19 14:19:02 +01:00
SECURITY.md Fix ToC in README and markdown linting warnings 2025-05-05 21:53:47 +02:00
vitest.workspace.js [v2] Мonorepo, sdk-client, sdk-server, sdk-core package split (#1279) 2025-12-19 14:19:02 +01:00

MCP TypeScript SDK

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 and ships:

  • MCP server libraries (tools/resources/prompts, Streamable HTTP, stdio, auth helpers)
  • MCP client libraries (transports, high-level helpers, OAuth helpers)
  • Runnable examples (under examples/)

Packages

This monorepo publishes split packages:

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

Both packages have a required peer dependency on zod for schema validation. The SDK internally imports from zod/v4, but remains compatible with projects using Zod v3.25+.

Installation

Server

npm install @modelcontextprotocol/server zod

Client

npm install @modelcontextprotocol/client zod

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

v1 (legacy) documentation and fixes

If you are using the v1 generation of the SDK, the v1 documentation (and any v1-specific fixes) live on the long-lived v1.x branch. See: https://github.com/modelcontextprotocol/typescript-sdk/tree/v1.x.

Contributing

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

License

This project is licensed under the MIT License—see the LICENSE file for details.