@rudderjs/mcp 5.0.1 → 5.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -85,6 +85,38 @@ Don't take a `send` callback parameter — the generator pattern matches
85
85
  `@rudderjs/ai` and lets the runtime choose where progress lands (HTTP SSE,
86
86
  in-process collector, etc.).
87
87
 
88
+ ### Tool annotations (behavior hints)
89
+
90
+ Tools may carry MCP-spec hints that clients (Claude Desktop, Cursor, etc.) use to decide whether to auto-approve a call, batch it, or sandbox it. Apply them as class decorators:
91
+
92
+ ```ts
93
+ import { McpTool, IsReadOnly, IsDestructive, IsIdempotent, IsOpenWorld } from '@rudderjs/mcp'
94
+
95
+ @IsReadOnly()
96
+ @IsIdempotent()
97
+ class GetUserTool extends McpTool { /* ... */ }
98
+
99
+ @IsDestructive()
100
+ @IsOpenWorld()
101
+ class DeleteFileTool extends McpTool { /* ... */ }
102
+ ```
103
+
104
+ These surface as `annotations` on `tools/list` per the MCP spec. The hints are advisory — clients still apply their own policy. Both `true` and `false` are meaningful (vs. omitted), so the decorators accept an explicit value: `@IsReadOnly()` (= true), `@IsReadOnly(false)`, or no decorator (= omitted).
105
+
106
+ ### Conditional registration (`shouldRegister`)
107
+
108
+ Hide a tool, resource, or prompt from listings based on static state — feature flags, env mode, build-time config:
109
+
110
+ ```ts
111
+ class ExperimentalTool extends McpTool {
112
+ schema() { return z.object({}) }
113
+ async handle() { return McpResponse.text('experimental') }
114
+ shouldRegister() { return process.env.FEATURE_EXPERIMENTAL === 'true' }
115
+ }
116
+ ```
117
+
118
+ Returning `false` hides the primitive from `tools/list` AND causes `tools/call` to return "Unknown tool" — preventing bypass via direct call. The same hook is available on `McpResource` and `McpPrompt`. Async hooks are supported.
119
+
88
120
  ### Server-initiated notifications
89
121
 
90
122
  Push events to all connected clients via `McpServer` instance methods. The
@@ -119,6 +151,24 @@ export class WeatherGuidelinesResource extends McpResource {
119
151
  }
120
152
  ```
121
153
 
154
+ ### Resource annotations
155
+
156
+ Resources accept three protocol-level annotations: `@Audience`, `@Priority`, and `@LastModified`. These help clients rank and surface resources in their UI:
157
+
158
+ ```ts
159
+ import { McpResource, Audience, Priority, LastModified } from '@rudderjs/mcp'
160
+
161
+ @Audience('user') // 'user' | 'assistant' | both
162
+ @Priority(0.9) // 0..1 importance score
163
+ @LastModified('2026-05-09T00:00:00Z') // ISO 8601 string or Date
164
+ export class ReleaseNotesResource extends McpResource {
165
+ uri() { return 'file://release-notes' }
166
+ async handle() { return await readReleaseNotes() }
167
+ }
168
+ ```
169
+
170
+ Resources also accept the same `shouldRegister()` hook as tools.
171
+
122
172
  ## Prompts
123
173
 
124
174
  ```ts
@@ -56,6 +56,19 @@ outputSchema() {
56
56
  async handle() { return McpResponse.json({ temperature: 22, conditions: 'sunny' }) }
57
57
  ```
58
58
 
59
+ **Behavior annotations (MCP spec hints).** Apply as class decorators — clients use these to decide auto-approval / sandboxing / batching:
60
+
61
+ ```ts
62
+ import { IsReadOnly, IsDestructive, IsIdempotent, IsOpenWorld } from '@rudderjs/mcp'
63
+
64
+ @IsReadOnly() @IsIdempotent() class GetUserTool extends McpTool { /* ... */ }
65
+ @IsDestructive() @IsOpenWorld() class DeleteFileTool extends McpTool { /* ... */ }
66
+ ```
67
+
68
+ Both `true` and `false` are meaningful (vs. omitted). `@IsReadOnly()` = true; `@IsReadOnly(false)` = explicit false.
69
+
70
+ **Conditional registration.** Hide a tool/resource/prompt for static gating (env flags, feature toggles) — `shouldRegister(): boolean | Promise<boolean>`. Returning false hides from `tools/list` AND blocks `tools/call` (no bypass).
71
+
59
72
  ### Resources
60
73
 
61
74
  Two shapes — **static URIs** and **URI templates**:
@@ -80,6 +93,15 @@ export class CityWeatherResource extends McpResource {
80
93
 
81
94
  Templates are auto-registered via `ListResourceTemplates`. Params are extracted from the URI and passed to `handle()`.
82
95
 
96
+ **Resource annotations (MCP spec).** Three class decorators — `@Audience('user' | 'assistant')`, `@Priority(0..1)`, `@LastModified(string | Date)`. They surface in `resources/list`/`resources/templates/list` to help clients rank.
97
+
98
+ ```ts
99
+ @Audience('user') @Priority(0.9) @LastModified(new Date())
100
+ class ReleaseNotesResource extends McpResource { /* ... */ }
101
+ ```
102
+
103
+ Resources also accept the same `shouldRegister()` hook as tools.
104
+
83
105
  ### Prompts
84
106
 
85
107
  Like tools, but return message arrays instead of content:
@@ -266,6 +288,9 @@ import { McpResponse } from '@rudderjs/mcp'
266
288
 
267
289
  // Decorators
268
290
  import { Name, Version, Instructions, Description, Handle } from '@rudderjs/mcp'
291
+ // MCP-spec annotations
292
+ import { IsReadOnly, IsDestructive, IsIdempotent, IsOpenWorld } from '@rudderjs/mcp' // tools
293
+ import { Audience, Priority, LastModified } from '@rudderjs/mcp' // resources
269
294
 
270
295
  // Registration facade
271
296
  import { Mcp } from '@rudderjs/mcp'
@@ -15,5 +15,12 @@ export declare abstract class McpPrompt {
15
15
  * from the DI container when the method is decorated with `@Handle()`.
16
16
  */
17
17
  abstract handle(args: Record<string, unknown>, ...deps: unknown[]): Promise<McpPromptMessage[]>;
18
+ /**
19
+ * Optional hook controlling whether this prompt is exposed to clients.
20
+ *
21
+ * Returning `false` hides the prompt from `prompts/list` AND causes
22
+ * `prompts/get` to throw "Unknown prompt" — preventing bypass.
23
+ */
24
+ shouldRegister?(): boolean | Promise<boolean>;
18
25
  }
19
26
  //# sourceMappingURL=McpPrompt.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"McpPrompt.d.ts","sourceRoot":"","sources":["../src/McpPrompt.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAE/C,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,GAAG,WAAW,CAAA;IAC1B,OAAO,EAAE,MAAM,CAAA;CAChB;AAED,8BAAsB,SAAS;IAC7B,kBAAkB;IAClB,IAAI,IAAI,MAAM;IAId,kBAAkB;IAClB,WAAW,IAAI,MAAM;IAIrB,kDAAkD;IAClD,SAAS,CAAC,IAAI,aAAa;IAE3B;;;OAGG;IACH,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;CAChG"}
1
+ {"version":3,"file":"McpPrompt.d.ts","sourceRoot":"","sources":["../src/McpPrompt.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAE/C,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,GAAG,WAAW,CAAA;IAC1B,OAAO,EAAE,MAAM,CAAA;CAChB;AAED,8BAAsB,SAAS;IAC7B,kBAAkB;IAClB,IAAI,IAAI,MAAM;IAId,kBAAkB;IAClB,WAAW,IAAI,MAAM;IAIrB,kDAAkD;IAClD,SAAS,CAAC,IAAI,aAAa;IAE3B;;;OAGG;IACH,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAE/F;;;;;OAKG;IACH,cAAc,CAAC,IAAI,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;CAC9C"}
@@ -1 +1 @@
1
- {"version":3,"file":"McpPrompt.js","sourceRoot":"","sources":["../src/McpPrompt.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAQhD,MAAM,OAAgB,SAAS;IAC7B,kBAAkB;IAClB,IAAI;QACF,OAAO,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,CAAA;IAClE,CAAC;IAED,kBAAkB;IAClB,WAAW;QACT,OAAO,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAA;IAC/C,CAAC;CAUF"}
1
+ {"version":3,"file":"McpPrompt.js","sourceRoot":"","sources":["../src/McpPrompt.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAQhD,MAAM,OAAgB,SAAS;IAC7B,kBAAkB;IAClB,IAAI;QACF,OAAO,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,CAAA;IAClE,CAAC;IAED,kBAAkB;IAClB,WAAW;QACT,OAAO,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAA;IAC/C,CAAC;CAkBF"}
@@ -13,5 +13,13 @@ export declare abstract class McpResource {
13
13
  * container when the method is decorated with `@Handle()`.
14
14
  */
15
15
  abstract handle(params?: Record<string, string>, ...deps: unknown[]): Promise<string>;
16
+ /**
17
+ * Optional hook controlling whether this resource is exposed to clients.
18
+ *
19
+ * Returning `false` hides the resource from `resources/list` and
20
+ * `resources/templates/list`, AND causes `resources/read` to throw
21
+ * "Unknown resource" — preventing bypass via direct URI.
22
+ */
23
+ shouldRegister?(): boolean | Promise<boolean>;
16
24
  }
17
25
  //# sourceMappingURL=McpResource.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"McpResource.d.ts","sourceRoot":"","sources":["../src/McpResource.ts"],"names":[],"mappings":"AAEA,8BAAsB,WAAW;IAC/B,8EAA8E;IAC9E,QAAQ,CAAC,GAAG,IAAI,MAAM;IAEtB,gBAAgB;IAChB,QAAQ,IAAI,MAAM;IAIlB,2BAA2B;IAC3B,WAAW,IAAI,MAAM;IAIrB,4EAA4E;IAC5E,UAAU,IAAI,OAAO;IAIrB;;;;OAIG;IACH,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;CACtF"}
1
+ {"version":3,"file":"McpResource.d.ts","sourceRoot":"","sources":["../src/McpResource.ts"],"names":[],"mappings":"AAEA,8BAAsB,WAAW;IAC/B,8EAA8E;IAC9E,QAAQ,CAAC,GAAG,IAAI,MAAM;IAEtB,gBAAgB;IAChB,QAAQ,IAAI,MAAM;IAIlB,2BAA2B;IAC3B,WAAW,IAAI,MAAM;IAIrB,4EAA4E;IAC5E,UAAU,IAAI,OAAO;IAIrB;;;;OAIG;IACH,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAErF;;;;;;OAMG;IACH,cAAc,CAAC,IAAI,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;CAC9C"}
@@ -1 +1 @@
1
- {"version":3,"file":"McpResource.js","sourceRoot":"","sources":["../src/McpResource.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAEhD,MAAM,OAAgB,WAAW;IAI/B,gBAAgB;IAChB,QAAQ;QACN,OAAO,YAAY,CAAA;IACrB,CAAC;IAED,2BAA2B;IAC3B,WAAW;QACT,OAAO,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAA;IAC/C,CAAC;IAED,4EAA4E;IAC5E,UAAU;QACR,OAAO,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAA;IACjC,CAAC;CAQF"}
1
+ {"version":3,"file":"McpResource.js","sourceRoot":"","sources":["../src/McpResource.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAEhD,MAAM,OAAgB,WAAW;IAI/B,gBAAgB;IAChB,QAAQ;QACN,OAAO,YAAY,CAAA;IACrB,CAAC;IAED,2BAA2B;IAC3B,WAAW;QACT,OAAO,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAA;IAC/C,CAAC;IAED,4EAA4E;IAC5E,UAAU;QACR,OAAO,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAA;IACjC,CAAC;CAiBF"}
package/dist/McpTool.d.ts CHANGED
@@ -55,5 +55,16 @@ export declare abstract class McpTool {
55
55
  * ```
56
56
  */
57
57
  abstract handle(input: Record<string, unknown>, ...deps: unknown[]): McpToolReturn;
58
+ /**
59
+ * Optional hook controlling whether this tool is exposed to clients.
60
+ *
61
+ * Returning `false` hides the tool from `tools/list` AND causes `tools/call`
62
+ * to return an "unknown tool" error — preventing bypass via direct call.
63
+ *
64
+ * Use for static gating (env flags, feature toggles, build mode). The hook
65
+ * runs with no arguments today; per-request gating (auth-scoped tools) is
66
+ * tracked as future work.
67
+ */
68
+ shouldRegister?(): boolean | Promise<boolean>;
58
69
  }
