@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.
- package/README.md +59 -21
- package/dist/classes/index.d.ts +4 -0
- package/dist/{registry → classes}/index.js +4 -2
- package/dist/classes/index.js.map +1 -0
- package/dist/classes/prompt.args.d.ts +8 -0
- package/dist/classes/prompt.args.js +16 -0
- package/dist/classes/prompt.args.js.map +1 -0
- package/dist/classes/resource-template.args.d.ts +8 -0
- package/dist/classes/resource-template.args.js +18 -0
- package/dist/classes/resource-template.args.js.map +1 -0
- package/dist/classes/resource-uri.args.d.ts +7 -0
- package/dist/classes/resource-uri.args.js +16 -0
- package/dist/classes/resource-uri.args.js.map +1 -0
- package/dist/classes/tool.args.d.ts +8 -0
- package/dist/classes/tool.args.js +16 -0
- package/dist/classes/tool.args.js.map +1 -0
- package/dist/decorators/index.d.ts +5 -2
- package/dist/decorators/index.js +5 -2
- package/dist/decorators/index.js.map +1 -1
- package/dist/decorators/prompt.decorator.d.ts +15 -0
- package/dist/decorators/prompt.decorator.js +16 -0
- package/dist/decorators/prompt.decorator.js.map +1 -0
- package/dist/decorators/resolver.decorator.d.ts +2 -0
- package/dist/decorators/resolver.decorator.js +14 -0
- package/dist/decorators/resolver.decorator.js.map +1 -0
- package/dist/decorators/resource.decorator.d.ts +18 -0
- package/dist/decorators/resource.decorator.js +16 -0
- package/dist/decorators/resource.decorator.js.map +1 -0
- package/dist/decorators/tool.decorator.d.ts +24 -0
- package/dist/decorators/tool.decorator.js +16 -0
- package/dist/decorators/tool.decorator.js.map +1 -0
- package/dist/decorators/user-guard.decorator.d.ts +2 -0
- package/dist/decorators/user-guard.decorator.js +10 -0
- package/dist/decorators/user-guard.decorator.js.map +1 -0
- package/dist/index.d.ts +2 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/interfaces/context.interface.d.ts +2 -2
- package/dist/interfaces/index.d.ts +0 -2
- package/dist/interfaces/index.js +0 -2
- package/dist/interfaces/index.js.map +1 -1
- package/dist/mcp-core.module.d.ts +11 -0
- package/dist/mcp-core.module.js +191 -0
- package/dist/mcp-core.module.js.map +1 -0
- package/dist/mcp.constants.d.ts +3 -0
- package/dist/mcp.constants.js +7 -0
- package/dist/mcp.constants.js.map +1 -0
- package/dist/mcp.module.d.ts +3 -5
- package/dist/mcp.module.js +9 -157
- package/dist/mcp.module.js.map +1 -1
- package/dist/{interfaces/mcp-server-options.interface.d.ts → mcp.types.d.ts} +19 -8
- package/dist/{interfaces/message.types.js → mcp.types.js} +1 -1
- package/dist/mcp.types.js.map +1 -0
- package/dist/{registry → services}/discovery.service.js.map +1 -1
- package/dist/services/index.d.ts +2 -0
- package/dist/services/index.js +2 -0
- package/dist/services/index.js.map +1 -1
- package/dist/{registry → services}/logger.service.d.ts +1 -1
- package/dist/{registry → services}/logger.service.js.map +1 -1
- package/dist/{registry → services}/registry.service.d.ts +1 -1
- package/dist/{registry → services}/registry.service.js +29 -22
- package/dist/services/registry.service.js.map +1 -0
- package/dist/transports/sse/index.js.map +1 -0
- package/dist/{controllers → transports}/sse/sse.controller.d.ts +1 -1
- package/dist/{controllers → transports}/sse/sse.controller.js +1 -1
- package/dist/transports/sse/sse.controller.js.map +1 -0
- package/dist/{controllers → transports}/sse/sse.service.d.ts +3 -3
- package/dist/{controllers → transports}/sse/sse.service.js +2 -2
- package/dist/transports/sse/sse.service.js.map +1 -0
- package/dist/transports/streamable/index.js.map +1 -0
- package/dist/transports/streamable/streamable.controller.js.map +1 -0
- package/dist/{controllers → transports}/streamable/streamable.service.d.ts +3 -3
- package/dist/{controllers → transports}/streamable/streamable.service.js +2 -2
- package/dist/transports/streamable/streamable.service.js.map +1 -0
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +22 -5
- package/dist/controllers/sse/index.js.map +0 -1
- package/dist/controllers/sse/sse.controller.js.map +0 -1
- package/dist/controllers/sse/sse.service.js.map +0 -1
- package/dist/controllers/streamable/index.js.map +0 -1
- package/dist/controllers/streamable/streamable.controller.js.map +0 -1
- package/dist/controllers/streamable/streamable.service.js.map +0 -1
- package/dist/decorators/capabilities.constants.d.ts +0 -4
- package/dist/decorators/capabilities.constants.js +0 -8
- package/dist/decorators/capabilities.constants.js.map +0 -1
- package/dist/decorators/capabilities.decorators.d.ts +0 -8
- package/dist/decorators/capabilities.decorators.js +0 -49
- package/dist/decorators/capabilities.decorators.js.map +0 -1
- package/dist/interfaces/capabilities.interface.d.ts +0 -82
- package/dist/interfaces/capabilities.interface.js +0 -54
- package/dist/interfaces/capabilities.interface.js.map +0 -1
- package/dist/interfaces/mcp-server-options.interface.js +0 -3
- package/dist/interfaces/mcp-server-options.interface.js.map +0 -1
- package/dist/interfaces/message.types.d.ts +0 -8
- package/dist/interfaces/message.types.js.map +0 -1
- package/dist/registry/index.d.ts +0 -2
- package/dist/registry/index.js.map +0 -1
- package/dist/registry/registry.service.js.map +0 -1
- /package/dist/{registry → services}/discovery.service.d.ts +0 -0
- /package/dist/{registry → services}/discovery.service.js +0 -0
- /package/dist/{registry → services}/logger.service.js +0 -0
- /package/dist/{controllers → transports}/sse/index.d.ts +0 -0
- /package/dist/{controllers → transports}/sse/index.js +0 -0
- /package/dist/{controllers → transports}/streamable/index.d.ts +0 -0
- /package/dist/{controllers → transports}/streamable/index.js +0 -0
- /package/dist/{controllers → transports}/streamable/streamable.controller.d.ts +0 -0
- /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';
|
|
474
|
-
import { z } from 'zod';
|
|
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('
|
|
483
|
-
export class
|
|
483
|
+
@Resolver('user_tools')
|
|
484
|
+
export class UserToolsResolver {
|
|
484
485
|
@Tool({
|
|
485
|
-
name: '
|
|
486
|
-
description: '
|
|
487
|
-
|
|
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
|
-
|
|
490
|
-
|
|
491
|
-
extra: RequestHandlerExtra,
|
|
492
|
-
) {
|
|
493
|
-
|
|
494
|
-
|
|
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.
|
|
@@ -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("./
|
|
18
|
-
__exportStar(require("./
|
|
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,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 './
|
|
2
|
-
export * from './
|
|
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';
|
package/dist/decorators/index.js
CHANGED
|
@@ -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("./
|
|
18
|
-
__exportStar(require("./
|
|
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,
|
|
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,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,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
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("./
|
|
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;
|
|
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 {
|
|
2
|
+
import { PromptHandlerArgs, ResourceTemplateHandlerArgs, ResourceUriHandlerArgs, ToolHandlerArgs } from '../classes';
|
|
3
3
|
export interface McpExecutionContext extends ExecutionContext {
|
|
4
|
-
args:
|
|
4
|
+
args: ResourceUriHandlerArgs | ResourceTemplateHandlerArgs | PromptHandlerArgs | ToolHandlerArgs;
|
|
5
5
|
getSessionId: () => string;
|
|
6
6
|
}
|
package/dist/interfaces/index.js
CHANGED
|
@@ -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,
|
|
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
|
+
}
|