Skip to content

Commit c506085

Browse files
Merge branch 'main' into feature/v2-registered-definitions-classes
2 parents 0c0683b + 4a7cdf4 commit c506085

12 files changed

Lines changed: 1259 additions & 290 deletions

File tree

.github/workflows/main.yml

Lines changed: 37 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,11 +58,47 @@ jobs:
5858

5959
- run: pnpm test:all
6060

61+
test-runtimes:
62+
runs-on: ubuntu-latest
63+
strategy:
64+
fail-fast: false
65+
matrix:
66+
include:
67+
- runtime: bun
68+
version: "1.x"
69+
- runtime: deno
70+
version: v2.x
71+
steps:
72+
- uses: actions/checkout@v6
73+
- name: Install pnpm
74+
uses: pnpm/action-setup@v4
75+
with:
76+
run_install: false
77+
- uses: actions/setup-node@v6
78+
with:
79+
node-version: 24
80+
cache: pnpm
81+
cache-dependency-path: pnpm-lock.yaml
82+
- name: Set up Bun
83+
if: matrix.runtime == 'bun'
84+
uses: oven-sh/setup-bun@v2
85+
with:
86+
bun-version: ${{ matrix.version }}
87+
- name: Set up Deno
88+
if: matrix.runtime == 'deno'
89+
uses: denoland/setup-deno@v2
90+
with:
91+
deno-version: ${{ matrix.version }}
92+
- run: pnpm install
93+
- run: pnpm build:all
94+
- name: Run ${{ matrix.runtime }} integration tests
95+
run: pnpm --filter @modelcontextprotocol/test-integration test:integration:${{ matrix.runtime }}
96+
6197
publish:
6298
runs-on: ubuntu-latest
6399
if: github.event_name == 'release'
64100
environment: release
65-
needs: [build, test]
101+
needs: [build, test, test-runtimes]
66102

67103
permissions:
68104
contents: read

README.md

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525

2626
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.
2727

28-
This repository contains the TypeScript SDK implementation of the MCP specification and ships:
28+
This repository contains the TypeScript SDK implementation of the MCP specification. It runs on **Node.js**, **Bun**, and **Deno**, and ships:
2929

3030
- MCP **server** libraries (tools/resources/prompts, Streamable HTTP, stdio, auth helpers)
3131
- MCP **client** libraries (transports, high-level helpers, OAuth helpers)
@@ -57,12 +57,20 @@ They are intentionally thin adapters: they should not introduce new MCP function
5757

5858
```bash
5959
npm install @modelcontextprotocol/server zod
60+
# or
61+
bun add @modelcontextprotocol/server zod
62+
# or
63+
deno add npm:@modelcontextprotocol/server npm:zod
6064
```
6165

6266
### Client
6367

6468
```bash
6569
npm install @modelcontextprotocol/client zod
70+
# or
71+
bun add @modelcontextprotocol/client zod
72+
# or
73+
deno add npm:@modelcontextprotocol/client npm:zod
6674
```
6775

6876
### Optional middleware packages

docs/client-quickstart.md

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,10 +19,13 @@ This quickstart assumes you have familiarity with:
1919

2020
Before starting, ensure your system meets these requirements:
2121

22-
- Node.js 20 or higher installed
22+
- Node.js 20 or higher installed (or **Bun** / **Deno** — the SDK supports all three runtimes)
2323
- Latest version of `npm` installed
2424
- An Anthropic API key from the [Anthropic Console](https://console.anthropic.com/settings/keys)
2525

26+
> [!TIP]
27+
> This tutorial uses Node.js and npm, but you can substitute `bun` or `deno` commands where appropriate. For example, use `bun add` instead of `npm install`, or run the client with `bun run` / `deno run`.
28+
2629
## Set up your environment
2730

2831
First, let's create and set up our project:

docs/server-quickstart.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,9 @@ node --version
3636
npm --version
3737
```
3838

39+
> [!TIP]
40+
> The MCP SDK also works with **Bun** and **Deno**. This tutorial uses Node.js, but you can substitute `bun` or `deno` commands where appropriate. For HTTP-based servers on Bun or Deno, use `WebStandardStreamableHTTPServerTransport` instead of the Node.js-specific transport — see the [server guide](./server.md) for details.
41+
3942
## Set up your environment
4043

4144
First, let's install Node.js and npm if you haven't already. You can download them from [nodejs.org](https://nodejs.org/).

0 commit comments

Comments
 (0)