Commit graph typescript-sdk/src
Author SHA1 Message Date
Justin Spahr-Summers
f4002e559e
Add type definition for token revocation requests 2025-02-18 09:24:51 +00:00
Tuomas
7f6c0465f5 Add timeout reset on progress notifications 2025-02-17 15:57:02 -06:00
Justin Spahr-Summers
26ffe00dc3
Auth code and refresh token flows 2025-02-17 16:40:51 +00:00
Justin Spahr-Summers
5738f0cef1
WIP /token endpoint 2025-02-17 16:19:26 +00:00
Justin Spahr-Summers
62cd9520da
Authorization flow handoff 2025-02-17 15:04:02 +00:00
Justin Spahr-Summers
54f643cee8
Validate redirect URIs _as_ URIs 2025-02-17 14:46:08 +00:00
Justin Spahr-Summers
9dc4a4f6a9
WIP /authorize endpoint 2025-02-17 14:37:10 +00:00
Justin Spahr-Summers
6d33a7c527
Rename handler file to register.ts to make path more obvious 2025-02-17 13:56:16 +00:00
Justin Spahr-Summers
a776f5f94a
Build a router to chain middleware better 2025-02-17 13:51:37 +00:00
Justin Spahr-Summers
6bfbd2092b
Client registration using a "store" interface 2025-02-17 13:29:51 +00:00
Justin Spahr-Summers
76f367b957
WIP client registration handler for Express 2025-02-17 12:17:00 +00:00
Justin Spahr-Summers
a0069e2341
Split full/partial client information 2025-02-17 11:41:42 +00:00
Justin Spahr-Summers
afae4212e6
Move OAuth definitions into shared, add more 2025-02-17 11:07:59 +00:00
Justin Spahr-Summers
41e0d26f23
Merge pull request #144 from modelcontextprotocol/justin/client-auth
Client implementation of MCP auth
2025-02-17 10:46:39 +00:00
Justin Spahr-Summers
b1f4b65709
Improve auth docs and add finishAuth convenience method 2025-02-17 10:45:34 +00:00
Justin Spahr-Summers
44a440854f
Code review comments 2025-02-17 10:34:57 +00:00
Georges Haidar
7c7e4ad0ae
fix: drop unresolved union members in zod schemas
This change enables the strictUnions option in zod-to-json-schema so
that any union members that cannot be resolved are excluded from the
resulting JSON Schema anyOf array.

Previously, a schema like this:

**Before**

```ts
import { zodToJsonSchema } from "zod-to-json-schema";
import { z } from "zod";

console.dir(
  zodToJsonSchema(
    z.union([
      z
        .string()
        .base64()
        .transform((v) => Uint8Array.from(atob(v), (v) => v.charCodeAt(0))),
      z.instanceof(ReadableStream<Uint8Array>),
      z.instanceof(Blob),
      z.instanceof(ArrayBuffer),
      z.instanceof(Uint8Array),
    ])
  ),
  { depth: null }
);
```

Prints:

```js
{
  anyOf: [
    { type: "string", contentEncoding: "base64" }, {}, {}, {}, {}
  ],
  $schema: "http://json-schema.org/draft-07/schema#",
}
```

**After**

```ts
import { zodToJsonSchema } from "zod-to-json-schema";
import { z } from "zod";

console.dir(
  zodToJsonSchema(
    z.union([
      z
        .string()
        .base64()
        .transform((v) => Uint8Array.from(atob(v), (v) => v.charCodeAt(0))),
      z.instanceof(ReadableStream<Uint8Array>),
      z.instanceof(Blob),
      z.instanceof(ArrayBuffer),
      z.instanceof(Uint8Array),
    ]),
    { strictUnions: true }, // 👈
  ),
  { depth: null }
);
```

Prints:

```js
{
  anyOf: [
    { type: "string", contentEncoding: "base64" }
  ],
  $schema: "http://json-schema.org/draft-07/schema#",
}
```

---

