@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 +50 -0
- package/boost/guidelines.md +25 -0
- package/dist/McpPrompt.d.ts +7 -0
- package/dist/McpPrompt.d.ts.map +1 -1
- package/dist/McpPrompt.js.map +1 -1
- package/dist/McpResource.d.ts +8 -0
- package/dist/McpResource.d.ts.map +1 -1
- package/dist/McpResource.js.map +1 -1
- package/dist/McpTool.d.ts +11 -0
- package/dist/McpTool.d.ts.map +1 -1
- package/dist/McpTool.js.map +1 -1
- package/dist/decorators.d.ts +28 -0
- package/dist/decorators.d.ts.map +1 -1
- package/dist/decorators.js +83 -0
- package/dist/decorators.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/runtime.d.ts +10 -0
- package/dist/runtime.d.ts.map +1 -1
- package/dist/runtime.js +51 -15
- package/dist/runtime.js.map +1 -1
- package/dist/testing.d.ts +3 -0
- package/dist/testing.d.ts.map +1 -1
- package/dist/testing.js +25 -7
- package/dist/testing.js.map +1 -1
- package/package.json +3 -3
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
|
package/boost/guidelines.md
CHANGED
|
@@ -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'
|
package/dist/McpPrompt.d.ts
CHANGED
|
@@ -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
|
package/dist/McpPrompt.d.ts.map
CHANGED
|
@@ -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;
|
|
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"}
|
package/dist/McpPrompt.js.map
CHANGED
|
@@ -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;
|
|
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"}
|
package/dist/McpResource.d.ts
CHANGED
|
@@ -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;
|
|
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"}
|
package/dist/McpResource.js.map
CHANGED
|
@@ -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;
|
|
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
|
package/dist/McpTool.d.ts.map
CHANGED
|
@@ -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;
|
|
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"}
|
package/dist/McpTool.js.map
CHANGED
|
@@ -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;
|
|
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"}
|
package/dist/decorators.d.ts
CHANGED
|
@@ -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
|
package/dist/decorators.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"decorators.d.ts","sourceRoot":"","sources":["../src/decorators.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,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"}
|
package/dist/decorators.js
CHANGED
|
@@ -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
|
package/dist/decorators.js.map
CHANGED
|
@@ -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';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -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,
|
|
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,
|
|
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>;
|
package/dist/runtime.d.ts.map
CHANGED
|
@@ -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,
|
|
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
|
-
|
|
199
|
-
|
|
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
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
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 ?? {});
|
package/dist/runtime.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime.js","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"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"}
|
|
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;
|
package/dist/testing.d.ts.map
CHANGED
|
@@ -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;
|
|
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) =>
|
|
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) =>
|
|
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) => ({
|
|
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
|
}
|
package/dist/testing.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"testing.js","sourceRoot":"","sources":["../src/testing.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAA;
|
|
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
|
|
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/
|
|
70
|
-
"@rudderjs/
|
|
69
|
+
"@rudderjs/console": "^1.0.1",
|
|
70
|
+
"@rudderjs/router": "^1.2.0"
|
|
71
71
|
},
|
|
72
72
|
"author": "Suleiman Shahbari",
|
|
73
73
|
"scripts": {
|