@nestjs-mcp/server 0.2.0 → 0.3.0-rc.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (107) hide show
  1. package/README.md +59 -21
  2. package/dist/classes/index.d.ts +4 -0
  3. package/dist/{registry → classes}/index.js +4 -2
  4. package/dist/classes/index.js.map +1 -0
  5. package/dist/classes/prompt.args.d.ts +8 -0
  6. package/dist/classes/prompt.args.js +16 -0
  7. package/dist/classes/prompt.args.js.map +1 -0
  8. package/dist/classes/resource-template.args.d.ts +8 -0
  9. package/dist/classes/resource-template.args.js +18 -0
  10. package/dist/classes/resource-template.args.js.map +1 -0
  11. package/dist/classes/resource-uri.args.d.ts +7 -0
  12. package/dist/classes/resource-uri.args.js +16 -0
  13. package/dist/classes/resource-uri.args.js.map +1 -0
  14. package/dist/classes/tool.args.d.ts +8 -0
  15. package/dist/classes/tool.args.js +16 -0
  16. package/dist/classes/tool.args.js.map +1 -0
  17. package/dist/decorators/index.d.ts +5 -2
  18. package/dist/decorators/index.js +5 -2
  19. package/dist/decorators/index.js.map +1 -1
  20. package/dist/decorators/prompt.decorator.d.ts +15 -0
  21. package/dist/decorators/prompt.decorator.js +16 -0
  22. package/dist/decorators/prompt.decorator.js.map +1 -0
  23. package/dist/decorators/resolver.decorator.d.ts +2 -0
  24. package/dist/decorators/resolver.decorator.js +14 -0
  25. package/dist/decorators/resolver.decorator.js.map +1 -0
  26. package/dist/decorators/resource.decorator.d.ts +18 -0
  27. package/dist/decorators/resource.decorator.js +16 -0
  28. package/dist/decorators/resource.decorator.js.map +1 -0
  29. package/dist/decorators/tool.decorator.d.ts +24 -0
  30. package/dist/decorators/tool.decorator.js +16 -0
  31. package/dist/decorators/tool.decorator.js.map +1 -0
  32. package/dist/decorators/user-guard.decorator.d.ts +2 -0
  33. package/dist/decorators/user-guard.decorator.js +10 -0
  34. package/dist/decorators/user-guard.decorator.js.map +1 -0
  35. package/dist/index.d.ts +2 -1
  36. package/dist/index.js +2 -1
  37. package/dist/index.js.map +1 -1
  38. package/dist/interfaces/context.interface.d.ts +2 -2
  39. package/dist/interfaces/index.d.ts +0 -2
  40. package/dist/interfaces/index.js +0 -2
  41. package/dist/interfaces/index.js.map +1 -1
  42. package/dist/mcp-core.module.d.ts +11 -0
  43. package/dist/mcp-core.module.js +191 -0
  44. package/dist/mcp-core.module.js.map +1 -0
  45. package/dist/mcp.constants.d.ts +3 -0
  46. package/dist/mcp.constants.js +7 -0
  47. package/dist/mcp.constants.js.map +1 -0
  48. package/dist/mcp.module.d.ts +3 -5
  49. package/dist/mcp.module.js +9 -157
  50. package/dist/mcp.module.js.map +1 -1
  51. package/dist/{interfaces/mcp-server-options.interface.d.ts → mcp.types.d.ts} +19 -8
  52. package/dist/{interfaces/message.types.js → mcp.types.js} +1 -1
  53. package/dist/mcp.types.js.map +1 -0
  54. package/dist/{registry → services}/discovery.service.js.map +1 -1
  55. package/dist/services/index.d.ts +2 -0
  56. package/dist/services/index.js +2 -0
  57. package/dist/services/index.js.map +1 -1
  58. package/dist/{registry → services}/logger.service.d.ts +1 -1
  59. package/dist/{registry → services}/logger.service.js.map +1 -1
  60. package/dist/{registry → services}/registry.service.d.ts +1 -1
  61. package/dist/{registry → services}/registry.service.js +29 -22
  62. package/dist/services/registry.service.js.map +1 -0
  63. package/dist/transports/sse/index.js.map +1 -0
  64. package/dist/{controllers → transports}/sse/sse.controller.d.ts +1 -1
  65. package/dist/{controllers → transports}/sse/sse.controller.js +1 -1
  66. package/dist/transports/sse/sse.controller.js.map +1 -0
  67. package/dist/{controllers → transports}/sse/sse.service.d.ts +3 -3
  68. package/dist/{controllers → transports}/sse/sse.service.js +2 -2
  69. package/dist/transports/sse/sse.service.js.map +1 -0
  70. package/dist/transports/streamable/index.js.map +1 -0
  71. package/dist/transports/streamable/streamable.controller.js.map +1 -0
  72. package/dist/{controllers → transports}/streamable/streamable.service.d.ts +3 -3
  73. package/dist/{controllers → transports}/streamable/streamable.service.js +2 -2
  74. package/dist/transports/streamable/streamable.service.js.map +1 -0
  75. package/dist/tsconfig.build.tsbuildinfo +1 -1
  76. package/package.json +22 -5
  77. package/dist/controllers/sse/index.js.map +0 -1
  78. package/dist/controllers/sse/sse.controller.js.map +0 -1
  79. package/dist/controllers/sse/sse.service.js.map +0 -1
  80. package/dist/controllers/streamable/index.js.map +0 -1
  81. package/dist/controllers/streamable/streamable.controller.js.map +0 -1
  82. package/dist/controllers/streamable/streamable.service.js.map +0 -1
  83. package/dist/decorators/capabilities.constants.d.ts +0 -4
  84. package/dist/decorators/capabilities.constants.js +0 -8
  85. package/dist/decorators/capabilities.constants.js.map +0 -1
  86. package/dist/decorators/capabilities.decorators.d.ts +0 -8
  87. package/dist/decorators/capabilities.decorators.js +0 -49
  88. package/dist/decorators/capabilities.decorators.js.map +0 -1
  89. package/dist/interfaces/capabilities.interface.d.ts +0 -82
  90. package/dist/interfaces/capabilities.interface.js +0 -54
  91. package/dist/interfaces/capabilities.interface.js.map +0 -1
  92. package/dist/interfaces/mcp-server-options.interface.js +0 -3
  93. package/dist/interfaces/mcp-server-options.interface.js.map +0 -1
  94. package/dist/interfaces/message.types.d.ts +0 -8
  95. package/dist/interfaces/message.types.js.map +0 -1
  96. package/dist/registry/index.d.ts +0 -2
  97. package/dist/registry/index.js.map +0 -1
  98. package/dist/registry/registry.service.js.map +0 -1
  99. /package/dist/{registry → services}/discovery.service.d.ts +0 -0
  100. /package/dist/{registry → services}/discovery.service.js +0 -0
  101. /package/dist/{registry → services}/logger.service.js +0 -0
  102. /package/dist/{controllers → transports}/sse/index.d.ts +0 -0
  103. /package/dist/{controllers → transports}/sse/index.js +0 -0
  104. /package/dist/{controllers → transports}/streamable/index.d.ts +0 -0
  105. /package/dist/{controllers → transports}/streamable/index.js +0 -0
  106. /package/dist/{controllers → transports}/streamable/streamable.controller.d.ts +0 -0
  107. /package/dist/{controllers → transports}/streamable/streamable.controller.js +0 -0
