@cyanheads/mcp-ts-core 0.10.10 → 0.10.11
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 +22 -10
- package/CLAUDE.md +22 -10
- package/README.md +1 -1
- package/biome.json +1 -1
- package/changelog/0.10.x/0.10.11.md +39 -0
- package/changelog/template.md +5 -3
- package/dist/core/app.js +3 -3
- package/dist/core/app.js.map +1 -1
- package/dist/logs/combined.log +8 -0
- package/dist/logs/error.log +4 -0
- package/dist/logs/interactions.log +0 -0
- package/dist/mcp-server/tools/utils/toolDefinition.d.ts +4 -3
- package/dist/mcp-server/tools/utils/toolDefinition.d.ts.map +1 -1
- package/dist/mcp-server/tools/utils/toolDefinition.js.map +1 -1
- package/package.json +18 -18
- package/scripts/build-changelog.ts +1 -1
- package/skills/api-utils/SKILL.md +1 -1
- package/skills/code-simplifier/SKILL.md +6 -6
- package/skills/design-mcp-server/SKILL.md +51 -15
- package/skills/git-wrapup/SKILL.md +12 -5
- package/skills/orchestrations/SKILL.md +2 -2
- package/skills/polish-docs-meta/SKILL.md +1 -1
- package/skills/release-and-publish/SKILL.md +3 -1
- package/templates/AGENTS.md +27 -21
- package/templates/CLAUDE.md +27 -21
- package/templates/changelog/template.md +5 -3
- package/templates/package.json +2 -2
package/AGENTS.md
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# Developer Protocol
|
|
2
2
|
|
|
3
3
|
**Package:** `@cyanheads/mcp-ts-core`
|
|
4
|
-
**Version:** 0.10.
|
|
4
|
+
**Version:** 0.10.11
|
|
5
5
|
**Engines:** Bun ≥1.3.0, Node ≥24.0.0
|
|
6
6
|
**MCP SDK:** `@modelcontextprotocol/sdk` ^1.29.0
|
|
7
7
|
**Zod:** ^4.4.3
|
|
@@ -22,7 +22,7 @@ This package serves two consumer paths. When making changes, know which audience
|
|
|
22
22
|
| **Direct package import** — existing project pulls in the package | `bun add @cyanheads/mcp-ts-core` → `import { createApp, tool, z } from '@cyanheads/mcp-ts-core'` | Public API surface (`src/`) — existing consumers feel changes immediately on upgrade |
|
|
23
23
|
| **Init-scaffolded server** — fresh project bootstrapped from this repo's templates | `bunx @cyanheads/mcp-ts-core init [name]` copies `templates/` into the new directory | `templates/` — only affects newly scaffolded servers, not existing ones |
|
|
24
24
|
|
|
25
|
-
Both paths share the same public API. Init copies starter `package.json`, configs (`tsconfig`, `biome.json`, `vitest.config.ts`), `.env.example`, `Dockerfile`, `CLAUDE.md`/`AGENTS.md`,
|
|
25
|
+
Both paths share the same public API. Init copies starter `package.json`, configs (`tsconfig`, `biome.json`, `vitest.config.ts`, `devcheck.config.json`), `.env.example`, `Dockerfile`, `CLAUDE.md`/`AGENTS.md`, example definitions and tests, framework `scripts/`, and external-audience `skills/`. `_`-prefixed files (e.g. `_.gitignore`) drop the prefix on copy. Existing files are never overwritten; `init` without a name scaffolds in place (upgrade flow). After init, consult the `setup` skill.
|
|
26
26
|
|
|
27
27
|
---
|
|
28
28
|
|
|
@@ -44,7 +44,7 @@ Both paths share the same public API. Init copies starter `package.json`, config
|
|
|
44
44
|
|
|
45
45
|
| Subpath | Key Exports | Purpose |
|
|
46
46
|
|:--------|:------------|:--------|
|
|
47
|
-
| `@cyanheads/mcp-ts-core` | `createApp`, `tool`, `resource`, `prompt`, `appTool`, `appResource`, `APP_RESOURCE_MIME_TYPE`, `Context`, `createFail`, `createRecoveryFor`, `TypedFail`, `TypedRecoveryFor`, `ReasonOf`, `HandlerContext`, `Enrich`, `EnrichHelpers`, `TypedEnrich`, `z`, `completable`, `isCompletable`, `CompleteCallback`, `CompleteResourceTemplateCallback` | Main entry point |
|
|
47
|
+
| `@cyanheads/mcp-ts-core` | `createApp`, `tool`, `resource`, `prompt`, `appTool`, `appResource`, `APP_RESOURCE_MIME_TYPE`, `Context`, `createFail`, `createRecoveryFor`, `TypedFail`, `TypedRecoveryFor`, `ReasonOf`, `HandlerContext`, `Enrich`, `EnrichHelpers`, `TypedEnrich`, `ContentCollect`, `ContentBlock`, `z`, `completable`, `isCompletable`, `CompleteCallback`, `CompleteResourceTemplateCallback` | Main entry point |
|
|
48
48
|
| `/worker` | `createWorkerHandler`, `CloudflareBindings` | Cloudflare Workers entry |
|
|
49
49
|
| `/tools` | `ToolDefinition`, `AnyToolDefinition`, `ToolAnnotations` | Tool definition types |
|
|
50
50
|
| `/resources` | `ResourceDefinition`, `AnyResourceDefinition` | Resource definition types |
|
|
@@ -60,7 +60,7 @@ Both paths share the same public API. Init copies starter `package.json`, config
|
|
|
60
60
|
| `/utils` | formatting, encoding, network, pagination, overflow (`outlineOnOverflow`, `OUTLINE_VARIANT`, `selectSections`, `formatOutline`), logging, runtime, telemetry, token counting, parsers†, sanitization†, scheduling† | All utilities (†optional peer deps) |
|
|
61
61
|
| `/services` | `OpenRouterProvider`, `SpeechService`, `createSpeechProvider`, `ElevenLabsProvider`, `WhisperProvider`, `GraphService`, provider interfaces and types | LLM, Speech (TTS/STT), Graph services |
|
|
62
62
|
| `/linter` | `validateDefinitions`, `LintReport`, `LintDiagnostic`, `LintInput`, `LintSeverity` | Definition validation |
|
|
63
|
-
| `/testing` | `createMockContext`, `getEnrichment` | Test helpers |
|
|
63
|
+
| `/testing` | `createMockContext`, `createMockLogger`, `getEnrichment`, `getContentBlocks`, `createInMemoryStorage` | Test helpers |
|
|
64
64
|
| `/testing/fuzz` | `fuzzTool`, `fuzzResource`, `fuzzPrompt`, `zodToArbitrary`, `adversarialArbitrary`, `ADVERSARIAL_STRINGS` | Fuzz testing |
|
|
65
65
|
| `/testing/vitest` | `mcpTest`, `McpTestFixtures` (+ re-exported `createMockContext`, `createInMemoryStorage`) | Vitest fixture-based tests (optional peer `vitest`) |
|
|
66
66
|
|
|
@@ -116,6 +116,8 @@ await createApp({
|
|
|
116
116
|
|
|
117
117
|
**Identity fields** — Optional `title`, `websiteUrl`, `description`, `icons` (SEP-973) pass through to the SDK's `initialize` serverInfo and to the server manifest, keeping the `/.well-known/mcp.json` server card and landing page consistent with what `initialize` reports. Explicit `description` wins over `MCP_SERVER_DESCRIPTION`/package.json.
|
|
118
118
|
|
|
119
|
+
**Also available** — `landing` (`LandingConfig`, HTTP transport only: landing-page config, all fields optional) and `context: { exposeStatelessSessionId }` (populate `ctx.sessionId` from the SDK's per-request token in stateless HTTP mode; default `false`).
|
|
120
|
+
|
|
119
121
|
### Cloudflare Workers — `createWorkerHandler(options)`
|
|
120
122
|
|
|
121
123
|
```ts
|
|
@@ -145,6 +147,7 @@ interface CoreServices {
|
|
|
145
147
|
logger: Logger;
|
|
146
148
|
storage: StorageService;
|
|
147
149
|
rateLimiter: RateLimiter;
|
|
150
|
+
canvas?: DataCanvas; // present when CANVAS_PROVIDER_TYPE=duckdb; never on Workers
|
|
148
151
|
llmProvider?: ILlmProvider;
|
|
149
152
|
speechService?: SpeechService;
|
|
150
153
|
supabase?: SupabaseClient;
|
|
@@ -226,13 +229,13 @@ export const myTool = tool('my_tool', {
|
|
|
226
229
|
|
|
227
230
|
**Steps:** Create `src/mcp-server/tools/definitions/[name].tool.ts` (kebab-case) → use `tool('snake_case', {...})` with Zod `.describe()` on all fields → implement `handler(input, ctx)` (pure, throws on failure) → add `auth`/`format` if needed → register in `definitions/index.ts` → `bun run devcheck` → smoke-test with `bun run rebuild && bun run start:stdio` (or `start:http`).
|
|
228
231
|
|
|
229
|
-
**Schema constraint:** Input/output schemas must use JSON-Schema-serializable Zod types only. The MCP SDK converts schemas to JSON Schema for `tools/list` — non-serializable types (`z.custom()`, `z.date()`, `z.transform()`, `z.bigint()`, `z.symbol()`, `z.void()`, `z.map()`, `z.set()`, `z.function()`, `z.nan()`) cause a hard runtime failure. Use structural equivalents instead (e.g., `z.string()` with `.describe('ISO 8601 date')` instead of `z.date()`). The
|
|
232
|
+
**Schema constraint:** Input/output schemas must use JSON-Schema-serializable Zod types only. The MCP SDK converts schemas to JSON Schema for `tools/list` — non-serializable types (`z.custom()`, `z.date()`, `z.transform()`, `z.bigint()`, `z.symbol()`, `z.void()`, `z.map()`, `z.set()`, `z.function()`, `z.nan()`) cause a hard runtime failure. Use structural equivalents instead (e.g., `z.string()` with `.describe('ISO 8601 date')` instead of `z.date()`). The `schema-serializable` lint rule catches this at build time (`bun run lint:mcp` / `devcheck`).
|
|
230
233
|
|
|
231
234
|
**Form-client safety:** Form-based clients (MCP Inspector, web UIs) send optional fields as empty strings, not `undefined`. Don't reject with `.min(1)` on optional fields — guard for meaningful values in the handler (`if (input.dateRange?.minDate && input.dateRange?.maxDate)`). Test with both omitted and empty-value payloads. When schema-level constraints (regex/length) need to surface in the JSON Schema, wrap in a union with a `z.literal('')` sentinel: `z.union([z.literal(''), z.string().regex(...).describe(...)])` — the linter exempts the literal variant from `describe-on-fields`.
|
|
232
235
|
|
|
233
236
|
**`format`**: Maps output to MCP `content[]`. Different clients forward different surfaces to the agent — some (Claude Code) read `structuredContent` from `output`, others (Claude Desktop) read `content[]` from `format()`. `format()` is the markdown twin of `structuredContent`, not a reduced summary.
|
|
234
237
|
|
|
235
|
-
- **Parity is enforced.** Every terminal field in `output` must appear in `format()`'s rendered text (via sentinel injection), or
|
|
238
|
+
- **Parity is lint-enforced.** Every terminal field in `output` must appear in `format()`'s rendered text (via sentinel injection), or the `format-parity` rule fails `bun run lint:mcp` / `devcheck`.
|
|
236
239
|
- **Primary fix:** render the missing field in `format()`. Use `z.discriminatedUnion` for list/detail variants — each branch is validated separately.
|
|
237
240
|
- **Escape hatch:** if the schema was over-typed for a genuinely dynamic upstream API, relax it (`z.object({}).passthrough()`) — passthrough still flows data to `structuredContent`.
|
|
238
241
|
- **Fallback:** omit `format` for JSON stringify. Additional formatters in `/utils`: `markdown()` (builder), `diffFormatter` (async), `tableFormatter`, `treeFormatter`.
|
|
@@ -273,6 +276,7 @@ Handler receives `(params, ctx)` — URI on `ctx.uri` if needed. Optional `size`
|
|
|
273
276
|
```ts
|
|
274
277
|
interface Context {
|
|
275
278
|
readonly requestId: string;
|
|
279
|
+
readonly sessionId?: string; // HTTP durable-session ID; stdio/stateless: undefined (opt-in: context.exposeStatelessSessionId)
|
|
276
280
|
readonly timestamp: string;
|
|
277
281
|
readonly tenantId?: string;
|
|
278
282
|
readonly traceId?: string;
|
|
@@ -281,11 +285,14 @@ interface Context {
|
|
|
281
285
|
readonly log: ContextLogger; // auto-correlated: requestId, traceId, tenantId
|
|
282
286
|
readonly state: ContextState; // tenant-scoped KV storage
|
|
283
287
|
readonly elicit?: ElicitFn; // form call (message, schema) + .url(message, url); present iff client advertises elicitation
|
|
288
|
+
readonly notifyPromptListChanged?: (() => void) | undefined; // prompt list changed
|
|
284
289
|
readonly notifyResourceListChanged?: (() => void) | undefined; // resource list changed
|
|
285
290
|
readonly notifyResourceUpdated?: ((uri: string) => void) | undefined; // resource content changed
|
|
291
|
+
readonly notifyToolListChanged?: (() => void) | undefined; // tool list changed
|
|
286
292
|
readonly signal: AbortSignal; // cancellation
|
|
287
293
|
readonly progress?: ContextProgress; // present when task: true
|
|
288
294
|
readonly uri?: URL; // present for resource handlers
|
|
295
|
+
readonly content: ContentCollect; // media blocks → prepended to content[]; never in structuredContent
|
|
289
296
|
readonly enrich: Enrich; // success-path agent context → structuredContent + content[]; typed on HandlerContext<R, E>
|
|
290
297
|
recoveryFor(reason: string): { recovery: { hint: string } } | {}; // opt-in contract resolver
|
|
291
298
|
}
|
|
@@ -332,6 +339,10 @@ if (ctx.elicit) {
|
|
|
332
339
|
|
|
333
340
|
URL mode: `await ctx.elicit.url('Authorize access', 'https://example.com/authorize')` — hands the user an external link instead of a form. `elicitationId` is generated internally; `content` is absent, only `action` reports the outcome.
|
|
334
341
|
|
|
342
|
+
### `ctx.content`
|
|
343
|
+
|
|
344
|
+
Accumulates non-text content blocks — image/audio bytes, embedded resources, resource links — onto the response: `ctx.content.image(data, mimeType)`, `ctx.content.audio(data, mimeType)`, or `ctx.content(block)` for a raw `ContentBlock`. Blocks are prepended to `content[]` after `format()` runs and never enter `structuredContent`, so a handler can emit media for the calling model without the base64 duplicating into typed output. Always present (no-op when unused); callable from handler and service layer.
|
|
345
|
+
|
|
335
346
|
### `ctx.progress`
|
|
336
347
|
|
|
337
348
|
Present when `task: true`. Methods: `setTotal(n)`, `increment(amount?)`, `update(message)`.
|
|
@@ -478,9 +489,9 @@ Detailed method signatures, options, and examples live in skill files. Read the
|
|
|
478
489
|
|
|
479
490
|
Each `skills/<name>/SKILL.md` carries `metadata.version` in frontmatter. The `maintenance` skill's Phase A uses this to sync consumer copies — replaces the **entire skill directory** as one unit. Without a version bump, Phase A skips the skill (content-hash backstop catches drift, but noisier).
|
|
480
491
|
|
|
481
|
-
**Policy:** Bump `metadata.version` when changing any file under `skills/<name>/` — SKILL.md is the single version knob for the directory. Typo/whitespace fixes exempt. One bump per release cycle suffices. Enforced by `bun run devcheck` (`scripts/check-skill-versions.ts`): a SKILL.md body change vs `HEAD` without a `metadata.version` bump surfaces as a warning; whitespace-only edits
|
|
492
|
+
**Policy:** Bump `metadata.version` when changing any file under `skills/<name>/` — SKILL.md is the single version knob for the directory. Typo/whitespace fixes exempt. One bump per release cycle suffices. Enforced by `bun run devcheck` (`scripts/check-skill-versions.ts`): a SKILL.md body change vs `HEAD` without a `metadata.version` bump surfaces as a warning; whitespace-only edits never trigger it, and a genuine typo fix opts out via `devcheck.config.json` `skillVersions.ignore`.
|
|
482
493
|
|
|
483
|
-
Skills live in `skills/<name>/SKILL.md
|
|
494
|
+
Skills live in `skills/<name>/SKILL.md`; the full list is discoverable via the agent's skill registry at session start.
|
|
484
495
|
|
|
485
496
|
---
|
|
486
497
|
|
|
@@ -512,12 +523,13 @@ Skills live in `skills/<name>/SKILL.md`. Read the relevant skill before starting
|
|
|
512
523
|
|:--------|:--------|
|
|
513
524
|
| `bun run build` | Build library output (`scripts/build.ts`) |
|
|
514
525
|
| `bun run rebuild` | Clean and rebuild (`scripts/clean.ts` + `build`) |
|
|
515
|
-
| `bun run devcheck` | **Use often.**
|
|
526
|
+
| `bun run devcheck` | **Use often.** Biome lint/format, typecheck, MCP definition + packaging lint, docs/skills/changelog sync checks, secrets + antipattern scans, `bun audit`, `bun outdated` |
|
|
516
527
|
| `bun run audit:refresh` | Delete `bun.lock`, reinstall, re-audit. Use when `devcheck` flags a transitive advisory — stale lockfile can mask already-patched deps. If advisory survives, it's real. |
|
|
517
528
|
| `bun run lint:mcp` | Validate MCP definitions against spec |
|
|
518
529
|
| `bun run format` | Auto-fix Biome lint/format issues (safe fixes only) |
|
|
519
530
|
| `bun run format:unsafe` | Also apply Biome's unsafe autofixes — review the diff; they can change behavior, not just formatting |
|
|
520
531
|
| `bun run test` | Unit/compliance/smoke/fuzz/typecheck suites (Bun runtime) |
|
|
532
|
+
| `bun run test:all` | Release gate: `test:coverage` + `test:node` + `test:worker` + `test:integration` |
|
|
521
533
|
| `bun run test:node` | Same suites + integration under real Node (bypasses the bun-node PATH shim) |
|
|
522
534
|
| `bun run test:leaks` | Suites with Vitest async-leak detection (`--detect-async-leaks`) |
|
|
523
535
|
| `bun run test:typecheck` | Typecheck project only — `.test-d.ts` contracts with `@ts-expect-error` negative cases |
|
|
@@ -558,7 +570,7 @@ security: false # optional, default fals
|
|
|
558
570
|
|:------|:---------|:--------|
|
|
559
571
|
| `summary` | yes | Rollup index line. ≤350 chars, no markdown, single line. Write like a GitHub Release title. |
|
|
560
572
|
| `breaking` | no (default `false`) | Flags releases with breaking changes. Renders as `· ⚠️ Breaking` badge in the rollup. Agents running the `maintenance` skill read this to prioritize review. |
|
|
561
|
-
| `security` | no (default `false`) | Flags
|
|
573
|
+
| `security` | no (default `false`) | Flags a security fix in **this project's own source code** — a vulnerability or hardening in code we ship. A routine dependency or transitive CVE bump is **not** a security release: leave `false` and record it under `## Dependencies`. Renders as `· 🛡️ Security` badge in the rollup so users can triage upgrade urgency; pairs with the `## Security` body section. |
|
|
562
574
|
| `agent-notes` | no | Free-form adoption notes for downstream `maintenance` agents — new files to create, fields to populate, skills to re-run, one-time migration steps. Not rendered in `CHANGELOG.md`; consumed only by agents running the `maintenance` skill on consumer projects. Omit when there's nothing to say. |
|
|
563
575
|
|
|
564
576
|
Badge order when both set: `· ⚠️ Breaking · 🛡️ Security`. Summary > 350 chars or malformed boolean fails `changelog:check`.
|
package/CLAUDE.md
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# Developer Protocol
|
|
2
2
|
|
|
3
3
|
**Package:** `@cyanheads/mcp-ts-core`
|
|
4
|
-
**Version:** 0.10.
|
|
4
|
+
**Version:** 0.10.11
|
|
5
5
|
**Engines:** Bun ≥1.3.0, Node ≥24.0.0
|
|
6
6
|
**MCP SDK:** `@modelcontextprotocol/sdk` ^1.29.0
|
|
7
7
|
**Zod:** ^4.4.3
|
|
@@ -22,7 +22,7 @@ This package serves two consumer paths. When making changes, know which audience
|
|
|
22
22
|
| **Direct package import** — existing project pulls in the package | `bun add @cyanheads/mcp-ts-core` → `import { createApp, tool, z } from '@cyanheads/mcp-ts-core'` | Public API surface (`src/`) — existing consumers feel changes immediately on upgrade |
|
|
23
23
|
| **Init-scaffolded server** — fresh project bootstrapped from this repo's templates | `bunx @cyanheads/mcp-ts-core init [name]` copies `templates/` into the new directory | `templates/` — only affects newly scaffolded servers, not existing ones |
|
|
24
24
|
|
|
25
|
-
Both paths share the same public API. Init copies starter `package.json`, configs (`tsconfig`, `biome.json`, `vitest.config.ts`), `.env.example`, `Dockerfile`, `CLAUDE.md`/`AGENTS.md`,
|
|
25
|
+
Both paths share the same public API. Init copies starter `package.json`, configs (`tsconfig`, `biome.json`, `vitest.config.ts`, `devcheck.config.json`), `.env.example`, `Dockerfile`, `CLAUDE.md`/`AGENTS.md`, example definitions and tests, framework `scripts/`, and external-audience `skills/`. `_`-prefixed files (e.g. `_.gitignore`) drop the prefix on copy. Existing files are never overwritten; `init` without a name scaffolds in place (upgrade flow). After init, consult the `setup` skill.
|
|
26
26
|
|
|
27
27
|
---
|
|
28
28
|
|
|
@@ -44,7 +44,7 @@ Both paths share the same public API. Init copies starter `package.json`, config
|
|
|
44
44
|
|
|
45
45
|
| Subpath | Key Exports | Purpose |
|
|
46
46
|
|:--------|:------------|:--------|
|
|
47
|
-
| `@cyanheads/mcp-ts-core` | `createApp`, `tool`, `resource`, `prompt`, `appTool`, `appResource`, `APP_RESOURCE_MIME_TYPE`, `Context`, `createFail`, `createRecoveryFor`, `TypedFail`, `TypedRecoveryFor`, `ReasonOf`, `HandlerContext`, `Enrich`, `EnrichHelpers`, `TypedEnrich`, `z`, `completable`, `isCompletable`, `CompleteCallback`, `CompleteResourceTemplateCallback` | Main entry point |
|
|
47
|
+
| `@cyanheads/mcp-ts-core` | `createApp`, `tool`, `resource`, `prompt`, `appTool`, `appResource`, `APP_RESOURCE_MIME_TYPE`, `Context`, `createFail`, `createRecoveryFor`, `TypedFail`, `TypedRecoveryFor`, `ReasonOf`, `HandlerContext`, `Enrich`, `EnrichHelpers`, `TypedEnrich`, `ContentCollect`, `ContentBlock`, `z`, `completable`, `isCompletable`, `CompleteCallback`, `CompleteResourceTemplateCallback` | Main entry point |
|
|
48
48
|
| `/worker` | `createWorkerHandler`, `CloudflareBindings` | Cloudflare Workers entry |
|
|
49
49
|
| `/tools` | `ToolDefinition`, `AnyToolDefinition`, `ToolAnnotations` | Tool definition types |
|
|
50
50
|
| `/resources` | `ResourceDefinition`, `AnyResourceDefinition` | Resource definition types |
|
|
@@ -60,7 +60,7 @@ Both paths share the same public API. Init copies starter `package.json`, config
|
|
|
60
60
|
| `/utils` | formatting, encoding, network, pagination, overflow (`outlineOnOverflow`, `OUTLINE_VARIANT`, `selectSections`, `formatOutline`), logging, runtime, telemetry, token counting, parsers†, sanitization†, scheduling† | All utilities (†optional peer deps) |
|
|
61
61
|
| `/services` | `OpenRouterProvider`, `SpeechService`, `createSpeechProvider`, `ElevenLabsProvider`, `WhisperProvider`, `GraphService`, provider interfaces and types | LLM, Speech (TTS/STT), Graph services |
|
|
62
62
|
| `/linter` | `validateDefinitions`, `LintReport`, `LintDiagnostic`, `LintInput`, `LintSeverity` | Definition validation |
|
|
63
|
-
| `/testing` | `createMockContext`, `getEnrichment` | Test helpers |
|
|
63
|
+
| `/testing` | `createMockContext`, `createMockLogger`, `getEnrichment`, `getContentBlocks`, `createInMemoryStorage` | Test helpers |
|
|
64
64
|
| `/testing/fuzz` | `fuzzTool`, `fuzzResource`, `fuzzPrompt`, `zodToArbitrary`, `adversarialArbitrary`, `ADVERSARIAL_STRINGS` | Fuzz testing |
|
|
65
65
|
| `/testing/vitest` | `mcpTest`, `McpTestFixtures` (+ re-exported `createMockContext`, `createInMemoryStorage`) | Vitest fixture-based tests (optional peer `vitest`) |
|
|
66
66
|
|
|
@@ -116,6 +116,8 @@ await createApp({
|
|
|
116
116
|
|
|
117
117
|
**Identity fields** — Optional `title`, `websiteUrl`, `description`, `icons` (SEP-973) pass through to the SDK's `initialize` serverInfo and to the server manifest, keeping the `/.well-known/mcp.json` server card and landing page consistent with what `initialize` reports. Explicit `description` wins over `MCP_SERVER_DESCRIPTION`/package.json.
|
|
118
118
|
|
|
119
|
+
**Also available** — `landing` (`LandingConfig`, HTTP transport only: landing-page config, all fields optional) and `context: { exposeStatelessSessionId }` (populate `ctx.sessionId` from the SDK's per-request token in stateless HTTP mode; default `false`).
|
|
120
|
+
|
|
119
121
|
### Cloudflare Workers — `createWorkerHandler(options)`
|
|
120
122
|
|
|
121
123
|
```ts
|
|
@@ -145,6 +147,7 @@ interface CoreServices {
|
|
|
145
147
|
logger: Logger;
|
|
146
148
|
storage: StorageService;
|
|
147
149
|
rateLimiter: RateLimiter;
|
|
150
|
+
canvas?: DataCanvas; // present when CANVAS_PROVIDER_TYPE=duckdb; never on Workers
|
|
148
151
|
llmProvider?: ILlmProvider;
|
|
149
152
|
speechService?: SpeechService;
|
|
150
153
|
supabase?: SupabaseClient;
|
|
@@ -226,13 +229,13 @@ export const myTool = tool('my_tool', {
|
|
|
226
229
|
|
|
227
230
|
**Steps:** Create `src/mcp-server/tools/definitions/[name].tool.ts` (kebab-case) → use `tool('snake_case', {...})` with Zod `.describe()` on all fields → implement `handler(input, ctx)` (pure, throws on failure) → add `auth`/`format` if needed → register in `definitions/index.ts` → `bun run devcheck` → smoke-test with `bun run rebuild && bun run start:stdio` (or `start:http`).
|
|
228
231
|
|
|
229
|
-
**Schema constraint:** Input/output schemas must use JSON-Schema-serializable Zod types only. The MCP SDK converts schemas to JSON Schema for `tools/list` — non-serializable types (`z.custom()`, `z.date()`, `z.transform()`, `z.bigint()`, `z.symbol()`, `z.void()`, `z.map()`, `z.set()`, `z.function()`, `z.nan()`) cause a hard runtime failure. Use structural equivalents instead (e.g., `z.string()` with `.describe('ISO 8601 date')` instead of `z.date()`). The
|
|
232
|
+
**Schema constraint:** Input/output schemas must use JSON-Schema-serializable Zod types only. The MCP SDK converts schemas to JSON Schema for `tools/list` — non-serializable types (`z.custom()`, `z.date()`, `z.transform()`, `z.bigint()`, `z.symbol()`, `z.void()`, `z.map()`, `z.set()`, `z.function()`, `z.nan()`) cause a hard runtime failure. Use structural equivalents instead (e.g., `z.string()` with `.describe('ISO 8601 date')` instead of `z.date()`). The `schema-serializable` lint rule catches this at build time (`bun run lint:mcp` / `devcheck`).
|
|
230
233
|
|
|
231
234
|
**Form-client safety:** Form-based clients (MCP Inspector, web UIs) send optional fields as empty strings, not `undefined`. Don't reject with `.min(1)` on optional fields — guard for meaningful values in the handler (`if (input.dateRange?.minDate && input.dateRange?.maxDate)`). Test with both omitted and empty-value payloads. When schema-level constraints (regex/length) need to surface in the JSON Schema, wrap in a union with a `z.literal('')` sentinel: `z.union([z.literal(''), z.string().regex(...).describe(...)])` — the linter exempts the literal variant from `describe-on-fields`.
|
|
232
235
|
|
|
233
236
|
**`format`**: Maps output to MCP `content[]`. Different clients forward different surfaces to the agent — some (Claude Code) read `structuredContent` from `output`, others (Claude Desktop) read `content[]` from `format()`. `format()` is the markdown twin of `structuredContent`, not a reduced summary.
|
|
234
237
|
|
|
235
|
-
- **Parity is enforced.** Every terminal field in `output` must appear in `format()`'s rendered text (via sentinel injection), or
|
|
238
|
+
- **Parity is lint-enforced.** Every terminal field in `output` must appear in `format()`'s rendered text (via sentinel injection), or the `format-parity` rule fails `bun run lint:mcp` / `devcheck`.
|
|
236
239
|
- **Primary fix:** render the missing field in `format()`. Use `z.discriminatedUnion` for list/detail variants — each branch is validated separately.
|
|
237
240
|
- **Escape hatch:** if the schema was over-typed for a genuinely dynamic upstream API, relax it (`z.object({}).passthrough()`) — passthrough still flows data to `structuredContent`.
|
|
238
241
|
- **Fallback:** omit `format` for JSON stringify. Additional formatters in `/utils`: `markdown()` (builder), `diffFormatter` (async), `tableFormatter`, `treeFormatter`.
|
|
@@ -273,6 +276,7 @@ Handler receives `(params, ctx)` — URI on `ctx.uri` if needed. Optional `size`
|
|
|
273
276
|
```ts
|
|
274
277
|
interface Context {
|
|
275
278
|
readonly requestId: string;
|
|
279
|
+
readonly sessionId?: string; // HTTP durable-session ID; stdio/stateless: undefined (opt-in: context.exposeStatelessSessionId)
|
|
276
280
|
readonly timestamp: string;
|
|
277
281
|
readonly tenantId?: string;
|
|
278
282
|
readonly traceId?: string;
|
|
@@ -281,11 +285,14 @@ interface Context {
|
|
|
281
285
|
readonly log: ContextLogger; // auto-correlated: requestId, traceId, tenantId
|
|
282
286
|
readonly state: ContextState; // tenant-scoped KV storage
|
|
283
287
|
readonly elicit?: ElicitFn; // form call (message, schema) + .url(message, url); present iff client advertises elicitation
|
|
288
|
+
readonly notifyPromptListChanged?: (() => void) | undefined; // prompt list changed
|
|
284
289
|
readonly notifyResourceListChanged?: (() => void) | undefined; // resource list changed
|
|
285
290
|
readonly notifyResourceUpdated?: ((uri: string) => void) | undefined; // resource content changed
|
|
291
|
+
readonly notifyToolListChanged?: (() => void) | undefined; // tool list changed
|
|
286
292
|
readonly signal: AbortSignal; // cancellation
|
|
287
293
|
readonly progress?: ContextProgress; // present when task: true
|
|
288
294
|
readonly uri?: URL; // present for resource handlers
|
|
295
|
+
readonly content: ContentCollect; // media blocks → prepended to content[]; never in structuredContent
|
|
289
296
|
readonly enrich: Enrich; // success-path agent context → structuredContent + content[]; typed on HandlerContext<R, E>
|
|
290
297
|
recoveryFor(reason: string): { recovery: { hint: string } } | {}; // opt-in contract resolver
|
|
291
298
|
}
|
|
@@ -332,6 +339,10 @@ if (ctx.elicit) {
|
|
|
332
339
|
|
|
333
340
|
URL mode: `await ctx.elicit.url('Authorize access', 'https://example.com/authorize')` — hands the user an external link instead of a form. `elicitationId` is generated internally; `content` is absent, only `action` reports the outcome.
|
|
334
341
|
|
|
342
|
+
### `ctx.content`
|
|
343
|
+
|
|
344
|
+
Accumulates non-text content blocks — image/audio bytes, embedded resources, resource links — onto the response: `ctx.content.image(data, mimeType)`, `ctx.content.audio(data, mimeType)`, or `ctx.content(block)` for a raw `ContentBlock`. Blocks are prepended to `content[]` after `format()` runs and never enter `structuredContent`, so a handler can emit media for the calling model without the base64 duplicating into typed output. Always present (no-op when unused); callable from handler and service layer.
|
|
345
|
+
|
|
335
346
|
### `ctx.progress`
|
|
336
347
|
|
|
337
348
|
Present when `task: true`. Methods: `setTotal(n)`, `increment(amount?)`, `update(message)`.
|
|
@@ -478,9 +489,9 @@ Detailed method signatures, options, and examples live in skill files. Read the
|
|
|
478
489
|
|
|
479
490
|
Each `skills/<name>/SKILL.md` carries `metadata.version` in frontmatter. The `maintenance` skill's Phase A uses this to sync consumer copies — replaces the **entire skill directory** as one unit. Without a version bump, Phase A skips the skill (content-hash backstop catches drift, but noisier).
|
|
480
491
|
|
|
481
|
-
**Policy:** Bump `metadata.version` when changing any file under `skills/<name>/` — SKILL.md is the single version knob for the directory. Typo/whitespace fixes exempt. One bump per release cycle suffices. Enforced by `bun run devcheck` (`scripts/check-skill-versions.ts`): a SKILL.md body change vs `HEAD` without a `metadata.version` bump surfaces as a warning; whitespace-only edits
|
|
492
|
+
**Policy:** Bump `metadata.version` when changing any file under `skills/<name>/` — SKILL.md is the single version knob for the directory. Typo/whitespace fixes exempt. One bump per release cycle suffices. Enforced by `bun run devcheck` (`scripts/check-skill-versions.ts`): a SKILL.md body change vs `HEAD` without a `metadata.version` bump surfaces as a warning; whitespace-only edits never trigger it, and a genuine typo fix opts out via `devcheck.config.json` `skillVersions.ignore`.
|
|
482
493
|
|
|
483
|
-
Skills live in `skills/<name>/SKILL.md
|
|
494
|
+
Skills live in `skills/<name>/SKILL.md`; the full list is discoverable via the agent's skill registry at session start.
|
|
484
495
|
|
|
485
496
|
---
|
|
486
497
|
|
|
@@ -512,12 +523,13 @@ Skills live in `skills/<name>/SKILL.md`. Read the relevant skill before starting
|
|
|
512
523
|
|:--------|:--------|
|
|
513
524
|
| `bun run build` | Build library output (`scripts/build.ts`) |
|
|
514
525
|
| `bun run rebuild` | Clean and rebuild (`scripts/clean.ts` + `build`) |
|
|
515
|
-
| `bun run devcheck` | **Use often.**
|
|
526
|
+
| `bun run devcheck` | **Use often.** Biome lint/format, typecheck, MCP definition + packaging lint, docs/skills/changelog sync checks, secrets + antipattern scans, `bun audit`, `bun outdated` |
|
|
516
527
|
| `bun run audit:refresh` | Delete `bun.lock`, reinstall, re-audit. Use when `devcheck` flags a transitive advisory — stale lockfile can mask already-patched deps. If advisory survives, it's real. |
|
|
517
528
|
| `bun run lint:mcp` | Validate MCP definitions against spec |
|
|
518
529
|
| `bun run format` | Auto-fix Biome lint/format issues (safe fixes only) |
|
|
519
530
|
| `bun run format:unsafe` | Also apply Biome's unsafe autofixes — review the diff; they can change behavior, not just formatting |
|
|
520
531
|
| `bun run test` | Unit/compliance/smoke/fuzz/typecheck suites (Bun runtime) |
|
|
532
|
+
| `bun run test:all` | Release gate: `test:coverage` + `test:node` + `test:worker` + `test:integration` |
|
|
521
533
|
| `bun run test:node` | Same suites + integration under real Node (bypasses the bun-node PATH shim) |
|
|
522
534
|
| `bun run test:leaks` | Suites with Vitest async-leak detection (`--detect-async-leaks`) |
|
|
523
535
|
| `bun run test:typecheck` | Typecheck project only — `.test-d.ts` contracts with `@ts-expect-error` negative cases |
|
|
@@ -558,7 +570,7 @@ security: false # optional, default fals
|
|
|
558
570
|
|:------|:---------|:--------|
|
|
559
571
|
| `summary` | yes | Rollup index line. ≤350 chars, no markdown, single line. Write like a GitHub Release title. |
|
|
560
572
|
| `breaking` | no (default `false`) | Flags releases with breaking changes. Renders as `· ⚠️ Breaking` badge in the rollup. Agents running the `maintenance` skill read this to prioritize review. |
|
|
561
|
-
| `security` | no (default `false`) | Flags
|
|
573
|
+
| `security` | no (default `false`) | Flags a security fix in **this project's own source code** — a vulnerability or hardening in code we ship. A routine dependency or transitive CVE bump is **not** a security release: leave `false` and record it under `## Dependencies`. Renders as `· 🛡️ Security` badge in the rollup so users can triage upgrade urgency; pairs with the `## Security` body section. |
|
|
562
574
|
| `agent-notes` | no | Free-form adoption notes for downstream `maintenance` agents — new files to create, fields to populate, skills to re-run, one-time migration steps. Not rendered in `CHANGELOG.md`; consumed only by agents running the `maintenance` skill on consumer projects. Omit when there's nothing to say. |
|
|
563
575
|
|
|
564
576
|
Badge order when both set: `· ⚠️ Breaking · 🛡️ Security`. Summary > 350 chars or malformed boolean fails `changelog:check`.
|
package/README.md
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
|
|
6
6
|
<div align="center">
|
|
7
7
|
|
|
8
|
-
[](./CHANGELOG.md) [](./LICENSE) [](https://github.com/modelcontextprotocol/modelcontextprotocol/blob/main/docs/specification/2025-11-25/changelog.mdx)
|
|
9
9
|
|
|
10
10
|
[](https://modelcontextprotocol.io/) [](https://www.typescriptlang.org/) [](https://bun.sh/)
|
|
11
11
|
|
package/biome.json
CHANGED
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
---
|
|
2
|
+
summary: "Fresh-scaffold devcheck fix (template biome pin 2.5.2), changelog security flag scoped to source-code fixes only, protocol docs synced to as-built, stale startup-linter JSDoc corrected to build-time lint, tag-signing safeguards in the release skills, dependency refresh."
|
|
3
|
+
breaking: false
|
|
4
|
+
security: false
|
|
5
|
+
agent-notes: |
|
|
6
|
+
The security-field comment in changelog/template.md was tightened (source-code
|
|
7
|
+
fixes only — dependency CVE bumps stay under ## Dependencies). If the consumer
|
|
8
|
+
server has a local changelog/template.md, mirror the updated comment from this
|
|
9
|
+
package's copy; the git-wrapup 1.6 skill sync carries the same guidance, but
|
|
10
|
+
the local template file won't update itself.
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# 0.10.11 — 2026-07-04
|
|
14
|
+
|
|
15
|
+
## Changed
|
|
16
|
+
|
|
17
|
+
- **`security` changelog frontmatter** — semantics tightened across both changelog templates, the `build-changelog` JSDoc, and the protocol docs: the flag marks a security fix in this project's own source code only. A dependency or transitive CVE bump is routine maintenance recorded under `## Dependencies` — it must not trip the `🛡️ Security` badge.
|
|
18
|
+
- **Protocol docs (`CLAUDE.md`/`AGENTS.md` + template counterparts)** — synced to as-built: definition linting described as build-time (`bun run lint:mcp` / `devcheck`), not startup; init copy list completed (`devcheck.config.json`, example tests, framework `scripts/`, `skills/`, never-overwrite + in-place upgrade); `ContentCollect`/`ContentBlock` and the full `/testing` surface in the exports table; `createApp` `landing` and `context.exposeStatelessSessionId` documented; `canvas` added to `CoreServices`; `Context` gains `sessionId`, `notifyPromptListChanged`, `notifyToolListChanged`, and `ctx.content` (+ section); `test:all` command row and the real `devcheck` check list. Templates additionally: `ctx.state.getMany`, `ctx.enrich`/`ctx.content` rows, `ctx.recoveryFor` error-contract guidance, skills table corrected (`devcheck` removed; `techniques`, `api-mirror` added), commands table moved npm → bun with `lint:mcp`/`lint:packaging`/`list-skills` rows.
|
|
19
|
+
- **Skills** — `git-wrapup` 1.6 (tags created with `--cleanup=whitespace`, signed-tag verification in the end-state check, security-flag guidance), `release-and-publish` 2.10 (GH Release pre-flight: the tag signature must parse before `--notes-from-tag`), `orchestrations` 1.5 (same `--cleanup=whitespace` rule), `code-simplifier` 1.2 (`git diff HEAD` + untracked files in Phase 1, gate run after transforming, three transformation-table corrections), `design-mcp-server` 2.19 (Reference tool shape + subsection, unknown-param and omission-semantics probes, recovery-first error design), `api-utils` 2.4, `polish-docs-meta` 2.10.
|
|
20
|
+
|
|
21
|
+
## Fixed
|
|
22
|
+
|
|
23
|
+
- **Stale "startup linter" JSDoc** — the errors-contract and `format-parity` notes in `toolDefinition.ts` and the startup-fatal comment in `app.ts` now state the build-time mechanism (`bun run lint:mcp`, gated in `devcheck`); these ship in the published `.d.ts`, where hover docs contradicted actual behavior since the 0.9.0 startup-gate removal ([#263](https://github.com/cyanheads/mcp-ts-core/issues/263)).
|
|
24
|
+
- **Fresh-scaffold devcheck failure** — `templates/package.json` pins `@biomejs/biome` 2.5.2 to match the shared config's `$schema`; Biome 2.4.16 refused to load the newer-schema config, so every new scaffold started red ([#260](https://github.com/cyanheads/mcp-ts-core/issues/260)). The `@types/node` pin moves to 26.1.0 alongside.
|
|
25
|
+
|
|
26
|
+
## Dependencies
|
|
27
|
+
|
|
28
|
+
- `@biomejs/biome` `2.5.1` → `2.5.2` (`biome.json` `$schema` follows)
|
|
29
|
+
- `@cloudflare/vitest-pool-workers` `^0.16.20` → `^0.18.0`
|
|
30
|
+
- `@cloudflare/workers-types` `4.20260630.1` → `5.20260705.1`
|
|
31
|
+
- `@hono/node-server` `^2.0.6` → `^2.0.8`
|
|
32
|
+
- `@opentelemetry/exporter-metrics-otlp-http`, `exporter-trace-otlp-http`, `instrumentation-http`, `sdk-node` `^0.219.0` → `^0.220.0`
|
|
33
|
+
- `@opentelemetry/instrumentation-pino` `^0.65.0` → `^0.66.0`
|
|
34
|
+
- `@opentelemetry/resources`, `sdk-metrics`, `sdk-trace-node` `^2.8.0` → `^2.9.0`
|
|
35
|
+
- `@supabase/supabase-js` `^2.109.0` → `^2.110.0`
|
|
36
|
+
- `@types/node` `26.0.1` → `26.1.0`
|
|
37
|
+
- `js-yaml` `^5.2.0` → `^5.2.1`
|
|
38
|
+
- `tsc-alias` `^1.8.17` → `^1.9.0`
|
|
39
|
+
- `vite` `8.1.0` → `8.1.3`
|
package/changelog/template.md
CHANGED
|
@@ -15,9 +15,11 @@ summary: ""
|
|
|
15
15
|
# usage. Flagged as `Breaking` in the rollup.
|
|
16
16
|
breaking: false
|
|
17
17
|
|
|
18
|
-
# Set `true`
|
|
19
|
-
#
|
|
20
|
-
#
|
|
18
|
+
# Set `true` ONLY for a security fix in THIS project's own source code — a
|
|
19
|
+
# vulnerability or hardening in code you ship. A dependency or transitive CVE
|
|
20
|
+
# bump is routine maintenance, NOT a security release: record it under
|
|
21
|
+
# `## Dependencies` (with the advisory ID) and leave this `false`. When true,
|
|
22
|
+
# pairs with the `## Security` section below and flags `Security` in the rollup.
|
|
21
23
|
security: false
|
|
22
24
|
|
|
23
25
|
# Optional free-form notes for maintenance agents processing this release.
|
package/dist/core/app.js
CHANGED
|
@@ -231,9 +231,9 @@ function printStartupConfigError(err) {
|
|
|
231
231
|
export async function createApp(options = {}) {
|
|
232
232
|
suppressColors();
|
|
233
233
|
// --- Compose services (handles env overrides internally for config parsing) ---
|
|
234
|
-
// Configuration errors at this stage (from
|
|
235
|
-
//
|
|
236
|
-
//
|
|
234
|
+
// Configuration errors at this stage (from server setup() or missing required
|
|
235
|
+
// env vars) are startup-fatal. Print a clean banner and exit rather than
|
|
236
|
+
// letting the raw error dump to stderr.
|
|
237
237
|
let composed;
|
|
238
238
|
try {
|
|
239
239
|
composed = await composeServices(options);
|
package/dist/core/app.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app.js","sourceRoot":"","sources":["../../src/core/app.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"app.js","sourceRoot":"","sources":["../../src/core/app.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
{"level":40,"time":1783231093823,"env":"testing","version":"0.10.11","pid":84079,"transport":"http","requestId":"P6CYG-JKAOY","timestamp":"2026-07-05T05:58:13.823Z","operation":"TransportManager.start","component":"HttpTransportSetup","msg":"MCP_ALLOWED_ORIGINS is not set — CORS is wildcard for CLI clients; browser Origin headers are restricted to loopback. Set MCP_ALLOWED_ORIGINS for production deployments accepting remote browser origins."}
|
|
2
|
+
{"level":40,"time":1783231095739,"env":"testing","version":"0.10.11","pid":84079,"component":"HttpTransport","requestId":"KFUYG-JSH5J","timestamp":"2026-07-05T05:58:15.739Z","operation":"HttpRpcRequest","sessionId":"not-a-real-session-1783231095737","msg":"Session validation failed - invalid or hijacked session"}
|
|
3
|
+
{"level":50,"time":1783231103109,"env":"testing","version":"0.0.0-test","pid":84178,"requestId":"PZON4-3N6D7","timestamp":"2026-07-05T05:58:23.109Z","operation":"HandleToolRequest","critical":false,"errorCode":-32005,"originalErrorType":"McpError","finalErrorType":"McpError","sessionId":"a003ae75c90ddf28919db246e5c0d3b5586dc1e5b8c9e332a64be8669b3d7360","toolName":"scoped_echo","tenantId":"authz-tenant","auth":{"sub":"authz-user","scopes":["tool:other:read"],"clientId":"authz-client","tenantId":"authz-tenant","token":"[REDACTED]"},"errorData":{"sessionId":"a003ae75c90ddf28919db246e5c0d3b5586dc1e5b8c9e332a64be8669b3d7360","toolName":"scoped_echo","requestId":"PZON4-3N6D7","timestamp":"2026-07-05T05:58:23.109Z","tenantId":"authz-tenant","operation":"HandleToolRequest","auth":{"sub":"authz-user","scopes":["tool:other:read"],"clientId":"authz-client","tenantId":"authz-tenant","token":"[REDACTED]"},"originalErrorName":"McpError","originalMessage":"Insufficient permissions.","originalStack":"McpError: Insufficient permissions.\n at forbidden (file:///Users/casey/Developer/github/mcp-ts-core/dist/types-global/errors.js:84:54)\n at withRequiredScopes (file:///Users/casey/Developer/github/mcp-ts-core/dist/mcp-server/transports/auth/lib/authUtils.js:68:15)\n at file:///Users/casey/Developer/github/mcp-ts-core/dist/mcp-server/tools/utils/toolHandlerFactory.js:283:17\n at McpServer.executeToolHandler (file:///Users/casey/Developer/github/mcp-ts-core/node_modules/@modelcontextprotocol/sdk/dist/esm/server/mcp.js:233:42)\n at file:///Users/casey/Developer/github/mcp-ts-core/node_modules/@modelcontextprotocol/sdk/dist/esm/server/mcp.js:126:43\n at async wrappedHandler (file:///Users/casey/Developer/github/mcp-ts-core/node_modules/@modelcontextprotocol/sdk/dist/esm/server/index.js:125:32)"},"stack":"McpError: Insufficient permissions.\n at ErrorHandler.handleError (file:///Users/casey/Developer/github/mcp-ts-core/dist/utils/internal/error-handler/errorHandler.js:170:19)\n at file:///Users/casey/Developer/github/mcp-ts-core/dist/mcp-server/tools/utils/toolHandlerFactory.js:332:26\n at McpServer.executeToolHandler (file:///Users/casey/Developer/github/mcp-ts-core/node_modules/@modelcontextprotocol/sdk/dist/esm/server/mcp.js:233:42)\n at file:///Users/casey/Developer/github/mcp-ts-core/node_modules/@modelcontextprotocol/sdk/dist/esm/server/mcp.js:126:43\n at async wrappedHandler (file:///Users/casey/Developer/github/mcp-ts-core/node_modules/@modelcontextprotocol/sdk/dist/esm/server/index.js:125:32)","msg":"Error in tool:scoped_echo: Insufficient permissions."}
|
|
4
|
+
{"level":50,"time":1783231103120,"env":"testing","version":"0.0.0-test","pid":84178,"requestId":"56HCT-2LGD7","timestamp":"2026-07-05T05:58:23.120Z","operation":"HandleToolRequest","critical":false,"errorCode":-32005,"originalErrorType":"McpError","finalErrorType":"McpError","sessionId":"45ab8ec56704555314099a7c4436b328e2d024e49875f3d505424a0bc839bcde","toolName":"scoped_echo","tenantId":"authz-tenant","auth":{"sub":"authz-user","scopes":["openid","email","profile","offline_access"],"clientId":"authz-client","tenantId":"authz-tenant","token":"[REDACTED]"},"errorData":{"sessionId":"45ab8ec56704555314099a7c4436b328e2d024e49875f3d505424a0bc839bcde","toolName":"scoped_echo","requestId":"56HCT-2LGD7","timestamp":"2026-07-05T05:58:23.120Z","tenantId":"authz-tenant","operation":"HandleToolRequest","auth":{"sub":"authz-user","scopes":["openid","email","profile","offline_access"],"clientId":"authz-client","tenantId":"authz-tenant","token":"[REDACTED]"},"originalErrorName":"McpError","originalMessage":"Insufficient permissions.","originalStack":"McpError: Insufficient permissions.\n at forbidden (file:///Users/casey/Developer/github/mcp-ts-core/dist/types-global/errors.js:84:54)\n at withRequiredScopes (file:///Users/casey/Developer/github/mcp-ts-core/dist/mcp-server/transports/auth/lib/authUtils.js:68:15)\n at file:///Users/casey/Developer/github/mcp-ts-core/dist/mcp-server/tools/utils/toolHandlerFactory.js:283:17\n at McpServer.executeToolHandler (file:///Users/casey/Developer/github/mcp-ts-core/node_modules/@modelcontextprotocol/sdk/dist/esm/server/mcp.js:233:42)\n at file:///Users/casey/Developer/github/mcp-ts-core/node_modules/@modelcontextprotocol/sdk/dist/esm/server/mcp.js:126:43\n at async wrappedHandler (file:///Users/casey/Developer/github/mcp-ts-core/node_modules/@modelcontextprotocol/sdk/dist/esm/server/index.js:125:32)"},"stack":"McpError: Insufficient permissions.\n at ErrorHandler.handleError (file:///Users/casey/Developer/github/mcp-ts-core/dist/utils/internal/error-handler/errorHandler.js:170:19)\n at file:///Users/casey/Developer/github/mcp-ts-core/dist/mcp-server/tools/utils/toolHandlerFactory.js:332:26\n at McpServer.executeToolHandler (file:///Users/casey/Developer/github/mcp-ts-core/node_modules/@modelcontextprotocol/sdk/dist/esm/server/mcp.js:233:42)\n at file:///Users/casey/Developer/github/mcp-ts-core/node_modules/@modelcontextprotocol/sdk/dist/esm/server/mcp.js:126:43\n at async wrappedHandler (file:///Users/casey/Developer/github/mcp-ts-core/node_modules/@modelcontextprotocol/sdk/dist/esm/server/index.js:125:32)","msg":"Error in tool:scoped_echo: Insufficient permissions."}
|
|
5
|
+
{"level":40,"time":1783231116985,"env":"testing","version":"0.10.11","pid":84297,"transport":"http","requestId":"1T5XV-A8XSZ","timestamp":"2026-07-05T05:58:36.985Z","operation":"TransportManager.start","component":"HttpTransportSetup","msg":"MCP_ALLOWED_ORIGINS is not set — CORS is wildcard for CLI clients; browser Origin headers are restricted to loopback. Set MCP_ALLOWED_ORIGINS for production deployments accepting remote browser origins."}
|
|
6
|
+
{"level":40,"time":1783231118798,"env":"testing","version":"0.10.11","pid":84297,"component":"HttpTransport","requestId":"JWAON-WFFVR","timestamp":"2026-07-05T05:58:38.798Z","operation":"HttpRpcRequest","sessionId":"not-a-real-session-1783231118797","msg":"Session validation failed - invalid or hijacked session"}
|
|
7
|
+
{"level":50,"time":1783231119273,"env":"testing","version":"0.0.0-test","pid":84307,"requestId":"EG3JJ-IYNKA","timestamp":"2026-07-05T05:58:39.272Z","operation":"HandleToolRequest","critical":false,"errorCode":-32005,"originalErrorType":"McpError","finalErrorType":"McpError","sessionId":"0565cd1f9a70c34b09e7a097778fefe360c1afcc0e599031a555930479e51c44","toolName":"scoped_echo","tenantId":"authz-tenant","auth":{"sub":"authz-user","scopes":["tool:other:read"],"clientId":"authz-client","tenantId":"authz-tenant","token":"[REDACTED]"},"errorData":{"sessionId":"0565cd1f9a70c34b09e7a097778fefe360c1afcc0e599031a555930479e51c44","toolName":"scoped_echo","requestId":"EG3JJ-IYNKA","timestamp":"2026-07-05T05:58:39.272Z","tenantId":"authz-tenant","operation":"HandleToolRequest","auth":{"sub":"authz-user","scopes":["tool:other:read"],"clientId":"authz-client","tenantId":"authz-tenant","token":"[REDACTED]"},"originalErrorName":"McpError","originalMessage":"Insufficient permissions.","originalStack":"McpError: Insufficient permissions.\n at forbidden (/Users/casey/Developer/github/mcp-ts-core/dist/types-global/errors.js:84:58)\n at withRequiredScopes (/Users/casey/Developer/github/mcp-ts-core/dist/mcp-server/transports/auth/lib/authUtils.js:68:15)\n at <anonymous> (/Users/casey/Developer/github/mcp-ts-core/dist/mcp-server/tools/utils/toolHandlerFactory.js:283:17)\n at executeToolHandler (/Users/casey/Developer/github/mcp-ts-core/node_modules/@modelcontextprotocol/sdk/dist/esm/server/mcp.js:231:34)\n at <anonymous> (/Users/casey/Developer/github/mcp-ts-core/node_modules/@modelcontextprotocol/sdk/dist/esm/server/mcp.js:126:43)\n at processTicksAndRejections (native:7:39)"},"stack":"McpError: Insufficient permissions.\n at handleError (/Users/casey/Developer/github/mcp-ts-core/dist/utils/internal/error-handler/errorHandler.js:170:23)\n at <anonymous> (/Users/casey/Developer/github/mcp-ts-core/dist/mcp-server/tools/utils/toolHandlerFactory.js:332:26)\n at executeToolHandler (/Users/casey/Developer/github/mcp-ts-core/node_modules/@modelcontextprotocol/sdk/dist/esm/server/mcp.js:231:34)\n at <anonymous> (/Users/casey/Developer/github/mcp-ts-core/node_modules/@modelcontextprotocol/sdk/dist/esm/server/mcp.js:126:43)\n at processTicksAndRejections (native:7:39)","msg":"Error in tool:scoped_echo: Insufficient permissions."}
|
|
8
|
+
{"level":50,"time":1783231119280,"env":"testing","version":"0.0.0-test","pid":84307,"requestId":"T7Q0W-6T89S","timestamp":"2026-07-05T05:58:39.280Z","operation":"HandleToolRequest","critical":false,"errorCode":-32005,"originalErrorType":"McpError","finalErrorType":"McpError","sessionId":"29b538ee96bafedac459648a72861dbbc3497b4e5fc29ca851a4d1768a6e7042","toolName":"scoped_echo","tenantId":"authz-tenant","auth":{"sub":"authz-user","scopes":["openid","email","profile","offline_access"],"clientId":"authz-client","tenantId":"authz-tenant","token":"[REDACTED]"},"errorData":{"sessionId":"29b538ee96bafedac459648a72861dbbc3497b4e5fc29ca851a4d1768a6e7042","toolName":"scoped_echo","requestId":"T7Q0W-6T89S","timestamp":"2026-07-05T05:58:39.280Z","tenantId":"authz-tenant","operation":"HandleToolRequest","auth":{"sub":"authz-user","scopes":["openid","email","profile","offline_access"],"clientId":"authz-client","tenantId":"authz-tenant","token":"[REDACTED]"},"originalErrorName":"McpError","originalMessage":"Insufficient permissions.","originalStack":"McpError: Insufficient permissions.\n at forbidden (/Users/casey/Developer/github/mcp-ts-core/dist/types-global/errors.js:84:58)\n at withRequiredScopes (/Users/casey/Developer/github/mcp-ts-core/dist/mcp-server/transports/auth/lib/authUtils.js:68:15)\n at <anonymous> (/Users/casey/Developer/github/mcp-ts-core/dist/mcp-server/tools/utils/toolHandlerFactory.js:283:17)\n at executeToolHandler (/Users/casey/Developer/github/mcp-ts-core/node_modules/@modelcontextprotocol/sdk/dist/esm/server/mcp.js:231:34)\n at <anonymous> (/Users/casey/Developer/github/mcp-ts-core/node_modules/@modelcontextprotocol/sdk/dist/esm/server/mcp.js:126:43)\n at processTicksAndRejections (native:7:39)"},"stack":"McpError: Insufficient permissions.\n at handleError (/Users/casey/Developer/github/mcp-ts-core/dist/utils/internal/error-handler/errorHandler.js:170:23)\n at <anonymous> (/Users/casey/Developer/github/mcp-ts-core/dist/mcp-server/tools/utils/toolHandlerFactory.js:332:26)\n at executeToolHandler (/Users/casey/Developer/github/mcp-ts-core/node_modules/@modelcontextprotocol/sdk/dist/esm/server/mcp.js:231:34)\n at <anonymous> (/Users/casey/Developer/github/mcp-ts-core/node_modules/@modelcontextprotocol/sdk/dist/esm/server/mcp.js:126:43)\n at processTicksAndRejections (native:7:39)","msg":"Error in tool:scoped_echo: Insufficient permissions."}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
{"level":50,"time":1783231103109,"env":"testing","version":"0.0.0-test","pid":84178,"requestId":"PZON4-3N6D7","timestamp":"2026-07-05T05:58:23.109Z","operation":"HandleToolRequest","critical":false,"errorCode":-32005,"originalErrorType":"McpError","finalErrorType":"McpError","sessionId":"a003ae75c90ddf28919db246e5c0d3b5586dc1e5b8c9e332a64be8669b3d7360","toolName":"scoped_echo","tenantId":"authz-tenant","auth":{"sub":"authz-user","scopes":["tool:other:read"],"clientId":"authz-client","tenantId":"authz-tenant","token":"[REDACTED]"},"errorData":{"sessionId":"a003ae75c90ddf28919db246e5c0d3b5586dc1e5b8c9e332a64be8669b3d7360","toolName":"scoped_echo","requestId":"PZON4-3N6D7","timestamp":"2026-07-05T05:58:23.109Z","tenantId":"authz-tenant","operation":"HandleToolRequest","auth":{"sub":"authz-user","scopes":["tool:other:read"],"clientId":"authz-client","tenantId":"authz-tenant","token":"[REDACTED]"},"originalErrorName":"McpError","originalMessage":"Insufficient permissions.","originalStack":"McpError: Insufficient permissions.\n at forbidden (file:///Users/casey/Developer/github/mcp-ts-core/dist/types-global/errors.js:84:54)\n at withRequiredScopes (file:///Users/casey/Developer/github/mcp-ts-core/dist/mcp-server/transports/auth/lib/authUtils.js:68:15)\n at file:///Users/casey/Developer/github/mcp-ts-core/dist/mcp-server/tools/utils/toolHandlerFactory.js:283:17\n at McpServer.executeToolHandler (file:///Users/casey/Developer/github/mcp-ts-core/node_modules/@modelcontextprotocol/sdk/dist/esm/server/mcp.js:233:42)\n at file:///Users/casey/Developer/github/mcp-ts-core/node_modules/@modelcontextprotocol/sdk/dist/esm/server/mcp.js:126:43\n at async wrappedHandler (file:///Users/casey/Developer/github/mcp-ts-core/node_modules/@modelcontextprotocol/sdk/dist/esm/server/index.js:125:32)"},"stack":"McpError: Insufficient permissions.\n at ErrorHandler.handleError (file:///Users/casey/Developer/github/mcp-ts-core/dist/utils/internal/error-handler/errorHandler.js:170:19)\n at file:///Users/casey/Developer/github/mcp-ts-core/dist/mcp-server/tools/utils/toolHandlerFactory.js:332:26\n at McpServer.executeToolHandler (file:///Users/casey/Developer/github/mcp-ts-core/node_modules/@modelcontextprotocol/sdk/dist/esm/server/mcp.js:233:42)\n at file:///Users/casey/Developer/github/mcp-ts-core/node_modules/@modelcontextprotocol/sdk/dist/esm/server/mcp.js:126:43\n at async wrappedHandler (file:///Users/casey/Developer/github/mcp-ts-core/node_modules/@modelcontextprotocol/sdk/dist/esm/server/index.js:125:32)","msg":"Error in tool:scoped_echo: Insufficient permissions."}
|
|
2
|
+
{"level":50,"time":1783231103120,"env":"testing","version":"0.0.0-test","pid":84178,"requestId":"56HCT-2LGD7","timestamp":"2026-07-05T05:58:23.120Z","operation":"HandleToolRequest","critical":false,"errorCode":-32005,"originalErrorType":"McpError","finalErrorType":"McpError","sessionId":"45ab8ec56704555314099a7c4436b328e2d024e49875f3d505424a0bc839bcde","toolName":"scoped_echo","tenantId":"authz-tenant","auth":{"sub":"authz-user","scopes":["openid","email","profile","offline_access"],"clientId":"authz-client","tenantId":"authz-tenant","token":"[REDACTED]"},"errorData":{"sessionId":"45ab8ec56704555314099a7c4436b328e2d024e49875f3d505424a0bc839bcde","toolName":"scoped_echo","requestId":"56HCT-2LGD7","timestamp":"2026-07-05T05:58:23.120Z","tenantId":"authz-tenant","operation":"HandleToolRequest","auth":{"sub":"authz-user","scopes":["openid","email","profile","offline_access"],"clientId":"authz-client","tenantId":"authz-tenant","token":"[REDACTED]"},"originalErrorName":"McpError","originalMessage":"Insufficient permissions.","originalStack":"McpError: Insufficient permissions.\n at forbidden (file:///Users/casey/Developer/github/mcp-ts-core/dist/types-global/errors.js:84:54)\n at withRequiredScopes (file:///Users/casey/Developer/github/mcp-ts-core/dist/mcp-server/transports/auth/lib/authUtils.js:68:15)\n at file:///Users/casey/Developer/github/mcp-ts-core/dist/mcp-server/tools/utils/toolHandlerFactory.js:283:17\n at McpServer.executeToolHandler (file:///Users/casey/Developer/github/mcp-ts-core/node_modules/@modelcontextprotocol/sdk/dist/esm/server/mcp.js:233:42)\n at file:///Users/casey/Developer/github/mcp-ts-core/node_modules/@modelcontextprotocol/sdk/dist/esm/server/mcp.js:126:43\n at async wrappedHandler (file:///Users/casey/Developer/github/mcp-ts-core/node_modules/@modelcontextprotocol/sdk/dist/esm/server/index.js:125:32)"},"stack":"McpError: Insufficient permissions.\n at ErrorHandler.handleError (file:///Users/casey/Developer/github/mcp-ts-core/dist/utils/internal/error-handler/errorHandler.js:170:19)\n at file:///Users/casey/Developer/github/mcp-ts-core/dist/mcp-server/tools/utils/toolHandlerFactory.js:332:26\n at McpServer.executeToolHandler (file:///Users/casey/Developer/github/mcp-ts-core/node_modules/@modelcontextprotocol/sdk/dist/esm/server/mcp.js:233:42)\n at file:///Users/casey/Developer/github/mcp-ts-core/node_modules/@modelcontextprotocol/sdk/dist/esm/server/mcp.js:126:43\n at async wrappedHandler (file:///Users/casey/Developer/github/mcp-ts-core/node_modules/@modelcontextprotocol/sdk/dist/esm/server/index.js:125:32)","msg":"Error in tool:scoped_echo: Insufficient permissions."}
|
|
3
|
+
{"level":50,"time":1783231119273,"env":"testing","version":"0.0.0-test","pid":84307,"requestId":"EG3JJ-IYNKA","timestamp":"2026-07-05T05:58:39.272Z","operation":"HandleToolRequest","critical":false,"errorCode":-32005,"originalErrorType":"McpError","finalErrorType":"McpError","sessionId":"0565cd1f9a70c34b09e7a097778fefe360c1afcc0e599031a555930479e51c44","toolName":"scoped_echo","tenantId":"authz-tenant","auth":{"sub":"authz-user","scopes":["tool:other:read"],"clientId":"authz-client","tenantId":"authz-tenant","token":"[REDACTED]"},"errorData":{"sessionId":"0565cd1f9a70c34b09e7a097778fefe360c1afcc0e599031a555930479e51c44","toolName":"scoped_echo","requestId":"EG3JJ-IYNKA","timestamp":"2026-07-05T05:58:39.272Z","tenantId":"authz-tenant","operation":"HandleToolRequest","auth":{"sub":"authz-user","scopes":["tool:other:read"],"clientId":"authz-client","tenantId":"authz-tenant","token":"[REDACTED]"},"originalErrorName":"McpError","originalMessage":"Insufficient permissions.","originalStack":"McpError: Insufficient permissions.\n at forbidden (/Users/casey/Developer/github/mcp-ts-core/dist/types-global/errors.js:84:58)\n at withRequiredScopes (/Users/casey/Developer/github/mcp-ts-core/dist/mcp-server/transports/auth/lib/authUtils.js:68:15)\n at <anonymous> (/Users/casey/Developer/github/mcp-ts-core/dist/mcp-server/tools/utils/toolHandlerFactory.js:283:17)\n at executeToolHandler (/Users/casey/Developer/github/mcp-ts-core/node_modules/@modelcontextprotocol/sdk/dist/esm/server/mcp.js:231:34)\n at <anonymous> (/Users/casey/Developer/github/mcp-ts-core/node_modules/@modelcontextprotocol/sdk/dist/esm/server/mcp.js:126:43)\n at processTicksAndRejections (native:7:39)"},"stack":"McpError: Insufficient permissions.\n at handleError (/Users/casey/Developer/github/mcp-ts-core/dist/utils/internal/error-handler/errorHandler.js:170:23)\n at <anonymous> (/Users/casey/Developer/github/mcp-ts-core/dist/mcp-server/tools/utils/toolHandlerFactory.js:332:26)\n at executeToolHandler (/Users/casey/Developer/github/mcp-ts-core/node_modules/@modelcontextprotocol/sdk/dist/esm/server/mcp.js:231:34)\n at <anonymous> (/Users/casey/Developer/github/mcp-ts-core/node_modules/@modelcontextprotocol/sdk/dist/esm/server/mcp.js:126:43)\n at processTicksAndRejections (native:7:39)","msg":"Error in tool:scoped_echo: Insufficient permissions."}
|
|
4
|
+
{"level":50,"time":1783231119280,"env":"testing","version":"0.0.0-test","pid":84307,"requestId":"T7Q0W-6T89S","timestamp":"2026-07-05T05:58:39.280Z","operation":"HandleToolRequest","critical":false,"errorCode":-32005,"originalErrorType":"McpError","finalErrorType":"McpError","sessionId":"29b538ee96bafedac459648a72861dbbc3497b4e5fc29ca851a4d1768a6e7042","toolName":"scoped_echo","tenantId":"authz-tenant","auth":{"sub":"authz-user","scopes":["openid","email","profile","offline_access"],"clientId":"authz-client","tenantId":"authz-tenant","token":"[REDACTED]"},"errorData":{"sessionId":"29b538ee96bafedac459648a72861dbbc3497b4e5fc29ca851a4d1768a6e7042","toolName":"scoped_echo","requestId":"T7Q0W-6T89S","timestamp":"2026-07-05T05:58:39.280Z","tenantId":"authz-tenant","operation":"HandleToolRequest","auth":{"sub":"authz-user","scopes":["openid","email","profile","offline_access"],"clientId":"authz-client","tenantId":"authz-tenant","token":"[REDACTED]"},"originalErrorName":"McpError","originalMessage":"Insufficient permissions.","originalStack":"McpError: Insufficient permissions.\n at forbidden (/Users/casey/Developer/github/mcp-ts-core/dist/types-global/errors.js:84:58)\n at withRequiredScopes (/Users/casey/Developer/github/mcp-ts-core/dist/mcp-server/transports/auth/lib/authUtils.js:68:15)\n at <anonymous> (/Users/casey/Developer/github/mcp-ts-core/dist/mcp-server/tools/utils/toolHandlerFactory.js:283:17)\n at executeToolHandler (/Users/casey/Developer/github/mcp-ts-core/node_modules/@modelcontextprotocol/sdk/dist/esm/server/mcp.js:231:34)\n at <anonymous> (/Users/casey/Developer/github/mcp-ts-core/node_modules/@modelcontextprotocol/sdk/dist/esm/server/mcp.js:126:43)\n at processTicksAndRejections (native:7:39)"},"stack":"McpError: Insufficient permissions.\n at handleError (/Users/casey/Developer/github/mcp-ts-core/dist/utils/internal/error-handler/errorHandler.js:170:23)\n at <anonymous> (/Users/casey/Developer/github/mcp-ts-core/dist/mcp-server/tools/utils/toolHandlerFactory.js:332:26)\n at executeToolHandler (/Users/casey/Developer/github/mcp-ts-core/node_modules/@modelcontextprotocol/sdk/dist/esm/server/mcp.js:231:34)\n at <anonymous> (/Users/casey/Developer/github/mcp-ts-core/node_modules/@modelcontextprotocol/sdk/dist/esm/server/mcp.js:126:43)\n at processTicksAndRejections (native:7:39)","msg":"Error in tool:scoped_echo: Insufficient permissions."}
|
|
File without changes
|
|
@@ -152,8 +152,9 @@ export interface ToolDefinition<TInput extends ZodObject<ZodRawShape> = ZodObjec
|
|
|
152
152
|
* framework's auto-classifier produces correct codes at runtime — the
|
|
153
153
|
* contract just adds compile-time enforcement.
|
|
154
154
|
*
|
|
155
|
-
* The
|
|
156
|
-
* and that `reason` strings are
|
|
155
|
+
* The definition linter (`bun run lint:mcp`, gated in `devcheck`) validates each
|
|
156
|
+
* entry's `code` is a real `JsonRpcErrorCode` and that `reason` strings are
|
|
157
|
+
* unique within the contract.
|
|
157
158
|
*/
|
|
158
159
|
errors?: TErrors;
|
|
159
160
|
/**
|
|
@@ -165,7 +166,7 @@ export interface ToolDefinition<TInput extends ZodObject<ZodRawShape> = ZodObjec
|
|
|
165
166
|
*
|
|
166
167
|
* **Make `format()` content-complete.** A thin one-liner (e.g., a count or
|
|
167
168
|
* title) leaves `content[]`-only clients blind to data that `structuredContent`
|
|
168
|
-
* clients can see. The `format-parity` lint rule enforces this at
|
|
169
|
+
* clients can see. The `format-parity` lint rule enforces this at build time.
|
|
169
170
|
*
|
|
170
171
|
* If omitted, the handler factory JSON-stringifies the output as a fallback.
|
|
171
172
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toolDefinition.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/utils/toolDefinition.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AACvE,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAErD,OAAO,KAAK,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAClE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAE9D,OAAO,EAAE,KAAK,gBAAgB,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEzE;;;;GAIG;AACH,MAAM,WAAW,eAAe;IAC9B;;;;OAIG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B;;;;OAIG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB;;;OAGG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB;;;OAGG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,MAAM,uBAAuB,CAAC,OAAO,SAAS,WAAW,GAAG,SAAS,IACzE,OAAO,SAAS,WAAW,GACvB;KACG,CAAC,IAAI,MAAM,OAAO,CAAC,CAAC,EAAE;QACrB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf;;;;;;;WAOG;QACH,MAAM,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC;KAC7C;CACF,GACD,KAAK,CAAC;AAEZ;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,cAAc,CAC7B,MAAM,SAAS,SAAS,CAAC,WAAW,CAAC,GAAG,SAAS,CAAC,WAAW,CAAC,EAC9D,OAAO,SAAS,SAAS,CAAC,WAAW,CAAC,GAAG,SAAS,CAAC,WAAW,CAAC,EAC/D,OAAO,SAAS,SAAS,aAAa,EAAE,GAAG,SAAS,GAAG,SAAS,EAChE,OAAO,SAAS,WAAW,GAAG,SAAS,GAAG,SAAS;IAEnD,0DAA0D;IAC1D,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,qCAAqC;IACrC,WAAW,CAAC,EAAE,eAAe,CAAC;IAC9B,+EAA+E;IAC/E,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,8BAA8B;IAC9B,WAAW,EAAE,MAAM,CAAC;IACpB;;;;;;;;;;;;;;;;;;;OAmBG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;;;;;;;;;OAWG;IACH,iBAAiB,CAAC,EAAE,uBAAuB,CAAC,OAAO,CAAC,CAAC;IACrD
|
|
1
|
+
{"version":3,"file":"toolDefinition.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/utils/toolDefinition.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toolDefinition.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/utils/toolDefinition.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAQH,OAAO,EAAyB,YAAY,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"toolDefinition.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/utils/toolDefinition.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAQH,OAAO,EAAyB,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAiOzE,8EAA8E;AAC9E,UAAU;AACV,8EAA8E;AAE9E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CG;AACH,MAAM,UAAU,IAAI,CAMlB,IAAY,EACZ,OAAwE;IAExE,OAAO,EAAE,IAAI,EAAE,GAAG,OAAO,EAAE,CAAC;AAC9B,CAAC"}
|