Discover / Development
MCP TypeScript SDK
by modelcontextprotocolTypeScript
The official TypeScript SDK for building Model Context Protocol clients and servers.
Maturity: active because commit 3d ago, latest release @modelcontextprotocol/fastify@2.0.0. Derived from release and commit history, not a rating.
- Stars
- 13k
- Forks
- 2.0k
- Downloads / mo
- —
- Last commit
- 2026-08-02
- License
- NOASSERTION
- Open issues
- 521
Market and trust evidence
Edition not yet matchedNo exact skills.sh identity match is available for this repository. Repository adoption and freshness remain visible above; install momentum is not inferred.
Trust analysis is a screening signal, not a security warranty. Read the ranking and trust methodology.
In practice
Written by AI from this repository’s README · high confidenceExposing tools, resources and prompts to an LLM client requires implementing the MCP wire protocol and transports.
Use it when
Use it when building an MCP server or client in TypeScript on Node.js, Bun or Deno.
Not the right pick when
This branch is v2, so v1.x codebases stay on the older docs and only get fixes for a limited window.
Capabilities
- server libraries for tools, resources, prompts and auth helpers
- client libraries with transports and OAuth helpers
- Streamable HTTP and stdio transports
- Standard Schema support so Zod, Valibot or ArkType all work
- thin middleware adapters for Express, Fastify, Hono and Node HTTP
- runnable examples and step by step tutorials
Requirements
- Node.js, Bun or Deno
- A Standard Schema library such as Zod v4 for tool and prompt schemas
Cost: Free and open source
Install
Derived from the published package name in the repository, not from a model.
Video walkthroughs
Third-party YouTube uploads matched to this tool by title, channel and repository name on 2026-08-03. Not made, reviewed or endorsed by SkillPilot. View counts and publish months are as of the match date and the month is approximate. Nothing loads from YouTube until you press play.
What the repository ships
Detected from the actual files in the repository root.
Latest release @modelcontextprotocol/fastify@2.0.0
Published 2026-07-27
Patch Changes
- #2402
a400259Thanks @felixweinberger! - First beta release of SDK v2 with support for the MCP 2026-07-28 specification
revision. See the migration guides for upgrading from v1
(docs/migration/upgrade-to-v2.md) and adopting the 2026-07-28 revision
(docs/migration/support-2026-07-28.md).
- #2405
f172626Thanks @mattzcarey! - Ship CommonJS builds alongside ESM. Each package now emits both.mjs/.d.mts
and .cjs/.d.cts (via tsdown format: ['esm', 'cjs']), and its exports map
adds a require condition so require('@modelcontextprotocol/…') works from
CommonJS consumers. Output extensions are normalized across all packages
(@modelcontextprotocol/core moves from .js/.d.ts to .mjs/.d.mts); the
public import paths are unchanged.
Tags
README
MCP TypeScript SDK
<!-- prettier-ignore -->
[!IMPORTANT]
This is the
mainbranch — v2 of the SDK (@modelcontextprotocol/server,@modelcontextprotocol/client), implementing the 2026-07-28 MCP spec.Have feedback? Please open a v2 issue — it is the most useful thing you can do for the SDK right now. The v2 documentation starts with a ten-minute server tutorial.
v2 is the stable release line, released alongside the 2026-07-28 spec. v1.x continues to receive bug fixes and security updates for at least 6 months after v2's release. v1 documentation: ts.sdk.modelcontextprotocol.io · v2:
/v2/.
<!-- prettier-ignore -->
[!WARNING]
We're limiting pull requests to 1 per new contributor while v2 settles after the 2026-07-28 spec release.
Issues are the most useful feedback right now — we'll reopen PRs as v2 stabilizes.
NPM Version - Client MIT licensed
<details>
<summary>Table of Contents</summary>
- Overview
- Packages
- Installation
- Getting Started
- Documentation
- Contributing
- License
</details>
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, Fastify, 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 forIncomingMessage/ServerResponse@modelcontextprotocol/express: Express helpers (app defaults + Host header validation)@modelcontextprotocol/fastify: Fastify 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, Fastify, 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
# Fastify integration:
npm install @modelcontextprotocol/fastify fastify
# Hono integration:
npm install @modelcontextprotocol/hono hono
Getting Started
Here is what an MCP server looks like. This minimal example exposes a single greet tool over stdio:
import { McpServer } from '@modelcontextprotocol/server';
import { StdioServerTransport } from '@modelcontextprotocol/server/stdio';
import * as z from 'zod/v4';
const server = new McpServer({ name: 'greeting-server', version: '1.0.0' });
server.registerTool(
'greet',
{
description: 'Greet someone by name',
inputSchema: z.object({ name: z.string() })
},
async ({ name }) => ({
content: [{ type: 'text', text: `Hello, ${name}!` }]
})
);
async function main() {
const transport = new StdioServerTransport();
await server.connect(transport);
}
main();
Ready to build something real? Follow the step-by-step tutorials:
- Build your first server — a stdio weather-alert server, from
npm initto a tool call - Build your first client — connect to that server, list its tools, and call them
For runnable, end-to-end examples beyond the tutorials, see:
examples/README.md— runnable, self-verifying client/server example pairs (one story per directory)
Documentation
- Build a server — your first MCP server, step by step
- Build a client — your first MCP client, step by step
- Documentation site — the full guides: tools, resources, prompts, serving over HTTP and stdio, clients, OAuth, and migration
- Troubleshooting — common errors and their fixes
- API reference
- MCP documentation
- MCP specification
Building docs locally
To work on the documentation site locally:
pnpm docs:api # Generate the API reference markdown (output: docs/api/)
pnpm docs:dev # Start the VitePress dev server for the V2 site
pnpm docs:build # Build the V2 site (output: docs/.vitepress/dist/)
pnpm docs:multi # Build the combined V1 + V2 site (output: tmp/docs-combined/)
The docs:multi script builds the V2 site from the current checkout, checks out the v1.x branch via a git worktree to build the V1 site, 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.