I picked this example in particular because I have modelled file uploads
using a permissive schema that accepts streams, byte arrays / blobs and
base64-encoded strings. In the context of MCP, base64 would be most
applicable so I wanted to drop the other union members that couldn't be
represented in JSON Schema.
2025-02-16 19:23:29 +00:00
Justin Spahr-Summers
c0ebe90154
Test transparent token refresh in SSEClientTransport 2025-02-12 14:17:03 +00:00
Justin Spahr-Summers
79d2db3e71
Missed one await server.close() 2025-02-12 14:01:22 +00:00
Justin Spahr-Summers
36999dcef7
Fix fetch test polluting auth tests 2025-02-12 14:00:21 +00:00
Justin Spahr-Summers
d47d88be9e
Auth tests for SSEClientTransport 2025-02-12 13:47:59 +00:00
Justin Spahr-Summers
3e2dd35dca
Fix tests 2025-02-11 22:02:20 +00:00
Justin Spahr-Summers
92621516f8
Re-auth upon 401 when POSTing 2025-02-11 21:37:49 +00:00
Justin Spahr-Summers
03e583b70f
Add support for AuthProvider in SSEClientTransport 2025-02-11 20:35:36 +00:00
Justin Spahr-Summers
fceebdcf5a
Add MCP-Protocol-Version header 2025-02-11 17:58:58 +00:00
Justin Spahr-Summers
141f3f5532
Don't need full OAuth client metadata in response 2025-02-11 16:54:57 +00:00
Justin Spahr-Summers
9fea0af998
Correctly provide client ID (+ secret) to every auth step 2025-02-11 15:59:16 +00:00
Justin Spahr-Summers
47fd6df229
Higher-level auth flow 2025-02-11 15:13:17 +00:00
Justin Spahr-Summers
fa50204a11
Fix import of auth.js in test 2025-02-11 14:17:10 +00:00
Justin Spahr-Summers
4c87fb50ab
Prefix client metadata + info with OAuth 2025-02-11 14:17:02 +00:00
Justin Spahr-Summers
d17a382a65
Auth tests and fixes 2025-02-11 13:47:58 +00:00
Justin Spahr-Summers
2b9a58182c
Add dynamic client registration 2025-02-11 13:32:10 +00:00
Nate
d28ab78b3f add cwd to StdioServerParameters 2025-02-10 09:15:34 -08:00
Justin Spahr-Summers
62d67ad874
Add refresh token support 2025-02-06 16:37:47 +00:00
Justin Spahr-Summers
fe24aa5c26
Remove nested folder for auth 2025-02-06 16:34:33 +00:00
Justin Spahr-Summers
956f6658e8
Implement token exchange 2025-02-06 14:52:37 +00:00
Justin Spahr-Summers
8a26e2d9e8
Validate auth flow is supported 2025-02-06 14:39:50 +00:00
Justin Spahr-Summers
c39c8bf62b
WIP start authorization flow 2025-02-06 13:44:41 +00:00
Justin Spahr-Summers
0bc3a74ac3
OAuth metadata discovery 2025-02-06 13:38:21 +00:00
Justin Spahr-Summers
63f8f07a22
Add SseError class for easier introspection 2025-01-24 11:26:12 +00:00
Justin Spahr-Summers
9923aecf29
Report SSE error codes 2025-01-23 17:29:46 +00:00
Justin Spahr-Summers
edfdea539f
Merge pull request #134 from modelcontextprotocol/justin/sse-auth
Use `eventsource` package, to permit custom headers for SSE
2025-01-23 13:56:41 +00:00
Justin Spahr-Summers
87bfb61544
Try a different way of waiting for close 2025-01-23 11:53:41 +00:00
Justin Spahr-Summers
742b8b43a0
General tests for SSE client transport
Since we're here anyway…
2025-01-22 18:55:47 +00:00
Justin Spahr-Summers
e2723d30b8
Tests for passing custom SSE headers 2025-01-22 18:51:00 +00:00
Justin Spahr-Summers
c828067171
Use eventsource package 2025-01-22 18:49:04 +00:00
Kalvin Chau
5087087190 style: fix linting error on String vs string 2025-01-22 09:25:28 -08:00
Kalvin Chau
443c0829ed feat: add mcp client instruction support 2025-01-22 09:17:59 -08:00
Justin Spahr-Summers
dbf560f24a
Don't double-add completion handler 2025-01-22 11:41:11 +00:00
Justin Spahr-Summers
eba6461567
Failing test case for double completion handlers 2025-01-22 11:41:05 +00:00