package/README.md CHANGED
@@ -199,6 +199,12 @@ export class AppModule {}
199
199
 
200
200
  Registers the MCP Server globally using asynchronous options, useful for integrating with configuration modules like `@nestjs/config`.
201
201
 
202
+ > **Note:**
203
+ >
204
+ > - The `imports` array should include any modules that provide dependencies required by your `useFactory` (e.g., `ConfigModule` if you inject `ConfigService`).
205
+ > - Use `forRootAsync` only once in your root module (`AppModule`).
206
+ > - See `McpModuleAsyncOptions` for all available options.
207
+
202
208
  **Parameters:**
203
209
 
204
210
  - `options: McpModuleAsyncOptions` — Asynchronous configuration object:
@@ -470,34 +476,66 @@ Decorate methods within a Resolver class to expose them as MCP Tools. Accepts op
470
476
 
471
477
  ```ts
472
478
  import { Tool, Resolver } from '@nestjs-mcp/server';
473
- import { RequestHandlerExtra } from '@nestjs-mcp/server'; // Import type for extra info
474
- import { z } from 'zod'; // Example using Zod for schema
475
-
476
- // Example Zod schema for parameters
477
- const SumParams = z.object({
478
- num1: z.number(),
479
- num2: z.number(),
480
- });
479
+ import { RequestHandlerExtra } from '@nestjs-mcp/server';
480
+ import { z } from 'zod';
481
+ import { CallToolResult } from '@modelcontextprotocol/sdk/types';
481
482
 
482
- @Resolver('utils') // Must be in a Resolver class
483
- export class MyTools {
483
+ @Resolver('user_tools')
484
+ export class UserToolsResolver {
484
485
  @Tool({
485
- name: 'calculate_sum',
486
- description: 'Calculates the sum of two numbers.',
487
- paramSchema: SumParams, // Use the Zod schema
486
+ name: 'delete_user',
487
+ description: 'Deletes a user by ID',
488
+ paramsSchema: { userId: z.string() },
489
+ annotations: { destructiveHint: true, readOnlyHint: false },
488
490
  })
489
- sumTool(
490
- params: z.infer<typeof SumParams>, // First arg is typed parameters from schema
491
- extra: RequestHandlerExtra, // Contains sessionId and other metadata
492
- ) {
493
- console.log(`Calculating sum for session: ${extra.sessionId}`);
494
- const result = params.num1 + params.num2;
495
- /* ... return CallToolResult ... */
496
- return { content: [{ type: 'text', text: `Result: ${result}` }] };
491
+ deleteUser(
492
+ { userId }: { userId: string },
493
+ extra: RequestHandlerExtra,
494
+ ): CallToolResult {
495
+ // ...logic...
496
+ return { content: [{ type: 'text', text: `User ${userId} deleted.` }] };
497
497
  }
498
498
  }
499
499
  ```
