@rekog/mcp-nest 1.9.10 → 2.0.0-alpha.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 +76 -29
- package/dist/index.d.ts +0 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +0 -1
- package/dist/index.js.map +1 -1
- package/dist/mcp/decorators/constants.d.ts +1 -0
- package/dist/mcp/decorators/constants.d.ts.map +1 -1
- package/dist/mcp/decorators/constants.js +2 -1
- package/dist/mcp/decorators/constants.js.map +1 -1
- package/dist/mcp/decorators/index.d.ts +3 -1
- package/dist/mcp/decorators/index.d.ts.map +1 -1
- package/dist/mcp/decorators/index.js +3 -1
- package/dist/mcp/decorators/index.js.map +1 -1
- package/dist/mcp/decorators/mcp-controller.decorator.d.ts +6 -0
- package/dist/mcp/decorators/mcp-controller.decorator.d.ts.map +1 -0
- package/dist/mcp/decorators/mcp-controller.decorator.js +43 -0
- package/dist/mcp/decorators/mcp-controller.decorator.js.map +1 -0
- package/dist/mcp/decorators/mcp-message-pattern.d.ts +3 -0
- package/dist/mcp/decorators/mcp-message-pattern.d.ts.map +1 -0
- package/dist/mcp/decorators/mcp-message-pattern.js +13 -0
- package/dist/mcp/decorators/mcp-message-pattern.js.map +1 -0
- package/dist/mcp/decorators/prompt.decorator.d.ts +1 -1
- package/dist/mcp/decorators/prompt.decorator.d.ts.map +1 -1
- package/dist/mcp/decorators/prompt.decorator.js +2 -1
- package/dist/mcp/decorators/prompt.decorator.js.map +1 -1
- package/dist/mcp/decorators/public.decorator.js.map +1 -1
- package/dist/mcp/decorators/raw-request.decorator.d.ts +2 -0
- package/dist/mcp/decorators/raw-request.decorator.d.ts.map +1 -0
- package/dist/mcp/decorators/raw-request.decorator.js +6 -0
- package/dist/mcp/decorators/raw-request.decorator.js.map +1 -0
- package/dist/mcp/decorators/resource-template.decorator.d.ts +1 -1
- package/dist/mcp/decorators/resource-template.decorator.d.ts.map +1 -1
- package/dist/mcp/decorators/resource-template.decorator.js +2 -1
- package/dist/mcp/decorators/resource-template.decorator.js.map +1 -1
- package/dist/mcp/decorators/resource.decorator.d.ts +1 -1
- package/dist/mcp/decorators/resource.decorator.d.ts.map +1 -1
- package/dist/mcp/decorators/resource.decorator.js +2 -1
- package/dist/mcp/decorators/resource.decorator.js.map +1 -1
- package/dist/mcp/decorators/tool.decorator.d.ts +1 -3
- package/dist/mcp/decorators/tool.decorator.d.ts.map +1 -1
- package/dist/mcp/decorators/tool.decorator.js +2 -1
- package/dist/mcp/decorators/tool.decorator.js.map +1 -1
- package/dist/mcp/filters/mcp-exception.filter.d.ts +6 -0
- package/dist/mcp/filters/mcp-exception.filter.d.ts.map +1 -0
- package/dist/mcp/filters/mcp-exception.filter.js +26 -0
- package/dist/mcp/filters/mcp-exception.filter.js.map +1 -0
- package/dist/mcp/index.d.ts +11 -7
- package/dist/mcp/index.d.ts.map +1 -1
- package/dist/mcp/index.js +11 -7
- package/dist/mcp/index.js.map +1 -1
- package/dist/mcp/interfaces/authenticated-user.interface.d.ts +9 -0
- package/dist/mcp/interfaces/authenticated-user.interface.d.ts.map +1 -0
- package/dist/{authz/interfaces/request-with-user.js → mcp/interfaces/authenticated-user.interface.js} +1 -1
- package/dist/mcp/interfaces/authenticated-user.interface.js.map +1 -0
- package/dist/mcp/interfaces/dynamic-prompt.interface.d.ts +1 -1
- package/dist/mcp/interfaces/dynamic-prompt.interface.d.ts.map +1 -1
- package/dist/mcp/interfaces/dynamic-prompt.interface.js.map +1 -1
- package/dist/mcp/interfaces/dynamic-resource.interface.d.ts +1 -1
- package/dist/mcp/interfaces/dynamic-resource.interface.d.ts.map +1 -1
- package/dist/mcp/interfaces/dynamic-resource.interface.js.map +1 -1
- package/dist/mcp/interfaces/dynamic-tool.interface.d.ts +1 -1
- package/dist/mcp/interfaces/dynamic-tool.interface.d.ts.map +1 -1
- package/dist/mcp/interfaces/dynamic-tool.interface.js.map +1 -1
- package/dist/mcp/interfaces/index.d.ts +2 -2
- package/dist/mcp/interfaces/index.d.ts.map +1 -1
- package/dist/mcp/interfaces/index.js +0 -3
- package/dist/mcp/interfaces/index.js.map +1 -1
- package/dist/mcp/services/tool-authorization.service.d.ts +7 -5
- package/dist/mcp/services/tool-authorization.service.d.ts.map +1 -1
- package/dist/mcp/services/tool-authorization.service.js +9 -6
- package/dist/mcp/services/tool-authorization.service.js.map +1 -1
- package/dist/mcp/transport/mcp-context.d.ts +34 -0
- package/dist/mcp/transport/mcp-context.d.ts.map +1 -0
- package/dist/mcp/transport/mcp-context.js +74 -0
- package/dist/mcp/transport/mcp-context.js.map +1 -0
- package/dist/mcp/transport/mcp-http-handler.d.ts +7 -0
- package/dist/mcp/transport/mcp-http-handler.d.ts.map +1 -0
- package/dist/mcp/transport/mcp-http-handler.js +5 -0
- package/dist/mcp/transport/mcp-http-handler.js.map +1 -0
- package/dist/mcp/transport/mcp-server-options.interface.d.ts +23 -0
- package/dist/mcp/transport/mcp-server-options.interface.d.ts.map +1 -0
- package/dist/{authz/providers/oauth-provider.interface.js → mcp/transport/mcp-server-options.interface.js} +1 -1
- package/dist/mcp/transport/mcp-server-options.interface.js.map +1 -0
- package/dist/mcp/transport/mcp-transport.constants.d.ts +19 -0
- package/dist/mcp/transport/mcp-transport.constants.d.ts.map +1 -0
- package/dist/mcp/transport/mcp-transport.constants.js +21 -0
- package/dist/mcp/transport/mcp-transport.constants.js.map +1 -0
- package/dist/mcp/transport/mcp-transport.interface.d.ts +17 -0
- package/dist/mcp/transport/mcp-transport.interface.d.ts.map +1 -0
- package/dist/{authz/interfaces/oauth-common.interface.js → mcp/transport/mcp-transport.interface.js} +1 -1
- package/dist/mcp/transport/mcp-transport.interface.js.map +1 -0
- package/dist/mcp/transport/mcp.strategy.d.ts +56 -0
- package/dist/mcp/transport/mcp.strategy.d.ts.map +1 -0
- package/dist/mcp/transport/mcp.strategy.js +446 -0
- package/dist/mcp/transport/mcp.strategy.js.map +1 -0
- package/dist/mcp/transport/resource-matcher.d.ts +13 -0
- package/dist/mcp/transport/resource-matcher.d.ts.map +1 -0
- package/dist/mcp/transport/resource-matcher.js +83 -0
- package/dist/mcp/transport/resource-matcher.js.map +1 -0
- package/dist/mcp/transport/streamable-http.controller.d.ts +16 -0
- package/dist/mcp/transport/streamable-http.controller.d.ts.map +1 -0
- package/dist/mcp/transport/streamable-http.controller.js +98 -0
- package/dist/mcp/transport/streamable-http.controller.js.map +1 -0
- package/dist/mcp/transport/transports/index.d.ts +3 -0
- package/dist/mcp/transport/transports/index.d.ts.map +1 -0
- package/dist/{authz → mcp/transport/transports}/index.js +2 -10
- package/dist/mcp/transport/transports/index.js.map +1 -0
- package/dist/mcp/transport/transports/read-body.d.ts +3 -0
- package/dist/mcp/transport/transports/read-body.d.ts.map +1 -0
- package/dist/mcp/transport/transports/read-body.js +32 -0
- package/dist/mcp/transport/transports/read-body.js.map +1 -0
- package/dist/mcp/transport/transports/stdio.transport.d.ts +9 -0
- package/dist/mcp/transport/transports/stdio.transport.d.ts.map +1 -0
- package/dist/mcp/transport/transports/stdio.transport.js +27 -0
- package/dist/mcp/transport/transports/stdio.transport.js.map +1 -0
- package/dist/mcp/transport/transports/streamable-http.transport.d.ts +33 -0
- package/dist/mcp/transport/transports/streamable-http.transport.d.ts.map +1 -0
- package/dist/mcp/transport/transports/streamable-http.transport.js +216 -0
- package/dist/mcp/transport/transports/streamable-http.transport.js.map +1 -0
- package/dist/mcp/utils/mcp-logger.factory.d.ts +6 -2
- package/dist/mcp/utils/mcp-logger.factory.d.ts.map +1 -1
- package/dist/mcp/utils/mcp-logger.factory.js.map +1 -1
- package/package.json +3 -66
- package/src/index.ts +0 -1
- package/src/mcp/decorators/constants.ts +1 -0
- package/src/mcp/decorators/index.ts +3 -1
- package/src/mcp/decorators/mcp-controller.decorator.ts +126 -0
- package/src/mcp/decorators/mcp-message-pattern.ts +38 -0
- package/src/mcp/decorators/prompt.decorator.ts +6 -2
- package/src/mcp/decorators/public.decorator.ts +3 -3
- package/src/mcp/decorators/raw-request.decorator.ts +32 -0
- package/src/mcp/decorators/resource-template.decorator.ts +6 -2
- package/src/mcp/decorators/resource.decorator.ts +6 -2
- package/src/mcp/decorators/tool.decorator.ts +6 -3
- package/src/mcp/filters/mcp-exception.filter.ts +47 -0
- package/src/mcp/index.ts +13 -7
- package/src/mcp/interfaces/authenticated-user.interface.ts +22 -0
- package/src/mcp/interfaces/dynamic-prompt.interface.ts +1 -1
- package/src/mcp/interfaces/dynamic-resource.interface.ts +1 -1
- package/src/mcp/interfaces/dynamic-tool.interface.ts +2 -2
- package/src/mcp/interfaces/index.ts +3 -7
- package/src/mcp/services/tool-authorization.service.ts +52 -72
- package/src/mcp/transport/mcp-context.ts +138 -0
- package/src/mcp/transport/mcp-http-handler.ts +32 -0
- package/src/mcp/transport/mcp-server-options.interface.ts +75 -0
- package/src/mcp/transport/mcp-transport.constants.ts +99 -0
- package/src/mcp/transport/mcp-transport.interface.ts +50 -0
- package/src/mcp/transport/mcp.strategy.ts +752 -0
- package/src/mcp/transport/resource-matcher.ts +107 -0
- package/src/mcp/transport/streamable-http.controller.ts +114 -0
- package/src/mcp/transport/transports/index.ts +2 -0
- package/src/mcp/transport/transports/read-body.ts +39 -0
- package/src/mcp/transport/transports/stdio.transport.ts +35 -0
- package/src/mcp/transport/transports/streamable-http.transport.ts +384 -0
- package/src/mcp/utils/mcp-logger.factory.spec.ts +8 -22
- package/src/mcp/utils/mcp-logger.factory.ts +13 -2
- package/dist/authz/guards/jwt-auth.guard.d.ts +0 -19
- package/dist/authz/guards/jwt-auth.guard.d.ts.map +0 -1
- package/dist/authz/guards/jwt-auth.guard.js +0 -108
- package/dist/authz/guards/jwt-auth.guard.js.map +0 -1
- package/dist/authz/index.d.ts +0 -11
- package/dist/authz/index.d.ts.map +0 -1
- package/dist/authz/index.js.map +0 -1
- package/dist/authz/interfaces/oauth-common.interface.d.ts +0 -21
- package/dist/authz/interfaces/oauth-common.interface.d.ts.map +0 -1
- package/dist/authz/interfaces/oauth-common.interface.js.map +0 -1
- package/dist/authz/interfaces/request-with-user.d.ts +0 -13
- package/dist/authz/interfaces/request-with-user.d.ts.map +0 -1
- package/dist/authz/interfaces/request-with-user.js.map +0 -1
- package/dist/authz/mcp-oauth.controller.d.ts +0 -81
- package/dist/authz/mcp-oauth.controller.d.ts.map +0 -1
- package/dist/authz/mcp-oauth.controller.js +0 -540
- package/dist/authz/mcp-oauth.controller.js.map +0 -1
- package/dist/authz/mcp-oauth.module.d.ts +0 -12
- package/dist/authz/mcp-oauth.module.d.ts.map +0 -1
- package/dist/authz/mcp-oauth.module.js +0 -271
- package/dist/authz/mcp-oauth.module.js.map +0 -1
- package/dist/authz/providers/azure-ad.provider.d.ts +0 -3
- package/dist/authz/providers/azure-ad.provider.d.ts.map +0 -1
- package/dist/authz/providers/azure-ad.provider.js +0 -37
- package/dist/authz/providers/azure-ad.provider.js.map +0 -1
- package/dist/authz/providers/github.provider.d.ts +0 -3
- package/dist/authz/providers/github.provider.d.ts.map +0 -1
- package/dist/authz/providers/github.provider.js +0 -24
- package/dist/authz/providers/github.provider.js.map +0 -1
- package/dist/authz/providers/google.provider.d.ts +0 -3
- package/dist/authz/providers/google.provider.d.ts.map +0 -1
- package/dist/authz/providers/google.provider.js +0 -25
- package/dist/authz/providers/google.provider.js.map +0 -1
- package/dist/authz/providers/oauth-provider.interface.d.ts +0 -107
- package/dist/authz/providers/oauth-provider.interface.d.ts.map +0 -1
- package/dist/authz/providers/oauth-provider.interface.js.map +0 -1
- package/dist/authz/services/client.service.d.ts +0 -12
- package/dist/authz/services/client.service.d.ts.map +0 -1
- package/dist/authz/services/client.service.js +0 -81
- package/dist/authz/services/client.service.js.map +0 -1
- package/dist/authz/services/jwt-token.service.d.ts +0 -37
- package/dist/authz/services/jwt-token.service.d.ts.map +0 -1
- package/dist/authz/services/jwt-token.service.js +0 -182
- package/dist/authz/services/jwt-token.service.js.map +0 -1
- package/dist/authz/services/oauth-strategy.service.d.ts +0 -13
- package/dist/authz/services/oauth-strategy.service.d.ts.map +0 -1
- package/dist/authz/services/oauth-strategy.service.js +0 -71
- package/dist/authz/services/oauth-strategy.service.js.map +0 -1
- package/dist/authz/stores/memory-store.service.d.ts +0 -27
- package/dist/authz/stores/memory-store.service.d.ts.map +0 -1
- package/dist/authz/stores/memory-store.service.js +0 -107
- package/dist/authz/stores/memory-store.service.js.map +0 -1
- package/dist/authz/stores/oauth-store.interface.d.ts +0 -61
- package/dist/authz/stores/oauth-store.interface.d.ts.map +0 -1
- package/dist/authz/stores/oauth-store.interface.js +0 -5
- package/dist/authz/stores/oauth-store.interface.js.map +0 -1
- package/dist/authz/stores/typeorm/constants.d.ts +0 -3
- package/dist/authz/stores/typeorm/constants.d.ts.map +0 -1
- package/dist/authz/stores/typeorm/constants.js +0 -6
- package/dist/authz/stores/typeorm/constants.js.map +0 -1
- package/dist/authz/stores/typeorm/entities/authorization-code.entity.d.ts +0 -15
- package/dist/authz/stores/typeorm/entities/authorization-code.entity.d.ts.map +0 -1
- package/dist/authz/stores/typeorm/entities/authorization-code.entity.js +0 -69
- package/dist/authz/stores/typeorm/entities/authorization-code.entity.js.map +0 -1
- package/dist/authz/stores/typeorm/entities/index.d.ts +0 -5
- package/dist/authz/stores/typeorm/entities/index.d.ts.map +0 -1
- package/dist/authz/stores/typeorm/entities/index.js +0 -12
- package/dist/authz/stores/typeorm/entities/index.js.map +0 -1
- package/dist/authz/stores/typeorm/entities/oauth-client.entity.d.ts +0 -17
- package/dist/authz/stores/typeorm/entities/oauth-client.entity.d.ts.map +0 -1
- package/dist/authz/stores/typeorm/entities/oauth-client.entity.js +0 -77
- package/dist/authz/stores/typeorm/entities/oauth-client.entity.js.map +0 -1
- package/dist/authz/stores/typeorm/entities/oauth-session.entity.d.ts +0 -14
- package/dist/authz/stores/typeorm/entities/oauth-session.entity.d.ts.map +0 -1
- package/dist/authz/stores/typeorm/entities/oauth-session.entity.js +0 -65
- package/dist/authz/stores/typeorm/entities/oauth-session.entity.js.map +0 -1
- package/dist/authz/stores/typeorm/entities/user-profile.entity.d.ts +0 -13
- package/dist/authz/stores/typeorm/entities/user-profile.entity.d.ts.map +0 -1
- package/dist/authz/stores/typeorm/entities/user-profile.entity.js +0 -62
- package/dist/authz/stores/typeorm/entities/user-profile.entity.js.map +0 -1
- package/dist/authz/stores/typeorm/typeorm-store.service.d.ts +0 -28
- package/dist/authz/stores/typeorm/typeorm-store.service.d.ts.map +0 -1
- package/dist/authz/stores/typeorm/typeorm-store.service.js +0 -138
- package/dist/authz/stores/typeorm/typeorm-store.service.js.map +0 -1
- package/dist/mcp/constants/feature-registration.constants.d.ts +0 -7
- package/dist/mcp/constants/feature-registration.constants.d.ts.map +0 -1
- package/dist/mcp/constants/feature-registration.constants.js +0 -5
- package/dist/mcp/constants/feature-registration.constants.js.map +0 -1
- package/dist/mcp/decorators/tool-guards.decorator.d.ts +0 -12
- package/dist/mcp/decorators/tool-guards.decorator.d.ts.map +0 -1
- package/dist/mcp/decorators/tool-guards.decorator.js +0 -13
- package/dist/mcp/decorators/tool-guards.decorator.js.map +0 -1
- package/dist/mcp/interfaces/mcp-options.interface.d.ts +0 -53
- package/dist/mcp/interfaces/mcp-options.interface.d.ts.map +0 -1
- package/dist/mcp/interfaces/mcp-options.interface.js +0 -10
- package/dist/mcp/interfaces/mcp-options.interface.js.map +0 -1
- package/dist/mcp/mcp.module.d.ts +0 -15
- package/dist/mcp/mcp.module.d.ts.map +0 -1
- package/dist/mcp/mcp.module.js +0 -248
- package/dist/mcp/mcp.module.js.map +0 -1
- package/dist/mcp/services/handlers/mcp-handler.base.d.ts +0 -117
- package/dist/mcp/services/handlers/mcp-handler.base.d.ts.map +0 -1
- package/dist/mcp/services/handlers/mcp-handler.base.js +0 -125
- package/dist/mcp/services/handlers/mcp-handler.base.js.map +0 -1
- package/dist/mcp/services/handlers/mcp-prompts.handler.d.ts +0 -12
- package/dist/mcp/services/handlers/mcp-prompts.handler.d.ts.map +0 -1
- package/dist/mcp/services/handlers/mcp-prompts.handler.js +0 -98
- package/dist/mcp/services/handlers/mcp-prompts.handler.js.map +0 -1
- package/dist/mcp/services/handlers/mcp-resources.handler.d.ts +0 -13
- package/dist/mcp/services/handlers/mcp-resources.handler.d.ts.map +0 -1
- package/dist/mcp/services/handlers/mcp-resources.handler.js +0 -117
- package/dist/mcp/services/handlers/mcp-resources.handler.js.map +0 -1
- package/dist/mcp/services/handlers/mcp-tools.handler.d.ts +0 -22
- package/dist/mcp/services/handlers/mcp-tools.handler.d.ts.map +0 -1
- package/dist/mcp/services/handlers/mcp-tools.handler.js +0 -258
- package/dist/mcp/services/handlers/mcp-tools.handler.js.map +0 -1
- package/dist/mcp/services/mcp-dynamic-registry.service.d.ts +0 -26
- package/dist/mcp/services/mcp-dynamic-registry.service.d.ts.map +0 -1
- package/dist/mcp/services/mcp-dynamic-registry.service.js +0 -133
- package/dist/mcp/services/mcp-dynamic-registry.service.js.map +0 -1
- package/dist/mcp/services/mcp-executor.service.d.ts +0 -15
- package/dist/mcp/services/mcp-executor.service.d.ts.map +0 -1
- package/dist/mcp/services/mcp-executor.service.js +0 -47
- package/dist/mcp/services/mcp-executor.service.js.map +0 -1
- package/dist/mcp/services/mcp-registry-discovery.service.d.ts +0 -63
- package/dist/mcp/services/mcp-registry-discovery.service.d.ts.map +0 -1
- package/dist/mcp/services/mcp-registry-discovery.service.js +0 -397
- package/dist/mcp/services/mcp-registry-discovery.service.js.map +0 -1
- package/dist/mcp/services/mcp-sse.service.d.ts +0 -20
- package/dist/mcp/services/mcp-sse.service.d.ts.map +0 -1
- package/dist/mcp/services/mcp-sse.service.js +0 -91
- package/dist/mcp/services/mcp-sse.service.js.map +0 -1
- package/dist/mcp/services/mcp-streamable-http.service.d.ts +0 -32
- package/dist/mcp/services/mcp-streamable-http.service.d.ts.map +0 -1
- package/dist/mcp/services/mcp-streamable-http.service.js +0 -327
- package/dist/mcp/services/mcp-streamable-http.service.js.map +0 -1
- package/dist/mcp/services/sse-ping.service.d.ts +0 -23
- package/dist/mcp/services/sse-ping.service.d.ts.map +0 -1
- package/dist/mcp/services/sse-ping.service.js +0 -99
- package/dist/mcp/services/sse-ping.service.js.map +0 -1
- package/dist/mcp/transport/sse.controller.factory.d.ts +0 -14
- package/dist/mcp/transport/sse.controller.factory.d.ts.map +0 -1
- package/dist/mcp/transport/sse.controller.factory.js +0 -67
- package/dist/mcp/transport/sse.controller.factory.js.map +0 -1
- package/dist/mcp/transport/stdio.service.d.ts +0 -14
- package/dist/mcp/transport/stdio.service.d.ts.map +0 -1
- package/dist/mcp/transport/stdio.service.js +0 -66
- package/dist/mcp/transport/stdio.service.js.map +0 -1
- package/dist/mcp/transport/streamable-http.controller.factory.d.ts +0 -14
- package/dist/mcp/transport/streamable-http.controller.factory.d.ts.map +0 -1
- package/dist/mcp/transport/streamable-http.controller.factory.js +0 -74
- package/dist/mcp/transport/streamable-http.controller.factory.js.map +0 -1
- package/dist/mcp/utils/capabilities-builder.d.ts +0 -5
- package/dist/mcp/utils/capabilities-builder.d.ts.map +0 -1
- package/dist/mcp/utils/capabilities-builder.js +0 -25
- package/dist/mcp/utils/capabilities-builder.js.map +0 -1
- package/dist/mcp/utils/mcp-server.factory.d.ts +0 -6
- package/dist/mcp/utils/mcp-server.factory.d.ts.map +0 -1
- package/dist/mcp/utils/mcp-server.factory.js +0 -22
- package/dist/mcp/utils/mcp-server.factory.js.map +0 -1
- package/src/authz/guards/jwt-auth.guard.ts +0 -127
- package/src/authz/index.ts +0 -10
- package/src/authz/interfaces/oauth-common.interface.ts +0 -21
- package/src/authz/interfaces/request-with-user.ts +0 -16
- package/src/authz/mcp-oauth.controller.ts +0 -860
- package/src/authz/mcp-oauth.module.ts +0 -384
- package/src/authz/providers/azure-ad.provider.ts +0 -40
- package/src/authz/providers/github.provider.ts +0 -22
- package/src/authz/providers/google.provider.ts +0 -23
- package/src/authz/providers/oauth-provider.interface.ts +0 -147
- package/src/authz/services/client.service.ts +0 -125
- package/src/authz/services/jwt-token.service.spec.ts +0 -67
- package/src/authz/services/jwt-token.service.ts +0 -188
- package/src/authz/services/oauth-strategy.service.ts +0 -64
- package/src/authz/stores/memory-store.service.spec.ts +0 -475
- package/src/authz/stores/memory-store.service.ts +0 -141
- package/src/authz/stores/oauth-store.interface.ts +0 -131
- package/src/authz/stores/typeorm/README.md +0 -140
- package/src/authz/stores/typeorm/constants.ts +0 -6
- package/src/authz/stores/typeorm/entities/authorization-code.entity.ts +0 -41
- package/src/authz/stores/typeorm/entities/index.ts +0 -4
- package/src/authz/stores/typeorm/entities/oauth-client.entity.ts +0 -53
- package/src/authz/stores/typeorm/entities/oauth-session.entity.ts +0 -38
- package/src/authz/stores/typeorm/entities/user-profile.entity.ts +0 -46
- package/src/authz/stores/typeorm/typeorm-store.service.spec.ts +0 -494
- package/src/authz/stores/typeorm/typeorm-store.service.ts +0 -165
- package/src/mcp/constants/feature-registration.constants.ts +0 -24
- package/src/mcp/decorators/tool-guards.decorator.ts +0 -82
- package/src/mcp/interfaces/mcp-options.interface.ts +0 -95
- package/src/mcp/mcp.module.ts +0 -349
- package/src/mcp/services/handlers/mcp-handler.base.ts +0 -203
- package/src/mcp/services/handlers/mcp-prompts.handler.ts +0 -143
- package/src/mcp/services/handlers/mcp-resources.handler.ts +0 -183
- package/src/mcp/services/handlers/mcp-tools.handler.spec.ts +0 -41
- package/src/mcp/services/handlers/mcp-tools.handler.ts +0 -436
- package/src/mcp/services/mcp-dynamic-registry.service.ts +0 -236
- package/src/mcp/services/mcp-executor.service.ts +0 -64
- package/src/mcp/services/mcp-registry-discovery.service.spec.ts +0 -306
- package/src/mcp/services/mcp-registry-discovery.service.ts +0 -849
- package/src/mcp/services/mcp-sse.service.ts +0 -124
- package/src/mcp/services/mcp-streamable-http.service.ts +0 -472
- package/src/mcp/services/sse-ping.service.ts +0 -144
- package/src/mcp/transport/custom-decorator.spec.ts +0 -75
- package/src/mcp/transport/sse.controller.factory.ts +0 -84
- package/src/mcp/transport/stdio.service.ts +0 -75
- package/src/mcp/transport/streamable-http.controller.factory.ts +0 -80
- package/src/mcp/utils/capabilities-builder.ts +0 -43
- package/src/mcp/utils/mcp-server.factory.ts +0 -33
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import { Icon, ServerCapabilities } from '@modelcontextprotocol/sdk/types.js';
|
|
2
|
+
import { HttpServer } from '@nestjs/common';
|
|
3
|
+
import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
4
|
+
import { McpTransport } from './mcp-transport.interface';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Configuration for an {@link McpStrategy} — the NestJS microservice transport
|
|
8
|
+
* strategy that powers an MCP server. Pass an instance to
|
|
9
|
+
* `app.connectMicroservice({ strategy: new McpStrategy(options) })`, set the HTTP
|
|
10
|
+
* adapter for HTTP transports, and declare your `@McpController` classes in a
|
|
11
|
+
* module's `controllers` array. No `McpModule` is required.
|
|
12
|
+
*/
|
|
13
|
+
export interface McpServerOptions {
|
|
14
|
+
/** Server name (MCP `Implementation.name`). */
|
|
15
|
+
name: string;
|
|
16
|
+
/** Server version (MCP `Implementation.version`). */
|
|
17
|
+
version: string;
|
|
18
|
+
/**
|
|
19
|
+
* Logical server name used for multi-server isolation. Only
|
|
20
|
+
* `@McpController({ server: <name> })` classes bind to this strategy. Omit for
|
|
21
|
+
* the default server (binds to plain `@McpController()` classes).
|
|
22
|
+
*/
|
|
23
|
+
server?: string;
|
|
24
|
+
/** Human-readable display name. */
|
|
25
|
+
title?: string;
|
|
26
|
+
/** Short description of what this server does. */
|
|
27
|
+
description?: string;
|
|
28
|
+
/** URL of the website associated with this server. */
|
|
29
|
+
websiteUrl?: string;
|
|
30
|
+
/** Icons representing this server. */
|
|
31
|
+
icons?: Icon[];
|
|
32
|
+
/** Extra MCP server capabilities merged with the auto-derived ones. */
|
|
33
|
+
capabilities?: ServerCapabilities;
|
|
34
|
+
/** Server instructions sent to clients on initialize. */
|
|
35
|
+
instructions?: string;
|
|
36
|
+
/** Mutate the SDK server right after creation (instrumentation, etc.). */
|
|
37
|
+
serverMutator?: (server: McpServer) => McpServer;
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* The integrations this server exposes. Provide one entry per transport,
|
|
41
|
+
* e.g. `[new StreamableHttpTransport(), new StdioTransport()]`.
|
|
42
|
+
*/
|
|
43
|
+
transports: McpTransport[];
|
|
44
|
+
|
|
45
|
+
/**
|
|
46
|
+
* The Nest HTTP adapter, required for HTTP-based transports. Either pass it
|
|
47
|
+
* here (`new McpStrategy({ ..., httpAdapter: app.getHttpAdapter() })`) or set
|
|
48
|
+
* it later via `strategy.setHttpAdapter(app.getHttpAdapter())`. Not needed for
|
|
49
|
+
* stdio-only servers.
|
|
50
|
+
*/
|
|
51
|
+
httpAdapter?: HttpServer;
|
|
52
|
+
|
|
53
|
+
/**
|
|
54
|
+
* Freemium mode. When `true`, anonymous (unauthenticated) sessions may reach
|
|
55
|
+
* `@PublicTool()` tools, while every other tool still requires a resolved
|
|
56
|
+
* `req.user`. When `false` (default), per-tool listing/visibility trusts the
|
|
57
|
+
* server's own authentication — `@UseGuards()` on `@McpController` classes or
|
|
58
|
+
* methods (run by the NestJS RPC pipeline at call time) and/or auth middleware
|
|
59
|
+
* on the HTTP routes.
|
|
60
|
+
*
|
|
61
|
+
* @default false
|
|
62
|
+
*/
|
|
63
|
+
allowUnauthenticatedAccess?: boolean;
|
|
64
|
+
/**
|
|
65
|
+
* Logging configuration.
|
|
66
|
+
* - `false` to disable MCP logging
|
|
67
|
+
* - `{ level: [...] }` to filter levels
|
|
68
|
+
* - `undefined` (default) for standard NestJS logging
|
|
69
|
+
*/
|
|
70
|
+
logging?:
|
|
71
|
+
| false
|
|
72
|
+
| {
|
|
73
|
+
level: ('log' | 'error' | 'warn' | 'debug' | 'verbose')[];
|
|
74
|
+
};
|
|
75
|
+
}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared transport identifier for the MCP microservice strategy.
|
|
3
|
+
*
|
|
4
|
+
* Both the MCP capability decorators (`@Tool`, `@Resource`, `@ResourceTemplate`,
|
|
5
|
+
* `@Prompt`) and the {@link McpStrategy} reference this exact symbol. NestJS
|
|
6
|
+
* binds a `@MessagePattern` handler to a strategy only when the handler's
|
|
7
|
+
* declared transport is undefined OR equals the strategy's `transportId`
|
|
8
|
+
* (see `@nestjs/microservices` ListenersController). By tagging MCP handlers
|
|
9
|
+
* with this symbol and setting it as the strategy's `transportId` we get mutual
|
|
10
|
+
* exclusion: other microservice transports never bind MCP handlers, and the MCP
|
|
11
|
+
* strategy prunes any stray non-MCP handler that matched via the undefined-transport
|
|
12
|
+
* clause.
|
|
13
|
+
*
|
|
14
|
+
* Uses the global symbol registry (`Symbol.for`) so it stays stable even if the
|
|
15
|
+
* package is duplicated across `node_modules`.
|
|
16
|
+
*/
|
|
17
|
+
export const MCP_TRANSPORT = Symbol.for('@rekog/mcp-nest:transport');
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* Transport id for a *named* MCP server, falling back to the default shared id
|
|
21
|
+
* ({@link MCP_TRANSPORT}) when no name is given.
|
|
22
|
+
*
|
|
23
|
+
* Naming a server gives it its own transport id, so NestJS's existing
|
|
24
|
+
* `transport === transportId` routing isolates each server's handlers natively:
|
|
25
|
+
* only `@McpController({ server: <name> })` classes bind to the matching
|
|
26
|
+
* `McpStrategy({ server: <name> })`. An unnamed controller + unnamed strategy
|
|
27
|
+
* keep using {@link MCP_TRANSPORT} — i.e. the original single-server behavior.
|
|
28
|
+
*
|
|
29
|
+
* Uses the global symbol registry (`Symbol.for`) so the id stays stable even if
|
|
30
|
+
* the package is duplicated across `node_modules`.
|
|
31
|
+
*/
|
|
32
|
+
export const mcpTransportFor = (server?: string): symbol =>
|
|
33
|
+
server ? Symbol.for(`@rekog/mcp-nest:transport:${server}`) : MCP_TRANSPORT;
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* Class-metadata key recording the logical server name an `@McpController` was
|
|
37
|
+
* assigned to (via `@McpController({ server })`). Kept for diagnostics; the
|
|
38
|
+
* actual routing is driven by the per-method transport id, not this key.
|
|
39
|
+
*/
|
|
40
|
+
export const MCP_SERVER_NAME_METADATA_KEY = 'mcp:server-name';
|
|
41
|
+
|
|
42
|
+
export type McpCapabilityType =
|
|
43
|
+
| 'tool'
|
|
44
|
+
| 'resource'
|
|
45
|
+
| 'resource-template'
|
|
46
|
+
| 'prompt';
|
|
47
|
+
|
|
48
|
+
/**
|
|
49
|
+
* Structured message pattern stored for every MCP capability handler. NestJS
|
|
50
|
+
* normalizes object patterns by sorting keys and JSON-stringifying them, so the
|
|
51
|
+
* strategy can deterministically rebuild a route from a discovered capability
|
|
52
|
+
* name and look the handler up via `getHandlerByPattern`.
|
|
53
|
+
*/
|
|
54
|
+
export interface McpPattern {
|
|
55
|
+
mcp: McpCapabilityType;
|
|
56
|
+
name: string;
|
|
57
|
+
// Index signature keeps the pattern assignable to NestJS's MsObjectPattern.
|
|
58
|
+
[key: string]: string;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
/**
|
|
62
|
+
* Routing + metadata identity carried in the bound handler's `extras`.
|
|
63
|
+
*
|
|
64
|
+
* `mcpMethodRef` is the original decorated method (`descriptor.value`). NestJS
|
|
65
|
+
* stores `extras` by reference on the handler, so at `listen()` time — after ALL
|
|
66
|
+
* decorators on that method have run — the strategy reads every metadata key off
|
|
67
|
+
* `mcpMethodRef` directly (`@Tool` options + `@ToolScopes`/`@ToolRoles`/etc.),
|
|
68
|
+
* with no DI discovery service.
|
|
69
|
+
*/
|
|
70
|
+
/** A decorated capability method reference (used to read its metadata at bind time). */
|
|
71
|
+
export type McpMethodRef = (...args: any[]) => any;
|
|
72
|
+
|
|
73
|
+
export interface McpHandlerExtras {
|
|
74
|
+
mcpType: McpCapabilityType;
|
|
75
|
+
mcpName: string;
|
|
76
|
+
mcpMethodKey: string;
|
|
77
|
+
mcpMethodRef: McpMethodRef;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
export function buildMcpPattern(
|
|
81
|
+
type: McpCapabilityType,
|
|
82
|
+
name: string,
|
|
83
|
+
): McpPattern {
|
|
84
|
+
return { mcp: type, name };
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
export function buildMcpHandlerExtras(
|
|
88
|
+
type: McpCapabilityType,
|
|
89
|
+
name: string,
|
|
90
|
+
methodKey: string,
|
|
91
|
+
methodRef: McpMethodRef,
|
|
92
|
+
): McpHandlerExtras {
|
|
93
|
+
return {
|
|
94
|
+
mcpType: type,
|
|
95
|
+
mcpName: name,
|
|
96
|
+
mcpMethodKey: methodKey,
|
|
97
|
+
mcpMethodRef: methodRef,
|
|
98
|
+
};
|
|
99
|
+
}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { HttpServer, Logger } from '@nestjs/common';
|
|
2
|
+
import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
3
|
+
import { McpServerOptions } from './mcp-server-options.interface';
|
|
4
|
+
import { McpSessionInfo, McpTransportKind } from './mcp-context';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* The surface a transport receives from the {@link McpStrategy} when it starts.
|
|
8
|
+
* Transports own the wire protocol; the strategy owns capability discovery,
|
|
9
|
+
* the MCP request handlers, and routing into the NestJS RPC pipeline.
|
|
10
|
+
*/
|
|
11
|
+
export interface McpTransportContext {
|
|
12
|
+
/**
|
|
13
|
+
* Create a bare SDK `McpServer` (capabilities derived from discovery + any
|
|
14
|
+
* `serverMutator` applied). The caller is responsible for connecting it to an
|
|
15
|
+
* SDK transport and for calling {@link bindRequestHandlers}.
|
|
16
|
+
*/
|
|
17
|
+
createServer(): McpServer;
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* (Re)register the MCP request handlers (tools/resources/prompts) on a server,
|
|
21
|
+
* bound to a specific incoming request. Call this per request for session-aware
|
|
22
|
+
* transports so the per-request `rawRequest` (auth context) is current.
|
|
23
|
+
*/
|
|
24
|
+
bindRequestHandlers(
|
|
25
|
+
server: McpServer,
|
|
26
|
+
session: Pick<McpSessionInfo, 'transport' | 'stateless' | 'sessionId'>,
|
|
27
|
+
rawRequest?: unknown,
|
|
28
|
+
): void;
|
|
29
|
+
|
|
30
|
+
/** The Nest HTTP adapter. Present whenever an HTTP-based transport is used. */
|
|
31
|
+
httpAdapter?: HttpServer;
|
|
32
|
+
|
|
33
|
+
/** The resolved strategy options. */
|
|
34
|
+
options: McpServerOptions;
|
|
35
|
+
|
|
36
|
+
/** A logger scoped to the MCP server. */
|
|
37
|
+
logger: Logger;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
/**
|
|
41
|
+
* A single MCP integration (stdio or streamable-HTTP). Implementations
|
|
42
|
+
* are plain objects the user constructs and passes via {@link McpServerOptions.transports}.
|
|
43
|
+
*/
|
|
44
|
+
export interface McpTransport {
|
|
45
|
+
readonly kind: McpTransportKind;
|
|
46
|
+
/** Called once from {@link McpStrategy.listen}. */
|
|
47
|
+
start(ctx: McpTransportContext): Promise<void> | void;
|
|
48
|
+
/** Called from {@link McpStrategy.close}. */
|
|
49
|
+
close(): Promise<void> | void;
|
|
50
|
+
}
|