@plurnk/plurnk-mcp 1.18.0 → 1.19.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.
Files changed (49) hide show
  1. package/.env.defaults +11 -5
  2. package/README.md +13 -6
  3. package/SPEC.md +185 -54
  4. package/dist/ContentProjection.d.ts +11 -0
  5. package/dist/ContentProjection.d.ts.map +1 -0
  6. package/dist/ContentProjection.js +24 -0
  7. package/dist/ContentProjection.js.map +1 -0
  8. package/dist/McpExecutor.d.ts +1 -1
  9. package/dist/McpExecutor.d.ts.map +1 -1
  10. package/dist/McpExecutor.js +42 -50
  11. package/dist/McpExecutor.js.map +1 -1
  12. package/dist/McpResources.d.ts.map +1 -1
  13. package/dist/McpResources.js +27 -5
  14. package/dist/McpResources.js.map +1 -1
  15. package/dist/Module.d.ts +7 -2
  16. package/dist/Module.d.ts.map +1 -1
  17. package/dist/Module.js +92 -29
  18. package/dist/Module.js.map +1 -1
  19. package/dist/Summary.d.ts +3 -0
  20. package/dist/Summary.d.ts.map +1 -0
  21. package/dist/Summary.js +15 -0
  22. package/dist/Summary.js.map +1 -0
  23. package/dist/ToolPresentation.d.ts.map +1 -1
  24. package/dist/ToolPresentation.js +3 -23
  25. package/dist/ToolPresentation.js.map +1 -1
  26. package/dist/capabilityMatrix.js +37 -37
  27. package/dist/capabilityMatrix.js.map +1 -1
  28. package/dist/client.d.ts +3 -0
  29. package/dist/client.d.ts.map +1 -1
  30. package/dist/client.js +114 -60
  31. package/dist/client.js.map +1 -1
  32. package/dist/config.d.ts +6 -0
  33. package/dist/config.d.ts.map +1 -1
  34. package/dist/config.js +54 -33
  35. package/dist/config.js.map +1 -1
  36. package/dist/inputRequired.d.ts +5 -2
  37. package/dist/inputRequired.d.ts.map +1 -1
  38. package/dist/inputRequired.js +31 -8
  39. package/dist/inputRequired.js.map +1 -1
  40. package/dist/mcp-watchdog.mjs +3 -2
  41. package/dist/subscriptions.d.ts +4 -2
  42. package/dist/subscriptions.d.ts.map +1 -1
  43. package/dist/subscriptions.js +27 -12
  44. package/dist/subscriptions.js.map +1 -1
  45. package/dist/tasks.d.ts.map +1 -1
  46. package/dist/tasks.js +11 -13
  47. package/dist/tasks.js.map +1 -1
  48. package/docs/mcp.md +37 -13
  49. package/package.json +6 -6
package/dist/Module.js CHANGED
@@ -1,3 +1,4 @@
1
+ var _a;
1
2
  // {§mcp-module} — the MCP family beneath the shared workspace Functionality
2
3
  // coordinator ({§functionality-adapter}). This module owns MCP protocol truth:
3
4
  // definitions from the POSIX cascade, inert discovery, connection preparation
@@ -5,9 +6,11 @@
5
6
  // teardown. The coordinator owns the lifecycle, durable workspace state, atomic
6
7
  // publication, and both the client and model projections.
7
8
  import { fileURLToPath } from "node:url";
9
+ import { mkdir, mkdtemp, rm } from "node:fs/promises";
10
+ import { join } from "node:path";
8
11
  import { Problems, Validator, } from "@plurnk/plurnk-contracts";
9
12
  import ServerConnection, { AuthorizationRequiredError, isClientCredentialsRejection, } from "./client.js";
10
- import { expandedServerNames, overlayServerDefinitions, serviceDefinitions, serviceEnabledNames, summaryOverrides, } from "./config.js";
13
+ import { expandedServerNames, overlayServerDefinitions, retryDelayMs, retryPacing, serviceDefinitions, serviceEnabledNames, summaryOverrides, } from "./config.js";
11
14
  import McpExecutor, { runtimeDecl, runtimeServerSummary, serverSummary } from "./McpExecutor.js";
12
15
  import McpResources from "./McpResources.js";
13
16
  const OWNER = "@plurnk/plurnk-mcp";