500
500
 
501
+ #### Tool Annotations
502
+
503
+ The `annotations` field allows you to provide protocol-level hints about the tool's behavior, such as whether it is destructive, read-only, idempotent, or has other special properties. These hints can be used by clients, UIs, or the protocol itself to display warnings, optimize calls, or enforce policies.
504
+
505
+ **Common annotation keys:**
506
+
507
+ - `destructiveHint` (boolean): Indicates the tool performs a destructive action (e.g., deletes data).
508
+ - `readOnlyHint` (boolean): Indicates the tool does not modify any data.
509
+ - `idempotentHint` (boolean): Indicates the tool can be safely called multiple times with the same effect.
510
+ - `openWorldHint` (boolean): Indicates the tool may have side effects outside the current system.
511
+
512
+ **Example:**
513
+
514
+ ```ts
515
+ @Tool({
516
+ name: 'reset_password',
517
+ paramsSchema: { userId: z.string() },
518
+ annotations: { destructiveHint: true, idempotentHint: false }
519
+ })
520
+ resetPassword({ userId }: { userId: string }): CallToolResult {
521
+ // ...
522
+ }
523
+ ```
524
+
525
+ #### ToolOptions Variants
526
+
527
+ | Variant | Required Fields |
528
+ | ------------------------------------------------ | -------------------------------------------- |
529
+ | ToolBaseOptions | name |
530
+ | ToolWithDescriptionOptions | name, description |
531
+ | ToolWithParamOrAnnotationsOptions | name, paramsSchemaOrAnnotations |
532
+ | ToolWithParamOrAnnotationsAndDescriptionOptions | name, paramsSchemaOrAnnotations, description |
533
+ | ToolWithParamAndAnnotationsOptions | name, paramsSchema, annotations |
534
+ | ToolWithParamAndAnnotationsAndDescriptionOptions | name, paramsSchema, annotations, description |
535
+
536
+ - `paramsSchema` and `paramsSchemaOrAnnotations` can be a Zod schema for input validation.
537
+ - `annotations` is an object with protocol-level hints as described above.
538
+
501
539
  ### RequestHandlerExtra Argument
502
540
 
503
541
  All MCP capability methods (`@Prompt`, `@Resource`, `@Tool`) always receive a `RequestHandlerExtra` object as their last parameter. This object extends the original type from `@modelcontextprotocol/sdk` and provides essential context about the current MCP request.
@@ -0,0 +1,4 @@
1
+ export * from './prompt.args';
2
+ export * from './resource-template.args';
3
+ export * from './resource-uri.args';
4
+ export * from './tool.args';
@@ -14,6 +14,8 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./discovery.service"), exports);
18
- __exportStar(require("./registry.service"), exports);
17
+ __exportStar(require("./prompt.args"), exports);
18
+ __exportStar(require("./resource-template.args"), exports);
19
+ __exportStar(require("./resource-uri.args"), exports);
20
+ __exportStar(require("./tool.args"), exports);
19
21
  //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/classes/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,gDAA8B;AAC9B,2DAAyC;AACzC,sDAAoC;AACpC,8CAA4B"}