59
70
  //# sourceMappingURL=McpTool.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"McpTool.d.ts","sourceRoot":"","sources":["../src/McpTool.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAE/C,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG;QAAE,IAAI,EAAE,OAAO,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IAClG,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB;AAED;;;;;GAKG;AACH,MAAM,WAAW,eAAe;IAC9B,gEAAgE;IAChE,QAAQ,EAAE,MAAM,CAAA;IAChB,kEAAkE;IAClE,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,8CAA8C;IAC9C,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED,mHAAmH;AACnH,MAAM,MAAM,aAAa,GACrB,OAAO,CAAC,aAAa,CAAC,GACtB,cAAc,CAAC,eAAe,EAAE,aAAa,EAAE,OAAO,CAAC,CAAA;AAE3D,8BAAsB,OAAO;IAC3B,yGAAyG;IACzG,IAAI,IAAI,MAAM;IAId,gEAAgE;IAChE,WAAW,IAAI,MAAM;IAIrB,8CAA8C;IAC9C,QAAQ,CAAC,MAAM,IAAI,aAAa;IAEhC,gFAAgF;IAChF,YAAY,CAAC,IAAI,aAAa;IAE9B;;;;;;;;;;;;;;;;;;OAkBG;IACH,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,aAAa;CACnF"}
