Skip to content

Commit 515c9f1

Browse files
Add API documentation with GitHub Pages deployment
This adds automated generation and deployment of versioned API documentation using TypeDoc and GitHub Pages. Documentation will be generated and published when a new release is created. **Changes:** 1. **Documentation generation script (see `scripts/generate-gh-pages.sh`)** Generates TypeDoc documentation for a specific version tag and commits it to the `gh-pages` branch. The script uses git worktrees to isolate the documentation generation process from the main workspace. Documentation for each release is stored in a versioned directory (e.g., `v1.2.3/`) on the gh-pages branch. The script: - Parses semantic versions from tag names, ignoring arbitrary prefixes (e.g., tags `1.2.3`, `v1.2.3`, and `release-1.2.3` all create `v1.2.3/`) - Creates the `gh-pages` branch as an orphan branch if it doesn't exist - Generates new doc pages while preserving existing versioned directories - Determines the latest version via semantic version sorting - Generates `_data/latest_version.yml` for Jekyll template - For the latest version only, copies static Jekyll template files from `.github/pages/` to the `gh-pages` root 2. TypeDoc configuration - `typedoc.config.mjs` - Root config using `packages` entry point strategy to document the monorepo (`@modelcontextprotocol/client` and `@modelcontextprotocol/server` packages) - `packages/client/typedoc.json` - Per-package config for client - `packages/server/typedoc.json` - Per-package config for server - Includes `docs/documents.md` as project documentation, which, in turn, pulls in other documents via its frontmatter 3. Jekyll template files (see `.github/pages/` directory) - `.github/pages/_config.yml` - Jekyll configuration - `.github/pages/index.html` - Landing page that redirects to the latest version based on the generated `_data/latest_version.yml` 4. GitHub Actions workflow (see `.github/workflows/main.yml`) Added a `publish-gh-pages` job that runs after the `publish` job on release events. This ensures documentation is generated and published only after the npm package is successfully published. The job invokes the generation script with the release tag name and pushes the updated gh-pages branch. 5. CI validation (see `packages/*/package.json`) Updated the `check` script in each package to include TypeDoc validation with `--emit none`. This ensures TypeDoc can successfully parse the codebase (without generating output), catching documentation issues early in CI. 6. Documentation updates - Updated `docs/*.md` files with absolute GitHub URLs for compatibility with generated documentation - Added link to published API docs in `README.md` **Documentation URL:** - https://modelcontextprotocol.github.io/typescript-sdk/ (redirects to latest) - https://modelcontextprotocol.github.io/typescript-sdk/v1.2.3/ (specific versions)
1 parent 6b4d99f commit 515c9f1

File tree

20 files changed

+1052
-373
lines changed

20 files changed

+1052
-373
lines changed

.github/pages/_config.yml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
title: '@modelcontextprotocol/sdk'
2+
3+
# Include generated files and directories which may start with underscores
4+
include:
5+
- '_*'

.github/pages/index.html

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
---
2+
# Empty Jekyll front matter to enable Liquid templating (see {{ ... }} below)
3+
---
4+
5+
<!doctype html>
6+
<html>
7+
<head>
8+
<meta charset="utf-8" />
9+
<title>Redirecting to latest documentation...</title>
10+
<meta http-equiv="refresh" content="0; url={{ site.data.latest_version }}/" />
11+
<link rel="canonical" href="{{ site.data.latest_version }}/" />
12+
</head>
13+
<body>
14+
<p>Redirecting to <a href="{{ site.data.latest_version }}/">latest documentation</a>...</p>
15+
<script>
16+
window.location.href = '{{ site.data.latest_version }}/';
17+
</script>
18+
</body>
19+
</html>

