mrkeyoor.com_
Thu 17 Sept 23:18 UTC
AI Toolsevaluationupdated 26 Aug 2026

typescript-sdk review

The official MCP TypeScript SDK supplies the client and server pieces for connecting AI applications to tools, resources, and prompts. It handles the protocol plumbing across Node.js, Bun, and Deno, including stdio, Streamable HTTP, OAuth helpers, and adapters for several web frameworks.

+55stars / 7d
Verdict

Our TypeScript SDK install took 33 seconds and 665 MB, but the checkout offered no root build or test target, so adoption starts with good protocol coverage and an incomplete top-level verification story. Use it for serious TypeScript MCP work because it is the official implementation and tracks the 2026-07-28 specification closely. Pin v1 or v2, test your chosen transport and auth provider yourself, and avoid treating the busy issue queue as background noise during the v2 transition.

We ran it

Lab card: what happened when we ran typescript-sdkScreenshot of typescript-sdk (ts.sdk.modelcontextprotocol.io/v2)
Install✓ · 33s877 packages · 665 MB
Buildn/ano build script
Testsn/ano test script
Repo1121 files~186,337 lines of source · 10.2 MB · 8 CI workflows · tests dir

Answers from our run

Does typescript-sdk build from source?

Dependencies installed in 33 seconds (877 packages), and the project has no separate build step. We cloned commit 3924de9 into a clean Debian container with 3 CPUs and no project-specific setup.

Does typescript-sdk have tests you can run?

Not through a standard command: the project exposes no test script or target that our harness could run.

Who should not use typescript-sdk?

Teams that need a settled API with little migration work: the README says v2 has just become stable, v1 has a separate branch, and contributor pull requests are temporarily limited while v2 settles.

What are the alternatives to typescript-sdk?

MCP Python SDK, MCP Go SDK, FastMCP. Our TypeScript SDK install took 33 seconds and 665 MB, but the checkout offered no root build or test target, so adoption starts with good protocol coverage and an incomplete top-level verification story.

Setup3/533-second install, but no root build or test target
Docs5/5Separate tutorials, API references, migration guides, and troubleshooting
Community5/513,252 stars and active issue and pull request work
Maturity4/5Official SDK, though v2 is still settling after its stable release

Who it’s for

TypeScript teams building an MCP server or adding MCP client support to an existing product.
Framework users who want thin, official adapters for Express, Fastify, Hono, or Node.js HTTP.
Developers migrating to the 2026-07-28 MCP specification who need maintained v1 and v2 documentation.
Library authors who need Standard Schema support instead of being tied to one validation package.

Who it’s NOT for

Teams that need a settled API with little migration work: the README says v2 has just become stable, v1 has a separate branch, and contributor pull requests are temporarily limited while v2 settles.
Developers expecting one package for both sides of the protocol: v2 splits the server and client into separate packages and moves framework glue into optional middleware.
Projects that require a clean root-level build and test command: our checkout exposed neither script, even though the repository contains a tests directory and 8 CI workflows.
Users who need every client to agree on schema output today: issue 2721 reports draft-07 output schemas breaking clients that accept only JSON Schema 2020-12.
Operators treating remote MCP endpoints as ordinary trusted APIs: active work on redirect validation shows that OAuth and transport security require deliberate configuration.

Setup reality

Our sandbox install at commit 3924de9 succeeded in 33 seconds, adding 877 packages and using 665 MB on disk. The root exposed no build script or test target, so both steps were skipped; that is different from passing them.

Application setup starts with either @modelcontextprotocol/server or @modelcontextprotocol/client, plus a Standard Schema library. HTTP deployments may add an Express, Fastify, Hono, or Node.js adapter, while OAuth flows need provider and callback configuration.

The repository is a 1,121-file pnpm workspace with about 186,337 source lines. Node.js, Bun, and Deno are supported, but v1 and v2 use separate package and documentation paths, so pin the generation and protocol revision before copying examples.

The official SDK covers both sides of MCP v2

The TypeScript SDK is the reference choice when a JavaScript application needs to speak MCP rather than merely call one MCP server. Its split v2 packages cover servers, clients, tools, resources, prompts, stdio, Streamable HTTP, and OAuth helpers. Optional adapters connect the HTTP transport to Express, Fastify, Hono, or Node.js itself. The SDK runs on Node.js, Bun, and Deno, which gives TypeScript teams a shared protocol layer without forcing every deployment onto the same runtime.

Main now implements the 2026-07-28 MCP specification, and the README calls v2 the stable line. Existing v1 users have a separate v1.x branch and documentation site, with bug fixes and security updates promised for at least 6 months after v2's release. That split is sensible, but it makes version selection the first design decision. Mixing a v1 tutorial, a v2 import, and a client pinned to another protocol revision is an avoidable way to lose an afternoon.

Two packages replace the old single-package assumption