@@ -0,0 +1,8 @@
1
+ import { z, ZodTypeAny } from 'zod';
2
+ import { PromptArgsRawShape, RequestHandlerExtra } from '../mcp.types';
3
+ export declare class PromptHandlerArgs<Args extends PromptArgsRawShape | undefined = undefined> {
4
+ readonly args?: Args extends PromptArgsRawShape ? z.objectOutputType<Args, ZodTypeAny> : undefined;
5
+ readonly extra: RequestHandlerExtra;
6
+ private constructor();
7
+ static from<Args extends PromptArgsRawShape | undefined>(extra: RequestHandlerExtra, args?: Args extends PromptArgsRawShape ? z.objectOutputType<Args, ZodTypeAny> : undefined): PromptHandlerArgs<Args>;
8
+ }
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PromptHandlerArgs = void 0;
4
+ class PromptHandlerArgs {
5
+ args;
6
+ extra;
7
+ constructor(extra, args) {
8
+ this.extra = extra;
9
+ this.args = args;
10
+ }
11
+ static from(extra, args) {
12
+ return new PromptHandlerArgs(extra, args);
13
+ }
14
+ }
15
+ exports.PromptHandlerArgs = PromptHandlerArgs;
16
+ //# sourceMappingURL=prompt.args.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompt.args.js","sourceRoot":"","sources":["../../src/classes/prompt.args.ts"],"names":[],"mappings":";;;AAIA,MAAa,iBAAiB;IAGZ,IAAI,CAEN;IACE,KAAK,CAAsB;IAE3C,YACE,KAA0B,EAC1B,IAEa;QAEb,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IAED,MAAM,CAAC,IAAI,CACT,KAA0B,EAC1B,IAEa;QAEb,OAAO,IAAI,iBAAiB,CAAO,KAAK,EAAE,IAAI,CAAC,CAAC;IAClD,CAAC;CACF;AA1BD,8CA0BC"}
@@ -0,0 +1,8 @@
1
+ import { RequestHandlerExtra } from '../mcp.types';
2
+ export declare class ResourceTemplateHandlerArgs {
3
+ readonly uri: URL;
4
+ readonly variables?: Record<string, string>;
5
+ readonly extra: RequestHandlerExtra;
6
+ private constructor();
7
+ static from(uri: URL, extra: RequestHandlerExtra, variables?: Record<string, string>): ResourceTemplateHandlerArgs;
8
+ }
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ResourceTemplateHandlerArgs = void 0;
4
+ class ResourceTemplateHandlerArgs {
5
+ uri;
6
+ variables;
7
+ extra;
8
+ constructor(uri, extra, variables) {
9
+ this.uri = uri;
10
+ this.extra = extra;
11
+ this.variables = variables;
12
+ }
13
+ static from(uri, extra, variables) {
14
+ return new ResourceTemplateHandlerArgs(uri, extra, variables);
15
+ }
16
+ }
17
+ exports.ResourceTemplateHandlerArgs = ResourceTemplateHandlerArgs;
18
+ //# sourceMappingURL=resource-template.args.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resource-template.args.js","sourceRoot":"","sources":["../../src/classes/resource-template.args.ts"],"names":[],"mappings":";;;AAEA,MAAa,2BAA2B;IACtB,GAAG,CAAM;IACT,SAAS,CAA0B;IACnC,KAAK,CAAsB;IAE3C,YACE,GAAQ,EACR,KAA0B,EAC1B,SAAkC;QAElC,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,CAAC;IAED,MAAM,CAAC,IAAI,CACT,GAAQ,EACR,KAA0B,EAC1B,SAAkC;QAElC,OAAO,IAAI,2BAA2B,CAAC,GAAG,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;IAChE,CAAC;CACF;AAtBD,kEAsBC"}
@@ -0,0 +1,7 @@
1
+ import { RequestHandlerExtra } from '../mcp.types';
2
+ export declare class ResourceUriHandlerArgs {
3
+ readonly uri: URL;
4
+ readonly extra: RequestHandlerExtra;
5
+ private constructor();
6
+ static from(uri: URL, extra: RequestHandlerExtra): ResourceUriHandlerArgs;
7
+ }
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ResourceUriHandlerArgs = void 0;
4
+ class ResourceUriHandlerArgs {
5
+ uri;
6
+ extra;
7
+ constructor(uri, extra) {
8
+ this.uri = uri;
9
+ this.extra = extra;
10
+ }
11
+ static from(uri, extra) {
12
+ return new ResourceUriHandlerArgs(uri, extra);
13
+ }
14
+ }
15
+ exports.ResourceUriHandlerArgs = ResourceUriHandlerArgs;
16
+ //# sourceMappingURL=resource-uri.args.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resource-uri.args.js","sourceRoot":"","sources":["../../src/classes/resource-uri.args.ts"],"names":[],"mappings":";;;AAEA,MAAa,sBAAsB;IACjB,GAAG,CAAM;IACT,KAAK,CAAsB;IAE3C,YAAoB,GAAQ,EAAE,KAA0B;QACtD,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAED,MAAM,CAAC,IAAI,CAAC,GAAQ,EAAE,KAA0B;QAC9C,OAAO,IAAI,sBAAsB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAChD,CAAC;CACF;AAZD,wDAYC"}
@@ -0,0 +1,8 @@
1
+ import { z, ZodRawShape, ZodTypeAny } from 'zod';
2
+ import { RequestHandlerExtra } from '../mcp.types';
3
+ export declare class ToolHandlerArgs<Args extends ZodRawShape | undefined = undefined> {
4
+ readonly args?: Args extends ZodRawShape ? z.objectOutputType<Args, ZodTypeAny> : undefined;
5
+ readonly extra: RequestHandlerExtra;
6
+ private constructor();
7
+ static from<Args extends ZodRawShape | undefined>(extra: RequestHandlerExtra, args?: Args extends ZodRawShape ? z.objectOutputType<Args, ZodTypeAny> : undefined): ToolHandlerArgs<Args>;
8
+ }
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ToolHandlerArgs = void 0;
4
+ class ToolHandlerArgs {
5
+ args;
6
+ extra;
7
+ constructor(extra, args) {
8
+ this.extra = extra;
9
+ this.args = args;
10
+ }
11
+ static from(extra, args) {
12
+ return new ToolHandlerArgs(extra, args);
13
+ }
14
+ }
15
+ exports.ToolHandlerArgs = ToolHandlerArgs;
16
+ //# sourceMappingURL=tool.args.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool.args.js","sourceRoot":"","sources":["../../src/classes/tool.args.ts"],"names":[],"mappings":";;;AAIA,MAAa,eAAe;IACV,IAAI,CAEN;IACE,KAAK,CAAsB;IAE3C,YACE,KAA0B,EAC1B,IAEa;QAEb,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IAED,MAAM,CAAC,IAAI,CACT,KAA0B,EAC1B,IAEa;QAEb,OAAO,IAAI,eAAe,CAAO,KAAK,EAAE,IAAI,CAAC,CAAC;IAChD,CAAC;CACF;AAxBD,0CAwBC"}
@@ -1,2 +1,5 @@
1
- export * from './capabilities.constants';
2
- export * from './capabilities.decorators';
1
+ export * from './prompt.decorator';
2
+ export * from './resolver.decorator';
3
+ export * from './resource.decorator';
4
+ export * from './tool.decorator';
5
+ export * from './user-guard.decorator';
@@ -14,6 +14,9 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./capabilities.constants"), exports);
18
- __exportStar(require("./capabilities.decorators"), exports);
17
+ __exportStar(require("./prompt.decorator"), exports);
18
+ __exportStar(require("./resolver.decorator"), exports);
19
+ __exportStar(require("./resource.decorator"), exports);
20
+ __exportStar(require("./tool.decorator"), exports);
21
+ __exportStar(require("./user-guard.decorator"), exports);
19
22
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/decorators/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2DAAyC;AACzC,4DAA0C"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/decorators/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,qDAAmC;AACnC,uDAAqC;AACrC,uDAAqC;AACrC,mDAAiC;AACjC,yDAAuC"}
@@ -0,0 +1,15 @@
1
+ import { PromptArgsRawShape } from '../mcp.types';
2
+ export interface PromptBaseOptions {
3
+ name: string;
4
+ }
5
+ export interface PromptWithDescriptionOptions extends PromptBaseOptions {
6
+ description: string;
7
+ }
8
+ export interface PromptWithArgsSchemaOptions extends PromptBaseOptions {
9
+ argsSchema: PromptArgsRawShape;
10
+ }
11
+ export interface PromptWithDescriptionAndArgsSchemaOptions extends PromptWithDescriptionOptions, PromptWithArgsSchemaOptions {
12
+ }
13
+ export type PromptOptions = PromptBaseOptions | PromptWithDescriptionOptions | PromptWithArgsSchemaOptions | PromptWithDescriptionAndArgsSchemaOptions;
14
+ export declare const MCP_PROMPT = "__mcp_prompt__";
15
+ export declare function Prompt(options: PromptOptions): (target: object, propertyKey: string, descriptor: PropertyDescriptor) => PropertyDescriptor;
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MCP_PROMPT = void 0;
4
+ exports.Prompt = Prompt;
5
+ const common_1 = require("@nestjs/common");
6
+ exports.MCP_PROMPT = '__mcp_prompt__';
7
+ function Prompt(options) {
8
+ return function (target, propertyKey, descriptor) {
9
+ (0, common_1.SetMetadata)(exports.MCP_PROMPT, {
10
+ ...options,
11
+ methodName: propertyKey,
12
+ })(target, propertyKey, descriptor);
13
+ return descriptor;
14
+ };
15
+ }
16
+ //# sourceMappingURL=prompt.decorator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompt.decorator.js","sourceRoot":"","sources":["../../src/decorators/prompt.decorator.ts"],"names":[],"mappings":";;;AAgDA,wBAaC;AA7DD,2CAA6C;AA2BhC,QAAA,UAAU,GAAG,gBAAgB,CAAC;AAqB3C,SAAgB,MAAM,CAAC,OAAsB;IAC3C,OAAO,UACL,MAAc,EACd,WAAmB,EACnB,UAA8B;QAE9B,IAAA,oBAAW,EAAC,kBAAU,EAAE;YACtB,GAAG,OAAO;YACV,UAAU,EAAE,WAAW;SACxB,CAAC,CAAC,MAAM,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC;QAEpC,OAAO,UAAU,CAAC;IACpB,CAAC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare const MCP_RESOLVER = "__mcp_resolver__";
2
+ export declare function Resolver(workspace?: string): ClassDecorator;
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MCP_RESOLVER = void 0;
4
+ exports.Resolver = Resolver;
5
+ const common_1 = require("@nestjs/common");
6
+ const common_2 = require("@nestjs/common");
7
+ exports.MCP_RESOLVER = '__mcp_resolver__';
8
+ function Resolver(workspace) {
9
+ return function (target) {
10
+ (0, common_1.Injectable)()(target);
11
+ (0, common_2.SetMetadata)(exports.MCP_RESOLVER, workspace || true)(target);
12
+ };
13
+ }
14
+ //# sourceMappingURL=resolver.decorator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolver.decorator.js","sourceRoot":"","sources":["../../src/decorators/resolver.decorator.ts"],"names":[],"mappings":";;;AAkBA,4BAKC;AAvBD,2CAA4C;AAE5C,2CAA6C;AAKhC,QAAA,YAAY,GAAG,kBAAkB,CAAC;AAW/C,SAAgB,QAAQ,CAAC,SAAkB;IACzC,OAAO,UAAU,MAAW;QAC1B,IAAA,mBAAU,GAAE,CAAC,MAAM,CAAC,CAAC;QACrB,IAAA,oBAAW,EAAC,oBAAY,EAAE,SAAS,IAAI,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC;IACvD,CAAC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,18 @@
1
+ export interface ResourceBaseOptions {
2
+ name: string;
3
+ }
4
+ export interface ResourceUriOptions extends ResourceBaseOptions {
5
+ uri: string;
6
+ }
7
+ export interface ResourceUriWithMetadataOptions extends ResourceUriOptions {
8
+ metadata: Record<string, any>;
9
+ }
10
+ export interface ResourceTemplateOptions extends ResourceBaseOptions {
11
+ template: string;
12
+ }
13
+ export interface ResourceTemplateWithMetadataOptions extends ResourceTemplateOptions {
14
+ metadata: Record<string, any>;
15
+ }
16
+ export type ResourceOptions = ResourceUriOptions | ResourceUriWithMetadataOptions | ResourceTemplateOptions | ResourceTemplateWithMetadataOptions;
17
+ export declare const MCP_RESOURCE = "__mcp_resource__";
18
+ export declare function Resource(options: ResourceOptions): (target: object, propertyKey: string, descriptor: PropertyDescriptor) => PropertyDescriptor;
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MCP_RESOURCE = void 0;
4
+ exports.Resource = Resource;
5
+ const common_1 = require("@nestjs/common");
6
+ exports.MCP_RESOURCE = '__mcp_resource__';
7
+ function Resource(options) {
8
+ return function (target, propertyKey, descriptor) {
9
+ (0, common_1.SetMetadata)(exports.MCP_RESOURCE, {
10
+ ...options,
11
+ methodName: propertyKey,
12
+ })(target, propertyKey, descriptor);
13
+ return descriptor;
14
+ };
15
+ }
16
+ //# sourceMappingURL=resource.decorator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resource.decorator.js","sourceRoot":"","sources":["../../src/decorators/resource.decorator.ts"],"names":[],"mappings":";;;AAsDA,4BAYC;AAlED,2CAA6C;AA6BhC,QAAA,YAAY,GAAG,kBAAkB,CAAC;AAyB/C,SAAgB,QAAQ,CAAC,OAAwB;IAC/C,OAAO,UACL,MAAc,EACd,WAAmB,EACnB,UAA8B;QAE9B,IAAA,oBAAW,EAAC,oBAAY,EAAE;YACxB,GAAG,OAAO;YACV,UAAU,EAAE,WAAW;SACxB,CAAC,CAAC,MAAM,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC;QACpC,OAAO,UAAU,CAAC;IACpB,CAAC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,24 @@
1
+ import { ToolAnnotations } from '@modelcontextprotocol/sdk/types';
2
+ import { ZodRawShape } from 'zod';
3
+ export interface ToolBaseOptions {
4
+ name: string;
5
+ }
6
+ export interface ToolWithDescriptionOptions extends ToolBaseOptions {
7
+ description: string;
8
+ }
9
+ export interface ToolWithParamOrAnnotationsOptions extends ToolBaseOptions {
10
+ paramsSchemaOrAnnotations: ZodRawShape | ToolAnnotations;
11
+ }
12
+ export interface ToolWithParamOrAnnotationsAndDescriptionOptions extends ToolWithParamOrAnnotationsOptions {
13
+ description: string;
14
+ }
15
+ export interface ToolWithParamAndAnnotationsOptions extends ToolBaseOptions {
16
+ paramsSchema: ZodRawShape;
17
+ annotations: ToolAnnotations;
18
+ }
19
+ export interface ToolWithParamAndAnnotationsAndDescriptionOptions extends ToolWithParamAndAnnotationsOptions {
20
+ description: string;
21
+ }
22
+ export type ToolOptions = ToolBaseOptions | ToolWithDescriptionOptions | ToolWithParamOrAnnotationsOptions | ToolWithParamOrAnnotationsAndDescriptionOptions | ToolWithParamAndAnnotationsOptions | ToolWithParamAndAnnotationsAndDescriptionOptions;
23
+ export declare const MCP_TOOL = "__mcp_tool__";
24
+ export declare function Tool(options: ToolOptions): (target: object, propertyKey: string, descriptor: PropertyDescriptor) => PropertyDescriptor;
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MCP_TOOL = void 0;
4
+ exports.Tool = Tool;
5
+ const common_1 = require("@nestjs/common");
6
+ exports.MCP_TOOL = '__mcp_tool__';
7
+ function Tool(options) {
8
+ return function (target, propertyKey, descriptor) {
9
+ (0, common_1.SetMetadata)(exports.MCP_TOOL, {
10
+ ...options,
11
+ methodName: propertyKey,
12
+ })(target, propertyKey, descriptor);
13
+ return descriptor;
14
+ };
15
+ }
16
+ //# sourceMappingURL=tool.decorator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool.decorator.js","sourceRoot":"","sources":["../../src/decorators/tool.decorator.ts"],"names":[],"mappings":";;;AAyDA,oBAaC;AArED,2CAA6C;AAsChC,QAAA,QAAQ,GAAG,cAAc,CAAC;AAkBvC,SAAgB,IAAI,CAAC,OAAoB;IACvC,OAAO,UACL,MAAc,EACd,WAAmB,EACnB,UAA8B;QAE9B,IAAA,oBAAW,EAAC,gBAAQ,EAAE;YACpB,GAAG,OAAO;YACV,UAAU,EAAE,WAAW;SACxB,CAAC,CAAC,MAAM,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC;QAEpC,OAAO,UAAU,CAAC;IACpB,CAAC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare const MCP_GUARDS = "__mcp_guards__";
2
+ export declare function UseGuards(...guards: any[]): ClassDecorator & MethodDecorator;
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MCP_GUARDS = void 0;
4
+ exports.UseGuards = UseGuards;
5
+ const common_1 = require("@nestjs/common");
6
+ exports.MCP_GUARDS = '__mcp_guards__';
7
+ function UseGuards(...guards) {
8
+ return (0, common_1.SetMetadata)(exports.MCP_GUARDS, guards);
9
+ }
10
+ //# sourceMappingURL=user-guard.decorator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user-guard.decorator.js","sourceRoot":"","sources":["../../src/decorators/user-guard.decorator.ts"],"names":[],"mappings":";;;AAiBA,8BAEC;AAnBD,2CAA6C;AAKhC,QAAA,UAAU,GAAG,gBAAgB,CAAC;AAY3C,SAAgB,SAAS,CAAC,GAAG,MAAa;IACxC,OAAO,IAAA,oBAAW,EAAC,kBAAU,EAAE,MAAM,CAAC,CAAC;AACzC,CAAC"}
package/dist/index.d.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  export * from './mcp.module';
2
+ export * from './mcp.types';
2
3
  export * from './interfaces';