.github/workflows/main.yml

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -108,3 +108,40 @@ jobs:
108108
- run: pnpm publish --provenance --access public ${{ steps.npm-tag.outputs.tag }}
109109
env:
110110
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
111+
112+
publish-gh-pages:
113+
runs-on: ubuntu-latest
114+
if: github.event_name == 'release'
115+
needs: [publish]
116+
117+
permissions:
118+
contents: write
119+
120+
steps:
121+
- uses: actions/checkout@v4
122+
with:
123+
fetch-depth: 0 # Fetch all history for all branches
124+
125+
- name: Install pnpm
126+
uses: pnpm/action-setup@v4
127+
with:
128+
run_install: false
129+
- uses: actions/setup-node@v4
130+
with:
131+
node-version: 24
132+
cache: pnpm
133+
cache-dependency-path: pnpm-lock.yaml
134+
135+
- name: Install dependencies
136+
run: pnpm install
137+
138+
- name: Configure Git
139+
run: |
140+
git config --global user.name "github-actions[bot]"
141+
git config --global user.email "github-actions[bot]@users.noreply.github.com"
142+
143+
- name: Generate documentation
144+
run: ./scripts/generate-gh-pages.sh ${{ github.ref_name }}
145+
146+
- name: Push to gh-pages
147+
run: git push origin gh-pages

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -105,6 +105,7 @@ Next steps:
105105
- [docs/capabilities.md](docs/capabilities.md) – sampling, elicitation (form and URL), and experimental task-based execution.
106106
- [docs/faq.md](docs/faq.md) – environment and troubleshooting FAQs (including Node.js Web Crypto support).
107107
- External references:
108+
- [SDK API documentation](https://modelcontextprotocol.github.io/typescript-sdk/)
108109
- [Model Context Protocol documentation](https://modelcontextprotocol.io)
109110
- [MCP Specification](https://spec.modelcontextprotocol.io)
110111
- [Example Servers](https://github.com/modelcontextprotocol/servers)

docs/capabilities.md

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,14 @@
1+
---
2+
title: Capabilities
3+
---
4+
15
## Sampling
26

37
MCP servers can request LLM completions from connected clients that support the sampling capability. This lets your tools offload summarisation or generation to the client’s model.
48

59
For a runnable server that combines tools, logging and tasks, see:
610

7-
- [`toolWithSampleServer.ts`](../examples/server/src/toolWithSampleServer.ts)
11+
- [`toolWithSampleServer.ts`](https://github.com/modelcontextprotocol/typescript-sdk/blob/main/examples/server/src/toolWithSampleServer.ts)
812

913
In practice you will:
1014

@@ -22,8 +26,8 @@ Form elicitation lets a tool ask the user for additional, **non‑sensitive** in
2226

2327
Runnable example:
2428

25-
- Server: [`elicitationFormExample.ts`](../examples/server/src/elicitationFormExample.ts)
26-
- Client‑side handling: [`simpleStreamableHttp.ts`](../examples/client/src/simpleStreamableHttp.ts)
29+
- Server: [`elicitationFormExample.ts`](https://github.com/modelcontextprotocol/typescript-sdk/blob/main/examples/server/src/elicitationFormExample.ts)
30+
- Client‑side handling: [`simpleStreamableHttp.ts`](https://github.com/modelcontextprotocol/typescript-sdk/blob/main/examples/client/src/simpleStreamableHttp.ts)
2731

2832
The `simpleStreamableHttp` server also includes a `collect-user-info` tool that demonstrates how to drive elicitation from a tool and handle the response.
2933

@@ -33,8 +37,8 @@ URL elicitation is designed for sensitive data and secure web‑based flows (e.g
3337

3438
Runnable example:
3539

36-
- Server: [`elicitationUrlExample.ts`](../examples/server/src/elicitationUrlExample.ts)
37-
- Client: [`elicitationUrlExample.ts`](../examples/client/src/elicitationUrlExample.ts)
40+
- Server: [`elicitationUrlExample.ts`](https://github.com/modelcontextprotocol/typescript-sdk/blob/main/examples/server/src/elicitationUrlExample.ts)
41+
- Client: [`elicitationUrlExample.ts`](https://github.com/modelcontextprotocol/typescript-sdk/blob/main/examples/client/src/elicitationUrlExample.ts)
3842

3943
Key points:
4044

@@ -62,7 +66,7 @@ On the server you will:
6266

6367
For a runnable example that uses the in-memory store shipped with the SDK, see:
6468

65-
- [`toolWithSampleServer.ts`](../examples/server/src/toolWithSampleServer.ts)
69+
- [`toolWithSampleServer.ts`](https://github.com/modelcontextprotocol/typescript-sdk/blob/main/examples/server/src/toolWithSampleServer.ts)
6670
- `packages/core/src/experimental/tasks/stores/in-memory.ts`
6771

6872
### Client-side usage
@@ -74,7 +78,7 @@ On the client, you use:
7478

7579
The interactive client in:
7680

77-
- [`simpleStreamableHttp.ts`](../examples/client/src/simpleStreamableHttp.ts)
81+
- [`simpleStreamableHttp.ts`](https://github.com/modelcontextprotocol/typescript-sdk/blob/main/examples/client/src/simpleStreamableHttp.ts)
7882

7983
includes commands to demonstrate calling tools that support tasks and handling their lifecycle.
8084

docs/client.md

Lines changed: 15 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
---
2+
title: Client
3+
---
4+
15
## Client overview
26

37
The SDK provides a high-level `Client` class that connects to MCP servers over different transports:
@@ -8,11 +12,11 @@ The SDK provides a high-level `Client` class that connects to MCP servers over d
812

913
Runnable client examples live under:
1014

11-
- [`simpleStreamableHttp.ts`](../examples/client/src/simpleStreamableHttp.ts)
12-
- [`streamableHttpWithSseFallbackClient.ts`](../examples/client/src/streamableHttpWithSseFallbackClient.ts)
13-
- [`ssePollingClient.ts`](../examples/client/src/ssePollingClient.ts)
14-
- [`multipleClientsParallel.ts`](../examples/client/src/multipleClientsParallel.ts)
15-
- [`parallelToolCallsClient.ts`](../examples/client/src/parallelToolCallsClient.ts)
15+
- [`simpleStreamableHttp.ts`](https://github.com/modelcontextprotocol/typescript-sdk/blob/main/examples/client/src/simpleStreamableHttp.ts)
16+
- [`streamableHttpWithSseFallbackClient.ts`](https://github.com/modelcontextprotocol/typescript-sdk/blob/main/examples/client/src/streamableHttpWithSseFallbackClient.ts)
17+
- [`ssePollingClient.ts`](https://github.com/modelcontextprotocol/typescript-sdk/blob/main/examples/client/src/ssePollingClient.ts)
18+
- [`multipleClientsParallel.ts`](https://github.com/modelcontextprotocol/typescript-sdk/blob/main/examples/client/src/multipleClientsParallel.ts)
19+
- [`parallelToolCallsClient.ts`](https://github.com/modelcontextprotocol/typescript-sdk/blob/main/examples/client/src/parallelToolCallsClient.ts)
1620

1721
## Connecting and basic operations
1822

@@ -25,7 +29,7 @@ A typical flow:
2529
- `listPrompts`, `getPrompt`
2630
- `listResources`, `readResource`
2731

28-
See [`simpleStreamableHttp.ts`](../examples/client/src/simpleStreamableHttp.ts) for an interactive CLI client that exercises these methods and shows how to handle notifications, elicitation and tasks.
32+
See [`simpleStreamableHttp.ts`](https://github.com/modelcontextprotocol/typescript-sdk/blob/main/examples/client/src/simpleStreamableHttp.ts) for an interactive CLI client that exercises these methods and shows how to handle notifications, elicitation and tasks.
2933

3034
## Transports and backwards compatibility
3135

@@ -36,7 +40,7 @@ To support both modern Streamable HTTP and legacy SSE servers, use a client that
3640

3741
Runnable example:
3842

39-
- [`streamableHttpWithSseFallbackClient.ts`](../examples/client/src/streamableHttpWithSseFallbackClient.ts)
43+
- [`streamableHttpWithSseFallbackClient.ts`](https://github.com/modelcontextprotocol/typescript-sdk/blob/main/examples/client/src/streamableHttpWithSseFallbackClient.ts)
4044

4145
## OAuth client authentication helpers
4246

@@ -48,10 +52,10 @@ For OAuth-secured MCP servers, the client `auth` module exposes:
4852

4953
Examples:
5054

51-
- [`simpleOAuthClient.ts`](../examples/client/src/simpleOAuthClient.ts)
52-
- [`simpleOAuthClientProvider.ts`](../examples/client/src/simpleOAuthClientProvider.ts)
53-
- [`simpleClientCredentials.ts`](../examples/client/src/simpleClientCredentials.ts)
54-
- Server-side auth demo: [`demoInMemoryOAuthProvider.ts`](../examples/shared/src/demoInMemoryOAuthProvider.ts) (tests live under `examples/shared/test/demoInMemoryOAuthProvider.test.ts`)
55+
- [`simpleOAuthClient.ts`](https://github.com/modelcontextprotocol/typescript-sdk/blob/main/examples/client/src/simpleOAuthClient.ts)
56+
- [`simpleOAuthClientProvider.ts`](https://github.com/modelcontextprotocol/typescript-sdk/blob/main/examples/client/src/simpleOAuthClientProvider.ts)
57+
- [`simpleClientCredentials.ts`](https://github.com/modelcontextprotocol/typescript-sdk/blob/main/examples/client/src/simpleClientCredentials.ts)
58+
- Server-side auth demo: [`demoInMemoryOAuthProvider.ts`](https://github.com/modelcontextprotocol/typescript-sdk/blob/main/examples/shared/src/demoInMemoryOAuthProvider.ts) (tests live under `examples/shared/test/demoInMemoryOAuthProvider.test.ts`)
5559

5660
These examples show how to:
5761

docs/documents.md

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
---
2+
title: Documents
3+
children:
4+
- ./server.md
5+
- ./client.md
6+
- ./capabilities.md
7+
- ./faq.md
8+
---
9+
10+
# Documents
11+
12+
- [Server](./server.md) – building MCP servers, transports, tools/resources/prompts, and deployment patterns
13+
- [Client](./client.md) – using the high-level client, transports, backwards compatibility, and OAuth helpers
14+
- [Capabilities](./capabilities.md) – sampling, elicitation, and experimental task-based execution
15+
- [FAQ](./faq.md) – frequently asked questions and troubleshooting

docs/faq.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
---
2+
title: FAQ
3+
---
4+
15
## FAQ
26

37
<details>

docs/server.md

Lines changed: 25 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
---
2+
title: Server
3+
---
4+
15
## Server overview
26

37
This SDK lets you build MCP servers in TypeScript and connect them to different transports. For most use cases you will use `McpServer` from `@modelcontextprotocol/server` and choose one of:
@@ -8,11 +12,11 @@ This SDK lets you build MCP servers in TypeScript and connect them to different
812

913
For a complete, runnable example server, see:
1014

11-
- [`simpleStreamableHttp.ts`](../examples/server/src/simpleStreamableHttp.ts) – feature‑rich Streamable HTTP server
12-
- [`jsonResponseStreamableHttp.ts`](../examples/server/src/jsonResponseStreamableHttp.ts) – Streamable HTTP with JSON response mode
13-
- [`simpleStatelessStreamableHttp.ts`](../examples/server/src/simpleStatelessStreamableHttp.ts) – stateless Streamable HTTP server
14-
- [`simpleSseServer.ts`](../examples/server/src/simpleSseServer.ts) – deprecated HTTP+SSE transport
15-
- [`sseAndStreamableHttpCompatibleServer.ts`](../examples/server/src/sseAndStreamableHttpCompatibleServer.ts) – backwards‑compatible server for old and new clients
15+
- [`simpleStreamableHttp.ts`](https://github.com/modelcontextprotocol/typescript-sdk/blob/main/examples/server/src/simpleStreamableHttp.ts) – feature‑rich Streamable HTTP server
16+
- [`jsonResponseStreamableHttp.ts`](https://github.com/modelcontextprotocol/typescript-sdk/blob/main/examples/server/src/jsonResponseStreamableHttp.ts) – Streamable HTTP with JSON response mode
17+
- [`simpleStatelessStreamableHttp.ts`](https://github.com/modelcontextprotocol/typescript-sdk/blob/main/examples/server/src/simpleStatelessStreamableHttp.ts) – stateless Streamable HTTP server
18+
- [`simpleSseServer.ts`](https://github.com/modelcontextprotocol/typescript-sdk/blob/main/examples/server/src/simpleSseServer.ts) – deprecated HTTP+SSE transport
19+
- [`sseAndStreamableHttpCompatibleServer.ts`](https://github.com/modelcontextprotocol/typescript-sdk/blob/main/examples/server/src/sseAndStreamableHttpCompatibleServer.ts) – backwards‑compatible server for old and new clients
1620

1721
## Transports
1822

@@ -27,9 +31,9 @@ Streamable HTTP is the modern, fully featured transport. It supports:
2731

2832
Key examples:
2933

30-
- [`simpleStreamableHttp.ts`](../examples/server/src/simpleStreamableHttp.ts) – sessions, logging, tasks, elicitation, auth hooks
31-
- [`jsonResponseStreamableHttp.ts`](../examples/server/src/jsonResponseStreamableHttp.ts)`enableJsonResponse: true`, no SSE
32-
- [`standaloneSseWithGetStreamableHttp.ts`](../examples/server/src/standaloneSseWithGetStreamableHttp.ts) – notifications with Streamable HTTP GET + SSE
34+
- [`simpleStreamableHttp.ts`](https://github.com/modelcontextprotocol/typescript-sdk/blob/main/examples/server/src/simpleStreamableHttp.ts) – sessions, logging, tasks, elicitation, auth hooks
35+
- [`jsonResponseStreamableHttp.ts`](https://github.com/modelcontextprotocol/typescript-sdk/blob/main/examples/server/src/jsonResponseStreamableHttp.ts)`enableJsonResponse: true`, no SSE
36+
- [`standaloneSseWithGetStreamableHttp.ts`](https://github.com/modelcontextprotocol/typescript-sdk/blob/main/examples/server/src/standaloneSseWithGetStreamableHttp.ts) – notifications with Streamable HTTP GET + SSE
3337

3438
See the MCP spec for full transport details: `https://modelcontextprotocol.io/specification/2025-11-25/basic/transports`
3539

@@ -42,24 +46,24 @@ Streamable HTTP can run:
4246

4347
Examples:
4448

45-
- Stateless Streamable HTTP: [`simpleStatelessStreamableHttp.ts`](../examples/server/src/simpleStatelessStreamableHttp.ts)
46-
- Stateful with resumability: [`simpleStreamableHttp.ts`](../examples/server/src/simpleStreamableHttp.ts)
49+
- Stateless Streamable HTTP: [`simpleStatelessStreamableHttp.ts`](https://github.com/modelcontextprotocol/typescript-sdk/blob/main/examples/server/src/simpleStatelessStreamableHttp.ts)
50+
- Stateful with resumability: [`simpleStreamableHttp.ts`](https://github.com/modelcontextprotocol/typescript-sdk/blob/main/examples/server/src/simpleStreamableHttp.ts)
4751

4852
### Deprecated HTTP + SSE
4953

5054
The older HTTP+SSE transport (protocol version 2024‑11‑05) is supported only for backwards compatibility. New implementations should prefer Streamable HTTP.
5155

5256
Examples:
5357

54-
- Legacy SSE server: [`simpleSseServer.ts`](../examples/server/src/simpleSseServer.ts)
58+
- Legacy SSE server: [`simpleSseServer.ts`](https://github.com/modelcontextprotocol/typescript-sdk/blob/main/examples/server/src/simpleSseServer.ts)
5559
- Backwards‑compatible server (Streamable HTTP + SSE):
56-
[`sseAndStreamableHttpCompatibleServer.ts`](../examples/server/src/sseAndStreamableHttpCompatibleServer.ts)
60+
[`sseAndStreamableHttpCompatibleServer.ts`](https://github.com/modelcontextprotocol/typescript-sdk/blob/main/examples/server/src/sseAndStreamableHttpCompatibleServer.ts)
5761

5862
## Running your server
5963

6064
For a minimal “getting started” experience:
6165

62-
1. Start from [`simpleStreamableHttp.ts`](../examples/server/src/simpleStreamableHttp.ts).
66+
1. Start from [`simpleStreamableHttp.ts`](https://github.com/modelcontextprotocol/typescript-sdk/blob/main/examples/server/src/simpleStreamableHttp.ts).
6367
2. Remove features you do not need (tasks, advanced logging, OAuth, etc.).
6468
3. Register your own tools, resources and prompts.
6569

@@ -125,8 +129,8 @@ server.registerTool(
125129

126130
This snippet is illustrative only; for runnable servers that expose tools, see:
127131

128-
- [`simpleStreamableHttp.ts`](../examples/server/src/simpleStreamableHttp.ts)
129-
- [`toolWithSampleServer.ts`](../examples/server/src/toolWithSampleServer.ts)
132+
- [`simpleStreamableHttp.ts`](https://github.com/modelcontextprotocol/typescript-sdk/blob/main/examples/server/src/simpleStreamableHttp.ts)
133+
- [`toolWithSampleServer.ts`](https://github.com/modelcontextprotocol/typescript-sdk/blob/main/examples/server/src/toolWithSampleServer.ts)
130134

131135
#### ResourceLink outputs
132136

@@ -157,7 +161,7 @@ server.registerResource(
157161

158162
Dynamic resources use `ResourceTemplate` and can support completions on path parameters. For full runnable examples of resources:
159163

160-
- [`simpleStreamableHttp.ts`](../examples/server/src/simpleStreamableHttp.ts)
164+
- [`simpleStreamableHttp.ts`](https://github.com/modelcontextprotocol/typescript-sdk/blob/main/examples/server/src/simpleStreamableHttp.ts)
161165

162166
### Prompts
163167

@@ -189,13 +193,13 @@ server.registerPrompt(
189193

190194
For prompts integrated into a full server, see:
191195

192-
- [`simpleStreamableHttp.ts`](../examples/server/src/simpleStreamableHttp.ts)
196+
- [`simpleStreamableHttp.ts`](https://github.com/modelcontextprotocol/typescript-sdk/blob/main/examples/server/src/simpleStreamableHttp.ts)
193197

194198
### Completions
195199

196200
Both prompts and resources can support argument completions. On the client side, you use `client.complete()` with a reference to the prompt or resource and the partially‑typed argument.
197201

198-
See the MCP spec sections on prompts and resources for complete details, and [`simpleStreamableHttp.ts`](../examples/client/src/simpleStreamableHttp.ts) for client‑side usage patterns.
202+
See the MCP spec sections on prompts and resources for complete details, and [`simpleStreamableHttp.ts`](https://github.com/modelcontextprotocol/typescript-sdk/blob/main/examples/client/src/simpleStreamableHttp.ts) for client‑side usage patterns.
199203

200204
### Display names and metadata
201205

@@ -207,15 +211,15 @@ Tools, resources and prompts support a `title` field for human‑readable names.
207211

208212
The SDK supports multi‑node deployments using Streamable HTTP. The high‑level patterns and diagrams live with the runnable server examples:
209213

210-
- [`examples/server/README.md`](../examples/server/README.md#multi-node-deployment-patterns)
214+
- [`examples/server/README.md`](https://github.com/modelcontextprotocol/typescript-sdk/blob/main/examples/server/README.md#multi-node-deployment-patterns)
211215

212216
## Backwards compatibility
213217

214218
To handle both modern and legacy clients:
215219

216220
- Run a backwards‑compatible server:
217-
- [`sseAndStreamableHttpCompatibleServer.ts`](../examples/server/src/sseAndStreamableHttpCompatibleServer.ts)
221+
- [`sseAndStreamableHttpCompatibleServer.ts`](https://github.com/modelcontextprotocol/typescript-sdk/blob/main/examples/server/src/sseAndStreamableHttpCompatibleServer.ts)
218222
- Use a client that falls back from Streamable HTTP to SSE:
219-
- [`streamableHttpWithSseFallbackClient.ts`](../examples/client/src/streamableHttpWithSseFallbackClient.ts)
223+
- [`streamableHttpWithSseFallbackClient.ts`](https://github.com/modelcontextprotocol/typescript-sdk/blob/main/examples/client/src/streamableHttpWithSseFallbackClient.ts)
220224

221225
For the detailed protocol rules, see the “Backwards compatibility” section of the MCP spec.

0 commit comments

Comments
 (0)