@waniwani/kit 0.4.1 → 0.4.3
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/README.md +13 -5
- package/dist/docs.d.ts +5 -0
- package/dist/docs.d.ts.map +1 -1
- package/dist/docs.js +42 -7
- package/dist/docs.js.map +1 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +13 -2
- package/dist/server.js.map +1 -1
- package/package.json +1 -1
- package/src/docs.ts +49 -8
- package/src/server.ts +14 -2
package/README.md
CHANGED
|
@@ -501,12 +501,20 @@ shows:
|
|
|
501
501
|
- the app's `title`, `name` and version, and its `overview`
|
|
502
502
|
- the URL to connect an MCP client to, built from the request's host
|
|
503
503
|
(`x-forwarded-host` and `x-forwarded-proto` first, the way the framework
|
|
504
|
-
builds its own URLs)
|
|
504
|
+
builds its own URLs), with where to paste it in Claude
|
|
505
|
+
- whether a client has to sign in, read off the server the template
|
|
506
|
+
constructed: OAuth 2.0 when it was given an `oauth` provider, none otherwise
|
|
507
|
+
- a short "How it works" list: add the URL, ask in plain language, and read
|
|
508
|
+
the answer in the conversation, with a line on widgets and flows when the
|
|
509
|
+
app has any
|
|
505
510
|
- every tool, widget and flow the deployment registers, with its title, name,
|
|
506
|
-
description
|
|
507
|
-
world)
|
|
508
|
-
|
|
509
|
-
|
|
511
|
+
description and the hints it carries (read-only, destructive, idempotent,
|
|
512
|
+
open world)
|
|
513
|
+
- for tools and widgets, a table of input parameters: name, type, whether it
|
|
514
|
+
is required, description and default, with nested object fields listed as
|
|
515
|
+
`plans[].id`. Flows get no table, because their input is the flow protocol
|
|
516
|
+
(`action`, `sessionId`, a `stateUpdates` field per piece of state) that the
|
|
517
|
+
assistant fills in and a reader has no use for
|
|
510
518
|
|
|
511
519
|
Under a surface, the page lists that surface's tools, widgets and flows and
|
|
512
520
|
shows that surface's `overview`, the same narrowing `tools/list` gets. The
|
package/dist/docs.d.ts
CHANGED
|
@@ -39,6 +39,11 @@ export type DocsEntry = {
|
|
|
39
39
|
};
|
|
40
40
|
export type DocsModel = {
|
|
41
41
|
app?: DocsApp;
|
|
42
|
+
/**
|
|
43
|
+
* Whether `/mcp` sits behind OAuth. `undefined` when the framework does not
|
|
44
|
+
* say, and the page then says nothing about sign-in rather than guess.
|
|
45
|
+
*/
|
|
46
|
+
oauth?: boolean;
|
|
42
47
|
tools: DocsEntry[];
|
|
43
48
|
widgets: DocsEntry[];
|
|
44
49
|
flows: DocsEntry[];
|
package/dist/docs.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"docs.d.ts","sourceRoot":"","sources":["../src/docs.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAW,cAAc,EAAE,MAAM,SAAS,CAAC;AAGvD,kDAAkD;AAClD,MAAM,MAAM,OAAO,GAAG;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,gFAAgF;IAChF,YAAY,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,oFAAoF;AACpF,MAAM,MAAM,eAAe,GAAG;IAC7B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,cAAc,CAAC,EAAE,OAAO,CAAC;CACzB,CAAC;AAEF,2CAA2C;AAC3C,MAAM,MAAM,SAAS,GAAG;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,0FAA0F;IAC1F,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,WAAW,CAAC,EAAE,eAAe,CAAC;CAC9B,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG;IACvB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,SAAS,EAAE,CAAC;IACnB,OAAO,EAAE,SAAS,EAAE,CAAC;IACrB,KAAK,EAAE,SAAS,EAAE,CAAC;CACnB,CAAC;
|
|
1
|
+
{"version":3,"file":"docs.d.ts","sourceRoot":"","sources":["../src/docs.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAW,cAAc,EAAE,MAAM,SAAS,CAAC;AAGvD,kDAAkD;AAClD,MAAM,MAAM,OAAO,GAAG;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,gFAAgF;IAChF,YAAY,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,oFAAoF;AACpF,MAAM,MAAM,eAAe,GAAG;IAC7B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,cAAc,CAAC,EAAE,OAAO,CAAC;CACzB,CAAC;AAEF,2CAA2C;AAC3C,MAAM,MAAM,SAAS,GAAG;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,0FAA0F;IAC1F,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,WAAW,CAAC,EAAE,eAAe,CAAC;CAC9B,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG;IACvB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd;;;OAGG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,KAAK,EAAE,SAAS,EAAE,CAAC;IACnB,OAAO,EAAE,SAAS,EAAE,CAAC;IACrB,KAAK,EAAE,SAAS,EAAE,CAAC;CACnB,CAAC;AAmUF;;;GAGG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,SAAS,GAAG,cAAc,CA+C5D"}
|
package/dist/docs.js
CHANGED
|
@@ -153,6 +153,11 @@ function parameterTable(entry) {
|
|
|
153
153
|
</tbody>
|
|
154
154
|
</table></div>`;
|
|
155
155
|
}
|
|
156
|
+
/**
|
|
157
|
+
* A flow gets no parameter table. Its input is the flow protocol (an action, a
|
|
158
|
+
* session id, and a `stateUpdates` field per piece of state), which the
|
|
159
|
+
* assistant fills in turn by turn and a reader has no use for.
|
|
160
|
+
*/
|
|
156
161
|
function entryCard(kind, entry) {
|
|
157
162
|
const hints = HINTS.filter(({ key }) => entry.annotations?.[key] === true);
|
|
158
163
|
return html `
|
|
@@ -160,9 +165,37 @@ function entryCard(kind, entry) {
|
|
|
160
165
|
<h3>${entry.title ?? entry.name}</h3>
|
|
161
166
|
<p class="meta"><code>${entry.name}</code>${hints.map(({ label }) => html ` <span class="badge badge-${label.replace(" ", "-")}">${label}</span>`)}</p>
|
|
162
167
|
${entry.description ? html `<p class="text">${entry.description}</p>` : ""}
|
|
163
|
-
${parameterTable(entry)}
|
|
168
|
+
${kind === "flow" ? "" : parameterTable(entry)}
|
|
164
169
|
</article>`;
|
|
165
170
|
}
|
|
171
|
+
/** The sign-in line under the URL, absent when the model does not know. */
|
|
172
|
+
function signIn(oauth) {
|
|
173
|
+
if (oauth === undefined)
|
|
174
|
+
return html ``;
|
|
175
|
+
return oauth
|
|
176
|
+
? html `<p><strong>Sign-in:</strong> required. The server uses OAuth 2.0, so your client opens a sign-in page the first time it connects.</p>`
|
|
177
|
+
: html `<p><strong>Sign-in:</strong> none. The server answers without an account or an API key.</p>`;
|
|
178
|
+
}
|
|
179
|
+
/** What a reader does with the URL, and what happens once they have. */
|
|
180
|
+
function howItWorks(model) {
|
|
181
|
+
const results = [
|
|
182
|
+
"The answer comes back in the conversation.",
|
|
183
|
+
model.widgets.length > 0
|
|
184
|
+
? "Widgets show an interactive view in clients that support MCP Apps, such as ChatGPT and Claude."
|
|
185
|
+
: "",
|
|
186
|
+
model.flows.length > 0
|
|
187
|
+
? "A flow takes you through a longer task one question at a time, and the assistant keeps track of your answers."
|
|
188
|
+
: "",
|
|
189
|
+
].filter(Boolean);
|
|
190
|
+
return html `<section>
|
|
191
|
+
<h2>How it works</h2>
|
|
192
|
+
<ol>
|
|
193
|
+
<li>Add the server to your AI client with the URL above.${model.oauth ? " Sign in when the client asks you to." : ""}</li>
|
|
194
|
+
<li>Ask for what you need in plain language. The assistant reads the tools listed below and calls the one that fits.</li>
|
|
195
|
+
<li>${results.join(" ")}</li>
|
|
196
|
+
</ol>
|
|
197
|
+
</section>`;
|
|
198
|
+
}
|
|
166
199
|
const STYLE = `
|
|
167
200
|
:root{color-scheme:light dark;--bg:#fff;--fg:#1a1a1a;--muted:#5f6368;--line:#e3e3e3;--card:#fafafa;--code:#f1f1f1;--accent:#2d5bd7;--warn:#b3261e}
|
|
168
201
|
@media (prefers-color-scheme:dark){:root{--bg:#121212;--fg:#ececec;--muted:#a0a4a8;--line:#2e2e2e;--card:#1a1a1a;--code:#262626;--accent:#8ab0ff;--warn:#f2b8b5}}
|
|
@@ -187,6 +220,7 @@ th{font-weight:600;border-top:none}
|
|
|
187
220
|
td code{overflow-wrap:normal}
|
|
188
221
|
td:first-child code{white-space:nowrap}
|
|
189
222
|
nav ul{margin:8px 0 0;padding-left:20px}
|
|
223
|
+
ol li{margin:4px 0}
|
|
190
224
|
footer{margin-top:48px;font-size:13px}
|
|
191
225
|
`;
|
|
192
226
|
/**
|
|
@@ -202,6 +236,7 @@ function renderBody(model) {
|
|
|
202
236
|
<p class="meta">${model.app?.name ? html `<code>${model.app.name}</code>` : ""}${model.app?.version ? html ` version ${model.app.version}` : ""}</p>
|
|
203
237
|
</header>`;
|
|
204
238
|
const tail = html `
|
|
239
|
+
${howItWorks(model)}
|
|
205
240
|
${model.app?.instructions
|
|
206
241
|
? html `<section>
|
|
207
242
|
<h2>Overview</h2>
|
|
@@ -221,10 +256,8 @@ ${present.map(({ kind, key, heading }) => html `
|
|
|
221
256
|
<h2>${heading}</h2>
|
|
222
257
|
${model[key].map((entry) => entryCard(kind, entry))}
|
|
223
258
|
</section>`)}
|
|
224
|
-
<footer class="muted">Generated from the definitions this server registers
|
|
225
|
-
|
|
226
|
-
Flows are tools that guide a multi-step conversation.</footer>`;
|
|
227
|
-
return { title, head, tail };
|
|
259
|
+
<footer class="muted">Generated from the definitions this server registers.</footer>`;
|
|
260
|
+
return { title, head, access: signIn(model.oauth), tail };
|
|
228
261
|
}
|
|
229
262
|
/**
|
|
230
263
|
* This server's public origin, the way the framework resolves it for view URLs
|
|
@@ -262,7 +295,7 @@ export function docsHandler(model) {
|
|
|
262
295
|
res.status(500).type("text/plain").send("The documentation page could not be rendered.");
|
|
263
296
|
};
|
|
264
297
|
}
|
|
265
|
-
const { title, head, tail } = body;
|
|
298
|
+
const { title, head, access, tail } = body;
|
|
266
299
|
return (req, res) => {
|
|
267
300
|
const endpoint = `${serverOrigin(req)}/mcp`;
|
|
268
301
|
const page = html `<!doctype html>
|
|
@@ -278,8 +311,10 @@ export function docsHandler(model) {
|
|
|
278
311
|
${head}
|
|
279
312
|
<section>
|
|
280
313
|
<h2>Connect</h2>
|
|
281
|
-
<p>Add this URL to
|
|
314
|
+
<p>Add this URL to your AI client as a remote MCP server. In Claude, open Customize, then Connectors, and choose Add custom connector. ChatGPT and other MCP clients take the same URL.</p>
|
|
282
315
|
<pre><code>${endpoint}</code></pre>
|
|
316
|
+
${access}
|
|
317
|
+
<p class="muted">Transport: Streamable HTTP, with JSON-RPC requests sent as <code>POST</code>.</p>
|
|
283
318
|
</section>
|
|
284
319
|
${tail}
|
|
285
320
|
</main>
|
package/dist/docs.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"docs.js","sourceRoot":"","sources":["../src/docs.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAGH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"docs.js","sourceRoot":"","sources":["../src/docs.ts"],"names":[],"mappings":"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"}
|
package/dist/server.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAIH,OAAO,KAAK,EAAE,SAAS,EAAsB,MAAM,kBAAkB,CAAC;AACtE,OAAO,EAAE,KAAK,OAAO,EAA+B,MAAM,WAAW,CAAC;AACtE,OAAO,KAAK,EAAE,kBAAkB,EAAE,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAIjG,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE9C;;;;GAIG;AACH,KAAK,iBAAiB,GAAG;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,MAAM,CAAC,EAAE,KAAK,CAAC;IACf,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,GAAG,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,OAAO,CAAC;CAC/B,CAAC;AAEF,KAAK,mBAAmB,GAAG;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,KAAK,CAAC;IACZ,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,GAAG,CAAC,EAAE,SAAS,CAAC;IAChB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,KAAK,MAAM,CAAC;IAClC,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,OAAO,CAAC;CACjC,CAAC;AAEF,+EAA+E;AAC/E,MAAM,MAAM,YAAY,GAAG;IAC1B,IAAI,EAAE,MAAM,CAAC;IAEb,MAAM,EAAE,GAAG,CAAC;IAEZ,OAAO,EAAE,GAAG,CAAC;CACb,CAAC;AAEF,MAAM,MAAM,QAAQ,GAAG;IACtB,KAAK,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,iBAAiB,CAAA;KAAE,CAAC,CAAC;IACvD,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,mBAAmB,CAAA;KAAE,CAAC,CAAC;IAC3D,KAAK,EAAE,YAAY,EAAE,CAAC;IACtB;;;;OAIG;IACH,SAAS,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,kBAAkB,CAAA;KAAE,CAAC,CAAC;IAC7D;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,yEAAyE;IACzE,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB;;;;OAIG;IACH,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,iEAAiE;IACjE,IAAI,CAAC,EAAE,OAAO,CAAC;CACf,CAAC;
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAIH,OAAO,KAAK,EAAE,SAAS,EAAsB,MAAM,kBAAkB,CAAC;AACtE,OAAO,EAAE,KAAK,OAAO,EAA+B,MAAM,WAAW,CAAC;AACtE,OAAO,KAAK,EAAE,kBAAkB,EAAE,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAIjG,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE9C;;;;GAIG;AACH,KAAK,iBAAiB,GAAG;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,MAAM,CAAC,EAAE,KAAK,CAAC;IACf,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,GAAG,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,OAAO,CAAC;CAC/B,CAAC;AAEF,KAAK,mBAAmB,GAAG;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,KAAK,CAAC;IACZ,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,GAAG,CAAC,EAAE,SAAS,CAAC;IAChB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,KAAK,MAAM,CAAC;IAClC,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,OAAO,CAAC;CACjC,CAAC;AAEF,+EAA+E;AAC/E,MAAM,MAAM,YAAY,GAAG;IAC1B,IAAI,EAAE,MAAM,CAAC;IAEb,MAAM,EAAE,GAAG,CAAC;IAEZ,OAAO,EAAE,GAAG,CAAC;CACb,CAAC;AAEF,MAAM,MAAM,QAAQ,GAAG;IACtB,KAAK,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,iBAAiB,CAAA;KAAE,CAAC,CAAC;IACvD,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,mBAAmB,CAAA;KAAE,CAAC,CAAC;IAC3D,KAAK,EAAE,YAAY,EAAE,CAAC;IACtB;;;;OAIG;IACH,SAAS,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,kBAAkB,CAAA;KAAE,CAAC,CAAC;IAC7D;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,yEAAyE;IACzE,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB;;;;OAIG;IACH,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,iEAAiE;IACjE,IAAI,CAAC,EAAE,OAAO,CAAC;CACf,CAAC;AAyMF;;;;;;;GAOG;AACH,wBAAsB,WAAW,CAAC,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,SAAS,CAAC,CAgH3F"}
|
package/dist/server.js
CHANGED
|
@@ -165,7 +165,7 @@ function registerEndpoints(server, endpoints) {
|
|
|
165
165
|
* What `/docs` lists: each definition as it is registered below, annotations
|
|
166
166
|
* included, so the page and `tools/list` agree.
|
|
167
167
|
*/
|
|
168
|
-
function docsModel(served) {
|
|
168
|
+
function docsModel(served, oauth) {
|
|
169
169
|
const entry = (name, def, input, defaults) => ({
|
|
170
170
|
name,
|
|
171
171
|
title: def.title,
|
|
@@ -175,6 +175,7 @@ function docsModel(served) {
|
|
|
175
175
|
});
|
|
176
176
|
return {
|
|
177
177
|
app: served.app,
|
|
178
|
+
oauth,
|
|
178
179
|
tools: served.tools.map(({ name, def }) => entry(name, def, def.input, { readOnly: false })),
|
|
179
180
|
widgets: served.widgets.map(({ name, def }) => entry(name, def, def.data, { readOnly: true })),
|
|
180
181
|
flows: served.flows.map((flow) => ({
|
|
@@ -186,6 +187,16 @@ function docsModel(served) {
|
|
|
186
187
|
})),
|
|
187
188
|
};
|
|
188
189
|
}
|
|
190
|
+
/**
|
|
191
|
+
* Whether the server was constructed with an `oauth` provider, which puts
|
|
192
|
+
* `/mcp` behind a bearer token. The framework sets the flag in its constructor,
|
|
193
|
+
* so it holds by the time an app registers, but keeps it off its public type.
|
|
194
|
+
* `undefined` when a framework version stops carrying it.
|
|
195
|
+
*/
|
|
196
|
+
function oauthEnabled(server) {
|
|
197
|
+
const flag = server.oauthEnabled;
|
|
198
|
+
return typeof flag === "boolean" ? flag : undefined;
|
|
199
|
+
}
|
|
189
200
|
/**
|
|
190
201
|
* Register an app's tools, widgets and flows onto a server the template built.
|
|
191
202
|
*
|
|
@@ -211,7 +222,7 @@ export async function registerApp(server, manifest) {
|
|
|
211
222
|
// surface's page shows that surface. No app endpoint can take the path:
|
|
212
223
|
// endpoints live under `/api/` and `/.well-known/`.
|
|
213
224
|
if (manifest.docs !== false) {
|
|
214
|
-
server.express.get("/docs", docsHandler(docsModel(served)));
|
|
225
|
+
server.express.get("/docs", docsHandler(docsModel(served, oauthEnabled(server))));
|
|
215
226
|
}
|
|
216
227
|
// Widgets: one `data` schema drives the input schema, the structured output,
|
|
217
228
|
// and the type the component receives.
|
package/dist/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/docs.ts
CHANGED
|
@@ -45,6 +45,11 @@ export type DocsEntry = {
|
|
|
45
45
|
|
|
46
46
|
export type DocsModel = {
|
|
47
47
|
app?: DocsApp;
|
|
48
|
+
/**
|
|
49
|
+
* Whether `/mcp` sits behind OAuth. `undefined` when the framework does not
|
|
50
|
+
* say, and the page then says nothing about sign-in rather than guess.
|
|
51
|
+
*/
|
|
52
|
+
oauth?: boolean;
|
|
48
53
|
tools: DocsEntry[];
|
|
49
54
|
widgets: DocsEntry[];
|
|
50
55
|
flows: DocsEntry[];
|
|
@@ -226,6 +231,11 @@ function parameterTable(entry: DocsEntry): Html {
|
|
|
226
231
|
</table></div>`;
|
|
227
232
|
}
|
|
228
233
|
|
|
234
|
+
/**
|
|
235
|
+
* A flow gets no parameter table. Its input is the flow protocol (an action, a
|
|
236
|
+
* session id, and a `stateUpdates` field per piece of state), which the
|
|
237
|
+
* assistant fills in turn by turn and a reader has no use for.
|
|
238
|
+
*/
|
|
229
239
|
function entryCard(kind: Kind, entry: DocsEntry): Html {
|
|
230
240
|
const hints = HINTS.filter(({ key }) => entry.annotations?.[key] === true);
|
|
231
241
|
return html`
|
|
@@ -233,10 +243,39 @@ function entryCard(kind: Kind, entry: DocsEntry): Html {
|
|
|
233
243
|
<h3>${entry.title ?? entry.name}</h3>
|
|
234
244
|
<p class="meta"><code>${entry.name}</code>${hints.map(({ label }) => html` <span class="badge badge-${label.replace(" ", "-")}">${label}</span>`)}</p>
|
|
235
245
|
${entry.description ? html`<p class="text">${entry.description}</p>` : ""}
|
|
236
|
-
${parameterTable(entry)}
|
|
246
|
+
${kind === "flow" ? "" : parameterTable(entry)}
|
|
237
247
|
</article>`;
|
|
238
248
|
}
|
|
239
249
|
|
|
250
|
+
/** The sign-in line under the URL, absent when the model does not know. */
|
|
251
|
+
function signIn(oauth: boolean | undefined): Html {
|
|
252
|
+
if (oauth === undefined) return html``;
|
|
253
|
+
return oauth
|
|
254
|
+
? html`<p><strong>Sign-in:</strong> required. The server uses OAuth 2.0, so your client opens a sign-in page the first time it connects.</p>`
|
|
255
|
+
: html`<p><strong>Sign-in:</strong> none. The server answers without an account or an API key.</p>`;
|
|
256
|
+
}
|
|
257
|
+
|
|
258
|
+
/** What a reader does with the URL, and what happens once they have. */
|
|
259
|
+
function howItWorks(model: DocsModel): Html {
|
|
260
|
+
const results = [
|
|
261
|
+
"The answer comes back in the conversation.",
|
|
262
|
+
model.widgets.length > 0
|
|
263
|
+
? "Widgets show an interactive view in clients that support MCP Apps, such as ChatGPT and Claude."
|
|
264
|
+
: "",
|
|
265
|
+
model.flows.length > 0
|
|
266
|
+
? "A flow takes you through a longer task one question at a time, and the assistant keeps track of your answers."
|
|
267
|
+
: "",
|
|
268
|
+
].filter(Boolean);
|
|
269
|
+
return html`<section>
|
|
270
|
+
<h2>How it works</h2>
|
|
271
|
+
<ol>
|
|
272
|
+
<li>Add the server to your AI client with the URL above.${model.oauth ? " Sign in when the client asks you to." : ""}</li>
|
|
273
|
+
<li>Ask for what you need in plain language. The assistant reads the tools listed below and calls the one that fits.</li>
|
|
274
|
+
<li>${results.join(" ")}</li>
|
|
275
|
+
</ol>
|
|
276
|
+
</section>`;
|
|
277
|
+
}
|
|
278
|
+
|
|
240
279
|
const STYLE = `
|
|
241
280
|
:root{color-scheme:light dark;--bg:#fff;--fg:#1a1a1a;--muted:#5f6368;--line:#e3e3e3;--card:#fafafa;--code:#f1f1f1;--accent:#2d5bd7;--warn:#b3261e}
|
|
242
281
|
@media (prefers-color-scheme:dark){:root{--bg:#121212;--fg:#ececec;--muted:#a0a4a8;--line:#2e2e2e;--card:#1a1a1a;--code:#262626;--accent:#8ab0ff;--warn:#f2b8b5}}
|
|
@@ -261,6 +300,7 @@ th{font-weight:600;border-top:none}
|
|
|
261
300
|
td code{overflow-wrap:normal}
|
|
262
301
|
td:first-child code{white-space:nowrap}
|
|
263
302
|
nav ul{margin:8px 0 0;padding-left:20px}
|
|
303
|
+
ol li{margin:4px 0}
|
|
264
304
|
footer{margin-top:48px;font-size:13px}
|
|
265
305
|
`;
|
|
266
306
|
|
|
@@ -269,7 +309,7 @@ footer{margin-top:48px;font-size:13px}
|
|
|
269
309
|
* request. Rendered once, because the definitions do not change while the
|
|
270
310
|
* server runs.
|
|
271
311
|
*/
|
|
272
|
-
function renderBody(model: DocsModel): { title: string; head: Html; tail: Html } {
|
|
312
|
+
function renderBody(model: DocsModel): { title: string; head: Html; access: Html; tail: Html } {
|
|
273
313
|
const title = model.app?.title ?? model.app?.name ?? "MCP server";
|
|
274
314
|
const present = SECTIONS.filter(({ key }) => model[key].length > 0);
|
|
275
315
|
|
|
@@ -279,6 +319,7 @@ function renderBody(model: DocsModel): { title: string; head: Html; tail: Html }
|
|
|
279
319
|
</header>`;
|
|
280
320
|
|
|
281
321
|
const tail = html`
|
|
322
|
+
${howItWorks(model)}
|
|
282
323
|
${
|
|
283
324
|
model.app?.instructions
|
|
284
325
|
? html`<section>
|
|
@@ -309,11 +350,9 @@ ${present.map(
|
|
|
309
350
|
${model[key].map((entry) => entryCard(kind, entry))}
|
|
310
351
|
</section>`,
|
|
311
352
|
)}
|
|
312
|
-
<footer class="muted">Generated from the definitions this server registers
|
|
313
|
-
Widgets are tools that also render a view in hosts that support MCP Apps.
|
|
314
|
-
Flows are tools that guide a multi-step conversation.</footer>`;
|
|
353
|
+
<footer class="muted">Generated from the definitions this server registers.</footer>`;
|
|
315
354
|
|
|
316
|
-
return { title, head, tail };
|
|
355
|
+
return { title, head, access: signIn(model.oauth), tail };
|
|
317
356
|
}
|
|
318
357
|
|
|
319
358
|
/**
|
|
@@ -352,7 +391,7 @@ export function docsHandler(model: DocsModel): RequestHandler {
|
|
|
352
391
|
res.status(500).type("text/plain").send("The documentation page could not be rendered.");
|
|
353
392
|
};
|
|
354
393
|
}
|
|
355
|
-
const { title, head, tail } = body;
|
|
394
|
+
const { title, head, access, tail } = body;
|
|
356
395
|
|
|
357
396
|
return (req, res) => {
|
|
358
397
|
const endpoint = `${serverOrigin(req)}/mcp`;
|
|
@@ -369,8 +408,10 @@ export function docsHandler(model: DocsModel): RequestHandler {
|
|
|
369
408
|
${head}
|
|
370
409
|
<section>
|
|
371
410
|
<h2>Connect</h2>
|
|
372
|
-
<p>Add this URL to
|
|
411
|
+
<p>Add this URL to your AI client as a remote MCP server. In Claude, open Customize, then Connectors, and choose Add custom connector. ChatGPT and other MCP clients take the same URL.</p>
|
|
373
412
|
<pre><code>${endpoint}</code></pre>
|
|
413
|
+
${access}
|
|
414
|
+
<p class="muted">Transport: Streamable HTTP, with JSON-RPC requests sent as <code>POST</code>.</p>
|
|
374
415
|
</section>
|
|
375
416
|
${tail}
|
|
376
417
|
</main>
|
package/src/server.ts
CHANGED
|
@@ -239,7 +239,7 @@ function registerEndpoints(server: McpServer, endpoints: NonNullable<Manifest["e
|
|
|
239
239
|
* What `/docs` lists: each definition as it is registered below, annotations
|
|
240
240
|
* included, so the page and `tools/list` agree.
|
|
241
241
|
*/
|
|
242
|
-
function docsModel(served: Manifest) {
|
|
242
|
+
function docsModel(served: Manifest, oauth: boolean | undefined) {
|
|
243
243
|
const entry = (
|
|
244
244
|
name: string,
|
|
245
245
|
def: { title: string; description: string; hints?: ToolHints },
|
|
@@ -255,6 +255,7 @@ function docsModel(served: Manifest) {
|
|
|
255
255
|
|
|
256
256
|
return {
|
|
257
257
|
app: served.app,
|
|
258
|
+
oauth,
|
|
258
259
|
tools: served.tools.map(({ name, def }) => entry(name, def, def.input, { readOnly: false })),
|
|
259
260
|
widgets: served.widgets.map(({ name, def }) => entry(name, def, def.data, { readOnly: true })),
|
|
260
261
|
flows: served.flows.map(
|
|
@@ -269,6 +270,17 @@ function docsModel(served: Manifest) {
|
|
|
269
270
|
};
|
|
270
271
|
}
|
|
271
272
|
|
|
273
|
+
/**
|
|
274
|
+
* Whether the server was constructed with an `oauth` provider, which puts
|
|
275
|
+
* `/mcp` behind a bearer token. The framework sets the flag in its constructor,
|
|
276
|
+
* so it holds by the time an app registers, but keeps it off its public type.
|
|
277
|
+
* `undefined` when a framework version stops carrying it.
|
|
278
|
+
*/
|
|
279
|
+
function oauthEnabled(server: McpServer): boolean | undefined {
|
|
280
|
+
const flag = (server as unknown as { oauthEnabled?: unknown }).oauthEnabled;
|
|
281
|
+
return typeof flag === "boolean" ? flag : undefined;
|
|
282
|
+
}
|
|
283
|
+
|
|
272
284
|
/**
|
|
273
285
|
* Register an app's tools, widgets and flows onto a server the template built.
|
|
274
286
|
*
|
|
@@ -298,7 +310,7 @@ export async function registerApp(server: McpServer, manifest: Manifest): Promis
|
|
|
298
310
|
// surface's page shows that surface. No app endpoint can take the path:
|
|
299
311
|
// endpoints live under `/api/` and `/.well-known/`.
|
|
300
312
|
if (manifest.docs !== false) {
|
|
301
|
-
server.express.get("/docs", docsHandler(docsModel(served)));
|
|
313
|
+
server.express.get("/docs", docsHandler(docsModel(served, oauthEnabled(server))));
|
|
302
314
|
}
|
|
303
315
|
|
|
304
316
|
// Widgets: one `data` schema drives the input schema, the structured output,
|