@nyuchi/mzizi-mcp 0.9.0 → 0.10.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.
- package/LICENSE +202 -0
- package/README.md +115 -85
- package/dist/access.d.ts +69 -0
- package/dist/access.d.ts.map +1 -0
- package/dist/access.js +72 -0
- package/dist/access.js.map +1 -0
- package/dist/auth/authkit-handler.d.ts +4 -3
- package/dist/auth/authkit-handler.d.ts.map +1 -1
- package/dist/auth/authkit-handler.js +52 -6
- package/dist/auth/authkit-handler.js.map +1 -1
- package/dist/auth/front.d.ts +17 -0
- package/dist/auth/front.d.ts.map +1 -0
- package/dist/auth/front.js +25 -0
- package/dist/auth/front.js.map +1 -0
- package/dist/auth/mcp-api-handler.d.ts +20 -7
- package/dist/auth/mcp-api-handler.d.ts.map +1 -1
- package/dist/auth/mcp-api-handler.js +43 -29
- package/dist/auth/mcp-api-handler.js.map +1 -1
- package/dist/desk-context.d.ts +33 -0
- package/dist/desk-context.d.ts.map +1 -0
- package/dist/desk-context.js +49 -0
- package/dist/desk-context.js.map +1 -0
- package/dist/docs-federation.d.ts +68 -0
- package/dist/docs-federation.d.ts.map +1 -0
- package/dist/docs-federation.js +282 -0
- package/dist/docs-federation.js.map +1 -0
- package/dist/env.d.ts +7 -8
- package/dist/env.d.ts.map +1 -1
- package/dist/env.js +5 -5
- package/dist/fundi-a2a.d.ts +1 -1
- package/dist/fundi-a2a.js +2 -2
- package/dist/fundi-a2a.js.map +1 -1
- package/dist/fundi-client.d.ts +24 -4
- package/dist/fundi-client.d.ts.map +1 -1
- package/dist/fundi-client.js +91 -4
- package/dist/fundi-client.js.map +1 -1
- package/dist/generated/registry-pin.d.ts +5 -0
- package/dist/generated/registry-pin.d.ts.map +1 -0
- package/dist/generated/registry-pin.js +3 -0
- package/dist/generated/registry-pin.js.map +1 -0
- package/dist/generated/registry.d.ts +23 -0
- package/dist/generated/registry.d.ts.map +1 -0
- package/dist/generated/registry.js +1204 -0
- package/dist/generated/registry.js.map +1 -0
- package/dist/generated/skills.d.ts +18 -0
- package/dist/generated/skills.d.ts.map +1 -0
- package/dist/generated/skills.js +67 -0
- package/dist/generated/skills.js.map +1 -0
- package/dist/http.d.ts +18 -9
- package/dist/http.d.ts.map +1 -1
- package/dist/http.js +16 -13
- package/dist/http.js.map +1 -1
- package/dist/issue-desk.d.ts +152 -0
- package/dist/issue-desk.d.ts.map +1 -0
- package/dist/issue-desk.js +392 -0
- package/dist/issue-desk.js.map +1 -0
- package/dist/issue-log.d.ts +80 -0
- package/dist/issue-log.d.ts.map +1 -0
- package/dist/issue-log.js +146 -0
- package/dist/issue-log.js.map +1 -0
- package/dist/issue-report.d.ts +138 -0
- package/dist/issue-report.d.ts.map +1 -0
- package/dist/issue-report.js +112 -0
- package/dist/issue-report.js.map +1 -0
- package/dist/rate-limit.d.ts +41 -0
- package/dist/rate-limit.d.ts.map +1 -0
- package/dist/rate-limit.js +58 -0
- package/dist/rate-limit.js.map +1 -0
- package/dist/registry.d.ts +126 -0
- package/dist/registry.d.ts.map +1 -0
- package/dist/registry.js +280 -0
- package/dist/registry.js.map +1 -0
- package/dist/server.d.ts +96 -22
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +76 -32
- package/dist/server.js.map +1 -1
- package/dist/stdio.d.ts +6 -13
- package/dist/stdio.d.ts.map +1 -1
- package/dist/stdio.js +6 -29
- package/dist/stdio.js.map +1 -1
- package/dist/tools.d.ts +45 -6
- package/dist/tools.d.ts.map +1 -1
- package/dist/tools.js +313 -82
- package/dist/tools.js.map +1 -1
- package/dist/worker.d.ts +26 -14
- package/dist/worker.d.ts.map +1 -1
- package/dist/worker.js +42 -14
- package/dist/worker.js.map +1 -1
- package/package.json +24 -19
- package/dist/api-client.d.ts +0 -101
- package/dist/api-client.d.ts.map +0 -1
- package/dist/api-client.js +0 -200
- package/dist/api-client.js.map +0 -1
- package/dist/defaults.d.ts +0 -29
- package/dist/defaults.d.ts.map +0 -1
- package/dist/defaults.js +0 -29
- package/dist/defaults.js.map +0 -1
|
@@ -0,0 +1,282 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Docs, joined in from the Mintlify MCP at docs.mzizi.dev.
|
|
3
|
+
*
|
|
4
|
+
* The documentation site runs its own MCP server (streamable HTTP, public,
|
|
5
|
+
* stateless — `initialize` answers serverInfo "Mzizi"). It is what drives the
|
|
6
|
+
* docs, so this server does not keep a second copy of them: it lists that
|
|
7
|
+
* server's tools under a `docs_` prefix and forwards each call, passing the
|
|
8
|
+
* result through untouched.
|
|
9
|
+
*
|
|
10
|
+
* tools/list → upstream tools/list, cached for DOCS_TOOLS_TTL_MS
|
|
11
|
+
* tools/call → upstream tools/call with the un-prefixed name
|
|
12
|
+
*
|
|
13
|
+
* FAILURE POLICY.
|
|
14
|
+
* - A failed call is an MCP tool error naming the docs server and the reason,
|
|
15
|
+
* never an exception: an agent should learn "docs are unreachable", not see
|
|
16
|
+
* a transport fault.
|
|
17
|
+
* - A failed LIST falls back to the last good list (however old), and with no
|
|
18
|
+
* list at all to FALLBACK_TOOLS — a snapshot of the upstream definitions —
|
|
19
|
+
* so the tool surface does not change shape while docs are down. Calls then
|
|
20
|
+
* fail with the clear error above until the upstream is back.
|
|
21
|
+
*/
|
|
22
|
+
import { z } from "zod";
|
|
23
|
+
import { toolError } from "./tool-result.js";
|
|
24
|
+
export const DOCS_MCP_URL = "https://docs.mzizi.dev/mcp";
|
|
25
|
+
export const DOCS_TOOL_PREFIX = "docs_";
|
|
26
|
+
/** How long a fetched tool list is reused before asking upstream again. */
|
|
27
|
+
export const DOCS_TOOLS_TTL_MS = 5 * 60_000;
|
|
28
|
+
/**
|
|
29
|
+
* After a failed list, how long to answer from the stale list or snapshot
|
|
30
|
+
* without asking upstream again. Every request builds a fresh server, so
|
|
31
|
+
* without this a down or slow docs server would add a full LIST_TIMEOUT_MS to
|
|
32
|
+
* every request — including mzizi_* calls that never touch docs.
|
|
33
|
+
*/
|
|
34
|
+
export const DOCS_FAILURE_BACKOFF_MS = 60_000;
|
|
35
|
+
const LIST_TIMEOUT_MS = 4_000;
|
|
36
|
+
const CALL_TIMEOUT_MS = 20_000;
|
|
37
|
+
/**
|
|
38
|
+
* The upstream definitions as of 2026-09-28, used only when docs.mzizi.dev
|
|
39
|
+
* cannot be reached and nothing has been cached yet.
|
|
40
|
+
*/
|
|
41
|
+
export const FALLBACK_TOOLS = [
|
|
42
|
+
{
|
|
43
|
+
name: "search_mzizi",
|
|
44
|
+
title: "Search documentation",
|
|
45
|
+
description: "Search across the Mzizi knowledge base to find relevant information, code examples, API references, and guides. Returns contextual content with titles and direct links to the documentation pages. For a page's full content, use query_docs_filesystem_mzizi to `head` or `cat` the page path with `.mdx` appended.",
|
|
46
|
+
inputSchema: {
|
|
47
|
+
type: "object",
|
|
48
|
+
properties: { query: { type: "string", description: "Search query" } },
|
|
49
|
+
required: ["query"],
|
|
50
|
+
additionalProperties: false,
|
|
51
|
+
},
|
|
52
|
+
annotations: {
|
|
53
|
+
readOnlyHint: true,
|
|
54
|
+
destructiveHint: false,
|
|
55
|
+
idempotentHint: true,
|
|
56
|
+
openWorldHint: false,
|
|
57
|
+
},
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
name: "query_docs_filesystem_mzizi",
|
|
61
|
+
description: "Run a read-only shell-like query (rg, grep, find, tree, ls, cat, head, tail, …) against a virtualized filesystem containing only the Mzizi documentation pages. A page at /some/page is read with `head -200 /some/page.mdx`. Each call is stateless.",
|
|
62
|
+
inputSchema: {
|
|
63
|
+
type: "object",
|
|
64
|
+
properties: {
|
|
65
|
+
command: {
|
|
66
|
+
type: "string",
|
|
67
|
+
description: "A shell command to run against the virtualized documentation filesystem (e.g. `tree / -L 2`).",
|
|
68
|
+
},
|
|
69
|
+
},
|
|
70
|
+
required: ["command"],
|
|
71
|
+
additionalProperties: false,
|
|
72
|
+
},
|
|
73
|
+
annotations: {
|
|
74
|
+
readOnlyHint: true,
|
|
75
|
+
destructiveHint: false,
|
|
76
|
+
idempotentHint: true,
|
|
77
|
+
openWorldHint: false,
|
|
78
|
+
},
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
name: "submit_feedback",
|
|
82
|
+
title: "Submit documentation feedback",
|
|
83
|
+
description: "Report a problem with a documentation page (incorrect, outdated, confusing, incomplete, or a broken example) so the docs team can fix it.",
|
|
84
|
+
inputSchema: {
|
|
85
|
+
type: "object",
|
|
86
|
+
properties: {
|
|
87
|
+
path: {
|
|
88
|
+
type: "string",
|
|
89
|
+
minLength: 1,
|
|
90
|
+
description: "The URL path of the documentation page, without `.mdx`.",
|
|
91
|
+
},
|
|
92
|
+
feedback: {
|
|
93
|
+
type: "string",
|
|
94
|
+
minLength: 1,
|
|
95
|
+
description: "What is incorrect, outdated, missing, or confusing.",
|
|
96
|
+
},
|
|
97
|
+
},
|
|
98
|
+
required: ["path", "feedback"],
|
|
99
|
+
additionalProperties: false,
|
|
100
|
+
},
|
|
101
|
+
annotations: {
|
|
102
|
+
readOnlyHint: false,
|
|
103
|
+
destructiveHint: false,
|
|
104
|
+
idempotentHint: false,
|
|
105
|
+
openWorldHint: true,
|
|
106
|
+
},
|
|
107
|
+
},
|
|
108
|
+
];
|
|
109
|
+
class UpstreamError extends Error {
|
|
110
|
+
}
|
|
111
|
+
/** POST one JSON-RPC request; read a JSON or an SSE (`data:` lines) answer. */
|
|
112
|
+
async function rpc(url, fetchImpl, method, params, timeoutMs) {
|
|
113
|
+
const controller = new AbortController();
|
|
114
|
+
const timer = setTimeout(() => controller.abort(), timeoutMs);
|
|
115
|
+
let res;
|
|
116
|
+
try {
|
|
117
|
+
res = await fetchImpl(url, {
|
|
118
|
+
method: "POST",
|
|
119
|
+
signal: controller.signal,
|
|
120
|
+
headers: {
|
|
121
|
+
"content-type": "application/json",
|
|
122
|
+
accept: "application/json, text/event-stream",
|
|
123
|
+
},
|
|
124
|
+
body: JSON.stringify({ jsonrpc: "2.0", id: 1, method, params }),
|
|
125
|
+
});
|
|
126
|
+
}
|
|
127
|
+
catch (err) {
|
|
128
|
+
clearTimeout(timer);
|
|
129
|
+
throw new UpstreamError(err?.name === "AbortError"
|
|
130
|
+
? `did not respond within ${timeoutMs}ms`
|
|
131
|
+
: `could not be reached (${err?.message ?? "network error"})`);
|
|
132
|
+
}
|
|
133
|
+
try {
|
|
134
|
+
if (!res.ok)
|
|
135
|
+
throw new UpstreamError(`answered HTTP ${res.status}`);
|
|
136
|
+
const text = await res.text();
|
|
137
|
+
const type = res.headers.get("content-type") ?? "";
|
|
138
|
+
let message;
|
|
139
|
+
if (type.includes("text/event-stream")) {
|
|
140
|
+
// The last `data:` payload that parses as a JSON-RPC response wins.
|
|
141
|
+
for (const line of text.split(/\r?\n/)) {
|
|
142
|
+
if (!line.startsWith("data:"))
|
|
143
|
+
continue;
|
|
144
|
+
try {
|
|
145
|
+
const m = JSON.parse(line.slice(5).trim());
|
|
146
|
+
if (m && (m.result || m.error))
|
|
147
|
+
message = m;
|
|
148
|
+
}
|
|
149
|
+
catch {
|
|
150
|
+
// a non-JSON data line is not a response; keep scanning
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
else {
|
|
155
|
+
try {
|
|
156
|
+
message = JSON.parse(text);
|
|
157
|
+
}
|
|
158
|
+
catch {
|
|
159
|
+
// handled below
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
if (!message)
|
|
163
|
+
throw new UpstreamError("returned a body that is not an MCP response");
|
|
164
|
+
if (message.error) {
|
|
165
|
+
throw new UpstreamError(`returned an error: ${message.error.message ?? `JSON-RPC code ${message.error.code}`}`);
|
|
166
|
+
}
|
|
167
|
+
if (!message.result)
|
|
168
|
+
throw new UpstreamError("returned no result");
|
|
169
|
+
return message.result;
|
|
170
|
+
}
|
|
171
|
+
finally {
|
|
172
|
+
clearTimeout(timer);
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
const listCache = new Map();
|
|
176
|
+
const lastFailure = new Map();
|
|
177
|
+
/** For tests: forget every cached tool list and failure. */
|
|
178
|
+
export function clearDocsToolCache() {
|
|
179
|
+
listCache.clear();
|
|
180
|
+
lastFailure.clear();
|
|
181
|
+
}
|
|
182
|
+
/** A usable tool name: non-empty, MCP-safe, and listed once. */
|
|
183
|
+
const TOOL_NAME = /^[A-Za-z0-9_.-]{1,100}$/;
|
|
184
|
+
function cleanTools(raw) {
|
|
185
|
+
if (!Array.isArray(raw))
|
|
186
|
+
return [];
|
|
187
|
+
const seen = new Set();
|
|
188
|
+
const out = [];
|
|
189
|
+
for (const t of raw) {
|
|
190
|
+
if (!t ||
|
|
191
|
+
typeof t.name !== "string" ||
|
|
192
|
+
!TOOL_NAME.test(t.name) ||
|
|
193
|
+
seen.has(t.name))
|
|
194
|
+
continue;
|
|
195
|
+
seen.add(t.name);
|
|
196
|
+
out.push(t);
|
|
197
|
+
}
|
|
198
|
+
return out;
|
|
199
|
+
}
|
|
200
|
+
/**
|
|
201
|
+
* The upstream tool list: cached, then fresh, then stale, then the snapshot.
|
|
202
|
+
* Never throws — the federated surface always has a shape.
|
|
203
|
+
*/
|
|
204
|
+
export async function docsTools(opts = {}) {
|
|
205
|
+
const url = opts.url ?? DOCS_MCP_URL;
|
|
206
|
+
const now = opts.now ?? Date.now;
|
|
207
|
+
const cached = listCache.get(url);
|
|
208
|
+
if (cached && now() - cached.fetchedAt < DOCS_TOOLS_TTL_MS)
|
|
209
|
+
return { tools: cached.tools, source: "cache" };
|
|
210
|
+
const degraded = (error) => cached
|
|
211
|
+
? { tools: cached.tools, source: "stale-cache", error }
|
|
212
|
+
: { tools: [...FALLBACK_TOOLS], source: "fallback", error };
|
|
213
|
+
const failure = lastFailure.get(url);
|
|
214
|
+
if (failure && now() - failure.at < DOCS_FAILURE_BACKOFF_MS)
|
|
215
|
+
return degraded(failure.error);
|
|
216
|
+
try {
|
|
217
|
+
const result = await rpc(url, opts.fetchImpl ?? fetch.bind(globalThis), "tools/list", {}, LIST_TIMEOUT_MS);
|
|
218
|
+
const tools = cleanTools(result.tools);
|
|
219
|
+
if (tools.length === 0)
|
|
220
|
+
throw new UpstreamError("listed no usable tools");
|
|
221
|
+
listCache.set(url, { tools, fetchedAt: now() });
|
|
222
|
+
lastFailure.delete(url);
|
|
223
|
+
return { tools, source: "upstream" };
|
|
224
|
+
}
|
|
225
|
+
catch (err) {
|
|
226
|
+
const error = err.message;
|
|
227
|
+
lastFailure.set(url, { at: now(), error });
|
|
228
|
+
return degraded(error);
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
/** Upstream JSON Schema → Zod, so the SDK lists it faithfully and validates input. */
|
|
232
|
+
function inputShapeFor(schema) {
|
|
233
|
+
if (schema && schema.type === "object") {
|
|
234
|
+
try {
|
|
235
|
+
return z.fromJSONSchema(schema);
|
|
236
|
+
}
|
|
237
|
+
catch {
|
|
238
|
+
// A schema Zod cannot represent: accept any object and let upstream validate.
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
return z.object({}).passthrough();
|
|
242
|
+
}
|
|
243
|
+
/**
|
|
244
|
+
* Register every docs tool on `server` as `docs_<upstream name>`.
|
|
245
|
+
* Returns the bare (un-prefixed-by-mzizi) names that were registered.
|
|
246
|
+
*/
|
|
247
|
+
export async function registerDocsTools(server, opts = {}) {
|
|
248
|
+
const url = opts.url ?? DOCS_MCP_URL;
|
|
249
|
+
const fetchImpl = opts.fetchImpl ?? fetch.bind(globalThis);
|
|
250
|
+
const { tools } = await docsTools(opts);
|
|
251
|
+
const registered = [];
|
|
252
|
+
for (const tool of tools) {
|
|
253
|
+
const name = `${DOCS_TOOL_PREFIX}${tool.name}`;
|
|
254
|
+
const annotations = { ...tool.annotations, openWorldHint: true };
|
|
255
|
+
// One malformed upstream definition must not take down the whole server:
|
|
256
|
+
// skip it and keep the rest (and every mzizi_* tool).
|
|
257
|
+
try {
|
|
258
|
+
server.registerTool(name, {
|
|
259
|
+
title: tool.title ? `Docs: ${tool.title}` : undefined,
|
|
260
|
+
description: `[docs.mzizi.dev] ${tool.description ?? ""}`.trim(),
|
|
261
|
+
inputSchema: inputShapeFor(tool.inputSchema),
|
|
262
|
+
annotations,
|
|
263
|
+
}, (async (args) => {
|
|
264
|
+
try {
|
|
265
|
+
// Passed through as-is: content, isError, structuredContent — whatever
|
|
266
|
+
// the docs server answered is the answer.
|
|
267
|
+
return (await rpc(url, fetchImpl, "tools/call", { name: tool.name, arguments: args ?? {} }, CALL_TIMEOUT_MS));
|
|
268
|
+
}
|
|
269
|
+
catch (err) {
|
|
270
|
+
return toolError(`${name} failed: the Mzizi docs server (${url}) ${err.message}. ` +
|
|
271
|
+
`If that names your arguments, fix them; otherwise it is an upstream problem — retry shortly, or read https://docs.mzizi.dev directly.`);
|
|
272
|
+
}
|
|
273
|
+
}));
|
|
274
|
+
}
|
|
275
|
+
catch {
|
|
276
|
+
continue;
|
|
277
|
+
}
|
|
278
|
+
registered.push(name);
|
|
279
|
+
}
|
|
280
|
+
return registered;
|
|
281
|
+
}
|
|
282
|
+
//# sourceMappingURL=docs-federation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"docs-federation.js","sourceRoot":"","sources":["../src/docs-federation.ts"],"names":[],"mappings":"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"}
|
package/dist/env.d.ts
CHANGED
|
@@ -2,18 +2,15 @@
|
|
|
2
2
|
* Worker environment bindings — shared across the OAuth provider, the WorkOS
|
|
3
3
|
* Connect (OAuth-application) handler, and the MCP API handler.
|
|
4
4
|
*
|
|
5
|
-
* mzizi-mcp is
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
5
|
+
* mzizi-mcp is free with no gate except Fundi: anyone can use every non-Fundi
|
|
6
|
+
* tool without an account, and anyone can sign up through WorkOS AuthKit for
|
|
7
|
+
* the Fundi tools. There is deliberately NO org allowlist and NO
|
|
8
|
+
* required-permission gate (that is what `nyuchi/mongodb-mcp` does, because it
|
|
9
|
+
* is internal). Every public MCP uses this same Connect/PKCE flow for sign-in
|
|
10
10
|
* (internal MCPs use WorkOS M2M instead).
|
|
11
11
|
*/
|
|
12
12
|
import type { OAuthHelpers } from "@cloudflare/workers-oauth-provider";
|
|
13
13
|
export interface Env {
|
|
14
|
-
SUPABASE_URL: string;
|
|
15
|
-
SUPABASE_PUBLISHABLE_KEY: string;
|
|
16
|
-
SUPABASE_SECRET_KEY?: string;
|
|
17
14
|
WORKOS_CLIENT_ID: string;
|
|
18
15
|
WORKOS_AUTHKIT_DOMAIN?: string;
|
|
19
16
|
WORKOS_M2M_CLIENT_ID?: string;
|
|
@@ -21,6 +18,8 @@ export interface Env {
|
|
|
21
18
|
FUNDI_URL?: string;
|
|
22
19
|
FUNDI_SERVICE?: Fetcher;
|
|
23
20
|
COOKIE_ENCRYPTION_KEY: string;
|
|
21
|
+
ISSUE_DESK: DurableObjectNamespace<import("./issue-desk.js").IssueDesk>;
|
|
22
|
+
ANON_RATE_LIMIT?: import("./rate-limit.js").RateLimiter;
|
|
24
23
|
OAUTH_KV: KVNamespace;
|
|
25
24
|
OAUTH_PROVIDER: OAuthHelpers;
|
|
26
25
|
}
|
package/dist/env.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../src/env.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAA;AAEtE,MAAM,WAAW,GAAG;
|
|
1
|
+
{"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../src/env.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAA;AAEtE,MAAM,WAAW,GAAG;IAiBlB,gBAAgB,EAAE,MAAM,CAAA;IAWxB,qBAAqB,CAAC,EAAE,MAAM,CAAA;IAO9B,oBAAoB,CAAC,EAAE,MAAM,CAAA;IAC7B,wBAAwB,CAAC,EAAE,MAAM,CAAA;IACjC,SAAS,CAAC,EAAE,MAAM,CAAA;IAUlB,aAAa,CAAC,EAAE,OAAO,CAAA;IAGvB,qBAAqB,EAAE,MAAM,CAAA;IAM7B,UAAU,EAAE,sBAAsB,CAAC,OAAO,iBAAiB,EAAE,SAAS,CAAC,CAAA;IAMvE,eAAe,CAAC,EAAE,OAAO,iBAAiB,EAAE,WAAW,CAAA;IAGvD,QAAQ,EAAE,WAAW,CAAA;IACrB,cAAc,EAAE,YAAY,CAAA;CAC7B"}
|
package/dist/env.js
CHANGED
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
* Worker environment bindings — shared across the OAuth provider, the WorkOS
|
|
3
3
|
* Connect (OAuth-application) handler, and the MCP API handler.
|
|
4
4
|
*
|
|
5
|
-
* mzizi-mcp is
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
5
|
+
* mzizi-mcp is free with no gate except Fundi: anyone can use every non-Fundi
|
|
6
|
+
* tool without an account, and anyone can sign up through WorkOS AuthKit for
|
|
7
|
+
* the Fundi tools. There is deliberately NO org allowlist and NO
|
|
8
|
+
* required-permission gate (that is what `nyuchi/mongodb-mcp` does, because it
|
|
9
|
+
* is internal). Every public MCP uses this same Connect/PKCE flow for sign-in
|
|
10
10
|
* (internal MCPs use WorkOS M2M instead).
|
|
11
11
|
*/
|
|
12
12
|
export {};
|
package/dist/fundi-a2a.d.ts
CHANGED
|
@@ -34,7 +34,7 @@ import type { FundiToolContext } from "./fundi-client.js";
|
|
|
34
34
|
* remains the source of truth and re-validates every submission (`-32602` for an
|
|
35
35
|
* unknown id, HTTP 403 when the caller is not entitled).
|
|
36
36
|
*
|
|
37
|
-
* This is a mirror rather than an import because `@nyuchi/fundi
|
|
37
|
+
* This is a mirror rather than an import because `@nyuchi/mzizi-fundi` is a
|
|
38
38
|
* private Worker package that mzizi-mcp does not depend on, and rather than a
|
|
39
39
|
* runtime fetch of `/.well-known/agent-card.json` because building the tool
|
|
40
40
|
* schema would then need a network round trip at server construction — turning a
|
package/dist/fundi-a2a.js
CHANGED
|
@@ -36,7 +36,7 @@ const A2A_PATH = "/a2a";
|
|
|
36
36
|
* remains the source of truth and re-validates every submission (`-32602` for an
|
|
37
37
|
* unknown id, HTTP 403 when the caller is not entitled).
|
|
38
38
|
*
|
|
39
|
-
* This is a mirror rather than an import because `@nyuchi/fundi
|
|
39
|
+
* This is a mirror rather than an import because `@nyuchi/mzizi-fundi` is a
|
|
40
40
|
* private Worker package that mzizi-mcp does not depend on, and rather than a
|
|
41
41
|
* runtime fetch of `/.well-known/agent-card.json` because building the tool
|
|
42
42
|
* schema would then need a network round trip at server construction — turning a
|
|
@@ -317,7 +317,7 @@ function entitlementUnavailableAdvice(skill, detail) {
|
|
|
317
317
|
async function a2aCall(fundi, method, params) {
|
|
318
318
|
let res;
|
|
319
319
|
try {
|
|
320
|
-
res = await fundi.caller.call(A2A_PATH, fundi.
|
|
320
|
+
res = await fundi.caller.call(A2A_PATH, fundi.resolveUserToken, {
|
|
321
321
|
method: "POST",
|
|
322
322
|
headers: {
|
|
323
323
|
"Content-Type": "application/json",
|
package/dist/fundi-a2a.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fundi-a2a.js","sourceRoot":"","sources":["../src/fundi-a2a.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"fundi-a2a.js","sourceRoot":"","sources":["../src/fundi-a2a.ts"],"names":[],"mappings":"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"}
|
package/dist/fundi-client.d.ts
CHANGED
|
@@ -9,14 +9,25 @@
|
|
|
9
9
|
* CLI never holds the secret — it reaches fundi *through* this Worker.
|
|
10
10
|
*/
|
|
11
11
|
import type { Env } from "./env.js";
|
|
12
|
+
import type { Props } from "./auth/props.js";
|
|
12
13
|
export interface FundiCaller {
|
|
13
|
-
/**
|
|
14
|
-
|
|
14
|
+
/**
|
|
15
|
+
* Call a fundi route, forwarding the authenticated user's token.
|
|
16
|
+
*
|
|
17
|
+
* The token arrives as a THUNK, not a string, and that is the whole point.
|
|
18
|
+
* `ctx.props.accessToken` is frozen at the moment of OAuth consent; a WorkOS
|
|
19
|
+
* access token outlives that by minutes. Passing the string meant every call
|
|
20
|
+
* after the first expiry window forwarded a dead token and fundi answered
|
|
21
|
+
* `401 ... "exp" claim timestamp check failed` — which reads like a
|
|
22
|
+
* misconfiguration and is actually just age. Resolving per call is what makes
|
|
23
|
+
* a long-lived MCP session work at all.
|
|
24
|
+
*/
|
|
25
|
+
call(path: string, resolveUserToken: () => Promise<string>, init?: RequestInit): Promise<Response>;
|
|
15
26
|
}
|
|
16
27
|
export interface FundiToolContext {
|
|
17
28
|
caller: FundiCaller;
|
|
18
|
-
/**
|
|
19
|
-
|
|
29
|
+
/** Resolves the signed-in user's WorkOS access token, refreshing if stale. */
|
|
30
|
+
resolveUserToken: () => Promise<string>;
|
|
20
31
|
}
|
|
21
32
|
/**
|
|
22
33
|
* True when either path to fundi is wired: the Service Binding or HTTP + M2M.
|
|
@@ -47,4 +58,13 @@ export declare function fundiConfigured(env: Env): boolean;
|
|
|
47
58
|
* refuses a call that acts for nobody.
|
|
48
59
|
*/
|
|
49
60
|
export declare function createFundiCaller(env: Env): FundiCaller;
|
|
61
|
+
/**
|
|
62
|
+
* A currently-valid access token for `props.userId`, refreshing when the one on
|
|
63
|
+
* the grant has aged out.
|
|
64
|
+
*
|
|
65
|
+
* Throws with a reconnect instruction rather than forwarding a token known to
|
|
66
|
+
* be dead: fundi's 401 is opaque from the client side, and "your connection
|
|
67
|
+
* expired, reconnect Mzizi" is the only actionable thing to say.
|
|
68
|
+
*/
|
|
69
|
+
export declare function createUserTokenResolver(env: Env, props: Props): () => Promise<string>;
|
|
50
70
|
//# sourceMappingURL=fundi-client.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fundi-client.d.ts","sourceRoot":"","sources":["../src/fundi-client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,UAAU,CAAA;
|
|
1
|
+
{"version":3,"file":"fundi-client.d.ts","sourceRoot":"","sources":["../src/fundi-client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,UAAU,CAAA;AACnC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAA;AAgC5C,MAAM,WAAW,WAAW;IAC1B;;;;;;;;;;OAUG;IACH,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAA;CACnG;AAED,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,WAAW,CAAA;IACnB,8EAA8E;IAC9E,gBAAgB,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAA;CACxC;AASD;;;;;;;;;;;;GAYG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAGjD;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,GAAG,GAAG,WAAW,CAuBvD;AA4CD;;;;;;;GAOG;AACH,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,CAqDrF"}
|
package/dist/fundi-client.js
CHANGED
|
@@ -82,9 +82,9 @@ export function createFundiCaller(env) {
|
|
|
82
82
|
const service = env.FUNDI_SERVICE;
|
|
83
83
|
if (service) {
|
|
84
84
|
return {
|
|
85
|
-
async call(path,
|
|
85
|
+
async call(path, resolveUserToken, init = {}) {
|
|
86
86
|
const headers = new Headers(init.headers);
|
|
87
|
-
headers.set("X-Fundi-User-Token",
|
|
87
|
+
headers.set("X-Fundi-User-Token", await resolveUserToken());
|
|
88
88
|
// No Authorization header: the binding IS the machine credential.
|
|
89
89
|
// Cloudflare will not route a public request to a named entrypoint, so
|
|
90
90
|
// there is no token to mint, replay, or leak.
|
|
@@ -93,13 +93,100 @@ export function createFundiCaller(env) {
|
|
|
93
93
|
};
|
|
94
94
|
}
|
|
95
95
|
return {
|
|
96
|
-
async call(path,
|
|
96
|
+
async call(path, resolveUserToken, init = {}) {
|
|
97
97
|
const m2m = await mintM2MToken(env);
|
|
98
98
|
const headers = new Headers(init.headers);
|
|
99
99
|
headers.set("Authorization", `Bearer ${m2m}`);
|
|
100
|
-
headers.set("X-Fundi-User-Token",
|
|
100
|
+
headers.set("X-Fundi-User-Token", await resolveUserToken());
|
|
101
101
|
return fetch(new URL(path, env.FUNDI_URL), { ...init, headers });
|
|
102
102
|
},
|
|
103
103
|
};
|
|
104
104
|
}
|
|
105
|
+
/* ─────────────────────────────────────────────────────────────────────────────
|
|
106
|
+
The signed-in user's token, kept alive.
|
|
107
|
+
|
|
108
|
+
`ctx.props` is written once, in the OAuth `/callback`, and never written
|
|
109
|
+
again — the provider bakes it into the grant. So `props.accessToken` is a
|
|
110
|
+
snapshot of a credential that expires in minutes, and `props.refreshToken`
|
|
111
|
+
was captured next to it and then read by nothing at all. That is the bug:
|
|
112
|
+
not a wrong issuer, not a missing secret, just a token that got old while
|
|
113
|
+
the session stayed open.
|
|
114
|
+
|
|
115
|
+
WorkOS ROTATES the refresh token on every use, which is why this cannot be a
|
|
116
|
+
pure in-memory cache. A Worker isolate dies whenever Cloudflare feels like
|
|
117
|
+
it; if the rotated token lived only in memory, the next cold start would
|
|
118
|
+
replay the one from props — already consumed — and the user would be told to
|
|
119
|
+
reconnect for no reason. `OAUTH_KV` is where the grant already lives, so the
|
|
120
|
+
rotated token goes there too, keyed by user.
|
|
121
|
+
|
|
122
|
+
Memory still fronts KV, because within one isolate the common case is "the
|
|
123
|
+
token I minted 30 seconds ago is fine" and that should cost nothing.
|
|
124
|
+
────────────────────────────────────────────────────────────────────────── */
|
|
125
|
+
/** Refresh this far before the real expiry, so a call in flight cannot age out. */
|
|
126
|
+
const USER_TOKEN_SKEW_S = 60;
|
|
127
|
+
/** Rotated refresh tokens outlive any access token by a wide margin. */
|
|
128
|
+
const REFRESH_TTL_S = 60 * 60 * 24 * 30;
|
|
129
|
+
const refreshKey = (userId) => `fundi:user-refresh:${userId}`;
|
|
130
|
+
const userTokens = new Map();
|
|
131
|
+
/** `exp` of a JWT, or null when it is unreadable — an opaque token is treated as stale. */
|
|
132
|
+
function tokenExpiry(jwt) {
|
|
133
|
+
if (!jwt)
|
|
134
|
+
return null;
|
|
135
|
+
try {
|
|
136
|
+
const { exp } = decodeJwt(jwt);
|
|
137
|
+
return typeof exp === "number" ? exp : null;
|
|
138
|
+
}
|
|
139
|
+
catch {
|
|
140
|
+
return null;
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* A currently-valid access token for `props.userId`, refreshing when the one on
|
|
145
|
+
* the grant has aged out.
|
|
146
|
+
*
|
|
147
|
+
* Throws with a reconnect instruction rather than forwarding a token known to
|
|
148
|
+
* be dead: fundi's 401 is opaque from the client side, and "your connection
|
|
149
|
+
* expired, reconnect Mzizi" is the only actionable thing to say.
|
|
150
|
+
*/
|
|
151
|
+
export function createUserTokenResolver(env, props) {
|
|
152
|
+
return async () => {
|
|
153
|
+
const now = Math.floor(Date.now() / 1000);
|
|
154
|
+
const live = userTokens.get(props.userId);
|
|
155
|
+
if (live && live.exp > now + USER_TOKEN_SKEW_S)
|
|
156
|
+
return live.jwt;
|
|
157
|
+
const grantExp = tokenExpiry(props.accessToken);
|
|
158
|
+
if (grantExp !== null && grantExp > now + USER_TOKEN_SKEW_S)
|
|
159
|
+
return props.accessToken;
|
|
160
|
+
// The rotated token in KV wins over the one frozen on the grant: after the
|
|
161
|
+
// first refresh, the props copy is spent.
|
|
162
|
+
const rotated = await env.OAUTH_KV.get(refreshKey(props.userId));
|
|
163
|
+
const refreshToken = rotated ?? props.refreshToken;
|
|
164
|
+
if (!refreshToken) {
|
|
165
|
+
throw new Error("Your Mzizi connection has expired and carries no refresh token. Reconnect the Mzizi MCP server to continue.");
|
|
166
|
+
}
|
|
167
|
+
const res = await fetch(new URL("/oauth2/token", authkitDomain(env)), {
|
|
168
|
+
method: "POST",
|
|
169
|
+
headers: { "Content-Type": "application/x-www-form-urlencoded" },
|
|
170
|
+
// A PUBLIC client (PKCE): client_id only, never a secret. Sending one
|
|
171
|
+
// here would be rejected, and there is none to send.
|
|
172
|
+
body: new URLSearchParams({
|
|
173
|
+
grant_type: "refresh_token",
|
|
174
|
+
client_id: env.WORKOS_CLIENT_ID,
|
|
175
|
+
refresh_token: refreshToken,
|
|
176
|
+
}),
|
|
177
|
+
});
|
|
178
|
+
if (!res.ok) {
|
|
179
|
+
throw new Error(`Your Mzizi connection could not be refreshed (${res.status}). Reconnect the Mzizi MCP server to continue.`);
|
|
180
|
+
}
|
|
181
|
+
const data = (await res.json());
|
|
182
|
+
if (data.refresh_token) {
|
|
183
|
+
await env.OAUTH_KV.put(refreshKey(props.userId), data.refresh_token, {
|
|
184
|
+
expirationTtl: REFRESH_TTL_S,
|
|
185
|
+
});
|
|
186
|
+
}
|
|
187
|
+
const exp = tokenExpiry(data.access_token) ?? now + (data.expires_in ?? 3600);
|
|
188
|
+
userTokens.set(props.userId, { jwt: data.access_token, exp });
|
|
189
|
+
return data.access_token;
|
|
190
|
+
};
|
|
191
|
+
}
|
|
105
192
|
//# sourceMappingURL=fundi-client.js.map
|
package/dist/fundi-client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fundi-client.js","sourceRoot":"","sources":["../src/fundi-client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"fundi-client.js","sourceRoot":"","sources":["../src/fundi-client.ts"],"names":[],"mappings":"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"}
|