mrkeyoor.com_
Mon 02 Nov 01:14 UTC
AI Toolsevaluationupdated 28 Sept 2026

typescript-sdk review

The official MCP TypeScript SDK supplies the client, server, transport, schema, and authentication pieces needed to build Model Context Protocol software. Version 2 splits those jobs into focused packages that run on Node.js, Bun, and Deno.

+36stars / 7d
Verdict

Our TypeScript SDK checkout installed 877 packages in 25 seconds and occupied 665 MB, but its default build and test stages were both skipped because the root exposed neither target. Use the published v2 packages for new TypeScript MCP work, especially when you need both client and server behavior. Contributors should run the named workspace checks themselves, and Node HTTP users should resolve the open Hono peer issue before locking a deployment.

We ran it

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

Answers from our run

Does typescript-sdk build from source?

Dependencies installed in 25 seconds (877 packages), and the project has no separate build step. We cloned commit 7f7a94c 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?

Applications pinned below Node.js 20: every current core, client, and server package declares Node 20 or newer.

What are the alternatives to typescript-sdk?

MCP Python SDK, MCP Go SDK, MCP C# SDK. Our TypeScript SDK checkout installed 877 packages in 25 seconds and occupied 665 MB, but its default build and test stages were both skipped because the root exposed neither target.

Setup3/525-second install, but default build and test targets were absent
Docs5/5V2 tutorials, examples, API references, and v1 guidance
Community5/513,479 stars with same-day issue and pull request activity
Maturity4/5Official v2.1.0 line with active transport and auth fixes

Who it’s for

TypeScript teams building an MCP server, client, or both.
Developers who need official stdio, Streamable HTTP, and OAuth implementations tied to the current MCP specification.
Express, Fastify, Hono, or Node.js HTTP users who want thin framework adapters.
Library authors who prefer Standard Schema support over a hard dependency on one validation library.

Who it’s NOT for

Applications pinned below Node.js 20: every current core, client, and server package declares Node 20 or newer.
Teams expecting v2 to be a drop-in package update from v1: the new line splits client, server, core, and middleware packages, while v1 lives on a separate branch.
Contributors who require one conventional root build and test command: our harness found neither default target, so it could verify only the install.
Strict pnpm users adopting the Node HTTP adapter without checking peers: open issue 2882 reports an unmet Hono peer and a possible import-time failure with newer @hono/node-server.
Teams seeking a hosted MCP service: this is an SDK, so deployment, authorization policy, tool behavior, and operations remain your responsibility.

Setup reality

Our pnpm install succeeded in 25 seconds, adding 877 packages and using 665 MB. The root had no default build target and no default test target, so our harness skipped both. That is an unverified build and test result, not a pass.

Consumers normally install @modelcontextprotocol/server or @modelcontextprotocol/client, then add a schema library and optional HTTP middleware. The current packages require Node.js 20 or newer; the README also supports Bun and Deno. OAuth deployments need provider, redirect, and token-storage decisions.

The checkout contained 1,131 files, about 191,127 source lines, and 10.5 MB before dependencies. It is a pnpm monorepo with 8 CI workflow files and a tests directory, but no Dockerfile. Contributors need the workspace-specific build:all and test:all commands rather than assuming pnpm build and pnpm test exist.

V2 splits the official SDK into focused packages

The stable v2 line no longer asks every TypeScript application to depend on one catch-all SDK package. @modelcontextprotocol/server handles tools, resources, prompts, transports, and server auth helpers. @modelcontextprotocol/client contains client transports, higher-level calls, and OAuth support. That split makes dependencies clearer for applications that live on only one side of the protocol.

The main branch implements the 2026-07-28 MCP specification. Server and client packages were both at version 2.1.0 when checked. Tool and prompt inputs use Standard Schema, so a project can choose Zod v4, Valibot, ArkType, or another compatible validator.

Node 20 is the floor, with Bun and Deno also supported

The current core, server, and client package manifests require Node.js 20 or newer. For HTTP servers, separate adapters cover Express, Fastify, Hono, and Node's native request and response objects. Stdio remains the short route for local desktop integrations, while Streamable HTTP fits remote or shared services.

A minimal server can register one typed tool and connect it to stdio in a small file. A production server has more decisions than that example shows: origin and host checks, authentication, request limits, cancellation, logging, and a policy for tool errors. The 2.1.0 middleware packages are intentionally thin, so they do not own those application choices. That is appropriate for an SDK, but it rules out a copy-and-deploy reading of the quick start.