@@ -109,8 +112,10 @@ const catalogDetail = (executor) => {
109
112
  prompts: catalog.prompts.length,
110
113
  };
111
114
  };
112
- export default class Module {
115
+ class Module {
113
116
  #env;
117
+ #workspaceEnvironment;
118
+ #workspaceDirectory;
114
119
  #summaries;
115
120
  #expanded;
116
121
  #defaults;
@@ -120,14 +125,14 @@ export default class Module {
120
125
  #attachments = new Map();
121
126
  #identities = new Map();
122
127
  #pending = new Map();
123
- #dirty = new Set();
128
+ #dirty = new Map();
124
129
  #connections = new Set();
125
130
  #refreshTimers = new Map();
126
131
  #retainWorkspace = new Map();
127
132
  #handle;
128
133
  #closed = false;
129
134
  static init(options = {}) {
130
- return new Module(options.env ?? process.env);
135
+ return new _a(options.env ?? process.env);
131
136
  }
132
137
  constructor(environ) {
133
138
  this.#env = environ;
@@ -137,12 +142,14 @@ export default class Module {
137
142
  this.#expanded = new Set(expandedServerNames(environ));
138
143
  }
139
144
  async setup(seam) {
145
+ this.#workspaceEnvironment = (workspaceId) => seam.readWorkspaceEnvironment(workspaceId);
146
+ this.#workspaceDirectory = (workspaceId) => seam.workspaceStateDirectory(workspaceId, OWNER);
140
147
  this.#handle = seam.registerFunctionalityAdapter({
141
148
  family: FAMILY,
142
149
  namespaceOwner: OWNER,
143
150
  summary: "Manage MCP servers",
144
151
  definitionSchema: MCP_DEFINITION,
145
- example: { alias: "files", definition: { name: "files", transport: "stdio", command: "npx", args: ["-y", "@modelcontextprotocol/server-filesystem", "."] } },
152
+ example: { alias: "files", definition: { name: "files", transport: "stdio", command: "npx", args: ["-y", "@modelcontextprotocol/server-filesystem", "/absolute/project/path"] } },
146
153
  docsDir: fileURLToPath(new URL("..", import.meta.url)),
147
154
  discovery: {
148
155
  details: "`source` is one MCP server URL or command line; the server is inspected without being attached, and the candidate carries the exact definition to add.",
@@ -152,8 +159,8 @@ export default class Module {
152
159
  definition: structuredClone(definition),
153
160
  enabled: this.#defaultEnabled.has(name),
154
161
  })),
155
- discover: (query) => this.#discover(query),
156
- admit: async (input) => this.#admit(input),
162
+ discover: (query, identity, options) => this.#discover(query, identity, options),
163
+ admit: async (input, _identity, _caller, options) => this.#admit(input, options),
157
164
  prepare: (preparation) => this.#prepare(preparation),
158
165
  teardown: (snapshot, identity) => this.#teardown(snapshot, identity),
159
166
  });
@@ -214,7 +221,7 @@ export default class Module {
214
221
  // {§mcp-discovery} — inert: a direct target is probed and disconnected;
215
222
  // caller configuration is parsed into candidates; registry search waits for
216
223
  // a configured downstream registry.
217
- async #discover(query) {
224
+ async #discover(query, identity, options = {}) {
218
225
  this.#assertOpen();
219
226
  const candidates = [];
220
227
  if (query.configuration !== undefined) {
@@ -228,7 +235,7 @@ export default class Module {
228
235
  for (const [name, definition] of definitions) {
229
236
  candidates.push({
230
237
  alias: name,
231
- definition,
238
+ definition: _a.#launchOptions(definition, options),
232
239
  provenance: { kind: "client-configuration", source: `PLURNK_MCP_${name.toUpperCase().replaceAll("-", "_")}` },
233
240
  summary: `${definition.transport} ${definition.transport === "http" ? definition.url : definition.command}`,
234
241
  });
@@ -239,16 +246,21 @@ export default class Module {
239
246
  // split on whitespace (exact paths with spaces are added, not probed).
240
247
  const source = query.source;
241
248
  const [command = "", ...args] = source.trim().split(/\s+/u);
242
- const definition = /^https?:\/\//u.test(source)
249
+ const definition = _a.#launchOptions(/^https?:\/\//u.test(source)
243
250
  ? { name: "discovered", transport: "http", url: source }
244
- : { name: "discovered", transport: "stdio", command, args };
251
+ : { name: "discovered", transport: "stdio", command, args }, options);
245
252
  Validator.assertMcpServerDefinition(definition);
246
- const connection = new ServerConnection(definition, this.#env, {
253
+ const environment = await this.#workspaceEnvironment(identity.workspaceId);
254
+ let directory;
255
+ const connection = new ServerConnection(definition, environment(this.#env), {
256
+ environment: environment(),
257
+ workingDirectory: async () => directory ??= await mkdtemp(join(await this.#workspaceDirectory(identity.workspaceId), "discover-")),
247
258
  onCatalogChanged: () => undefined,
248
259
  onInfrastructureError: () => undefined,
249
260
  });
250
261
  this.#connections.add(connection);
251
262
  const executor = new McpExecutor({ runtime: "discovered", glyph: "🔌" }, connection, () => () => undefined);
263
+ let failure;
252
264
  try {
253
265
  await executor.requireAvailable();
254
266
  const catalog = executor.catalog;
@@ -270,19 +282,35 @@ export default class Module {
270
282
  });
271
283
  }
272
284
  else {
273
- throw actionError("discover-failed", 502, `MCP target '${source}' could not be inspected.`, { source, retryable: true }, cause);
285
+ failure = actionError("discover-failed", 502, `MCP target '${source}' could not be inspected.`, { source, retryable: true }, cause);
274
286
  }
275
287
  }
276
- finally {
288
+ try {
277
289
  await this.#closeOwned([connection]);
290
+ if (directory !== undefined)
291
+ await rm(directory, { recursive: true, force: true });
292
+ }
293
+ catch (cause) {
294
+ if (failure !== undefined)
295
+ throw new AggregateError([failure, cause], "MCP discovery and cleanup failed.");
296
+ throw cause;
278
297
  }
298
+ if (failure !== undefined)
299
+ throw failure;
279
300
  }
280
301
  if (query.query !== undefined && query.source === undefined && query.configuration === undefined) {
281
302
  throw actionError("registry-not-configured", 501, "MCP registry search requires a configured downstream registry; none is configured.", { query: query.query, recovery: "Discover an explicit source (URL or command) or configure a registry.", retryable: false });
282
303
  }
283
304
  return candidates;
284
305
  }
285
- #admit(input) {
306
+ static #launchOptions(definition, options) {
307
+ if (options.env === undefined || Object.keys(options.env).length === 0)
308
+ return definition;
309
+ if (definition.transport !== "stdio")
310
+ throw actionError("env-transport", 400, "An HTTP MCP server has no local process environment.", { retryable: false });
311
+ return { ...definition, env: { ...definition.env, ...options.env } };
312
+ }
313
+ #admit(input, options = {}) {
286
314
  const params = objectOf(input) ?? {};
287
315
  let definition;
288
316
  try {
@@ -295,16 +323,26 @@ export default class Module {
295
323
  if (alias !== definition.name) {
296
324
  throw actionError("alias-mismatch", 400, `Alias '${alias}' must equal the definition's name '${definition.name}'.`, { alias, name: definition.name, retryable: false });
297
325
  }
298
- return { alias, definition };
326
+ return { alias, definition: _a.#launchOptions(definition, options) };
299
327
  }
300
328
  async #prepareAttachment(workspaceId, definition, connection) {
301
329
  this.#assertOpen();
302
- const candidate = connection ?? new ServerConnection(definition, this.#env, {
330
+ const environment = await this.#workspaceEnvironment(workspaceId);
331
+ const candidate = connection ?? new ServerConnection(definition, environment(this.#env), {
332
+ environment: environment(),
333
+ workingDirectory: async () => {
334
+ const directory = join(await this.#workspaceDirectory(workspaceId), "servers", definition.name);
335
+ await mkdir(directory, { recursive: true, mode: 0o700 });
336
+ return directory;
337
+ },
303
338
  onCatalogChanged: (error) => {
304
339
  if (error !== null) {
305
340
  console.error(`MCP server '${definition.name}' catalog refresh failed:`, error);
306
341
  return;
307
342
  }
343
+ if (this.#closed)
344
+ return;
345
+ this.#dirty.set(this.#pendingKey(workspaceId, definition.name), Symbol());
308
346
  this.#scheduleCatalogRefresh(workspaceId, definition.name);
309
347
  },
310
348
  onInfrastructureError: (error) => {
@@ -322,7 +360,7 @@ export default class Module {
322
360
  executor,
323
361
  runtime: {
324
362
  namespaceOwner: OWNER,
325
- decl: runtimeDecl(definition.name, runtimeServerSummary(definition.name, executor.catalog, this.#summaries.servers.get(definition.name)), this.#expanded.has(definition.name)),
363
+ decl: runtimeDecl(definition.name, runtimeServerSummary(definition.name, executor.catalog, this.#summaries.servers.get(definition.name)), this.#expanded.has(definition.name), executor.catalog.instructions),
326
364
  executor,
327
365
  availability,
328
366
  scheme: new McpResources(definition.name, candidate, executor.catalog),
@@ -372,8 +410,11 @@ export default class Module {
372
410
  const outcomes = new Map();
373
411
  const fresh = [];
374
412
  const consumedPending = new Map();
413
+ const refreshed = new Map();
375
414
  try {
376
415
  for (const [name, value] of enabled) {
416
+ const key = this.#pendingKey(workspaceId, name);
417
+ const invalidation = this.#dirty.get(key);
377
418
  const definition = value;
378
419
  const existing = previous.get(name);
379
420
  const pending = this.#pending.get(this.#pendingKey(workspaceId, name));
@@ -427,7 +468,8 @@ export default class Module {
427
468
  fresh.push(attachment);
428
469
  }
429
470
  next.set(name, attachment);
430
- this.#dirty.delete(this.#pendingKey(workspaceId, name));
471
+ if (attachment !== existing)
472
+ refreshed.set(key, invalidation);
431
473
  }
432
474
  }
433
475
  catch (cause) {
@@ -458,6 +500,17 @@ export default class Module {
458
500
  snapshot: next,
459
501
  commit: async () => {
460
502
  this.#attachments.set(workspaceId, next);
503
+ // {§mcp-catalog-refresh-in-place} A published snapshot acknowledges only
504
+ // its captured invalidation, never a newer notification or an aborted candidate.
505
+ for (const [key, invalidation] of refreshed) {
506
+ if (this.#dirty.get(key) === invalidation)
507
+ this.#clearCatalogRefresh(key);
508
+ }
509
+ for (const key of this.#dirty.keys()) {
510
+ if (key.startsWith(`${workspaceId}:`) && !next.has(key.slice(`${workspaceId}:`.length))) {
511
+ this.#clearCatalogRefresh(key);
512
+ }
513
+ }
461
514
  const retained = new Set([...next.values()].flatMap((attachment) => attachmentConnection(attachment) ?? []));
462
515
  const pendingConnections = new Set([...this.#pending.values()].map(({ connection }) => connection));
463
516
  const obsolete = [...previous.values()]
@@ -506,11 +559,9 @@ export default class Module {
506
559
  if (pending.length > 0) {
507
560
  throw new Error(`MCP workspace ${workspaceId} cannot cool with pending OAuth residency.`);
508
561
  }
509
- for (const [key, timer] of this.#refreshTimers) {
510
- if (!key.startsWith(`${workspaceId}:`))
511
- continue;
512
- clearTimeout(timer);
513
- this.#refreshTimers.delete(key);
562
+ for (const key of this.#dirty.keys()) {
563
+ if (key.startsWith(`${workspaceId}:`))
564
+ this.#clearCatalogRefresh(key);
514
565
  }
515
566
  const attachments = snapshot ?? new Map();
516
567
  const connections = [...attachments.values()].flatMap((attachment) => attachmentConnection(attachment) ?? []);
@@ -576,16 +627,20 @@ export default class Module {
576
627
  if (this.#closed)
577
628
  return;
578
629
  const key = this.#pendingKey(workspaceId, name);
579
- if (this.#refreshTimers.has(key))
630
+ if (!this.#dirty.has(key) || this.#refreshTimers.has(key))
580
631
  return;
581
- const delay = Math.min(250 * (2 ** attempt), 5000);
632
+ const delay = retryDelayMs(retryPacing(this.#env), attempt);
582
633
  const timer = setTimeout(() => {
583
634
  this.#refreshTimers.delete(key);
584
635
  const identity = this.#identities.get(workspaceId);
585
- if (identity === undefined || this.#closed)
636
+ if (identity === undefined || this.#closed) {
637
+ this.#dirty.delete(key);
586
638
  return;
587
- this.#dirty.add(key);
588
- void this.#handleOrThrow().refresh(identity).catch((error) => {
639
+ }
640
+ void this.#handleOrThrow().refresh(identity).then(() => {
641
+ if (this.#dirty.has(key))
642
+ this.#scheduleCatalogRefresh(workspaceId, name, attempt + 1);
643
+ }).catch((error) => {
589
644
  if (statusOf(error) === 409) {
590
645
  this.#scheduleCatalogRefresh(workspaceId, name, attempt + 1);
591
646
  return;
@@ -596,6 +651,11 @@ export default class Module {
596
651
  timer.unref();
597
652
  this.#refreshTimers.set(key, timer);
598
653
  }
654
+ #clearCatalogRefresh(key) {
655
+ this.#dirty.delete(key);
656
+ clearTimeout(this.#refreshTimers.get(key));
657
+ this.#refreshTimers.delete(key);
658
+ }
599
659
  async close() {
600
660
  if (this.#closed)
601
661
  return;
@@ -603,6 +663,7 @@ export default class Module {
603
663
  for (const timer of this.#refreshTimers.values())
604
664
  clearTimeout(timer);
605
665
  this.#refreshTimers.clear();
666
+ this.#dirty.clear();
606
667
  const closing = this.#closeOwned([...this.#connections]);
607
668
  this.#attachments.clear();
608
669
  for (const pending of this.#pending.values())
@@ -613,4 +674,6 @@ export default class Module {
613
674
  await closing;
614
675
  }
615
676
  }
677
+ _a = Module;
678
+ export default Module;
616
679
  //# sourceMappingURL=Module.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Module.js","sourceRoot":"","sources":["../src/Module.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Module.js","sourceRoot":"","sources":["../src/Module.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ /** {§mcp-summary-derivation}: a bounded excerpt, not a generated capability claim. */
2
+ export declare const summaryLine: (text: string | undefined) => string | undefined;
3
+ //# sourceMappingURL=Summary.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Summary.d.ts","sourceRoot":"","sources":["../src/Summary.ts"],"names":[],"mappings":"AAAA,sFAAsF;AACtF,eAAO,MAAM,WAAW,SAAU,MAAM,GAAG,SAAS,KAAG,MAAM,GAAG,SAU/D,CAAC"}
@@ -0,0 +1,15 @@
1
+ /** {§mcp-summary-derivation}: a bounded excerpt, not a generated capability claim. */
2
+ export const summaryLine = (text) => {
3
+ const normalized = text?.replaceAll(/\s+/gu, " ").trim();
4
+ if (normalized === undefined || normalized === "")
5
+ return undefined;
6
+ const boundary = /[.!?](?:\s|$)/u.exec(normalized);
7
+ const sentence = boundary === null ? normalized : normalized.slice(0, boundary.index + 1);
8
+ const cap = 80;
9
+ if (sentence.length <= cap)
10
+ return sentence;
11
+ const clipped = sentence.slice(0, cap + 1);
12
+ const wordBreak = clipped.lastIndexOf(" ");
13
+ return `${wordBreak > cap / 2 ? clipped.slice(0, wordBreak) : clipped.slice(0, cap)}…`;
14
+ };
15
+ //# sourceMappingURL=Summary.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Summary.js","sourceRoot":"","sources":["../src/Summary.ts"],"names":[],"mappings":"AAAA,sFAAsF;AACtF,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,IAAwB,EAAsB,EAAE;IACxE,MAAM,UAAU,GAAG,IAAI,EAAE,UAAU,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IACzD,IAAI,UAAU,KAAK,SAAS,IAAI,UAAU,KAAK,EAAE;QAAE,OAAO,SAAS,CAAC;IACpE,MAAM,QAAQ,GAAG,gBAAgB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACnD,MAAM,QAAQ,GAAG,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;IAC1F,MAAM,GAAG,GAAG,EAAE,CAAC;IACf,IAAI,QAAQ,CAAC,MAAM,IAAI,GAAG;QAAE,OAAO,QAAQ,CAAC;IAC5C,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC;IAC3C,MAAM,SAAS,GAAG,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IAC3C,OAAO,GAAG,SAAS,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC;AAC3F,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"ToolPresentation.d.ts","sourceRoot":"","sources":["../src/ToolPresentation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,8BAA8B,CAAC;AACzD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AA4BhE,eAAO,MAAM,YAAY,WACb,MAAM,UACN,SAAS,IAAI,EAAE,cACX,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,KACxC,mBAuBF,CAAC"}
1
+ {"version":3,"file":"ToolPresentation.d.ts","sourceRoot":"","sources":["../src/ToolPresentation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,8BAA8B,CAAC;AACzD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAShE,eAAO,MAAM,YAAY,WACb,MAAM,UACN,SAAS,IAAI,EAAE,cACX,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,KACxC,mBAuBF,CAAC"}
@@ -1,29 +1,9 @@
1
- const firstSentence = (text, cap = 80) => {
2
- const normalized = text.replaceAll(/\s+/gu, " ").trim();
3
- const boundary = /[.!?](?:\s|$)/u.exec(normalized);
4
- const sentence = boundary === null ? normalized : normalized.slice(0, boundary.index + 1);
5
- if (sentence.length <= cap)
6
- return sentence;
7
- const clipped = sentence.slice(0, cap + 1);
8
- const wordBreak = clipped.lastIndexOf(" ");
9
- return `${wordBreak > cap / 2 ? clipped.slice(0, wordBreak) : clipped.slice(0, cap)}…`;
10
- };
11
- // {§mcp-summary-derivation} — one tool one-liner: authored override, then the
12
- // spec's display title, then the first sentence of the authored description,
13
- // then the tool name. Never the container template.
1
+ import { summaryLine } from "./Summary.js";
2
+ // {§mcp-summary-derivation}: purpose first; label fallback follows MCP title precedence.
14
3
  const toolSummary = (tool, override) => {
15
4
  if (override !== undefined && override.trim() !== "")
16
5
  return override.trim();
17
- const authored = tool.annotations?.title ?? tool.title ?? firstSentenceOrEmpty(tool.description);
18
- if (authored !== undefined && authored.trim() !== "")
19
- return authored.trim();
20
- return tool.name;
21
- };
22
- const firstSentenceOrEmpty = (description) => {
23
- if (description === undefined)
24
- return undefined;
25
- const sentence = firstSentence(description);
26
- return sentence.length === 0 ? undefined : sentence;
6
+ return summaryLine(tool.description) ?? summaryLine(tool.title) ?? summaryLine(tool.annotations?.title) ?? tool.name;
27
7
  };
28
8
  export const toolRegistry = (server, source, overrides) => {
29
9
  const tools = source.toSorted((left, right) => left.name.localeCompare(right.name));
@@ -1 +1 @@
1
- {"version":3,"file":"ToolPresentation.js","sourceRoot":"","sources":["../src/ToolPresentation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ToolPresentation.js","sourceRoot":"","sources":["../src/ToolPresentation.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE3C,yFAAyF;AACzF,MAAM,WAAW,GAAG,CAAC,IAAU,EAAE,QAAiB,EAAU,EAAE;IAC1D,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE;QAAE,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAC;IAC7E,OAAO,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,WAAW,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC;AACzH,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,YAAY,GAAG,CACxB,MAAc,EACd,MAAuB,EACvB,SAAuC,EACpB,EAAE;IACrB,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;IACpF,OAAO;QACH,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;YACtB,OAAO;gBACH,MAAM,EAAE,IAAI,CAAC,IAAI;gBACjB,OAAO,EAAE,WAAW,CAAC,IAAI,EAAE,SAAS,EAAE,GAAG,CAAC,GAAG,MAAM,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;gBACpE,UAAU,EAAE;oBACR,IAAI,EAAE;wBACF,IAAI,EAAE,gBAAgB;wBACtB,QAAQ,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC;qBAC7F;oBACD,MAAM,EAAE;wBACJ,IAAI,EAAE,UAAU;wBAChB,QAAQ,EAAE,IAAI;wBACd,IAAI,EAAE,SAAS;qBAClB;oBACD,WAAW,EAAE,IAAI,CAAC,WAAW;iBAChC;gBACD,GAAG,CAAC,IAAI,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC;aAC3E,CAAC;QACN,CAAC,CAAC;KACL,CAAC;AACN,CAAC,CAAC"}