3
- export * from './registry';
4
+ export * from './classes';
4
5
  export * from './services';
5
6
  export * from './decorators';
package/dist/index.js CHANGED
@@ -15,8 +15,9 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./mcp.module"), exports);
18
+ __exportStar(require("./mcp.types"), exports);
18
19
  __exportStar(require("./interfaces"), exports);
19
- __exportStar(require("./registry"), exports);
20
+ __exportStar(require("./classes"), exports);
20
21
  __exportStar(require("./services"), exports);
21
22
  __exportStar(require("./decorators"), exports);
22
23
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AACA,+CAA6B;AAG7B,+CAA6B;AAG7B,6CAA2B;AAG3B,6CAA2B;AAG3B,+CAA6B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AACA,+CAA6B;AAC7B,8CAA4B;AAG5B,+CAA6B;AAG7B,4CAA0B;AAG1B,6CAA2B;AAG3B,+CAA6B"}
@@ -1,6 +1,6 @@
1
1
  import { ExecutionContext } from '@nestjs/common';
2
- import { PromptHandlerParams, ResourceTemplateHandlerParams, ResourceUriHandlerParams, ToolHandlerParams } from './capabilities.interface';
2
+ import { PromptHandlerArgs, ResourceTemplateHandlerArgs, ResourceUriHandlerArgs, ToolHandlerArgs } from '../classes';
3
3
  export interface McpExecutionContext extends ExecutionContext {
4
- args: ResourceUriHandlerParams | ResourceTemplateHandlerParams | PromptHandlerParams | ToolHandlerParams;
4
+ args: ResourceUriHandlerArgs | ResourceTemplateHandlerArgs | PromptHandlerArgs | ToolHandlerArgs;
5
5
  getSessionId: () => string;
6
6
  }
@@ -1,3 +1 @@
1
- export * from './capabilities.interface';
2
1
  export * from './context.interface';
3
- export * from './mcp-server-options.interface';
@@ -14,7 +14,5 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./capabilities.interface"), exports);
18
17
  __exportStar(require("./context.interface"), exports);
19
- __exportStar(require("./mcp-server-options.interface"), exports);
20
18
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/interfaces/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2DAAyC;AACzC,sDAAoC;AACpC,iEAA+C"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/interfaces/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,sDAAoC"}
@@ -0,0 +1,11 @@
1
+ import { DynamicModule } from '@nestjs/common';
2
+ import { McpFeatureOptions, McpModuleAsyncOptions, McpModuleOptions } from './mcp.types';
3
+ export declare class McpCoreModule {
4
+ private static getActiveTransportControllersAndProviders;
5
+ private static buildServerConfig;
6
+ private static createAsyncOptionsProvider;
7
+ private static createAsyncProviders;
8
+ static forRoot(options: McpModuleOptions): DynamicModule;
9
+ static forRootAsync(options: McpModuleAsyncOptions): DynamicModule;
10
+ static forFeature(_options?: McpFeatureOptions): DynamicModule;
11
+ }