Version 2 publishes @modelcontextprotocol/server and @modelcontextprotocol/client separately. A server can register a typed tool and connect it to stdio with a small amount of code. A client gets transports, higher-level helpers, and OAuth support without pulling in server behavior. Tool and prompt schemas follow Standard Schema, so Zod v4, Valibot, ArkType, and compatible validators can sit at the boundary.

The middleware packages are deliberately narrow. Four documented adapters handle Node.js HTTP, Express, Fastify, and Hono while leaving protocol behavior in the main server package. That keeps framework integration replaceable and lets an existing web application host MCP beside its other routes. It also means the install command in a tutorial is only the beginning: an HTTP service still needs host validation, authentication decisions, request limits, deployment health checks, and tests against the actual client that will call it.

What happened when we ran it

Our sandbox installed commit 3924de9 in 33 seconds. Pnpm added 877 packages and the resulting dependency tree occupied 665 MB. The source checkout itself contained 1,121 files, about 186,337 lines of source, and 10.2 MB before dependencies. That is a substantial workspace for a protocol SDK, although consumers install one or two published packages rather than cloning the whole development tree.

The root exposed no build script or target, so we skipped the build. It also exposed no test script or target, so we skipped tests. Those are neutral descriptions of what the checkout allowed, not successful results. Our scan did find a tests directory and 8 CI workflow files, which suggests verification exists in more specific workspace commands. A contributor must identify those commands before using a green local run as evidence that a change is safe.

The run used an unprivileged Node 22 Debian container with 3 CPUs, 8 GB of RAM, and no secrets. We did not launch an MCP client-server pair, configure OAuth, or judge transport compatibility. The measured result says dependency installation worked and consumed 665 MB. It says nothing about latency, throughput, or whether a particular host application implements the same protocol revision.

Active schema and negotiation bugs deserve regression tests

Issue 2721 reports that an SDK v1 server emits tool output schemas as JSON Schema draft-07 when no target is supplied. The reporter says strict clients accepting only JSON Schema 2020-12 then reject the schema. This is exactly the sort of boundary disagreement MCP is meant to reduce, and it is a reason to test tools/list output with the clients you support rather than trusting that a valid TypeScript type guarantees wire compatibility.

A separate v2 report, issue 2722, says a pinned 2026-07-28 client can misclassify a conforming server response during version negotiation when discovery fields appear at the documented top level. Both reports were active on August 26, 2026. Neither proves the SDK is broadly unreliable. They do show that fast-moving specification work reaches ordinary integration points such as schema dialects and handshake parsing. Pin package versions and keep a small cross-client test fixture in CI.

OAuth support is useful, and security work is still moving

The client package includes OAuth helpers, while server packages expose authentication building blocks for remote deployments. Current issue activity includes Azure refresh-token scope handling and a proposed redirect check intended to block public endpoints from forwarding clients toward loopback, private network, or cloud metadata addresses. Those are concrete reminders that a remote MCP transport crosses a security boundary. Tool descriptions may look harmless while the transport can hold tokens and reach privileged services.

The official status helps here because protocol changes, conformance work, and security fixes land near the specification. It also creates churn. GitHub showed 585 open issues and pull requests combined, 13,252 stars, and a last push on August 26, 2026. The queue is too mixed to read as 585 defects, but the same-day activity and detailed reproductions show a project under heavy development rather than a quiet compatibility layer.

Documentation is strongest when you stay inside one generation

The README links separate 10-minute server and client tutorials, runnable paired examples, troubleshooting, migration guides, and generated API references. It also documents how to build a combined v1 and v2 site. This is better than forcing users to infer transport setup from type declarations. The catch is navigational: search results and old examples can still lead to v1 shapes, while the main branch teaches v2. Check the URL and package name before borrowing code.

For a new TypeScript MCP product, this SDK should be the baseline comparison. Our 33-second install makes a trial cheap enough, but the missing root verification targets mean contributors need to learn the monorepo rather than stop after pnpm install. Teams shipping remote servers should add their own negotiation, schema, cancellation, and OAuth regression cases. Teams building only a small server may prefer FastMCP's higher-level API, while anyone implementing both client and server behavior will get more direct value from the official split packages.

Alternatives

ProjectWhat it isPick it when
MCP Python SDK gh↗The official MCP implementation for Python clients and servers.pick this instead when your application and validation models already live in Python.
MCP Go SDKThe official Go implementation for MCP clients and servers.pick this instead when a compiled Go service and its deployment profile fit your stack better than Node.js.
FastMCPA TypeScript framework that wraps MCP server construction in a higher-level API.pick this instead when you want opinionated server conveniences and do not need the official SDK's client surface.

What people are saying

  1. [github-trending] modelcontextprotocol/typescript-sdk

Sources

  1. MCP TypeScript SDK repository
  2. MCP TypeScript SDK v2 documentation
  3. Fastify 2.0.0 release
  4. JSON Schema draft compatibility report
  5. MCP v2 negotiation report
  6. Redirect validation change

More ai tools reviews

rowboat · skills · superpowers-zh · yolov5 · eve · MemOS · the whole board →