What happened when we ran it

Our sandbox installed 877 pnpm packages in 25 seconds and used 665 MB on disk. The checkout itself was 10.5 MB, with 1,131 files and roughly 191,127 source lines. Installation completed successfully in an unprivileged Node 22 Debian container with 3 CPUs, 8 GB of RAM, and no secrets.

The harness found no default root build script or target, so it skipped the build. It found no default root test script or target, so it skipped tests as well. The repository does have workspace commands named build:all and test:all, plus 8 CI workflow files and a tests directory. We did not run those alternate commands, which means this result proves dependency installation only. It contains no passing compiler or test evidence.

The missing default targets matter mainly to contributors. An application consuming @modelcontextprotocol/server does not install this entire 665 MB development workspace. Anyone changing the SDK itself should follow its named monorepo commands and CI matrix rather than relying on a generic package harness.

V1 and v2 need separate upgrade plans

The README keeps v1 source and fixes on the v1.x branch, with a separate documentation site. It promises bug fixes and security updates for at least 6 months after v2's release. New projects should start with the split v2 packages. Existing users should read the migration material before changing imports because package names, middleware placement, and some extension points differ.

Search results can still land on a v1 example while the main branch teaches v2. Check the documentation URL, import path, package version, and MCP specification date together before copying code. The repository's recent releases include both the v1 line at 1.30.1 and several v2 packages at 2.1.0. Those numbers describe different generations, so a lockfile is more useful than a vague requirement for the latest SDK.

The Node adapter has an open Hono peer trap

Open issue 2882 reports that @modelcontextprotocol/node marks Hono as optional while its @hono/node-server dependency requires Hono. With strict peer checking, pnpm can stop at install time. The report also says a future resolution to @hono/node-server 2.x can turn the mismatch into an import failure because that package loads hono/ws. The monorepo can miss the consumer failure because another workspace package already supplies Hono.

This is a focused issue, not a reason to reject all 4 middleware adapters. It is a reason to test the exact package set from an empty application with the same peer-dependency rules used in production. Node HTTP users can also evaluate whether the native adapter is necessary for their route or whether Express, Fastify, or Hono already owns that boundary. Pinning 2.1.0 alone does not replace the clean-project test described in the issue.

OAuth behavior needs real provider fixtures

The client includes discovery, registration, redirect, and token helpers, but providers still differ at the edges. Open issue 2784 reports a fallback metadata URL being built from the resource host instead of the authorization server host when the two differ. In the supplied reproduction, that sends the client toward metadata for an unrelated service. The measured commit itself fixed a separate case involving *.localhost OAuth token endpoints.

A useful auth suite should cover at least one provider on another host, refresh behavior, rejected redirects, and the exact callback URL used after deployment. Our 25-second install cannot answer any of those questions. Nor does a successful local stdio example exercise remote authorization. The SDK gives you protocol machinery; your provider fixtures prove that the machinery and your identity system agree.

Same-day maintenance comes with a large review queue

GitHub showed a push on September 28, 2026, the same day as active issue and pull request updates. The repository had 13,479 stars and 654 combined issues and pull requests. That combined count is not a bug count. It does show how much specification, transport, packaging, and compatibility work flows through the official TypeScript implementation.

For new TypeScript MCP software, this SDK is the baseline choice. The split 2.1.0 packages cover both sides of the protocol and keep framework adapters optional. Budget extra care for version selection, consumer-level package tests, and OAuth fixtures. If your team works mainly in Python, Go, or C#, the official SDK in that language will usually produce a simpler service than carrying a separate JavaScript runtime just for MCP.

Alternatives

ProjectWhat it isPick it when
MCP Python SDK gh↗The official Python implementation for MCP clients and servers.pick this instead when your application, async runtime, and validation models already live in Python.
MCP Go SDKThe official Go implementation maintained with Google.pick this instead when a compiled service and Go's concurrency model suit your deployment better than a JavaScript runtime.
MCP C# SDKThe official C# implementation maintained with Microsoft.pick this instead when MCP belongs inside an existing .NET application or service.

Sources

  1. MCP TypeScript SDK README
  2. MCP TypeScript SDK v2 documentation
  3. Measured commit 7f7a94c
  4. Server package 2.1.0 release
  5. Node middleware Hono peer issue
  6. OAuth metadata fallback issue

More ai tools reviews

kornia · skills · anarlog · pr-agent · agent-sprite-forge · KiroCrew · the whole board →