@cyanheads/mcp-ts-core 0.13.6 → 0.13.7
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/AGENTS.md +3 -3
- package/CLAUDE.md +3 -3
- package/README.md +55 -52
- package/biome.json +1 -1
- package/changelog/0.13.x/0.13.7.md +77 -0
- package/config/tsconfig.base.json +2 -2
- package/dist/config/index.d.ts.map +1 -1
- package/dist/config/index.js +42 -11
- package/dist/config/index.js.map +1 -1
- package/dist/core/app.d.ts.map +1 -1
- package/dist/core/app.js +21 -4
- package/dist/core/app.js.map +1 -1
- package/dist/core/context.d.ts +9 -1
- package/dist/core/context.d.ts.map +1 -1
- package/dist/core/context.js +4 -13
- package/dist/core/context.js.map +1 -1
- package/dist/core/worker.d.ts.map +1 -1
- package/dist/core/worker.js +7 -1
- package/dist/core/worker.js.map +1 -1
- package/dist/mcp-server/handlerContext.d.ts +6 -0
- package/dist/mcp-server/handlerContext.d.ts.map +1 -1
- package/dist/mcp-server/handlerContext.js +3 -0
- package/dist/mcp-server/handlerContext.js.map +1 -1
- package/dist/mcp-server/prompts/prompt-registration.d.ts.map +1 -1
- package/dist/mcp-server/prompts/prompt-registration.js +6 -3
- package/dist/mcp-server/prompts/prompt-registration.js.map +1 -1
- package/dist/mcp-server/tools/utils/toolHandlerFactory.d.ts.map +1 -1
- package/dist/mcp-server/tools/utils/toolHandlerFactory.js +5 -1
- package/dist/mcp-server/tools/utils/toolHandlerFactory.js.map +1 -1
- package/dist/mcp-server/transports/http/httpErrorHandler.d.ts.map +1 -1
- package/dist/mcp-server/transports/http/httpErrorHandler.js +15 -5
- package/dist/mcp-server/transports/http/httpErrorHandler.js.map +1 -1
- package/dist/storage/core/IStorageProvider.d.ts +5 -2
- package/dist/storage/core/IStorageProvider.d.ts.map +1 -1
- package/dist/storage/core/providerHelpers.d.ts +29 -8
- package/dist/storage/core/providerHelpers.d.ts.map +1 -1
- package/dist/storage/core/providerHelpers.js +49 -11
- package/dist/storage/core/providerHelpers.js.map +1 -1
- package/dist/storage/providers/cloudflare/d1Provider.js +4 -4
- package/dist/storage/providers/cloudflare/d1Provider.js.map +1 -1
- package/dist/storage/providers/cloudflare/kvProvider.d.ts +2 -0
- package/dist/storage/providers/cloudflare/kvProvider.d.ts.map +1 -1
- package/dist/storage/providers/cloudflare/kvProvider.js +11 -9
- package/dist/storage/providers/cloudflare/kvProvider.js.map +1 -1
- package/dist/storage/providers/cloudflare/r2Provider.d.ts.map +1 -1
- package/dist/storage/providers/cloudflare/r2Provider.js +8 -5
- package/dist/storage/providers/cloudflare/r2Provider.js.map +1 -1
- package/dist/storage/providers/fileSystem/fileSystemProvider.d.ts +1 -0
- package/dist/storage/providers/fileSystem/fileSystemProvider.d.ts.map +1 -1
- package/dist/storage/providers/fileSystem/fileSystemProvider.js +10 -8
- package/dist/storage/providers/fileSystem/fileSystemProvider.js.map +1 -1
- package/dist/storage/providers/inMemory/inMemoryProvider.d.ts +5 -0
- package/dist/storage/providers/inMemory/inMemoryProvider.d.ts.map +1 -1
- package/dist/storage/providers/inMemory/inMemoryProvider.js +9 -5
- package/dist/storage/providers/inMemory/inMemoryProvider.js.map +1 -1
- package/dist/storage/providers/supabase/supabaseProvider.d.ts.map +1 -1
- package/dist/storage/providers/supabase/supabaseProvider.js +5 -1
- package/dist/storage/providers/supabase/supabaseProvider.js.map +1 -1
- package/dist/testing/index.d.ts +6 -4
- package/dist/testing/index.d.ts.map +1 -1
- package/dist/testing/index.js +6 -4
- package/dist/testing/index.js.map +1 -1
- package/dist/utils/formatting/partialResult.d.ts +28 -2
- package/dist/utils/formatting/partialResult.d.ts.map +1 -1
- package/dist/utils/formatting/partialResult.js +46 -2
- package/dist/utils/formatting/partialResult.js.map +1 -1
- package/dist/utils/internal/error-handler/errorHandler.d.ts +8 -2
- package/dist/utils/internal/error-handler/errorHandler.d.ts.map +1 -1
- package/dist/utils/internal/error-handler/errorHandler.js +27 -16
- package/dist/utils/internal/error-handler/errorHandler.js.map +1 -1
- package/dist/utils/internal/error-handler/mappings.d.ts +1 -0
- package/dist/utils/internal/error-handler/mappings.d.ts.map +1 -1
- package/dist/utils/internal/error-handler/mappings.js +1 -0
- package/dist/utils/internal/error-handler/mappings.js.map +1 -1
- package/dist/utils/internal/performance.d.ts +5 -1
- package/dist/utils/internal/performance.d.ts.map +1 -1
- package/dist/utils/internal/performance.js +13 -8
- package/dist/utils/internal/performance.js.map +1 -1
- package/dist/utils/security/sanitization.d.ts +15 -15
- package/dist/utils/security/sanitization.d.ts.map +1 -1
- package/dist/utils/security/sanitization.js +108 -88
- package/dist/utils/security/sanitization.js.map +1 -1
- package/dist/utils/telemetry/instrumentation.d.ts +6 -2
- package/dist/utils/telemetry/instrumentation.d.ts.map +1 -1
- package/dist/utils/telemetry/instrumentation.js +23 -8
- package/dist/utils/telemetry/instrumentation.js.map +1 -1
- package/framework-skills/add-app-tool/SKILL.md +12 -18
- package/framework-skills/add-prompt/SKILL.md +3 -1
- package/framework-skills/add-provider/SKILL.md +14 -4
- package/framework-skills/add-resource/SKILL.md +3 -3
- package/framework-skills/add-tool/SKILL.md +22 -7
- package/framework-skills/api-canvas/SKILL.md +2 -2
- package/framework-skills/api-config/SKILL.md +4 -3
- package/framework-skills/api-context/SKILL.md +8 -5
- package/framework-skills/api-errors/SKILL.md +7 -3
- package/framework-skills/api-linter/SKILL.md +8 -8
- package/framework-skills/api-telemetry/SKILL.md +9 -4
- package/framework-skills/api-testing/SKILL.md +21 -13
- package/framework-skills/api-utils/SKILL.md +3 -3
- package/framework-skills/api-utils/references/security.md +7 -6
- package/framework-skills/code-simplifier/SKILL.md +31 -18
- package/framework-skills/design-mcp-server/SKILL.md +62 -35
- package/framework-skills/git-wrapup/SKILL.md +16 -10
- package/framework-skills/maintenance/SKILL.md +2 -2
- package/framework-skills/orchestrations/SKILL.md +1 -1
- package/framework-skills/orchestrations/workflows/greenfield-build.md +15 -8
- package/framework-skills/polish-docs-meta/SKILL.md +2 -2
- package/framework-skills/polish-docs-meta/references/package-meta.md +1 -1
- package/framework-skills/polish-docs-meta/references/readme.md +3 -3
- package/framework-skills/release-and-publish/SKILL.md +6 -4
- package/framework-skills/release-pr-review/SKILL.md +18 -1
- package/framework-skills/report-issue-framework/SKILL.md +2 -2
- package/framework-skills/report-issue-local/SKILL.md +3 -3
- package/framework-skills/security-pass/SKILL.md +11 -3
- package/framework-skills/tool-defs-analysis/SKILL.md +3 -3
- package/package.json +15 -36
- package/templates/.env.example +3 -1
- package/templates/.github/ISSUE_TEMPLATE/feature_request.yml +1 -1
- package/templates/AGENTS.md +2 -2
- package/templates/CLAUDE.md +2 -2
- package/templates/Dockerfile +4 -4
- package/templates/package.json +3 -3
- package/templates/src/mcp-server/prompts/definitions/echo.prompt.ts +2 -4
- package/templates/src/mcp-server/resources/definitions/echo-app-ui.app-resource.ts +51 -14
- package/templates/src/mcp-server/resources/definitions/echo.resource.ts +1 -1
- package/templates/src/mcp-server/tools/definitions/echo-app.app-tool.ts +2 -3
- package/templates/src/mcp-server/tools/definitions/echo.tool.ts +1 -1
- package/dist/utils/telemetry/index.d.ts +0 -12
- package/dist/utils/telemetry/index.d.ts.map +0 -1
- package/dist/utils/telemetry/index.js +0 -12
- package/dist/utils/telemetry/index.js.map +0 -1
|
@@ -11,13 +11,40 @@ async function loadSanitizeHtml() {
|
|
|
11
11
|
})).default;
|
|
12
12
|
return _sanitizeHtmlFn;
|
|
13
13
|
}
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
14
|
+
const URL_MAX_LENGTH = 2084;
|
|
15
|
+
const URL_FORBIDDEN_CHARS = /[\s<>]/;
|
|
16
|
+
const URL_AUTHORITY = /^[a-z][a-z0-9+.-]*:(?:\/\/)?([^/?#]*)/i;
|
|
17
|
+
const URL_HOST_LABEL = String.raw `[\p{L}\p{N}_](?:[\p{L}\p{M}\p{N}_-]*[\p{L}\p{M}\p{N}_])?`;
|
|
18
|
+
const URL_HOST = new RegExp(String.raw `^(?:${URL_HOST_LABEL}(?:\.${URL_HOST_LABEL})*\.?|\[[0-9a-f:.]+\])$`, 'iu');
|
|
19
|
+
const IPV4_HOST = /^\d+\.\d+\.\d+\.\d+$/;
|
|
20
|
+
/**
|
|
21
|
+
* Validates `input` as an absolute URL with a host, using a scheme from `protocols`.
|
|
22
|
+
*
|
|
23
|
+
* Rejects whitespace, `<`, or `>` anywhere, inputs over 2084 characters, and hosts outside
|
|
24
|
+
* letters, digits, `_`, and non-edge `-` labels (or a bracketed IPv6 literal). The host is
|
|
25
|
+
* checked as written and must match the host the WHATWG parser resolves, so inputs that read
|
|
26
|
+
* as one host but fetch another (a backslash before `@`, an obfuscated IPv4 form such as
|
|
27
|
+
* `2130706433` or `127.1`) are refused. Single-label hosts such as `localhost` are accepted.
|
|
28
|
+
*/
|
|
29
|
+
function isAllowedUrl(input, protocols) {
|
|
30
|
+
if (!input || input.length > URL_MAX_LENGTH || URL_FORBIDDEN_CHARS.test(input))
|
|
31
|
+
return false;
|
|
32
|
+
const url = URL.parse(input);
|
|
33
|
+
if (!url || !protocols.some((protocol) => `${protocol.toLowerCase()}:` === url.protocol)) {
|
|
34
|
+
return false;
|
|
35
|
+
}
|
|
36
|
+
const authority = URL_AUTHORITY.exec(input)?.[1] ?? '';
|
|
37
|
+
const host = authority.slice(authority.lastIndexOf('@') + 1).replace(/:\d*$/, '');
|
|
38
|
+
if (!URL_HOST.test(host))
|
|
39
|
+
return false;
|
|
40
|
+
// The host as written must be the host the parser resolved — `http://evil.com\@good.com`
|
|
41
|
+
// reads as good.com but parses (and fetches) as evil.com.
|
|
42
|
+
if (URL.parse(`${url.protocol}//${host}`)?.hostname !== url.hostname)
|
|
43
|
+
return false;
|
|
44
|
+
return !IPV4_HOST.test(url.hostname) || url.hostname === host;
|
|
20
45
|
}
|
|
46
|
+
/** A plain decimal: optional sign, optional fraction, no exponent or separators. */
|
|
47
|
+
const NUMERIC_STRING = /^[+-]?([0-9]*\.)?[0-9]+$/;
|
|
21
48
|
// Dynamically import 'path' only in Node.js environments.
|
|
22
49
|
// Top-level await ensures the module is loaded before any sanitizePath call.
|
|
23
50
|
let pathModule;
|
|
@@ -253,22 +280,21 @@ export class Sanitization {
|
|
|
253
280
|
/**
|
|
254
281
|
* Sanitizes a string according to its intended usage context.
|
|
255
282
|
*
|
|
256
|
-
* This method is **async** because
|
|
257
|
-
* depending on the requested context.
|
|
283
|
+
* This method is **async** because the HTML-stripping contexts lazy-load `sanitize-html`.
|
|
258
284
|
*
|
|
259
285
|
* | `context` | Behavior |
|
|
260
286
|
* |----------------|----------|
|
|
261
287
|
* | `'text'` | Strips all HTML tags and attributes (default). |
|
|
262
288
|
* | `'html'` | Runs full HTML sanitization via `sanitizeHtml` (respects `allowedTags`/`allowedAttributes`). |
|
|
263
289
|
* | `'attribute'` | Strips all tags and attributes — safe for use inside an HTML attribute value. |
|
|
264
|
-
* | `'url'` | Validates the URL
|
|
290
|
+
* | `'url'` | Validates the URL as `sanitizeUrl` does (http/https only); returns `''` if invalid. |
|
|
265
291
|
* | `'javascript'` | **Disallowed.** Always throws `McpError`. |
|
|
266
292
|
*
|
|
267
293
|
* @param input - The string to sanitize. Returns `''` immediately if falsy.
|
|
268
294
|
* @param options - Context and optional allowlist overrides.
|
|
269
295
|
* @returns Promise resolving to the sanitized string, or `''` for invalid URLs.
|
|
270
296
|
* @throws {McpError} With `ValidationError` if `context` is `'javascript'`.
|
|
271
|
-
* @throws {McpError} With `ConfigurationError` if
|
|
297
|
+
* @throws {McpError} With `ConfigurationError` if `sanitize-html` is needed and not installed.
|
|
272
298
|
* @example
|
|
273
299
|
* ```ts
|
|
274
300
|
* await sanitization.sanitizeString('<b>hello</b>', { context: 'text' });
|
|
@@ -301,19 +327,14 @@ export class Sanitization {
|
|
|
301
327
|
return sanitizeHtmlFn(input, { allowedTags: [], allowedAttributes: {} });
|
|
302
328
|
}
|
|
303
329
|
case 'url': {
|
|
304
|
-
|
|
305
|
-
if (!v.isURL(input, {
|
|
306
|
-
protocols: ['http', 'https'],
|
|
307
|
-
require_protocol: true,
|
|
308
|
-
require_host: true,
|
|
309
|
-
})) {
|
|
330
|
+
if (!isAllowedUrl(input, ['http', 'https'])) {
|
|
310
331
|
logger.warning('Potentially invalid URL detected during string sanitization (context: url)', requestContextService.createRequestContext({
|
|
311
332
|
operation: 'Sanitization.sanitizeString.urlWarning',
|
|
312
333
|
additionalContext: { invalidUrlAttempt: input },
|
|
313
334
|
}));
|
|
314
335
|
return '';
|
|
315
336
|
}
|
|
316
|
-
return
|
|
337
|
+
return input.trim();
|
|
317
338
|
}
|
|
318
339
|
case 'javascript':
|
|
319
340
|
logger.error('Attempted JavaScript sanitization via sanitizeString, which is disallowed.', requestContextService.createRequestContext({
|
|
@@ -330,17 +351,19 @@ export class Sanitization {
|
|
|
330
351
|
/**
|
|
331
352
|
* Validates and sanitizes a URL string.
|
|
332
353
|
*
|
|
333
|
-
*
|
|
354
|
+
* Async for API stability; validation is built in and needs no peer dependency.
|
|
334
355
|
*
|
|
335
|
-
* Validation requires a protocol and host.
|
|
336
|
-
*
|
|
356
|
+
* Validation requires a protocol and host. Hosts may be domains, single-label names such as
|
|
357
|
+
* `localhost`, IPv4 dotted quads, or bracketed IPv6 literals. Whitespace, `<`, and `>` are
|
|
358
|
+
* rejected anywhere, as are URLs over 2084 characters. Even if a protocol appears in
|
|
359
|
+
* `allowedProtocols`, the pseudo-protocols `javascript:`, `data:`, and `vbscript:` are always
|
|
360
|
+
* rejected.
|
|
337
361
|
*
|
|
338
362
|
* @param input - The URL string to sanitize. Leading/trailing whitespace is trimmed.
|
|
339
363
|
* @param allowedProtocols - URL schemes that are permitted. Defaults to `['http', 'https']`.
|
|
340
364
|
* @returns Promise resolving to the trimmed, validated URL string.
|
|
341
365
|
* @throws {McpError} With `ValidationError` if the URL is invalid, uses a disallowed protocol,
|
|
342
366
|
* or uses a blocked pseudo-protocol (`javascript:`, `data:`, `vbscript:`).
|
|
343
|
-
* @throws {McpError} With `ConfigurationError` if `validator` is not installed.
|
|
344
367
|
* @example
|
|
345
368
|
* ```ts
|
|
346
369
|
* await sanitization.sanitizeUrl('https://example.com/path');
|
|
@@ -353,28 +376,25 @@ export class Sanitization {
|
|
|
353
376
|
* // throws McpError (ValidationError)
|
|
354
377
|
* ```
|
|
355
378
|
*/
|
|
356
|
-
|
|
357
|
-
try {
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
379
|
+
sanitizeUrl(input, allowedProtocols = ['http', 'https']) {
|
|
380
|
+
return Promise.try(() => {
|
|
381
|
+
try {
|
|
382
|
+
const trimmedInput = input.trim();
|
|
383
|
+
if (!isAllowedUrl(trimmedInput, allowedProtocols)) {
|
|
384
|
+
throw new Error('Invalid URL format or protocol not in allowed list.');
|
|
385
|
+
}
|
|
386
|
+
const lowercasedInput = trimmedInput.toLowerCase();
|
|
387
|
+
if (lowercasedInput.startsWith('javascript:') ||
|
|
388
|
+
lowercasedInput.startsWith('data:') ||
|
|
389
|
+
lowercasedInput.startsWith('vbscript:')) {
|
|
390
|
+
throw new Error('Disallowed pseudo-protocol (javascript:, data:, or vbscript:) in URL.');
|
|
391
|
+
}
|
|
392
|
+
return trimmedInput;
|
|
366
393
|
}
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
lowercasedInput.startsWith('data:') ||
|
|
370
|
-
lowercasedInput.startsWith('vbscript:')) {
|
|
371
|
-
throw new Error('Disallowed pseudo-protocol (javascript:, data:, or vbscript:) in URL.');
|
|
394
|
+
catch (error) {
|
|
395
|
+
throw validationError(error instanceof Error ? error.message : 'Invalid or unsafe URL provided.', { input });
|
|
372
396
|
}
|
|
373
|
-
|
|
374
|
-
}
|
|
375
|
-
catch (error) {
|
|
376
|
-
throw validationError(error instanceof Error ? error.message : 'Invalid or unsafe URL provided.', { input });
|
|
377
|
-
}
|
|
397
|
+
});
|
|
378
398
|
}
|
|
379
399
|
/**
|
|
380
400
|
* Sanitizes a file path, preventing path traversal attacks and normalizing format.
|
|
@@ -540,10 +560,10 @@ export class Sanitization {
|
|
|
540
560
|
/**
|
|
541
561
|
* Validates a numeric input and optionally clamps it to a range.
|
|
542
562
|
*
|
|
543
|
-
*
|
|
544
|
-
* dependency, which is lazy-loaded on first call. Numeric inputs bypass the lazy load.
|
|
563
|
+
* Async for API stability; validation is built in and needs no peer dependency.
|
|
545
564
|
*
|
|
546
|
-
* - String inputs: trimmed
|
|
565
|
+
* - String inputs: trimmed, required to be a plain decimal (optional sign and fraction, no
|
|
566
|
+
* exponent or separators), then parsed with `parseFloat`.
|
|
547
567
|
* - Number inputs: used directly.
|
|
548
568
|
* - `NaN` and `Infinity` are always rejected.
|
|
549
569
|
* - If `min` or `max` are provided, the value is silently clamped (a debug log is emitted).
|
|
@@ -553,7 +573,6 @@ export class Sanitization {
|
|
|
553
573
|
* @param max - Inclusive upper bound. If the value is above this, it is clamped to `max`.
|
|
554
574
|
* @returns Promise resolving to the validated (and potentially clamped) number.
|
|
555
575
|
* @throws {McpError} With `ValidationError` if the input is not numeric, is `NaN`, or is `Infinity`.
|
|
556
|
-
* @throws {McpError} With `ConfigurationError` if `validator` is not installed (string input only).
|
|
557
576
|
* @example
|
|
558
577
|
* ```ts
|
|
559
578
|
* await sanitization.sanitizeNumber('42.5');
|
|
@@ -566,50 +585,51 @@ export class Sanitization {
|
|
|
566
585
|
* // throws McpError (ValidationError)
|
|
567
586
|
* ```
|
|
568
587
|
*/
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
588
|
+
sanitizeNumber(input, min, max) {
|
|
589
|
+
return Promise.try(() => {
|
|
590
|
+
let value;
|
|
591
|
+
if (typeof input === 'string') {
|
|
592
|
+
const trimmedInput = input.trim();
|
|
593
|
+
if (!NUMERIC_STRING.test(trimmedInput)) {
|
|
594
|
+
throw validationError('Invalid number format: input is empty or not numeric.', { input });
|
|
595
|
+
}
|
|
596
|
+
value = parseFloat(trimmedInput);
|
|
576
597
|
}
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
|
|
587
|
-
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
clamped
|
|
599
|
-
|
|
600
|
-
|
|
601
|
-
|
|
602
|
-
|
|
603
|
-
|
|
604
|
-
|
|
605
|
-
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
}
|
|
612
|
-
return value;
|
|
598
|
+
else if (typeof input === 'number') {
|
|
599
|
+
value = input;
|
|
600
|
+
}
|
|
601
|
+
else {
|
|
602
|
+
throw validationError('Invalid input type: expected number or string.', {
|
|
603
|
+
input: String(input),
|
|
604
|
+
});
|
|
605
|
+
}
|
|
606
|
+
if (Number.isNaN(value) || !Number.isFinite(value)) {
|
|
607
|
+
throw validationError('Invalid number value (NaN or Infinity).', { input });
|
|
608
|
+
}
|
|
609
|
+
let clamped = false;
|
|
610
|
+
const originalValueForLog = value;
|
|
611
|
+
if (min !== undefined && value < min) {
|
|
612
|
+
value = min;
|
|
613
|
+
clamped = true;
|
|
614
|
+
}
|
|
615
|
+
if (max !== undefined && value > max) {
|
|
616
|
+
value = max;
|
|
617
|
+
clamped = true;
|
|
618
|
+
}
|
|
619
|
+
if (clamped) {
|
|
620
|
+
logger.debug('Number clamped to range.', requestContextService.createRequestContext({
|
|
621
|
+
operation: 'Sanitization.sanitizeNumber.clamped',
|
|
622
|
+
additionalContext: {
|
|
623
|
+
originalInput: String(input),
|
|
624
|
+
parsedValue: originalValueForLog,
|
|
625
|
+
minValue: min,
|
|
626
|
+
maxValue: max,
|
|
627
|
+
clampedValue: value,
|
|
628
|
+
},
|
|
629
|
+
}));
|
|
630
|
+
}
|
|
631
|
+
return value;
|
|
632
|
+
});
|
|
613
633
|
}
|
|
614
634
|
/**
|
|
615
635
|
* Produces a log-safe deep clone of `input` with sensitive field values replaced by `'[REDACTED]'`.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sanitization.js","sourceRoot":"","sources":["../../../src/utils/security/sanitization.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"sanitization.js","sourceRoot":"","sources":["../../../src/utils/security/sanitization.ts"],"names":[],"mappings":"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"}
|
|
@@ -23,8 +23,12 @@ export declare let sdk: NodeSDK | null;
|
|
|
23
23
|
* Worker bundle failures.
|
|
24
24
|
*
|
|
25
25
|
* Configures:
|
|
26
|
-
* - OTLP trace exporter + `BatchSpanProcessor` (when
|
|
27
|
-
*
|
|
26
|
+
* - OTLP trace exporter + `BatchSpanProcessor` (when a traces endpoint resolves:
|
|
27
|
+
* `OTEL_EXPORTER_OTLP_TRACES_ENDPOINT`, else `OTEL_EXPORTER_OTLP_ENDPOINT` + `v1/traces`)
|
|
28
|
+
* - OTLP metrics exporter + `PeriodicExportingMetricReader` at 15 s intervals (when a metrics
|
|
29
|
+
* endpoint resolves: `OTEL_EXPORTER_OTLP_METRICS_ENDPOINT`, else the base + `v1/metrics`)
|
|
30
|
+
* - No log record processors, and no metric reader when no metrics endpoint resolves — so
|
|
31
|
+
* `NodeSDK`'s env-driven defaults never export anything the framework config did not ask for
|
|
28
32
|
* - `TraceIdRatioBasedSampler` using `config.openTelemetry.samplingRatio`
|
|
29
33
|
* - Node auto-instrumentations (HTTP enabled, FS disabled)
|
|
30
34
|
* - Pino instrumentation that injects `trace_id`/`span_id` into log records
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"instrumentation.d.ts","sourceRoot":"","sources":["../../../src/utils/telemetry/instrumentation.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAKvD;;;;;GAKG;AACH,eAAO,IAAI,GAAG,EAAE,OAAO,GAAG,IAAW,CAAC;AAmEtC
|
|
1
|
+
{"version":3,"file":"instrumentation.d.ts","sourceRoot":"","sources":["../../../src/utils/telemetry/instrumentation.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAKvD;;;;;GAKG;AACH,eAAO,IAAI,GAAG,EAAE,OAAO,GAAG,IAAW,CAAC;AAmEtC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,wBAAsB,uBAAuB,IAAI,OAAO,CAAC,IAAI,CAAC,CAkI7D;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAsB,qBAAqB,CAAC,SAAS,SAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAsB3E"}
|
|
@@ -80,8 +80,12 @@ function detectCloudResource() {
|
|
|
80
80
|
* Worker bundle failures.
|
|
81
81
|
*
|
|
82
82
|
* Configures:
|
|
83
|
-
* - OTLP trace exporter + `BatchSpanProcessor` (when
|
|
84
|
-
*
|
|
83
|
+
* - OTLP trace exporter + `BatchSpanProcessor` (when a traces endpoint resolves:
|
|
84
|
+
* `OTEL_EXPORTER_OTLP_TRACES_ENDPOINT`, else `OTEL_EXPORTER_OTLP_ENDPOINT` + `v1/traces`)
|
|
85
|
+
* - OTLP metrics exporter + `PeriodicExportingMetricReader` at 15 s intervals (when a metrics
|
|
86
|
+
* endpoint resolves: `OTEL_EXPORTER_OTLP_METRICS_ENDPOINT`, else the base + `v1/metrics`)
|
|
87
|
+
* - No log record processors, and no metric reader when no metrics endpoint resolves — so
|
|
88
|
+
* `NodeSDK`'s env-driven defaults never export anything the framework config did not ask for
|
|
85
89
|
* - `TraceIdRatioBasedSampler` using `config.openTelemetry.samplingRatio`
|
|
86
90
|
* - Node auto-instrumentations (HTTP enabled, FS disabled)
|
|
87
91
|
* - Pino instrumentation that injects `trace_id`/`span_id` into log records
|
|
@@ -135,7 +139,7 @@ export async function initializeOpenTelemetry() {
|
|
|
135
139
|
const tracesEndpoint = config.openTelemetry.tracesEndpoint;
|
|
136
140
|
const metricsEndpoint = config.openTelemetry.metricsEndpoint;
|
|
137
141
|
if (!tracesEndpoint && !metricsEndpoint) {
|
|
138
|
-
diag.warn('OTEL_ENABLED is true, but no OTLP endpoint for traces or metrics is configured. OpenTelemetry will not export any telemetry.');
|
|
142
|
+
diag.warn('OTEL_ENABLED is true, but no OTLP endpoint for traces or metrics is configured. OpenTelemetry will not export any telemetry. Set OTEL_EXPORTER_OTLP_ENDPOINT, or the signal-specific OTEL_EXPORTER_OTLP_TRACES_ENDPOINT / OTEL_EXPORTER_OTLP_METRICS_ENDPOINT.');
|
|
139
143
|
}
|
|
140
144
|
const resource = resourceFromAttributes({
|
|
141
145
|
[ATTR_SERVICE_NAME]: config.openTelemetry.serviceName,
|
|
@@ -152,16 +156,27 @@ export async function initializeOpenTelemetry() {
|
|
|
152
156
|
else {
|
|
153
157
|
diag.info('No OTLP traces endpoint configured. Traces will not be exported.');
|
|
154
158
|
}
|
|
155
|
-
const
|
|
156
|
-
|
|
159
|
+
const metricReaders = [];
|
|
160
|
+
if (metricsEndpoint) {
|
|
161
|
+
diag.info(`Using OTLP exporter for metrics, endpoint: ${metricsEndpoint}`);
|
|
162
|
+
metricReaders.push(new PeriodicExportingMetricReader({
|
|
157
163
|
exporter: new OTLPMetricExporter({ url: metricsEndpoint }),
|
|
158
164
|
exportIntervalMillis: 15000,
|
|
159
|
-
})
|
|
160
|
-
|
|
165
|
+
}));
|
|
166
|
+
}
|
|
167
|
+
else {
|
|
168
|
+
diag.info('No OTLP metrics endpoint configured. Metrics will not be exported.');
|
|
169
|
+
}
|
|
170
|
+
/**
|
|
171
|
+
* All three lists are passed explicitly, empty or not: an omitted one
|
|
172
|
+
* makes `NodeSDK` build its own OTLP exporter from `OTEL_*` env vars
|
|
173
|
+
* (defaulting to localhost:4318), exporting outside the framework config.
|
|
174
|
+
*/
|
|
161
175
|
sdk = new NodeSDK({
|
|
162
176
|
resource,
|
|
163
177
|
spanProcessors,
|
|
164
|
-
|
|
178
|
+
metricReaders,
|
|
179
|
+
logRecordProcessors: [],
|
|
165
180
|
sampler: new TraceIdRatioBasedSampler(config.openTelemetry.samplingRatio),
|
|
166
181
|
instrumentations: [
|
|
167
182
|
new HttpInstrumentation({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"instrumentation.js","sourceRoot":"","sources":["../../../src/utils/telemetry/instrumentation.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAE3E,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAE3C,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAE1D;;;;;GAKG;AACH,MAAM,CAAC,IAAI,GAAG,GAAmB,IAAI,CAAC;AAEtC,kCAAkC;AAClC,IAAI,iBAAiB,GAAG,KAAK,CAAC;AAC9B,IAAI,qBAAqB,GAAyB,IAAI,CAAC;AAEvD;;;;;;;;GAQG;AACH,SAAS,aAAa;IACpB,OAAO,CACL,WAAW,CAAC,MAAM;QAClB,CAAC,WAAW,CAAC,YAAY;QACzB,OAAO,OAAO,EAAE,QAAQ,EAAE,IAAI,KAAK,QAAQ;QAC3C,OAAO,OAAO,CAAC,GAAG,KAAK,QAAQ,CAChC,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,SAAS,mBAAmB;IAC1B,6EAA6E;IAC7E,4EAA4E;IAC5E,yEAAyE;IACzE,MAAM,cAAc,GAAG,gBAAgB,CAAC;IACxC,MAAM,cAAc,GAAG,gBAAgB,CAAC;IACxC,MAAM,YAAY,GAAG,cAAc,CAAC;IAEpC,MAAM,KAAK,GAA2B,EAAE,CAAC;IAEzC,qBAAqB;IACrB,IAAI,WAAW,CAAC,YAAY,EAAE,CAAC;QAC7B,KAAK,CAAC,cAAc,CAAC,GAAG,YAAY,CAAC;QACrC,KAAK,CAAC,cAAc,CAAC,GAAG,oBAAoB,CAAC;IAC/C,CAAC;IAED,aAAa;IACb,IAAI,OAAO,OAAO,KAAK,WAAW,IAAI,OAAO,CAAC,GAAG,EAAE,wBAAwB,EAAE,CAAC;QAC5E,KAAK,CAAC,cAAc,CAAC,GAAG,KAAK,CAAC;QAC9B,KAAK,CAAC,cAAc,CAAC,GAAG,YAAY,CAAC;QACrC,IAAI,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC;YAC3B,KAAK,CAAC,YAAY,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC;QAC/C,CAAC;IACH,CAAC;IAED,gCAAgC;IAChC,IAAI,OAAO,OAAO,KAAK,WAAW,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,eAAe,IAAI,OAAO,CAAC,GAAG,EAAE,SAAS,CAAC,EAAE,CAAC;QAC/F,KAAK,CAAC,cAAc,CAAC,GAAG,KAAK,CAAC;QAC9B,KAAK,CAAC,cAAc,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,eAAe,CAAC;QAC9F,IAAI,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC;YAC3B,KAAK,CAAC,YAAY,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC;QAC/C,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED
|
|
1
|
+
{"version":3,"file":"instrumentation.js","sourceRoot":"","sources":["../../../src/utils/telemetry/instrumentation.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,7 +4,7 @@ description: >
|
|
|
4
4
|
Scaffold an MCP App tool + UI resource pair. Use when the user asks to add a tool with interactive UI, create an MCP App, or build a visual/interactive tool.
|
|
5
5
|
metadata:
|
|
6
6
|
author: cyanheads
|
|
7
|
-
version: "1.
|
|
7
|
+
version: "1.6"
|
|
8
8
|
audience: external
|
|
9
9
|
type: reference
|
|
10
10
|
---
|
|
@@ -175,38 +175,31 @@ export const {{RESOURCE_EXPORT}} = appResource('ui://{{tool-name}}/app.html', {
|
|
|
175
175
|
ctx.log.debug('Serving app UI.', { resourceUri: ctx.uri?.href });
|
|
176
176
|
return APP_HTML;
|
|
177
177
|
},
|
|
178
|
-
|
|
179
|
-
list: () => ({
|
|
180
|
-
resources: [
|
|
181
|
-
{
|
|
182
|
-
uri: 'ui://{{tool-name}}/app.html',
|
|
183
|
-
name: '{{TOOL_TITLE}}',
|
|
184
|
-
description: 'Interactive UI for {{tool_name}}.',
|
|
185
|
-
},
|
|
186
|
-
],
|
|
187
|
-
}),
|
|
188
178
|
});
|
|
189
179
|
```
|
|
190
180
|
|
|
181
|
+
No `list` callback: `ui://{{tool-name}}/app.html` has no template variables, so it registers as a fixed resource that `resources/list` already reports. Registration ignores `list` on a variable-free URI.
|
|
182
|
+
|
|
191
183
|
## UI Notes
|
|
192
184
|
|
|
193
185
|
- **Ship self-contained HTML.** Author with Vite + `vite-plugin-singlefile` or inline the SDK. Live CDN imports in a `ui://` resource are a CSP footgun (every domain has to be whitelisted on `_meta.ui.csp.resourceDomains`), a supply-chain footgun (third-party JS executes inside the host's iframe), and a runtime footgun (every render needs network). The `unpkg` line in the template is for prototyping only.
|
|
194
186
|
- **CSP.** MCP Apps iframes run under deny-by-default CSP. With `appResource()`, put `_meta.ui.csp.resourceDomains` on the definition; the builder mirrors it into returned `resources/read` content items. With plain `resource()`, attach `_meta.ui` yourself in `format()`.
|
|
195
187
|
- **Adopt the host's visual identity, don't impose your own.** App UIs render inside the host's iframe alongside its native UI. Three host hooks layer on top of your CSS:
|
|
196
188
|
- `applyDocumentTheme(hostContext.theme)` — sets `color-scheme` and a `data-theme` attribute on `<html>`
|
|
197
|
-
- `applyHostStyleVariables(hostContext.styles.variables)` — installs host CSS custom properties on `:root
|
|
189
|
+
- `applyHostStyleVariables(hostContext.styles.variables)` — installs host CSS custom properties on `:root`. The MCP Apps spec fixes the names (`McpUiStyleVariableKey`): `--color-background-primary`, `--color-text-primary`, `--color-border-primary`, `--font-sans`, `--border-radius-md`, and so on. A host may send any subset.
|
|
198
190
|
- `applyHostFonts(hostContext.styles.css.fonts)` — installs `@font-face` rules for the host's font stack
|
|
199
191
|
|
|
200
|
-
Author CSS to *consume* these via `var(--
|
|
201
|
-
- **Pre-connect baseline.** `app.connect()` is async — host context arrives a frame or two after first paint. Without a baseline, the UI flashes unstyled or wrong-themed on light hosts. Ship a `prefers-color-scheme
|
|
192
|
+
Author CSS to *consume* these via `var(--color-background-primary, var(--bg))` — the host variable first, a local token as the fallback. Don't hardcode brand colors that fight the host.
|
|
193
|
+
- **Pre-connect baseline.** `app.connect()` is async — host context arrives a frame or two after first paint. Without a baseline, the UI flashes unstyled or wrong-themed on light hosts. Ship local tokens with a light default, a `prefers-color-scheme` dark override, and a `data-theme` pin so the first frame is sensible:
|
|
202
194
|
|
|
203
195
|
```css
|
|
204
196
|
:root { color-scheme: light dark; --bg: #fff; --fg: #111; }
|
|
205
|
-
@media (prefers-color-scheme: dark) { :root { --bg: #0c0d12; --fg: #ededef; } }
|
|
206
|
-
|
|
197
|
+
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) { --bg: #0c0d12; --fg: #ededef; } }
|
|
198
|
+
:root[data-theme="dark"] { --bg: #0c0d12; --fg: #ededef; }
|
|
199
|
+
body { background: var(--color-background-primary, var(--bg)); color: var(--color-text-primary, var(--fg)); }
|
|
207
200
|
```
|
|
208
201
|
|
|
209
|
-
|
|
202
|
+
Once host context is applied, the host's variables win; the local tokens cover the gap before it arrives and any variable the host omits.
|
|
210
203
|
- **`format()` for app tools.** The first `text` content block is typically JSON that the UI parses via `ontoolresult`. Additional blocks are the human-readable fallback that non-app hosts and LLMs consume — they must render every field the LLM needs to reason about. JSON-only payloads leave model-visible context blind.
|
|
211
204
|
- **App resource `format()`.** `appResource()` already preserves raw HTML for the default app MIME type and mirrors definition `_meta.ui` into content items. Add a custom `format()` only when you need extra per-read metadata or non-default content shaping.
|
|
212
205
|
|
|
@@ -237,7 +230,8 @@ If the repo already uses `definitions/index.ts` barrels, update those instead of
|
|
|
237
230
|
- [ ] App resource `_meta.ui.csp.resourceDomains` lists every external domain loaded by the UI
|
|
238
231
|
- [ ] UI bundles or inlines the client SDK for the shipped HTML, and handles `app.ontoolresult`
|
|
239
232
|
- [ ] UI applies host context updates via `app.onhostcontextchanged`
|
|
240
|
-
- [ ]
|
|
233
|
+
- [ ] UI CSS reads host variables with local fallbacks (`var(--color-background-primary, var(--bg))`) over a light/dark baseline
|
|
234
|
+
- [ ] No `list` callback on the fixed `ui://…/app.html` resource — `resources/list` already reports it
|
|
241
235
|
- [ ] Both registered in the project's existing `createApp()` arrays (directly or via barrels)
|
|
242
236
|
- [ ] Handler tested directly via `createMockContext()`, or `add-test` skill run to scaffold the test file
|
|
243
237
|
- [ ] `bun run devcheck` passes (linter validates `_meta.ui` and tool/resource pairing)
|
|
@@ -4,7 +4,7 @@ description: >
|
|
|
4
4
|
Scaffold a new MCP prompt template. Use when the user asks to add a prompt, create a reusable message template, or define a prompt for LLM interactions.
|
|
5
5
|
metadata:
|
|
6
6
|
author: cyanheads
|
|
7
|
-
version: "1.
|
|
7
|
+
version: "1.4"
|
|
8
8
|
audience: external
|
|
9
9
|
type: reference
|
|
10
10
|
---
|
|
@@ -121,6 +121,8 @@ export const codeReview = prompt('code_review', {
|
|
|
121
121
|
|
|
122
122
|
`completable()` is transparent to the linter — it does not affect `describe-on-fields` or `schema-serializable` rules. All completable-wrapped fields still require `.describe()` on the underlying schema.
|
|
123
123
|
|
|
124
|
+
For an optional argument, wrap the inner schema and apply `.optional()` outside: `completable(z.string().describe('…'), cb).optional()`. The SDK unwraps `.optional()` before checking for a completer, so `completable(z.string().optional(), cb)` type-checks but never completes.
|
|
125
|
+
|
|
124
126
|
## Checklist
|
|
125
127
|
|
|
126
128
|
- [ ] File created at `src/mcp-server/prompts/definitions/{{prompt-name}}.prompt.ts`
|
|
@@ -4,7 +4,7 @@ description: >
|
|
|
4
4
|
Add a new storage or service provider to the core package. Use when implementing a new backend for StorageService (e.g., a new database) or a new service provider (e.g., a new LLM backend).
|
|
5
5
|
metadata:
|
|
6
6
|
author: cyanheads
|
|
7
|
-
version: "1.
|
|
7
|
+
version: "1.2"
|
|
8
8
|
audience: internal
|
|
9
9
|
type: reference
|
|
10
10
|
---
|
|
@@ -57,10 +57,19 @@ Provider file location and naming differ by domain:
|
|
|
57
57
|
on `src/storage/core/providerHelpers.ts` rather than re-deriving what the existing
|
|
58
58
|
providers share:
|
|
59
59
|
|
|
60
|
+
- `serializeValue` / `encodeEntries` — the JSON guard every provider runs before it
|
|
61
|
+
writes. `serializeValue` returns the value's JSON text and throws
|
|
62
|
+
`McpError(SerializationError)` for a `bigint`, a cyclic reference, or a top-level
|
|
63
|
+
`undefined`, function, or symbol. `encodeEntries` encodes a whole `setMany` batch
|
|
64
|
+
first, so one bad value rejects the batch before anything is written. Store and
|
|
65
|
+
read back the JSON form; never keep the caller's object.
|
|
60
66
|
- `getManyViaGet` / `setManyViaSet` / `deleteManyViaDelete` — the batch methods as a
|
|
61
|
-
parallel fan-out
|
|
67
|
+
parallel fan-out of single-key operations, for backends with no native batch API.
|
|
68
|
+
Pass `setManyViaSet` the output of `encodeEntries` and a private per-key write. Calling
|
|
69
|
+
`this.set` per entry would let a bad entry fail after the others have landed.
|
|
62
70
|
- `encodeEnvelope` / `decodeEnvelope` — the TTL envelope for backends with no TTL of their
|
|
63
|
-
own (R2, filesystem). `
|
|
71
|
+
own (R2, filesystem). `encodeEnvelope` takes the JSON text from `serializeValue` and
|
|
72
|
+
returns the stored document. `decodeEnvelope` returns `{ kind: 'expired' }` so the provider can
|
|
64
73
|
delete on read, returns pre-envelope JSON as a plain value, and throws `SyntaxError` on
|
|
65
74
|
invalid JSON so the provider can attach the key to the error it raises.
|
|
66
75
|
- `paginateSortedKeys` — one `list()` page over an already-sorted key set, with the cursor
|
|
@@ -128,7 +137,8 @@ Provider file location and naming differ by domain:
|
|
|
128
137
|
- [ ] Registered in the correct factory for the domain (see Step 5)
|
|
129
138
|
- [ ] Storage: provider string added to `z.enum` in `src/config/index.ts`
|
|
130
139
|
- [ ] Storage: Worker-compatible array in `storageFactory.ts` updated if applicable
|
|
131
|
-
- [ ] Storage: batch, TTL envelope, paging, and `LIKE` escaping come from `providerHelpers.ts`, not a local copy
|
|
140
|
+
- [ ] Storage: value encoding, batch, TTL envelope, paging, and `LIKE` escaping come from `providerHelpers.ts`, not a local copy
|
|
141
|
+
- [ ] Storage: the shared compliance suite (`tests/compliance/storage-provider.ts`) runs against the provider
|
|
132
142
|
- [ ] Speech: `provider` literal added to `SpeechProviderConfig` union in `types.ts`
|
|
133
143
|
- [ ] LLM: `src/core/app.ts` instantiation logic updated if adding a second LLM provider
|
|
134
144
|
- [ ] Optional peer dependency added to both `peerDependencies` and `peerDependenciesMeta` in `package.json` if Tier 3
|
|
@@ -4,7 +4,7 @@ description: >
|
|
|
4
4
|
Scaffold a new MCP resource definition. Use when the user asks to add a resource, expose data via URI, or create a readable endpoint.
|
|
5
5
|
metadata:
|
|
6
6
|
author: cyanheads
|
|
7
|
-
version: "1.
|
|
7
|
+
version: "1.7"
|
|
8
8
|
audience: external
|
|
9
9
|
type: reference
|
|
10
10
|
---
|
|
@@ -63,12 +63,12 @@ export const {{RESOURCE_EXPORT}} = resource('{{scheme}}://{{{paramName}}}/data',
|
|
|
63
63
|
|
|
64
64
|
### With pagination
|
|
65
65
|
|
|
66
|
-
For resources that return large result sets,
|
|
66
|
+
For resources that return large result sets, use opaque cursor pagination in the `handler`. `resources/read` carries no cursor of its own, so the cursor must be a URI template variable — it arrives as a validated URI param. Make it a path segment: a `{?cursor}` query expansion is mandatory in the SDK's template matcher, so the bare URI (no `?cursor=`) stops matching. Serve the first page from an unpaged sibling resource that returns `nextCursor`, or disclose truncation in the body and point callers at a tool that pages. `paginateArray` requires a `RequestContext` for logging — create one from `requestContextService`:
|
|
67
67
|
|
|
68
68
|
```typescript
|
|
69
69
|
import { extractCursor, paginateArray, requestContextService } from '@cyanheads/mcp-ts-core/utils';
|
|
70
70
|
|
|
71
|
-
// URI template: '{{scheme}}://{{{paramName}}}/items'
|
|
71
|
+
// URI template: '{{scheme}}://{{{paramName}}}/items/{cursor}'
|
|
72
72
|
params: z.object({
|
|
73
73
|
{{paramName}}: z.string().describe('{{PARAM_DESCRIPTION}}'),
|
|
74
74
|
cursor: z.string().optional().describe('Opaque pagination cursor'),
|