1
+ {"version":3,"file":"McpTool.d.ts","sourceRoot":"","sources":["../src/McpTool.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAE/C,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG;QAAE,IAAI,EAAE,OAAO,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IAClG,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB;AAED;;;;;GAKG;AACH,MAAM,WAAW,eAAe;IAC9B,gEAAgE;IAChE,QAAQ,EAAE,MAAM,CAAA;IAChB,kEAAkE;IAClE,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,8CAA8C;IAC9C,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED,mHAAmH;AACnH,MAAM,MAAM,aAAa,GACrB,OAAO,CAAC,aAAa,CAAC,GACtB,cAAc,CAAC,eAAe,EAAE,aAAa,EAAE,OAAO,CAAC,CAAA;AAE3D,8BAAsB,OAAO;IAC3B,yGAAyG;IACzG,IAAI,IAAI,MAAM;IAId,gEAAgE;IAChE,WAAW,IAAI,MAAM;IAIrB,8CAA8C;IAC9C,QAAQ,CAAC,MAAM,IAAI,aAAa;IAEhC,gFAAgF;IAChF,YAAY,CAAC,IAAI,aAAa;IAE9B;;;;;;;;;;;;;;;;;;OAkBG;IACH,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,aAAa;IAElF;;;;;;;;;OASG;IACH,cAAc,CAAC,IAAI,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;CAC9C"}
@@ -1 +1 @@
1
- {"version":3,"file":"McpTool.js","sourceRoot":"","sources":["../src/McpTool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AA4BhD,MAAM,OAAgB,OAAO;IAC3B,yGAAyG;IACzG,IAAI;QACF,OAAO,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAA;IAChE,CAAC;IAED,gEAAgE;IAChE,WAAW;QACT,OAAO,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAA;IAC/C,CAAC;CA4BF"}
1
+ {"version":3,"file":"McpTool.js","sourceRoot":"","sources":["../src/McpTool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AA4BhD,MAAM,OAAgB,OAAO;IAC3B,yGAAyG;IACzG,IAAI;QACF,OAAO,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAA;IAChE,CAAC;IAED,gEAAgE;IAChE,WAAW;QACT,OAAO,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAA;IAC/C,CAAC;CAwCF"}
@@ -26,4 +26,32 @@ type InjectToken = (new (...args: any[]) => unknown) | string | symbol;
26
26
  export declare function Handle(...tokens: InjectToken[]): MethodDecorator;
27
27
  export declare function getInjectTokens(target: object, propertyKey: string | symbol): InjectToken[] | undefined;
28
28
  export type { InjectToken };
29
+ /** Tool does not modify state. */
30
+ export declare function IsReadOnly(value?: boolean): ClassDecorator;
31
+ /** Tool may perform destructive updates. */
32
+ export declare function IsDestructive(value?: boolean): ClassDecorator;
33
+ /** Repeated calls with the same input have no additional effect. */
34
+ export declare function IsIdempotent(value?: boolean): ClassDecorator;
35
+ /** Tool interacts with external systems (network, filesystem outside the server). */
36
+ export declare function IsOpenWorld(value?: boolean): ClassDecorator;
37
+ export interface ToolAnnotations {
38
+ readOnlyHint?: boolean;
39
+ destructiveHint?: boolean;
40
+ idempotentHint?: boolean;
41
+ openWorldHint?: boolean;
42
+ }
43
+ export declare function getToolAnnotations(target: Function): ToolAnnotations | undefined;
44
+ export type AudienceRole = 'user' | 'assistant';
45
+ /** Intended audience(s). One or both of `'user'`, `'assistant'`. */
46
+ export declare function Audience(...roles: AudienceRole[]): ClassDecorator;
47
+ /** Importance score, 0..1. */
48
+ export declare function Priority(value: number): ClassDecorator;
49
+ /** Last-modified timestamp. ISO 8601 string or Date. */
50
+ export declare function LastModified(value: string | Date): ClassDecorator;
51
+ export interface ResourceAnnotations {
52
+ audience?: AudienceRole[];
53
+ priority?: number;
54
+ lastModified?: string;
55
+ }
56
+ export declare function getResourceAnnotations(target: Function): ResourceAnnotations | undefined;
29
57
  //# sourceMappingURL=decorators.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"decorators.d.ts","sourceRoot":"","sources":["../src/decorators.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAA;AAQzB,wBAAgB,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,CAEjD;AAED,wBAAgB,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,cAAc,CAEvD;AAED,wBAAgB,YAAY,CAAC,YAAY,EAAE,MAAM,GAAG,cAAc,CAEjE;AAED,wBAAgB,WAAW,CAAC,WAAW,EAAE,MAAM,GAAG,cAAc,CAE/D;AAGD,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,QAAQ,GAAG;IAAE,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;IAAC,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IAAC,YAAY,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,CAM/I;AAGD,wBAAgB,cAAc,CAAC,MAAM,EAAE,QAAQ,GAAG,MAAM,GAAG,SAAS,CAEnE;AAGD,KAAK,WAAW,GAAG,CAAC,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,OAAO,CAAC,GAAG,MAAM,GAAG,MAAM,CAAA;AAEtE;;;;;;;;;;;;GAYG;AACH,wBAAgB,MAAM,CAAC,GAAG,MAAM,EAAE,WAAW,EAAE,GAAG,eAAe,CAIhE;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,WAAW,EAAE,GAAG,SAAS,CAEvG;AAED,YAAY,EAAE,WAAW,EAAE,CAAA"}
1
+ {"version":3,"file":"decorators.d.ts","sourceRoot":"","sources":["../src/decorators.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAA;AAmBzB,wBAAgB,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,CAEjD;AAED,wBAAgB,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,cAAc,CAEvD;AAED,wBAAgB,YAAY,CAAC,YAAY,EAAE,MAAM,GAAG,cAAc,CAEjE;AAED,wBAAgB,WAAW,CAAC,WAAW,EAAE,MAAM,GAAG,cAAc,CAE/D;AAGD,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,QAAQ,GAAG;IAAE,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;IAAC,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IAAC,YAAY,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,CAM/I;AAGD,wBAAgB,cAAc,CAAC,MAAM,EAAE,QAAQ,GAAG,MAAM,GAAG,SAAS,CAEnE;AAGD,KAAK,WAAW,GAAG,CAAC,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,OAAO,CAAC,GAAG,MAAM,GAAG,MAAM,CAAA;AAEtE;;;;;;;;;;;;GAYG;AACH,wBAAgB,MAAM,CAAC,GAAG,MAAM,EAAE,WAAW,EAAE,GAAG,eAAe,CAIhE;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,WAAW,EAAE,GAAG,SAAS,CAEvG;AAED,YAAY,EAAE,WAAW,EAAE,CAAA;AAY3B,kCAAkC;AAClC,wBAAgB,UAAU,CAAC,KAAK,UAAO,GAAG,cAAc,CAEvD;AAED,4CAA4C;AAC5C,wBAAgB,aAAa,CAAC,KAAK,UAAO,GAAG,cAAc,CAE1D;AAED,oEAAoE;AACpE,wBAAgB,YAAY,CAAC,KAAK,UAAO,GAAG,cAAc,CAEzD;AAED,qFAAqF;AACrF,wBAAgB,WAAW,CAAC,KAAK,UAAO,GAAG,cAAc,CAExD;AAED,MAAM,WAAW,eAAe;IAC9B,YAAY,CAAC,EAAK,OAAO,CAAA;IACzB,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,cAAc,CAAC,EAAG,OAAO,CAAA;IACzB,aAAa,CAAC,EAAI,OAAO,CAAA;CAC1B;AAGD,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,QAAQ,GAAG,eAAe,GAAG,SAAS,CAWhF;AAID,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,WAAW,CAAA;AAE/C,oEAAoE;AACpE,wBAAgB,QAAQ,CAAC,GAAG,KAAK,EAAE,YAAY,EAAE,GAAG,cAAc,CAGjE;AAED,8BAA8B;AAC9B,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,cAAc,CAKtD;AAED,wDAAwD;AACxD,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,cAAc,CAGjE;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,EAAM,YAAY,EAAE,CAAA;IAC7B,QAAQ,CAAC,EAAM,MAAM,CAAA;IACrB,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB;AAGD,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,QAAQ,GAAG,mBAAmB,GAAG,SAAS,CASxF"}
@@ -4,6 +4,15 @@ const VERSION_KEY = Symbol('mcp:version');
4
4
  const INSTRUCTIONS_KEY = Symbol('mcp:instructions');
5
5
  const DESCRIPTION_KEY = Symbol('mcp:description');
6
6
  const INJECT_KEY = Symbol('mcp:inject');
7
+ // Tool annotations (MCP spec hints — clients use these to decide auto-approval, batching, sandboxing)
8
+ const READ_ONLY_KEY = Symbol('mcp:readOnly');
9
+ const DESTRUCTIVE_KEY = Symbol('mcp:destructive');
10
+ const IDEMPOTENT_KEY = Symbol('mcp:idempotent');
11
+ const OPEN_WORLD_KEY = Symbol('mcp:openWorld');
12
+ // Resource annotations
13
+ const AUDIENCE_KEY = Symbol('mcp:audience');
14
+ const PRIORITY_KEY = Symbol('mcp:priority');
15
+ const LAST_MODIFIED_KEY = Symbol('mcp:lastModified');
7
16
  export function Name(name) {
8
17
  return (target) => { Reflect.defineMetadata(NAME_KEY, name, target); };
9
18
  }
@@ -49,4 +58,78 @@ export function Handle(...tokens) {
49
58
  export function getInjectTokens(target, propertyKey) {
50
59
  return Reflect.getMetadata(INJECT_KEY, target, propertyKey);
51
60
  }
61
+ // ─── Tool annotations (MCP spec) ─────────────────────────
62
+ //
63
+ // Per the MCP spec, tools may carry behavior hints that clients (Claude
64
+ // Desktop, Cursor, etc.) use to decide whether to auto-approve a call, batch
65
+ // it, or sandbox it. The hints are advisory — clients still apply their own
66
+ // policy. Both `true` and `false` are meaningful (vs. omitted), so each
67
+ // decorator accepts an explicit value with a default of `true`.
68
+ //
69
+ // Spec reference: https://modelcontextprotocol.io/specification
70
+ /** Tool does not modify state. */
71
+ export function IsReadOnly(value = true) {
72
+ return (target) => { Reflect.defineMetadata(READ_ONLY_KEY, value, target); };
73
+ }
74
+ /** Tool may perform destructive updates. */
75
+ export function IsDestructive(value = true) {
76
+ return (target) => { Reflect.defineMetadata(DESTRUCTIVE_KEY, value, target); };
77
+ }
78
+ /** Repeated calls with the same input have no additional effect. */
79
+ export function IsIdempotent(value = true) {
80
+ return (target) => { Reflect.defineMetadata(IDEMPOTENT_KEY, value, target); };
81
+ }
82
+ /** Tool interacts with external systems (network, filesystem outside the server). */
83
+ export function IsOpenWorld(value = true) {
84
+ return (target) => { Reflect.defineMetadata(OPEN_WORLD_KEY, value, target); };
85
+ }
86
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-function-type
87
+ export function getToolAnnotations(target) {
88
+ const a = {};
89
+ const ro = Reflect.getMetadata(READ_ONLY_KEY, target);
90
+ const de = Reflect.getMetadata(DESTRUCTIVE_KEY, target);
91
+ const id = Reflect.getMetadata(IDEMPOTENT_KEY, target);
92
+ const ow = Reflect.getMetadata(OPEN_WORLD_KEY, target);
93
+ if (ro !== undefined)
94
+ a.readOnlyHint = ro;
95
+ if (de !== undefined)
96
+ a.destructiveHint = de;
97
+ if (id !== undefined)
98
+ a.idempotentHint = id;
99
+ if (ow !== undefined)
100
+ a.openWorldHint = ow;
101
+ return Object.keys(a).length > 0 ? a : undefined;
102
+ }
103
+ /** Intended audience(s). One or both of `'user'`, `'assistant'`. */
104
+ export function Audience(...roles) {
105
+ if (roles.length === 0)
106
+ throw new Error('@Audience requires at least one role');
107
+ return (target) => { Reflect.defineMetadata(AUDIENCE_KEY, roles, target); };
108
+ }
109
+ /** Importance score, 0..1. */
110
+ export function Priority(value) {
111
+ if (value < 0 || value > 1 || Number.isNaN(value)) {
112
+ throw new Error(`@Priority must be between 0 and 1, got ${value}`);
113
+ }
114
+ return (target) => { Reflect.defineMetadata(PRIORITY_KEY, value, target); };
115
+ }
116
+ /** Last-modified timestamp. ISO 8601 string or Date. */
117
+ export function LastModified(value) {
118
+ const iso = value instanceof Date ? value.toISOString() : value;
119
+ return (target) => { Reflect.defineMetadata(LAST_MODIFIED_KEY, iso, target); };
120
+ }
121
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-function-type
122
+ export function getResourceAnnotations(target) {
123
+ const a = {};
124
+ const aud = Reflect.getMetadata(AUDIENCE_KEY, target);
125
+ const pri = Reflect.getMetadata(PRIORITY_KEY, target);
126
+ const lm = Reflect.getMetadata(LAST_MODIFIED_KEY, target);
127
+ if (aud !== undefined)
128
+ a.audience = aud;
129
+ if (pri !== undefined)
130
+ a.priority = pri;
131
+ if (lm !== undefined)
132
+ a.lastModified = lm;
133
+ return Object.keys(a).length > 0 ? a : undefined;
134
+ }
52
135
  //# sourceMappingURL=decorators.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"decorators.js","sourceRoot":"","sources":["../src/decorators.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAA;AAEzB,MAAM,QAAQ,GAAG,MAAM,CAAC,UAAU,CAAC,CAAA;AACnC,MAAM,WAAW,GAAG,MAAM,CAAC,aAAa,CAAC,CAAA;AACzC,MAAM,gBAAgB,GAAG,MAAM,CAAC,kBAAkB,CAAC,CAAA;AACnD,MAAM,eAAe,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAAA;AACjD,MAAM,UAAU,GAAG,MAAM,CAAC,YAAY,CAAC,CAAA;AAEvC,MAAM,UAAU,IAAI,CAAC,IAAY;IAC/B,OAAO,CAAC,MAAM,EAAE,EAAE,GAAG,OAAO,CAAC,cAAc,CAAC,QAAQ,EAAE,IAAI,EAAE,MAAM,CAAC,CAAA,CAAC,CAAC,CAAA;AACvE,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,OAAe;IACrC,OAAO,CAAC,MAAM,EAAE,EAAE,GAAG,OAAO,CAAC,cAAc,CAAC,WAAW,EAAE,OAAO,EAAE,MAAM,CAAC,CAAA,CAAC,CAAC,CAAA;AAC7E,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,YAAoB;IAC/C,OAAO,CAAC,MAAM,EAAE,EAAE,GAAG,OAAO,CAAC,cAAc,CAAC,gBAAgB,EAAE,YAAY,EAAE,MAAM,CAAC,CAAA,CAAC,CAAC,CAAA;AACvF,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,WAAmB;IAC7C,OAAO,CAAC,MAAM,EAAE,EAAE,GAAG,OAAO,CAAC,cAAc,CAAC,eAAe,EAAE,WAAW,EAAE,MAAM,CAAC,CAAA,CAAC,CAAC,CAAA;AACrF,CAAC;AAED,sEAAsE;AACtE,MAAM,UAAU,iBAAiB,CAAC,MAAgB;IAChD,OAAO;QACL,IAAI,EAAE,OAAO,CAAC,WAAW,CAAC,QAAQ,EAAE,MAAM,CAAuB;QACjE,OAAO,EAAE,OAAO,CAAC,WAAW,CAAC,WAAW,EAAE,MAAM,CAAuB;QACvE,YAAY,EAAE,OAAO,CAAC,WAAW,CAAC,gBAAgB,EAAE,MAAM,CAAuB;KAClF,CAAA;AACH,CAAC;AAED,sEAAsE;AACtE,MAAM,UAAU,cAAc,CAAC,MAAgB;IAC7C,OAAO,OAAO,CAAC,WAAW,CAAC,eAAe,EAAE,MAAM,CAAuB,CAAA;AAC3E,CAAC;AAKD;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,MAAM,CAAC,GAAG,MAAqB;IAC7C,OAAO,CAAC,MAAM,EAAE,WAAW,EAAE,EAAE;QAC7B,OAAO,CAAC,cAAc,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,CAAC,CAAA;IACjE,CAAC,CAAA;AACH,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,MAAc,EAAE,WAA4B;IAC1E,OAAO,OAAO,CAAC,WAAW,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,CAA8B,CAAA;AAC1F,CAAC"}
1
+ {"version":3,"file":"decorators.js","sourceRoot":"","sources":["../src/decorators.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -8,8 +8,8 @@ export type { McpPromptMessage } from './McpPrompt.js';
8
8
  export { McpResponse } from './McpResponse.js';
9
9
  export { Mcp } from './Mcp.js';
10
10
  export type { McpWebEntry, McpWebBuilder } from './Mcp.js';
11
- export { Name, Version, Instructions, Description, Handle } from './decorators.js';
12
- export type { InjectToken } from './decorators.js';
11
+ export { Name, Version, Instructions, Description, Handle, IsReadOnly, IsDestructive, IsIdempotent, IsOpenWorld, Audience, Priority, LastModified, } from './decorators.js';
12
+ export type { InjectToken, ToolAnnotations, ResourceAnnotations, AudienceRole } from './decorators.js';
13
13
  export { createSdkServer, startStdio, mountHttpTransport } from './runtime.js';
14
14
  export type { HttpTransportOptions } from './runtime.js';
15
15
  export { oauth2McpMiddleware, registerOAuth2Metadata } from './auth/oauth2.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC1C,YAAY,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;AACvD,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACtC,YAAY,EAAE,aAAa,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AACjF,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC1C,YAAY,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAC9C,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAA;AAC9B,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAC1D,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;AAClF,YAAY,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAClD,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAA;AAC9E,YAAY,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAA;AACxD,OAAO,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAA;AAC9E,YAAY,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAA;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAC5C,YAAY,EAAE,gBAAgB,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC1C,YAAY,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;AACvD,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACtC,YAAY,EAAE,aAAa,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AACjF,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC1C,YAAY,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAC9C,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAA;AAC9B,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAC1D,OAAO,EACL,IAAI,EAAE,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,EAChD,UAAU,EAAE,aAAa,EAAE,YAAY,EAAE,WAAW,EACpD,QAAQ,EAAE,QAAQ,EAAE,YAAY,GACjC,MAAM,iBAAiB,CAAA;AACxB,YAAY,EAAE,WAAW,EAAE,eAAe,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AACtG,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAA;AAC9E,YAAY,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAA;AACxD,OAAO,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAA;AAC9E,YAAY,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAA;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAC5C,YAAY,EAAE,gBAAgB,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAA"}
package/dist/index.js CHANGED
@@ -4,7 +4,7 @@ export { McpResource } from './McpResource.js';
4
4
  export { McpPrompt } from './McpPrompt.js';
5
5
  export { McpResponse } from './McpResponse.js';
6
6
  export { Mcp } from './Mcp.js';
7
- export { Name, Version, Instructions, Description, Handle } from './decorators.js';
7
+ export { Name, Version, Instructions, Description, Handle, IsReadOnly, IsDestructive, IsIdempotent, IsOpenWorld, Audience, Priority, LastModified, } from './decorators.js';
8
8
  export { createSdkServer, startStdio, mountHttpTransport } from './runtime.js';
9
9
  export { oauth2McpMiddleware, registerOAuth2Metadata } from './auth/oauth2.js';
10
10
  export { McpProvider } from './provider.js';
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAE1C,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAEtC,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAE1C,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAC9C,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAA;AAE9B,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;AAElF,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAA;AAE9E,OAAO,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAA;AAE9E,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAE1C,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAEtC,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAE1C,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAC9C,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAA;AAE9B,OAAO,EACL,IAAI,EAAE,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,EAChD,UAAU,EAAE,aAAa,EAAE,YAAY,EAAE,WAAW,EACpD,QAAQ,EAAE,QAAQ,EAAE,YAAY,GACjC,MAAM,iBAAiB,CAAA;AAExB,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAA;AAE9E,OAAO,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAA;AAE9E,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA"}
package/dist/runtime.d.ts CHANGED
@@ -31,6 +31,16 @@ export declare function consumeToolReturn(ret: McpToolReturn, extra: SdkRequestE
31
31
  * - no extra parameters were declared
32
32
  */
33
33
  export declare function resolveHandleDeps(instance: object, propertyKey: string): unknown[];
34
+ /**
35
+ * Resolve `shouldRegister?()` for a primitive. Items without the hook are
36
+ * always registered. Awaits async hooks.
37
+ */
38
+ export declare function isRegistered(item: {
39
+ shouldRegister?(): boolean | Promise<boolean>;
40
+ }): Promise<boolean>;
41
+ export declare function filterRegistered<T extends {
42
+ shouldRegister?(): boolean | Promise<boolean>;
43
+ }>(items: T[]): Promise<T[]>;
34
44
  export declare function createSdkServer(server: McpServer): Server;
35
45
  /** Start a server with stdio transport */
36
46
  export declare function startStdio(server: McpServer): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAA;AAWlE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC/C,OAAO,KAAK,EAAW,aAAa,EAAE,aAAa,EAAmB,MAAM,cAAc,CAAA;AAyC1F,iFAAiF;AACjF,KAAK,eAAe,GAAG;IACrB,gBAAgB,CAAC,EAAE,CAAC,YAAY,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;CAC/G,CAAA;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,iBAAiB,CACrC,GAAG,EAAE,aAAa,EAClB,KAAK,EAAE,eAAe,GAAG,SAAS,EAClC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GACxC,OAAO,CAAC,aAAa,CAAC,CAuBxB;AAgCD;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,EAAE,CAmClF;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,SAAS,GAAG,MAAM,CA8JzD;AAED,0CAA0C;AAC1C,wBAAsB,UAAU,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAMjE;AAID,MAAM,WAAW,oBAAoB;IACnC,sDAAsD;IACtD,UAAU,CAAC,EAAE,OAAO,EAAE,CAAA;IACtB,8EAA8E;IAC9E,kBAAkB,CAAC,EAAE,CAAC,MAAM,MAAM,CAAC,GAAG,SAAS,CAAA;CAChD;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,SAAS,EACjB,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,oBAAoB,GAC7B,OAAO,CAAC,IAAI,CAAC,CA+Ef"}
1
+ {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAA;AAWlE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC/C,OAAO,KAAK,EAAW,aAAa,EAAE,aAAa,EAAmB,MAAM,cAAc,CAAA;AAyC1F,iFAAiF;AACjF,KAAK,eAAe,GAAG;IACrB,gBAAgB,CAAC,EAAE,CAAC,YAAY,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;CAC/G,CAAA;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,iBAAiB,CACrC,GAAG,EAAE,aAAa,EAClB,KAAK,EAAE,eAAe,GAAG,SAAS,EAClC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GACxC,OAAO,CAAC,aAAa,CAAC,CAuBxB;AAgCD;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,EAAE,CAmClF;AAED;;;GAGG;AACH,wBAAsB,YAAY,CAAC,IAAI,EAAE;IAAE,cAAc,CAAC,IAAI,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;CAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAG5G;AAED,wBAAsB,gBAAgB,CAAC,CAAC,SAAS;IAAE,cAAc,CAAC,IAAI,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;CAAE,EAChG,KAAK,EAAE,CAAC,EAAE,GACT,OAAO,CAAC,CAAC,EAAE,CAAC,CAMd;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,SAAS,GAAG,MAAM,CAkLzD;AAED,0CAA0C;AAC1C,wBAAsB,UAAU,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAMjE;AAID,MAAM,WAAW,oBAAoB;IACnC,sDAAsD;IACtD,UAAU,CAAC,EAAE,OAAO,EAAE,CAAA;IACtB,8EAA8E;IAC9E,kBAAkB,CAAC,EAAE,CAAC,MAAM,MAAM,CAAC,GAAG,SAAS,CAAA;CAChD;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,SAAS,EACjB,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,oBAAoB,GAC7B,OAAO,CAAC,IAAI,CAAC,CA+Ef"}
package/dist/runtime.js CHANGED
@@ -2,7 +2,7 @@ import { Server } from '@modelcontextprotocol/sdk/server/index.js';
2
2
  import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
3
3
  import { CallToolRequestSchema, ListToolsRequestSchema, ReadResourceRequestSchema, ListResourcesRequestSchema, ListResourceTemplatesRequestSchema, GetPromptRequestSchema, ListPromptsRequestSchema, } from '@modelcontextprotocol/sdk/types.js';
4
4
  import { zodToJsonSchema } from './zod-to-json-schema.js';
5
- import { getInjectTokens } from './decorators.js';
5
+ import { getInjectTokens, getToolAnnotations, getResourceAnnotations } from './decorators.js';
6
6
  // Lazy accessor — avoids importing the registry eagerly so the global
7
7
  // singleton is always the one on `globalThis`, even across SSR re-eval.
8
8
  let _mcpObs;
@@ -143,6 +143,23 @@ export function resolveHandleDeps(instance, propertyKey) {
143
143
  }
144
144
  return extras;
145
145
  }
146
+ /**
147
+ * Resolve `shouldRegister?()` for a primitive. Items without the hook are
148
+ * always registered. Awaits async hooks.
149
+ */
150
+ export async function isRegistered(item) {
151
+ if (!item.shouldRegister)
152
+ return true;
153
+ return Boolean(await item.shouldRegister());
154
+ }
155
+ export async function filterRegistered(items) {
156
+ const out = [];
157
+ for (const item of items) {
158
+ if (await isRegistered(item))
159
+ out.push(item);
160
+ }
161
+ return out;
162
+ }
146
163
  export function createSdkServer(server) {
147
164
  const meta = server.metadata();
148
165
  const sdk = new Server({ name: meta.name, version: meta.version }, { capabilities: { tools: {}, resources: {}, prompts: {} } });
@@ -154,7 +171,7 @@ export function createSdkServer(server) {
154
171
  const prompts = promptClasses.map((P) => resolveOrConstruct(P));
155
172
  // ── Tools ────────────────────────────────────────────────
156
173
  sdk.setRequestHandler(ListToolsRequestSchema, async () => ({
157
- tools: tools.map((t) => {
174
+ tools: (await filterRegistered(tools)).map((t) => {
158
175
  const def = {
159
176
  name: t.name(),
160
177
  description: t.description(),
@@ -163,12 +180,16 @@ export function createSdkServer(server) {
163
180
  if (t.outputSchema) {
164
181
  def['outputSchema'] = zodToJsonSchema(t.outputSchema());
165
182
  }
183
+ const annotations = getToolAnnotations(t.constructor);
184
+ if (annotations) {
185
+ def['annotations'] = annotations;
186
+ }
166
187
  return def;
167
188
  }),
168
189
  }));
169
190
  sdk.setRequestHandler(CallToolRequestSchema, async (request, extra) => {
170
191
  const tool = tools.find((t) => t.name() === request.params.name);
171
- if (!tool) {
192
+ if (!tool || !(await isRegistered(tool))) {
172
193
  return { content: [{ type: 'text', text: `Unknown tool: ${request.params.name}` }], isError: true };
173
194
  }
174
195
  const input = (request.params.arguments ?? {});
@@ -195,22 +216,37 @@ export function createSdkServer(server) {
195
216
  // ── Resources ────────────────────────────────────────────
196
217
  const staticResources = resources.filter((r) => !r.isTemplate());
197
218
  const templateResources = resources.filter((r) => r.isTemplate());
198
- sdk.setRequestHandler(ListResourcesRequestSchema, async () => ({
199
- resources: staticResources.map((r) => ({
219
+ function decorateResource(r) {
220
+ const def = {
200
221
  uri: r.uri(),
201
222
  name: r.uri(),
202
223
  description: r.description(),
203
224
  mimeType: r.mimeType(),
204
- })),
225
+ };
226
+ const annotations = getResourceAnnotations(r.constructor);
227
+ if (annotations) {
228
+ def['annotations'] = annotations;
229
+ }
230
+ return def;
231
+ }
232
+ sdk.setRequestHandler(ListResourcesRequestSchema, async () => ({
233
+ resources: (await filterRegistered(staticResources)).map(decorateResource),
205
234
  }));
206
235
  if (templateResources.length > 0) {
207
236
  sdk.setRequestHandler(ListResourceTemplatesRequestSchema, async () => ({
208
- resourceTemplates: templateResources.map((r) => ({
209
- uriTemplate: r.uri(),
210
- name: r.uri(),
211
- description: r.description(),
212
- mimeType: r.mimeType(),
213
- })),
237
+ resourceTemplates: (await filterRegistered(templateResources)).map((r) => {
238
+ const def = {
239
+ uriTemplate: r.uri(),
240
+ name: r.uri(),
241
+ description: r.description(),
242
+ mimeType: r.mimeType(),
243
+ };
244
+ const annotations = getResourceAnnotations(r.constructor);
245
+ if (annotations) {
246
+ def['annotations'] = annotations;
247
+ }
248
+ return def;
249
+ }),
214
250
  }));
215
251
  }
216
252
  sdk.setRequestHandler(ReadResourceRequestSchema, async (request) => {
@@ -229,7 +265,7 @@ export function createSdkServer(server) {
229
265
  }
230
266
  }
231
267
  }
232
- if (!resource) {
268
+ if (!resource || !(await isRegistered(resource))) {
233
269
  throw new Error(`Unknown resource: ${uri}`);
234
270
  }
235
271
  const start = performance.now();
@@ -255,7 +291,7 @@ export function createSdkServer(server) {
255
291
  });
256
292
  // ── Prompts ──────────────────────────────────────────────
257
293
  sdk.setRequestHandler(ListPromptsRequestSchema, async () => ({
258
- prompts: prompts.map((p) => ({
294
+ prompts: (await filterRegistered(prompts)).map((p) => ({
259
295
  name: p.name(),
260
296
  description: p.description(),
261
297
  ...(p.arguments ? { arguments: Object.keys(p.arguments().shape).map((k) => ({ name: k, required: true })) } : {}),
@@ -263,7 +299,7 @@ export function createSdkServer(server) {
263
299
  }));
264
300
  sdk.setRequestHandler(GetPromptRequestSchema, async (request) => {
265
301
  const prompt = prompts.find((p) => p.name() === request.params.name);
266
- if (!prompt) {
302
+ if (!prompt || !(await isRegistered(prompt))) {
267
303
  throw new Error(`Unknown prompt: ${request.params.name}`);
268
304
  }
269
305
  const args = (request.params.arguments ?? {});
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAA;AAClE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAA;AAChF,OAAO,EACL,qBAAqB,EACrB,sBAAsB,EACtB,yBAAyB,EACzB,0BAA0B,EAC1B,kCAAkC,EAClC,sBAAsB,EACtB,wBAAwB,GACzB,MAAM,oCAAoC,CAAA;AAK3C,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AACzD,OAAO,EAAE,eAAe,EAAoB,MAAM,iBAAiB,CAAA;AAGnE,sEAAsE;AACtE,wEAAwE;AACxE,IAAI,OAA+C,CAAA;AACnD,SAAS,eAAe;IACtB,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,OAAO,GAAI,UAAsC,CAAC,4BAA4B,CAAoC,IAAI,IAAI,CAAA;IAC5H,CAAC;IACD,OAAO,OAAO,CAAA;AAChB,CAAC;AAED;;;GAGG;AACH,SAAS,gBAAgB,CAAC,QAAgB,EAAE,GAAW;IACrD,oFAAoF;IACpF,MAAM,UAAU,GAAa,EAAE,CAAA;IAC/B,MAAM,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC,EAAE,IAAY,EAAE,EAAE;QAClE,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACrB,OAAO,SAAS,CAAA;IAClB,CAAC,CAAC,CAAA;IACF,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,IAAI,QAAQ,GAAG,CAAC,CAAC,CAAA;IACpD,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAA;IACvB,MAAM,MAAM,GAA2B,EAAE,CAAA;IACzC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3C,MAAM,CAAC,UAAU,CAAC,CAAC,CAAE,CAAC,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAE,CAAC,CAAA;IAC5D,CAAC;IACD,OAAO,MAAM,CAAA;AACf,CAAC;AAED,SAAS,YAAY,CAAI,MAAiB,EAAE,GAAW,EAAE,QAAW;IAClE,OAAO,CAAE,MAAuC,CAAC,GAAG,CAAC,CAAC,IAAI,QAAQ,CAAA;AACpE,CAAC;AAOD;;;;;;;;;;GAUG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,GAAkB,EAClB,KAAkC,EAClC,IAAyC;IAEzC,6EAA6E;IAC7E,MAAM,SAAS,GAAG,GAAsE,CAAA;IACxF,MAAM,WAAW,GAAG,SAAS;WACxB,OAAO,SAAS,CAAC,IAAI,KAAK,UAAU;WACpC,OAAO,SAAS,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,UAAU,CAAA;IAE1D,IAAI,CAAC,WAAW;QAAE,OAAO,MAAO,GAA8B,CAAA;IAE9D,MAAM,IAAI,GAAG,GAA8D,CAAA;IAC3E,MAAM,aAAa,GAAG,IAAI,EAAE,CAAC,eAAe,CAAC,CAAA;IAC7C,MAAM,gBAAgB,GAAG,KAAK,EAAE,gBAAgB,CAAA;IAEhD,OAAO,IAAI,EAAE,CAAC;QACZ,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,CAAA;QAC9B,IAAI,IAAI,CAAC,IAAI;YAAE,OAAO,IAAI,CAAC,KAAK,CAAA;QAChC,IAAI,aAAa,KAAK,SAAS,IAAI,gBAAgB,EAAE,CAAC;YACpD,MAAM,gBAAgB,CAAC;gBACrB,MAAM,EAAE,wBAAwB;gBAChC,MAAM,EAAE,EAAE,aAAa,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE;aACzC,CAAC,CAAA;QACJ,CAAC;IACH,CAAC;AACH,CAAC;AAOD,SAAS,YAAY;IACnB,MAAM,CAAC,GAAG,UAAqC,CAAA;IAC/C,uEAAuE;IACvE,8DAA8D;IAC9D,OAAQ,CAAC,CAAC,kBAAkB,CAAiC;WACrD,CAAC,CAAC,uBAAuB,CAAiC,CAAA;AACpE,CAAC;AAED;;;;GAIG;AACH,SAAS,kBAAkB,CAAI,IAAa;IAC1C,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,YAAY,EAAE,CAAA;QAChC,IAAI,SAAS,EAAE,IAAI,EAAE,CAAC;YACpB,OAAO,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAC7B,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,wDAAwD;IAC1D,CAAC;IACD,OAAO,IAAI,IAAI,EAAE,CAAA;AACnB,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,iBAAiB,CAAC,QAAgB,EAAE,WAAmB;IACrE,6EAA6E;IAC7E,2CAA2C;IAC3C,MAAM,QAAQ,GAAG,eAAe,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAA;IACvD,MAAM,SAAS,GAAG,YAAY,EAAE,CAAA;IAEhC,IAAI,QAAQ,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpC,IAAI,CAAC,SAAS,EAAE,IAAI;YAAE,OAAO,EAAE,CAAA;QAC/B,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;YAC5B,IAAI,CAAC;gBACH,OAAO,SAAS,CAAC,IAAK,CAAC,KAAa,CAAC,CAAA;YACvC,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,SAAS,CAAA;YAClB,CAAC;QACH,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,uEAAuE;IACvE,wDAAwD;IACxD,MAAM,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC,mBAAmB,EAAE,QAAQ,EAAE,WAAW,CAC7D,CAAA;IACpB,IAAI,CAAC,UAAU,IAAI,UAAU,CAAC,MAAM,IAAI,CAAC;QAAE,OAAO,EAAE,CAAA;IACpD,IAAI,CAAC,SAAS,EAAE,IAAI;QAAE,OAAO,EAAE,CAAA;IAE/B,MAAM,MAAM,GAAc,EAAE,CAAA;IAC5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3C,MAAM,IAAI,GAAG,UAAU,CAAC,CAAC,CAAC,CAAA;QAC1B,IAAI,CAAC,IAAI,EAAE,CAAC;YAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAAC,SAAQ;QAAC,CAAC;QAC/C,IAAI,CAAC;YACH,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;QACnC,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;QACxB,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAA;AACf,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,MAAiB;IAC/C,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAA;IAC9B,MAAM,GAAG,GAAG,IAAI,MAAM,CACpB,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,EAC1C,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,CAC5D,CAAA;IAED,MAAM,WAAW,GAAG,YAAY,CAAsC,MAAM,EAAE,OAAO,EAAE,EAAE,CAAC,CAAA;IAC1F,MAAM,eAAe,GAAG,YAAY,CAA0C,MAAM,EAAE,WAAW,EAAE,EAAE,CAAC,CAAA;IACtG,MAAM,aAAa,GAAG,YAAY,CAAwC,MAAM,EAAE,SAAS,EAAE,EAAE,CAAC,CAAA;IAEhG,MAAM,KAAK,GAAc,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAA;IACtE,MAAM,SAAS,GAAkB,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAA;IAClF,MAAM,OAAO,GAAgB,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAA;IAE5E,4DAA4D;IAC5D,GAAG,CAAC,iBAAiB,CAAC,sBAAsB,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC;QACzD,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YACrB,MAAM,GAAG,GAA4B;gBACnC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE;gBACd,WAAW,EAAE,CAAC,CAAC,WAAW,EAAE;gBAC5B,WAAW,EAAE,eAAe,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;aACzC,CAAA;YACD,IAAI,CAAC,CAAC,YAAY,EAAE,CAAC;gBACnB,GAAG,CAAC,cAAc,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC,YAAY,EAAE,CAAC,CAAA;YACzD,CAAC;YACD,OAAO,GAAG,CAAA;QACZ,CAAC,CAAC;KACH,CAAC,CAAC,CAAA;IAEH,GAAG,CAAC,iBAAiB,CAAC,qBAAqB,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE;QACpE,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;QAChE,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,iBAAiB,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAA;QAC9G,CAAC;QACD,MAAM,KAAK,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,IAAI,EAAE,CAA4B,CAAA;QACzE,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE,CAAA;QAC/B,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,iBAAiB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAA;YAChD,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,GAAG,MAAY,CAAC,CAAA;YAC/C,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,GAAG,EAAE,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;YACxE,eAAe,EAAE,EAAE,IAAI,CAAC;gBACtB,IAAI,EAAE,aAAa,EAAE,UAAU,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE;gBAC7D,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,CAAC,GAAG,EAAE,GAAG,KAAK;aAC3D,CAAC,CAAA;YACF,OAAO,EAAE,GAAG,MAAM,EAAE,CAAA;QACtB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;YAC5D,eAAe,EAAE,EAAE,IAAI,CAAC;gBACtB,IAAI,EAAE,aAAa,EAAE,UAAU,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE;gBAC7D,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,CAAC,GAAG,EAAE,GAAG,KAAK,EAAE,KAAK,EAAE,GAAG;aACrE,CAAC,CAAA;YACF,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,UAAU,GAAG,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAA;QACvF,CAAC;IACH,CAAC,CAAC,CAAA;IAEF,4DAA4D;IAC5D,MAAM,eAAe,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,CAAA;IAChE,MAAM,iBAAiB,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,CAAA;IAEjE,GAAG,CAAC,iBAAiB,CAAC,0BAA0B,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC;QAC7D,SAAS,EAAE,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACrC,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE;YACZ,IAAI,EAAE,CAAC,CAAC,GAAG,EAAE;YACb,WAAW,EAAE,CAAC,CAAC,WAAW,EAAE;YAC5B,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE;SACvB,CAAC,CAAC;KACJ,CAAC,CAAC,CAAA;IAEH,IAAI,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACjC,GAAG,CAAC,iBAAiB,CAAC,kCAAkC,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC;YACrE,iBAAiB,EAAE,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBAC/C,WAAW,EAAE,CAAC,CAAC,GAAG,EAAE;gBACpB,IAAI,EAAE,CAAC,CAAC,GAAG,EAAE;gBACb,WAAW,EAAE,CAAC,CAAC,WAAW,EAAE;gBAC5B,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE;aACvB,CAAC,CAAC;SACJ,CAAC,CAAC,CAAA;IACL,CAAC;IAED,GAAG,CAAC,iBAAiB,CAAC,yBAAyB,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;QACjE,MAAM,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,CAAA;QAE9B,2CAA2C;QAC3C,IAAI,QAAQ,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,GAAG,CAAC,CAAA;QAC3D,IAAI,MAA0C,CAAA;QAE9C,qBAAqB;QACrB,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,KAAK,MAAM,IAAI,IAAI,iBAAiB,EAAE,CAAC;gBACrC,MAAM,SAAS,GAAG,gBAAgB,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,GAAG,CAAC,CAAA;gBACnD,IAAI,SAAS,EAAE,CAAC;oBACd,QAAQ,GAAG,IAAI,CAAA;oBACf,MAAM,GAAG,SAAS,CAAA;oBAClB,MAAK;gBACP,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CAAC,qBAAqB,GAAG,EAAE,CAAC,CAAA;QAC7C,CAAC;QACD,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE,CAAA;QAC/B,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,iBAAiB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAA;YACpD,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,MAAY,CAAC,CAAA;YAC3D,eAAe,EAAE,EAAE,IAAI,CAAC;gBACtB,IAAI,EAAE,eAAe,EAAE,UAAU,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,CAAC,GAAG,EAAE;gBAClE,KAAK,EAAE,MAAM,IAAI,EAAE,GAAG,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,CAAC,GAAG,EAAE,GAAG,KAAK;aAC5E,CAAC,CAAA;YACF,OAAO;gBACL,QAAQ,EAAE,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,CAAC,QAAQ,EAAE,EAAE,CAAC;aACzD,CAAA;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;YAC5D,eAAe,EAAE,EAAE,IAAI,CAAC;gBACtB,IAAI,EAAE,iBAAiB,EAAE,UAAU,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,CAAC,GAAG,EAAE;gBACpE,KAAK,EAAE,MAAM,IAAI,EAAE,GAAG,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,CAAC,GAAG,EAAE,GAAG,KAAK,EAAE,KAAK,EAAE,GAAG;aACxF,CAAC,CAAA;YACF,MAAM,GAAG,CAAA;QACX,CAAC;IACH,CAAC,CAAC,CAAA;IAEF,4DAA4D;IAC5D,GAAG,CAAC,iBAAiB,CAAC,wBAAwB,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC;QAC3D,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAC3B,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE;YACd,WAAW,EAAE,CAAC,CAAC,WAAW,EAAE;YAC5B,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,KAAgC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC7I,CAAC,CAAC;KACJ,CAAC,CAAC,CAAA;IAEH,GAAG,CAAC,iBAAiB,CAAC,sBAAsB,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;QAC9D,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;QACpE,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,mBAAmB,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAA;QAC3D,CAAC;QACD,MAAM,IAAI,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,IAAI,EAAE,CAA4B,CAAA;QACxE,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE,CAAA;QAC/B,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;YAClD,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,MAAY,CAAC,CAAA;YAC3D,eAAe,EAAE,EAAE,IAAI,CAAC;gBACtB,IAAI,EAAE,iBAAiB,EAAE,UAAU,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE;gBACnE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,CAAC,GAAG,EAAE,GAAG,KAAK;aACnE,CAAC,CAAA;YACF,OAAO,EAAE,QAAQ,EAAE,CAAA;QACrB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;YAC5D,eAAe,EAAE,EAAE,IAAI,CAAC;gBACtB,IAAI,EAAE,eAAe,EAAE,UAAU,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE;gBACjE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,CAAC,GAAG,EAAE,GAAG,KAAK,EAAE,KAAK,EAAE,GAAG;aAC3E,CAAC,CAAA;YACF,MAAM,GAAG,CAAA;QACX,CAAC;IACH,CAAC,CAAC,CAAA;IAEF,OAAO,GAAG,CAAA;AACZ,CAAC;AAED,0CAA0C;AAC1C,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,MAAiB;IAChD,MAAM,GAAG,GAAG,eAAe,CAAC,MAAM,CAAC,CAAA;IACnC,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAA;IAC5C,MAAM,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;IAC5B,0EAA0E;IAC1E,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,CAAA;AACvB,CAAC;AAWD;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,MAAiB,EACjB,IAAY,EACZ,OAA8B;IAE9B,MAAM,EAAE,wCAAwC,EAAE,GAAG,MAAM,MAAM,CAC/D,+DAA+D,CAChE,CAAA;IAED,sEAAsE;IACtE,oDAAoD;IACpD,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAqG,CAAA;IAE7H,MAAM,YAAY,GAAG,OAAO,EAAE,kBAAkB,KAAK,SAAS;QAC5D,CAAC,CAAC,OAAO,CAAC,kBAAkB;QAC5B,CAAC,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,UAAU,EAAE,CAAA;IAE7B,MAAM,EAAE,mBAAmB,EAAE,GAAG,MAAM,MAAM,CAAC,gBAAgB,CAAC,CAAA;IAC9D,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,mBAAmB,CAIzC,kBAAkB,CAAC,CAAA;IAEtB,MAAM,UAAU,GAAG,OAAO,EAAE,UAA6G,CAAA;IAEzI,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,EAAE,EAAE,KAAK,EAAE,GAAQ,EAAE,GAAQ,EAAE,EAAE;QACjD,kDAAkD;QAClD,MAAM,OAAO,GAAG,GAAG,CAAC,GAAG,CAAA;QACvB,MAAM,aAAa,GAAY,OAAO,CAAC,GAAG,CAAC,GAAG,CAAA;QAE9C,4CAA4C;QAC5C,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,IAAI,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,eAAe,CAAC,CAAA;YACzC,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,MAAM,SAAS,GAAG,IAAI,wCAAwC,EAAE,CAAA;gBAChE,MAAM,GAAG,GAAG,eAAe,CAAC,MAAM,CAAC,CAAA;gBACnC,MAAM,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;gBAC5B,4EAA4E;gBAC5E,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,CAAA;gBACrB,KAAK,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,CAAA;gBAC1B,QAAQ,CAAC,GAAG,CAAC,eAAe,EAAE,KAAK,CAAC,CAAA;YACtC,CAAC;YACD,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,SAAS,CAAC,aAAa,CAAC,aAAa,CAAC,CAAA;YACnE,OAAO,CAAC,GAAG,GAAG,QAAQ,CAAA;YACtB,OAAO,OAAO,CAAC,GAAG,CAAA;QACpB,CAAC;QAED,4CAA4C;QAC5C,MAAM,SAAS,GAAG,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAA;QAE7D,IAAI,SAAS,IAAI,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;YACzC,mBAAmB;YACnB,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAE,CAAA;YACtC,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,SAAS,CAAC,aAAa,CAAC,aAAa,CAAC,CAAA;YACnE,OAAO,CAAC,GAAG,GAAG,QAAQ,CAAA;YACtB,OAAO,OAAO,CAAC,GAAG,CAAA;QACpB,CAAC;QAED,wEAAwE;QACxE,sEAAsE;QACtE,gEAAgE;QAChE,+CAA+C;QAC/C,IAAI,MAAM,GAAe,GAAG,EAAE,GAAE,CAAC,CAAA;QACjC,MAAM,SAAS,GAAG,IAAI,wCAAwC,CAAC;YAC7D,kBAAkB,EAAE,YAAY;YAChC,oBAAoB,EAAE,CAAC,EAAU,EAAE,EAAE;gBACnC,QAAQ,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,CAAA;YACtC,CAAC;YACD,eAAe,EAAE,CAAC,EAAU,EAAE,EAAE;gBAC9B,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;gBACnB,MAAM,EAAE,CAAA;YACV,CAAC;SACF,CAAC,CAAA;QAEF,MAAM,GAAG,GAAG,eAAe,CAAC,MAAM,CAAC,CAAA;QACnC,MAAM,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;QAC5B,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,CAAA;QAE9B,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,aAAa,CAAC,aAAa,CAAC,CAAA;QAC7D,OAAO,CAAC,GAAG,GAAG,QAAQ,CAAA;QACtB,OAAO,OAAO,CAAC,GAAG,CAAA;IACpB,CAAC,EAAE,UAAU,CAAC,CAAA;AAChB,CAAC"}
1
+ {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"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"}
package/dist/testing.d.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  import type { McpServer } from './McpServer.js';
2
2
  import type { McpToolResult, McpToolProgress } from './McpTool.js';
3
3
  import type { McpPromptMessage } from './McpPrompt.js';
4
+ import { type ToolAnnotations, type ResourceAnnotations } from './decorators.js';
4
5
  export declare class McpTestClient {
5
6
  private tools;
6
7
  private resources;
@@ -15,10 +16,12 @@ export declare class McpTestClient {
15
16
  listTools(): Promise<Array<{
16
17
  name: string;
17
18
  description: string;
19
+ annotations?: ToolAnnotations;
18
20
  }>>;
19
21
  listResources(): Promise<Array<{
20
22
  uri: string;
21
23
  description: string;
24
+ annotations?: ResourceAnnotations;
22
25
  }>>;
23
26
  listPrompts(): Promise<Array<{
24
27
  name: string;
@@ -1 +1 @@
1
- {"version":3,"file":"testing.d.ts","sourceRoot":"","sources":["../src/testing.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC/C,OAAO,KAAK,EAAW,aAAa,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAE3E,OAAO,KAAK,EAAa,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AAGjE,qBAAa,aAAa;IACxB,OAAO,CAAC,KAAK,CAAW;IACxB,OAAO,CAAC,SAAS,CAAe;IAChC,OAAO,CAAC,OAAO,CAAa;gBAEhB,WAAW,EAAE,UAAU,SAAS;IAiB5C;;;;OAIG;IACG,QAAQ,CACZ,IAAI,EAAE,MAAM,EACZ,KAAK,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,EACnC,UAAU,CAAC,EAAE,CAAC,CAAC,EAAE,eAAe,KAAK,IAAI,GACxC,OAAO,CAAC,aAAa,CAAC;IAmBnB,SAAS,IAAI,OAAO,CAAC,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAIlE,aAAa,IAAI,OAAO,CAAC,KAAK,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAIrE,WAAW,IAAI,OAAO,CAAC,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAIpE,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAM1C,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAM9F,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAMpC,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAMvC,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAMvC,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAM3C,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAMtC,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;CAK1C"}
1
+ {"version":3,"file":"testing.d.ts","sourceRoot":"","sources":["../src/testing.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC/C,OAAO,KAAK,EAAW,aAAa,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAE3E,OAAO,KAAK,EAAa,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AAEjE,OAAO,EAA8C,KAAK,eAAe,EAAE,KAAK,mBAAmB,EAAE,MAAM,iBAAiB,CAAA;AAE5H,qBAAa,aAAa;IACxB,OAAO,CAAC,KAAK,CAAW;IACxB,OAAO,CAAC,SAAS,CAAe;IAChC,OAAO,CAAC,OAAO,CAAa;gBAEhB,WAAW,EAAE,UAAU,SAAS;IAiB5C;;;;OAIG;IACG,QAAQ,CACZ,IAAI,EAAE,MAAM,EACZ,KAAK,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,EACnC,UAAU,CAAC,EAAE,CAAC,CAAC,EAAE,eAAe,KAAK,IAAI,GACxC,OAAO,CAAC,aAAa,CAAC;IAmBnB,SAAS,IAAI,OAAO,CAAC,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,eAAe,CAAA;KAAE,CAAC,CAAC;IAWjG,aAAa,IAAI,OAAO,CAAC,KAAK,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,mBAAmB,CAAA;KAAE,CAAC,CAAC;IAWxG,WAAW,IAAI,OAAO,CAAC,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAOpE,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAM1C,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAM9F,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAMpC,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAMvC,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAMvC,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAM3C,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAMtC,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;CAK1C"}
package/dist/testing.js CHANGED
@@ -1,4 +1,5 @@
1
- import { resolveHandleDeps, consumeToolReturn } from './runtime.js';
1
+ import { resolveHandleDeps, consumeToolReturn, isRegistered, filterRegistered } from './runtime.js';
2
+ import { getToolAnnotations, getResourceAnnotations } from './decorators.js';
2
3
  export class McpTestClient {
3
4
  tools;
4
5
  resources;
@@ -17,7 +18,7 @@ export class McpTestClient {
17
18
  */
18
19
  async callTool(name, input = {}, onProgress) {
19
20
  const tool = this.tools.find((t) => t.name() === name);
20
- if (!tool)
21
+ if (!tool || !(await isRegistered(tool)))
21
22
  throw new Error(`Tool "${name}" not found`);
22
23
  const extras = resolveHandleDeps(tool, 'handle');
23
24
  const ret = tool.handle(input, ...extras);
@@ -35,23 +36,40 @@ export class McpTestClient {
35
36
  return consumeToolReturn(ret, extra, onProgress ? { progressToken: 'test' } : undefined);
36
37
  }
37
38
  async listTools() {
38
- return this.tools.map((t) => ({ name: t.name(), description: t.description() }));
39
+ return (await filterRegistered(this.tools)).map((t) => {
40
+ const annotations = getToolAnnotations(t.constructor);
41
+ return {
42
+ name: t.name(),
43
+ description: t.description(),
44
+ ...(annotations ? { annotations } : {}),
45
+ };
46
+ });
39
47
  }
40
48
  async listResources() {
41
- return this.resources.map((r) => ({ uri: r.uri(), description: r.description() }));
49
+ return (await filterRegistered(this.resources)).map((r) => {
50
+ const annotations = getResourceAnnotations(r.constructor);
51
+ return {
52
+ uri: r.uri(),
53
+ description: r.description(),
54
+ ...(annotations ? { annotations } : {}),
55
+ };
56
+ });
42
57
  }
43
58
  async listPrompts() {
44
- return this.prompts.map((p) => ({ name: p.name(), description: p.description() }));
59
+ return (await filterRegistered(this.prompts)).map((p) => ({
60
+ name: p.name(),
61
+ description: p.description(),
62
+ }));
45
63
  }
46
64
  async readResource(uri) {
47
65
  const resource = this.resources.find((r) => r.uri() === uri);
48
- if (!resource)
66
+ if (!resource || !(await isRegistered(resource)))
49
67
  throw new Error(`Resource "${uri}" not found`);
50
68
  return resource.handle();
51
69
  }
52
70
  async getPrompt(name, args = {}) {
53
71
  const prompt = this.prompts.find((p) => p.name() === name);
54
- if (!prompt)
72
+ if (!prompt || !(await isRegistered(prompt)))
55
73
  throw new Error(`Prompt "${name}" not found`);
56
74
  return prompt.handle(args);
57
75
  }
@@ -1 +1 @@
1
- {"version":3,"file":"testing.js","sourceRoot":"","sources":["../src/testing.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"testing.js","sourceRoot":"","sources":["../src/testing.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rudderjs/mcp",
3
- "version": "5.0.1",
3
+ "version": "5.1.0",
4
4
  "description": "MCP (Model Context Protocol) server framework for RudderJS",
5
5
  "rudderjs": {
6
6
  "provider": "McpProvider",
@@ -66,8 +66,8 @@
66
66
  "devDependencies": {
67
67
  "@types/node": "^20.0.0",
68
68
  "typescript": "^5.4.0",
69
- "@rudderjs/router": "^1.2.0",
70
- "@rudderjs/console": "^1.0.1"
69
+ "@rudderjs/console": "^1.0.1",
70
+ "@rudderjs/router": "^1.2.0"
71
71
  },
72
72
  "author": "Suleiman Shahbari",
73
73
  "scripts": {