@haikit/mcp 0.0.0-stage → 0.33.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/text.d.ts ADDED
@@ -0,0 +1,16 @@
1
+ import type { McpResult } from "./index.js";
2
+ export interface TextOptions {
3
+ /** The longest text returned, before the line saying it was cut. Default 8,000 (about 2,000 tokens). */
4
+ maxChars?: number;
5
+ }
6
+ /**
7
+ * A result as text, for a tool that decides to pass some of it on. Nothing
8
+ * calls this for you: what a result becomes is the tool's choice.
9
+ *
10
+ * Text blocks, and resources embedded as text, come as they are; anything
11
+ * else becomes one line saying what it was. With no content, the structured
12
+ * result as JSON. Longer than `maxChars`, it is cut, and a last line says so:
13
+ * a cut nobody mentions turns a cost problem into a correctness problem.
14
+ */
15
+ export declare function textOf(result: McpResult, options?: TextOptions): string;
16
+ //# sourceMappingURL=text.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"text.d.ts","sourceRoot":"","sources":["../src/text.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAE5C,MAAM,WAAW,WAAW;IAC1B,wGAAwG;IACxG,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAID;;;;;;;;GAQG;AACH,wBAAgB,MAAM,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,GAAE,WAAgB,GAAG,MAAM,CAa3E"}
package/dist/text.js ADDED
@@ -0,0 +1,51 @@
1
+ const MAX_CHARS = 8_000;
2
+ /**
3
+ * A result as text, for a tool that decides to pass some of it on. Nothing
4
+ * calls this for you: what a result becomes is the tool's choice.
5
+ *
6
+ * Text blocks, and resources embedded as text, come as they are; anything
7
+ * else becomes one line saying what it was. With no content, the structured
8
+ * result as JSON. Longer than `maxChars`, it is cut, and a last line says so:
9
+ * a cut nobody mentions turns a cost problem into a correctness problem.
10
+ */
11
+ export function textOf(result, options = {}) {
12
+ const maxChars = options.maxChars ?? MAX_CHARS;
13
+ if (!Number.isSafeInteger(maxChars) || maxChars < 0) {
14
+ throw new RangeError(`maxChars must be a whole number of characters, 0 or more (got ${String(maxChars)})`);
15
+ }
16
+ const text = result.content.length === 0
17
+ ? result.structuredContent === undefined
18
+ ? ""
19
+ : JSON.stringify(result.structuredContent)
20
+ : result.content.map(blockText).join("\n");
21
+ if (text.length <= maxChars)
22
+ return text;
23
+ return `${text.slice(0, maxChars)}\n[Cut at ${maxChars} of ${text.length} characters.]`;
24
+ }
25
+ function blockText(block) {
26
+ switch (block.type) {
27
+ case "text":
28
+ return block.text;
29
+ case "image":
30
+ case "audio":
31
+ return `[${block.type}: ${block.mimeType}, ${bytes(block.data)} bytes, not included]`;
32
+ case "resource_link":
33
+ return `[resource link: ${block.name} ${block.uri}]`;
34
+ case "resource": {
35
+ const r = block.resource;
36
+ if ("text" in r && typeof r.text === "string")
37
+ return r.text;
38
+ const blob = "blob" in r && typeof r.blob === "string" ? r.blob : "";
39
+ return `[resource: ${r.uri}${r.mimeType ? `, ${r.mimeType}` : ""}, ${bytes(blob)} bytes, not included]`;
40
+ }
41
+ default:
42
+ // a content type from a later protocol revision
43
+ return `[${String(block.type)} content, not included]`;
44
+ }
45
+ }
46
+ /** The size of what base64 `data` encodes, without decoding it. */
47
+ function bytes(data) {
48
+ const padding = data.endsWith("==") ? 2 : data.endsWith("=") ? 1 : 0;
49
+ return Math.max(0, Math.floor((data.length * 3) / 4) - padding);
50
+ }
51
+ //# sourceMappingURL=text.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"text.js","sourceRoot":"","sources":["../src/text.ts"],"names":[],"mappings":"AAQA,MAAM,SAAS,GAAG,KAAK,CAAC;AAExB;;;;;;;;GAQG;AACH,MAAM,UAAU,MAAM,CAAC,MAAiB,EAAE,UAAuB,EAAE;IACjE,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,SAAS,CAAC;IAC/C,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,QAAQ,GAAG,CAAC,EAAE,CAAC;QACpD,MAAM,IAAI,UAAU,CAAC,iEAAiE,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;IAC7G,CAAC;IACD,MAAM,IAAI,GACR,MAAM,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC;QACzB,CAAC,CAAC,MAAM,CAAC,iBAAiB,KAAK,SAAS;YACtC,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,iBAAiB,CAAC;QAC5C,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC/C,IAAI,IAAI,CAAC,MAAM,IAAI,QAAQ;QAAE,OAAO,IAAI,CAAC;IACzC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,aAAa,QAAQ,OAAO,IAAI,CAAC,MAAM,eAAe,CAAC;AAC1F,CAAC;AAED,SAAS,SAAS,CAAC,KAAmB;IACpC,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;QACnB,KAAK,MAAM;YACT,OAAO,KAAK,CAAC,IAAI,CAAC;QACpB,KAAK,OAAO,CAAC;QACb,KAAK,OAAO;YACV,OAAO,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,QAAQ,KAAK,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,uBAAuB,CAAC;QACxF,KAAK,eAAe;YAClB,OAAO,mBAAmB,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC;QACvD,KAAK,UAAU,CAAC,CAAC,CAAC;YAChB,MAAM,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC;YACzB,IAAI,MAAM,IAAI,CAAC,IAAI,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ;gBAAE,OAAO,CAAC,CAAC,IAAI,CAAC;YAC7D,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;YACrE,OAAO,cAAc,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,KAAK,CAAC,IAAI,CAAC,uBAAuB,CAAC;QAC1G,CAAC;QACD;YACE,gDAAgD;YAChD,OAAO,IAAI,MAAM,CAAE,KAA4B,CAAC,IAAI,CAAC,yBAAyB,CAAC;IACnF,CAAC;AACH,CAAC;AAED,mEAAmE;AACnE,SAAS,KAAK,CAAC,IAAY;IACzB,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACrE,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC;AAClE,CAAC"}
@@ -0,0 +1,30 @@
1
+ import { type AuthProvider, type StreamableHTTPClientTransportOptions, type Transport } from "@modelcontextprotocol/client";
2
+ import { type StdioServerParameters } from "@modelcontextprotocol/client/stdio";
3
+ export interface HttpOptions extends StreamableHTTPClientTransportOptions {
4
+ /** Sent on every request, over any of the same name in `requestInit.headers`. */
5
+ headers?: Record<string, string>;
6
+ }
7
+ /** What `mcpServer({ auth })` needs to know of a transport `http()` made. */
8
+ export interface HttpMade {
9
+ /** It was given an `authProvider` of its own. */
10
+ authProvider: boolean;
11
+ /** It sends an `Authorization` header of its own. */
12
+ authorization: boolean;
13
+ }
14
+ /** The factories `http()` made: only these can carry each user's credential. */
15
+ export declare const madeByHttp: WeakMap<object, HttpMade>;
16
+ /**
17
+ * A server at `url`, over Streamable HTTP. Everything but `headers` is the
18
+ * SDK's own `StreamableHTTPClientTransportOptions`, such as an `authProvider`.
19
+ * The URL is checked now, so a bad one fails at startup. For a server with
20
+ * `auth`, each user's connection is given that user's `authProvider`.
21
+ */
22
+ export declare function http(url: string | URL, options?: HttpOptions): (authProvider?: AuthProvider) => Transport;
23
+ /**
24
+ * A server this process starts, and talks to over its stdin and stdout. Each
25
+ * connection starts a new child; `close()` stops it. Unless `env` is given,
26
+ * the child gets only the SDK's short list of safe variables (such as `HOME`
27
+ * and `PATH`), not this process's environment and the secrets in it.
28
+ */
29
+ export declare function stdio(params: StdioServerParameters): () => Transport;
30
+ //# sourceMappingURL=transports.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transports.d.ts","sourceRoot":"","sources":["../src/transports.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,YAAY,EACjB,KAAK,oCAAoC,EACzC,KAAK,SAAS,EACf,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAwB,KAAK,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AAEtG,MAAM,WAAW,WAAY,SAAQ,oCAAoC;IACvE,iFAAiF;IACjF,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAClC;AAED,6EAA6E;AAC7E,MAAM,WAAW,QAAQ;IACvB,iDAAiD;IACjD,YAAY,EAAE,OAAO,CAAC;IACtB,qDAAqD;IACrD,aAAa,EAAE,OAAO,CAAC;CACxB;AAED,gFAAgF;AAChF,eAAO,MAAM,UAAU,2BAAkC,CAAC;AAE1D;;;;;GAKG;AACH,wBAAgB,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,EAAE,OAAO,GAAE,WAAgB,GAAG,CAAC,YAAY,CAAC,EAAE,YAAY,KAAK,SAAS,CAe7G;AAED;;;;;GAKG;AACH,wBAAgB,KAAK,CAAC,MAAM,EAAE,qBAAqB,GAAG,MAAM,SAAS,CAEpE"}
@@ -0,0 +1,36 @@
1
+ import { StreamableHTTPClientTransport, } from "@modelcontextprotocol/client";
2
+ import { StdioClientTransport } from "@modelcontextprotocol/client/stdio";
3
+ /** The factories `http()` made: only these can carry each user's credential. */
4
+ export const madeByHttp = new WeakMap();
5
+ /**
6
+ * A server at `url`, over Streamable HTTP. Everything but `headers` is the
7
+ * SDK's own `StreamableHTTPClientTransportOptions`, such as an `authProvider`.
8
+ * The URL is checked now, so a bad one fails at startup. For a server with
9
+ * `auth`, each user's connection is given that user's `authProvider`.
10
+ */
11
+ export function http(url, options = {}) {
12
+ const target = new URL(url);
13
+ const { headers, ...rest } = options;
14
+ if (headers) {
15
+ const merged = new Headers(rest.requestInit?.headers);
16
+ for (const [name, value] of Object.entries(headers))
17
+ merged.set(name, value);
18
+ rest.requestInit = { ...rest.requestInit, headers: merged };
19
+ }
20
+ const make = (authProvider) => new StreamableHTTPClientTransport(target, authProvider ? { ...rest, authProvider } : rest);
21
+ madeByHttp.set(make, {
22
+ authProvider: rest.authProvider !== undefined,
23
+ authorization: new Headers(rest.requestInit?.headers).has("authorization"),
24
+ });
25
+ return make;
26
+ }
27
+ /**
28
+ * A server this process starts, and talks to over its stdin and stdout. Each
29
+ * connection starts a new child; `close()` stops it. Unless `env` is given,
30
+ * the child gets only the SDK's short list of safe variables (such as `HOME`
31
+ * and `PATH`), not this process's environment and the secrets in it.
32
+ */
33
+ export function stdio(params) {
34
+ return () => new StdioClientTransport(params);
35
+ }
36
+ //# sourceMappingURL=transports.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transports.js","sourceRoot":"","sources":["../src/transports.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,6BAA6B,GAI9B,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,oBAAoB,EAA8B,MAAM,oCAAoC,CAAC;AAetG,gFAAgF;AAChF,MAAM,CAAC,MAAM,UAAU,GAAG,IAAI,OAAO,EAAoB,CAAC;AAE1D;;;;;GAKG;AACH,MAAM,UAAU,IAAI,CAAC,GAAiB,EAAE,UAAuB,EAAE;IAC/D,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;IAC5B,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,EAAE,GAAG,OAAO,CAAC;IACrC,IAAI,OAAO,EAAE,CAAC;QACZ,MAAM,MAAM,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QACtD,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC;YAAE,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAC7E,IAAI,CAAC,WAAW,GAAG,EAAE,GAAG,IAAI,CAAC,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;IAC9D,CAAC;IACD,MAAM,IAAI,GAAG,CAAC,YAA2B,EAAE,EAAE,CAC3C,IAAI,6BAA6B,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAC7F,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE;QACnB,YAAY,EAAE,IAAI,CAAC,YAAY,KAAK,SAAS;QAC7C,aAAa,EAAE,IAAI,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,GAAG,CAAC,eAAe,CAAC;KAC3E,CAAC,CAAC;IACH,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,KAAK,CAAC,MAA6B;IACjD,OAAO,GAAG,EAAE,CAAC,IAAI,oBAAoB,CAAC,MAAM,CAAC,CAAC;AAChD,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,54 @@
1
1
  {
2
2
  "name": "@haikit/mcp",
3
- "version": "0.0.0-stage",
4
- "stub": true,
5
- "description": "Temporary package placeholder for staged publishing"
6
- }
3
+ "version": "0.33.0",
4
+ "description": "Call MCP servers' tools from inside your haikit tools. The model never sees an MCP tool: your tool decides what it hears and what the browser shows. Imports only @haikit/core.",
5
+ "keywords": [
6
+ "haikit",
7
+ "mcp",
8
+ "model-context-protocol",
9
+ "llm",
10
+ "agent",
11
+ "agentic-ui",
12
+ "tool-use",
13
+ "ai"
14
+ ],
15
+ "type": "module",
16
+ "main": "./dist/index.js",
17
+ "types": "./dist/index.d.ts",
18
+ "exports": {
19
+ ".": {
20
+ "types": "./dist/index.d.ts",
21
+ "default": "./dist/index.js"
22
+ },
23
+ "./package.json": "./package.json"
24
+ },
25
+ "files": [
26
+ "dist",
27
+ "src"
28
+ ],
29
+ "sideEffects": false,
30
+ "engines": {
31
+ "node": ">=22"
32
+ },
33
+ "scripts": {
34
+ "prepack": "npm --prefix ../.. run build"
35
+ },
36
+ "dependencies": {
37
+ "@haikit/core": "0.33.0",
38
+ "@modelcontextprotocol/client": "^2.4.0",
39
+ "@types/node": ">=22"
40
+ },
41
+ "publishConfig": {
42
+ "access": "public"
43
+ },
44
+ "license": "MIT",
45
+ "homepage": "https://github.com/wfoxd/haikit/tree/main/packages/mcp#readme",
46
+ "bugs": {
47
+ "url": "https://github.com/wfoxd/haikit/issues"
48
+ },
49
+ "repository": {
50
+ "type": "git",
51
+ "url": "git+https://github.com/wfoxd/haikit.git",
52
+ "directory": "packages/mcp"
53
+ }
54
+ }
package/src/auth.ts ADDED
@@ -0,0 +1,160 @@
1
+ import type { AuthProvider } from "@modelcontextprotocol/client";
2
+
3
+ export interface McpAuthOptions {
4
+ /**
5
+ * Who a conversation belongs to: the user a call made in it runs as. With
6
+ * @haikit/auth, `(id) => auth.ownerOf(id)`. `null` for no one.
7
+ */
8
+ userOf(conversationId: string): string | null | Promise<string | null>;
9
+ }
10
+
11
+ /** Makes the `auth` of servers whose calls are made as each user. */
12
+ export interface McpAuth {
13
+ /**
14
+ * Each user's own token, which the app already has: `token(userId)` gives
15
+ * it, or `null` when the user has none. Sent as `Authorization: Bearer`.
16
+ */
17
+ bearer(token: (userId: string) => string | null | Promise<string | null>): McpServerAuth;
18
+ }
19
+
20
+ /** How a server's calls are made as each user: made by an `McpAuth`, and given to `mcpServer({ auth })`. */
21
+ export interface McpServerAuth {
22
+ readonly kind: "bearer";
23
+ }
24
+
25
+ /** What an `McpServerAuth` stands for. */
26
+ export interface AuthConfig {
27
+ readonly kind: "bearer";
28
+ userOf(conversationId: string): string | null | Promise<string | null>;
29
+ token(userId: string): string | null | Promise<string | null>;
30
+ /** Server names in use with this `McpAuth`: each is a key for its users' credentials. */
31
+ readonly names: Set<string>;
32
+ }
33
+
34
+ const configs = new WeakMap<object, AuthConfig>();
35
+
36
+ /** The config an `McpServerAuth` stands for, or undefined if `createMcpAuth` didn't make it. */
37
+ export const configOf = (auth: unknown): AuthConfig | undefined =>
38
+ typeof auth === "object" && auth !== null ? configs.get(auth) : undefined;
39
+
40
+ /**
41
+ * For servers whose calls are made as each user, with that user's own
42
+ * credential: `mcpServer({ auth: mcpAuth.bearer(token) })`.
43
+ */
44
+ export function createMcpAuth(options: McpAuthOptions): McpAuth {
45
+ if (typeof options?.userOf !== "function") {
46
+ throw new TypeError("createMcpAuth: userOf must be a function, such as (id) => auth.ownerOf(id)");
47
+ }
48
+ const names = new Set<string>();
49
+ const userOf = (conversationId: string) => options.userOf(conversationId);
50
+ return Object.freeze({
51
+ bearer(token: (userId: string) => string | null | Promise<string | null>): McpServerAuth {
52
+ if (typeof token !== "function") {
53
+ throw new TypeError("bearer: token must be a function that takes a user id and returns their token, or null");
54
+ }
55
+ const auth: McpServerAuth = Object.freeze({ kind: "bearer" });
56
+ configs.set(auth, { kind: "bearer", userOf, token, names });
57
+ return auth;
58
+ },
59
+ });
60
+ }
61
+
62
+ /**
63
+ * The user has no credential, or the server refused theirs: thrown inside a
64
+ * connection, where the transport passes it on unchanged, and made an
65
+ * `McpError` with reason `auth`.
66
+ */
67
+ export class NeedsAuth extends Error {
68
+ readonly name = "NeedsAuth";
69
+ constructor(readonly kind: "connect" | "reconnect") {
70
+ super(kind === "connect" ? "the user has no credential" : "the server refused the user's credential");
71
+ }
72
+ }
73
+
74
+ /** The app's lookup of a credential failed: made an `McpError` with reason `connection`. */
75
+ export class LookupFailed extends Error {
76
+ readonly name = "LookupFailed";
77
+ constructor(cause: unknown) {
78
+ super("the user's credential could not be looked up", { cause });
79
+ }
80
+ }
81
+
82
+ /** One user's credential for one server, and the `AuthProvider` that sends it. */
83
+ export interface Credential {
84
+ /** Before a connection or call: finds the credential, or throws `NeedsAuth("connect")`, so nothing is sent without one. */
85
+ ensure(): Promise<void>;
86
+ /** For a connection being closed: stops a lookup on its way, and its timer. */
87
+ close(): void;
88
+ readonly provider: AuthProvider;
89
+ }
90
+
91
+ /** A token from `bearer`'s function, kept until a lookup on a 401 finds another, or none. */
92
+ export class BearerCredential implements Credential {
93
+ private token: string | null = null;
94
+ /** The lookup on its way, which every caller shares: only it sets `token`. */
95
+ private looking: Promise<string | null> | null = null;
96
+ /** Stops the lookup on its way, for `close()`. */
97
+ private stop: (() => void) | null = null;
98
+
99
+ constructor(
100
+ private readonly read: (userId: string) => string | null | Promise<string | null>,
101
+ private readonly user: string,
102
+ /** How long `read` may take: a lookup that never answers would hold up every call after it. */
103
+ private readonly timeoutMs: number,
104
+ ) {}
105
+
106
+ async ensure(): Promise<void> {
107
+ if (this.token === null) await this.look();
108
+ if (this.token === null) throw new NeedsAuth("connect");
109
+ }
110
+
111
+ close(): void {
112
+ this.stop?.();
113
+ }
114
+
115
+ // The transport asks for the token before every request, and on a 401
116
+ // calls onUnauthorized, then tries once more with what it finds.
117
+ readonly provider: AuthProvider = {
118
+ // A request is never sent without the user's token: the transport would
119
+ // send it with no Authorization at all. Gone since its call began, as
120
+ // when another call's 401 found none, it stops the request here.
121
+ token: async () => {
122
+ if (this.token === null) throw new NeedsAuth("reconnect");
123
+ return this.token;
124
+ },
125
+ onUnauthorized: async () => {
126
+ // A token the server still refuses gets its 401 on the retry, and is
127
+ // kept: the next 401 looks again. Forgetting it would throw away a
128
+ // newer one that another call's 401 found meanwhile.
129
+ if ((await this.look()) === null) throw new NeedsAuth("reconnect");
130
+ },
131
+ };
132
+
133
+ /** One lookup at a time, for first calls and 401s that come together, so none overwrites another's token. */
134
+ private look(): Promise<string | null> {
135
+ this.looking ??= this.lookup()
136
+ .then((token) => (this.token = token))
137
+ .finally(() => {
138
+ this.looking = null;
139
+ });
140
+ return this.looking;
141
+ }
142
+
143
+ private async lookup(): Promise<string | null> {
144
+ let timer: ReturnType<typeof setTimeout> | undefined;
145
+ const cut = new Promise<never>((_, reject) => {
146
+ timer = setTimeout(() => reject(new Error(`no token within ${this.timeoutMs} ms`)), this.timeoutMs);
147
+ this.stop = () => reject(new Error("closed while the token was being looked up"));
148
+ });
149
+ let token: unknown;
150
+ try {
151
+ token = await Promise.race([Promise.resolve().then(() => this.read(this.user)), cut]);
152
+ } catch (err) {
153
+ throw new LookupFailed(err);
154
+ } finally {
155
+ clearTimeout(timer);
156
+ this.stop = null;
157
+ }
158
+ return typeof token === "string" && token !== "" ? token : null;
159
+ }
160
+ }
package/src/errors.ts ADDED
@@ -0,0 +1,95 @@
1
+ import type { ContentBlock } from "@modelcontextprotocol/client";
2
+
3
+ /**
4
+ * Why a call failed:
5
+ *
6
+ * - `args`: the args didn't match the tool's `args` schema, so nothing was sent.
7
+ * - `result`: the result didn't match its `result` schema.
8
+ * - `timeout`: the server didn't answer within `timeoutMs` or `maxTotalMs`.
9
+ * - `connection`: the server couldn't be reached, or the connection dropped.
10
+ * - `protocol`: the server refused the call, such as for a tool it doesn't
11
+ * have, or asked for something this client doesn't do.
12
+ * - `closed`: `close()` was called.
13
+ * - `user`: a server with `auth` had no user to call as, so nothing was sent.
14
+ * - `auth`: the user's credential for the server is missing, was refused, or
15
+ * needs more access. `auth` on the error says which.
16
+ */
17
+ export type McpErrorReason = "args" | "result" | "timeout" | "connection" | "protocol" | "closed" | "user" | "auth";
18
+
19
+ /** What a call with reason `auth` needs from the user. */
20
+ export interface McpAuthNeed {
21
+ /**
22
+ * `connect`: the user has no credential for the server, so nothing was sent.
23
+ * `reconnect`: the server refused theirs. `scope`: theirs needs more access.
24
+ */
25
+ readonly kind: "connect" | "reconnect" | "scope";
26
+ /** On `scope`: the scope the server asked for, as its challenge put it. */
27
+ readonly scope?: string;
28
+ }
29
+
30
+ /**
31
+ * A call that didn't get a result. The message names only the server and the
32
+ * tool, never what the server said: a HaiKIT tool that lets this go reaches the
33
+ * model as `<name> failed: <message>`, and the server's words aren't the app's
34
+ * to pass on unread. Its words are on `text`, for logs and for code that
35
+ * decides.
36
+ *
37
+ * Detected by `name` rather than `instanceof`, as in @haikit/core: a duplicated
38
+ * install would give two distinct classes.
39
+ */
40
+ export class McpError extends Error {
41
+ readonly name = "McpError";
42
+ /** The server's `name`. */
43
+ readonly server: string;
44
+ /** The tool called. Absent when `connect()` failed. */
45
+ readonly tool: string | undefined;
46
+ readonly reason: McpErrorReason;
47
+ /** What the server said about it, when it said anything: a JSON-RPC error's message. */
48
+ readonly text: string | undefined;
49
+ /** A JSON-RPC error's code. */
50
+ readonly code: number | undefined;
51
+ /** With reason `auth`: what the user's credential needs. */
52
+ readonly auth: McpAuthNeed | undefined;
53
+
54
+ constructor(
55
+ reason: McpErrorReason,
56
+ message: string,
57
+ detail: { server: string; tool?: string; text?: string; code?: number; cause?: unknown; auth?: McpAuthNeed },
58
+ ) {
59
+ super(message, detail.cause === undefined ? undefined : { cause: detail.cause });
60
+ this.reason = reason;
61
+ this.server = detail.server;
62
+ this.tool = detail.tool;
63
+ this.text = detail.text;
64
+ this.code = detail.code;
65
+ this.auth = detail.auth === undefined ? undefined : Object.freeze({ ...detail.auth });
66
+ }
67
+ }
68
+
69
+ /**
70
+ * The tool ran and reported an error (`isError` in its result). Its message
71
+ * says only that, for the reason `McpError`'s does; what the server said is on
72
+ * `text` and `content`.
73
+ */
74
+ export class McpToolError extends Error {
75
+ readonly name = "McpToolError";
76
+ readonly server: string;
77
+ readonly tool: string;
78
+ /** The result's text blocks, joined by newlines. */
79
+ readonly text: string;
80
+ /** The result's content blocks, as the server sent them. */
81
+ readonly content: ContentBlock[];
82
+
83
+ constructor(server: string, tool: string, content: ContentBlock[]) {
84
+ super(`${server}/${tool} reported an error`);
85
+ this.server = server;
86
+ this.tool = tool;
87
+ this.content = content;
88
+ this.text = content.flatMap((b) => (b.type === "text" ? [b.text] : [])).join("\n");
89
+ }
90
+ }
91
+
92
+ export const isMcpError = (err: unknown): err is McpError => err instanceof Error && err.name === "McpError";
93
+
94
+ export const isMcpToolError = (err: unknown): err is McpToolError =>
95
+ err instanceof Error && err.name === "McpToolError";