mcp-server-framework 1.0.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/CHANGELOG.md +174 -0
- package/LICENSE-GPL.md +219 -0
- package/LICENSE.md +187 -0
- package/README.md +439 -0
- package/build/config/config-cache.d.ts +120 -0
- package/build/config/config-cache.d.ts.map +1 -0
- package/build/config/config-cache.js +310 -0
- package/build/config/config-cache.js.map +1 -0
- package/build/config/env.d.ts +476 -0
- package/build/config/env.d.ts.map +1 -0
- package/build/config/env.js +441 -0
- package/build/config/env.js.map +1 -0
- package/build/config/extensions.d.ts +107 -0
- package/build/config/extensions.d.ts.map +1 -0
- package/build/config/extensions.js +152 -0
- package/build/config/extensions.js.map +1 -0
- package/build/config/file/index.d.ts +8 -0
- package/build/config/file/index.d.ts.map +1 -0
- package/build/config/file/index.js +10 -0
- package/build/config/file/index.js.map +1 -0
- package/build/config/file/loader.d.ts +31 -0
- package/build/config/file/loader.d.ts.map +1 -0
- package/build/config/file/loader.js +313 -0
- package/build/config/file/loader.js.map +1 -0
- package/build/config/file/schema.d.ts +583 -0
- package/build/config/file/schema.d.ts.map +1 -0
- package/build/config/file/schema.js +388 -0
- package/build/config/file/schema.js.map +1 -0
- package/build/config/index.d.ts +15 -0
- package/build/config/index.d.ts.map +1 -0
- package/build/config/index.js +27 -0
- package/build/config/index.js.map +1 -0
- package/build/config/startup-warnings.d.ts +46 -0
- package/build/config/startup-warnings.d.ts.map +1 -0
- package/build/config/startup-warnings.js +61 -0
- package/build/config/startup-warnings.js.map +1 -0
- package/build/connection/connection-state.d.ts +196 -0
- package/build/connection/connection-state.d.ts.map +1 -0
- package/build/connection/connection-state.js +426 -0
- package/build/connection/connection-state.js.map +1 -0
- package/build/connection/core/base.d.ts +43 -0
- package/build/connection/core/base.d.ts.map +1 -0
- package/build/connection/core/base.js +82 -0
- package/build/connection/core/base.js.map +1 -0
- package/build/connection/core/constants.d.ts +121 -0
- package/build/connection/core/constants.d.ts.map +1 -0
- package/build/connection/core/constants.js +151 -0
- package/build/connection/core/constants.js.map +1 -0
- package/build/connection/core/index.d.ts +13 -0
- package/build/connection/core/index.d.ts.map +1 -0
- package/build/connection/core/index.js +14 -0
- package/build/connection/core/index.js.map +1 -0
- package/build/connection/core/types.d.ts +102 -0
- package/build/connection/core/types.d.ts.map +1 -0
- package/build/connection/core/types.js +31 -0
- package/build/connection/core/types.js.map +1 -0
- package/build/connection/index.d.ts +19 -0
- package/build/connection/index.d.ts.map +1 -0
- package/build/connection/index.js +22 -0
- package/build/connection/index.js.map +1 -0
- package/build/connection/types.d.ts +125 -0
- package/build/connection/types.d.ts.map +1 -0
- package/build/connection/types.js +39 -0
- package/build/connection/types.js.map +1 -0
- package/build/errors/categories/auth.d.ts +59 -0
- package/build/errors/categories/auth.d.ts.map +1 -0
- package/build/errors/categories/auth.js +111 -0
- package/build/errors/categories/auth.js.map +1 -0
- package/build/errors/categories/connection.d.ts +70 -0
- package/build/errors/categories/connection.d.ts.map +1 -0
- package/build/errors/categories/connection.js +120 -0
- package/build/errors/categories/connection.js.map +1 -0
- package/build/errors/categories/index.d.ts +14 -0
- package/build/errors/categories/index.d.ts.map +1 -0
- package/build/errors/categories/index.js +20 -0
- package/build/errors/categories/index.js.map +1 -0
- package/build/errors/categories/operation.d.ts +83 -0
- package/build/errors/categories/operation.d.ts.map +1 -0
- package/build/errors/categories/operation.js +149 -0
- package/build/errors/categories/operation.js.map +1 -0
- package/build/errors/categories/protocol.d.ts +68 -0
- package/build/errors/categories/protocol.d.ts.map +1 -0
- package/build/errors/categories/protocol.js +135 -0
- package/build/errors/categories/protocol.js.map +1 -0
- package/build/errors/categories/session.d.ts +50 -0
- package/build/errors/categories/session.d.ts.map +1 -0
- package/build/errors/categories/session.js +97 -0
- package/build/errors/categories/session.js.map +1 -0
- package/build/errors/categories/system.d.ts +95 -0
- package/build/errors/categories/system.d.ts.map +1 -0
- package/build/errors/categories/system.js +190 -0
- package/build/errors/categories/system.js.map +1 -0
- package/build/errors/categories/transport.d.ts +70 -0
- package/build/errors/categories/transport.d.ts.map +1 -0
- package/build/errors/categories/transport.js +148 -0
- package/build/errors/categories/transport.js.map +1 -0
- package/build/errors/categories/validation.d.ts +140 -0
- package/build/errors/categories/validation.d.ts.map +1 -0
- package/build/errors/categories/validation.js +311 -0
- package/build/errors/categories/validation.js.map +1 -0
- package/build/errors/core/base.d.ts +103 -0
- package/build/errors/core/base.d.ts.map +1 -0
- package/build/errors/core/base.js +219 -0
- package/build/errors/core/base.js.map +1 -0
- package/build/errors/core/constants.d.ts +40 -0
- package/build/errors/core/constants.d.ts.map +1 -0
- package/build/errors/core/constants.js +49 -0
- package/build/errors/core/constants.js.map +1 -0
- package/build/errors/core/error-codes.d.ts +72 -0
- package/build/errors/core/error-codes.d.ts.map +1 -0
- package/build/errors/core/error-codes.js +88 -0
- package/build/errors/core/error-codes.js.map +1 -0
- package/build/errors/core/http.d.ts +69 -0
- package/build/errors/core/http.d.ts.map +1 -0
- package/build/errors/core/http.js +106 -0
- package/build/errors/core/http.js.map +1 -0
- package/build/errors/core/index.d.ts +23 -0
- package/build/errors/core/index.d.ts.map +1 -0
- package/build/errors/core/index.js +41 -0
- package/build/errors/core/index.js.map +1 -0
- package/build/errors/core/json-rpc.d.ts +69 -0
- package/build/errors/core/json-rpc.d.ts.map +1 -0
- package/build/errors/core/json-rpc.js +79 -0
- package/build/errors/core/json-rpc.js.map +1 -0
- package/build/errors/core/messages.d.ts +51 -0
- package/build/errors/core/messages.d.ts.map +1 -0
- package/build/errors/core/messages.js +59 -0
- package/build/errors/core/messages.js.map +1 -0
- package/build/errors/core/types.d.ts +80 -0
- package/build/errors/core/types.d.ts.map +1 -0
- package/build/errors/core/types.js +10 -0
- package/build/errors/core/types.js.map +1 -0
- package/build/errors/factory.d.ts +199 -0
- package/build/errors/factory.d.ts.map +1 -0
- package/build/errors/factory.js +244 -0
- package/build/errors/factory.js.map +1 -0
- package/build/errors/index.d.ts +35 -0
- package/build/errors/index.d.ts.map +1 -0
- package/build/errors/index.js +67 -0
- package/build/errors/index.js.map +1 -0
- package/build/index.d.ts +93 -0
- package/build/index.d.ts.map +1 -0
- package/build/index.js +107 -0
- package/build/index.js.map +1 -0
- package/build/logger/core/constants.d.ts +143 -0
- package/build/logger/core/constants.d.ts.map +1 -0
- package/build/logger/core/constants.js +206 -0
- package/build/logger/core/constants.js.map +1 -0
- package/build/logger/core/context.d.ts +170 -0
- package/build/logger/core/context.d.ts.map +1 -0
- package/build/logger/core/context.js +237 -0
- package/build/logger/core/context.js.map +1 -0
- package/build/logger/core/errors.d.ts +101 -0
- package/build/logger/core/errors.d.ts.map +1 -0
- package/build/logger/core/errors.js +128 -0
- package/build/logger/core/errors.js.map +1 -0
- package/build/logger/core/format.d.ts +40 -0
- package/build/logger/core/format.d.ts.map +1 -0
- package/build/logger/core/format.js +47 -0
- package/build/logger/core/format.js.map +1 -0
- package/build/logger/core/index.d.ts +19 -0
- package/build/logger/core/index.d.ts.map +1 -0
- package/build/logger/core/index.js +47 -0
- package/build/logger/core/index.js.map +1 -0
- package/build/logger/core/trace-context.d.ts +51 -0
- package/build/logger/core/trace-context.d.ts.map +1 -0
- package/build/logger/core/trace-context.js +42 -0
- package/build/logger/core/trace-context.js.map +1 -0
- package/build/logger/core/types.d.ts +233 -0
- package/build/logger/core/types.d.ts.map +1 -0
- package/build/logger/core/types.js +10 -0
- package/build/logger/core/types.js.map +1 -0
- package/build/logger/factory.d.ts +150 -0
- package/build/logger/factory.d.ts.map +1 -0
- package/build/logger/factory.js +236 -0
- package/build/logger/factory.js.map +1 -0
- package/build/logger/formatters/index.d.ts +12 -0
- package/build/logger/formatters/index.d.ts.map +1 -0
- package/build/logger/formatters/index.js +15 -0
- package/build/logger/formatters/index.js.map +1 -0
- package/build/logger/formatters/json-formatter.d.ts +54 -0
- package/build/logger/formatters/json-formatter.d.ts.map +1 -0
- package/build/logger/formatters/json-formatter.js +80 -0
- package/build/logger/formatters/json-formatter.js.map +1 -0
- package/build/logger/formatters/schema.d.ts +230 -0
- package/build/logger/formatters/schema.d.ts.map +1 -0
- package/build/logger/formatters/schema.js +278 -0
- package/build/logger/formatters/schema.js.map +1 -0
- package/build/logger/formatters/text-formatter.d.ts +50 -0
- package/build/logger/formatters/text-formatter.d.ts.map +1 -0
- package/build/logger/formatters/text-formatter.js +93 -0
- package/build/logger/formatters/text-formatter.js.map +1 -0
- package/build/logger/index.d.ts +39 -0
- package/build/logger/index.d.ts.map +1 -0
- package/build/logger/index.js +43 -0
- package/build/logger/index.js.map +1 -0
- package/build/logger/logger.d.ts +278 -0
- package/build/logger/logger.d.ts.map +1 -0
- package/build/logger/logger.js +459 -0
- package/build/logger/logger.js.map +1 -0
- package/build/logger/mcp-logger.d.ts +177 -0
- package/build/logger/mcp-logger.d.ts.map +1 -0
- package/build/logger/mcp-logger.js +294 -0
- package/build/logger/mcp-logger.js.map +1 -0
- package/build/logger/scrubbing/index.d.ts +14 -0
- package/build/logger/scrubbing/index.d.ts.map +1 -0
- package/build/logger/scrubbing/index.js +16 -0
- package/build/logger/scrubbing/index.js.map +1 -0
- package/build/logger/scrubbing/injection-guard.d.ts +69 -0
- package/build/logger/scrubbing/injection-guard.d.ts.map +1 -0
- package/build/logger/scrubbing/injection-guard.js +102 -0
- package/build/logger/scrubbing/injection-guard.js.map +1 -0
- package/build/logger/scrubbing/secret-scrubber.d.ts +72 -0
- package/build/logger/scrubbing/secret-scrubber.d.ts.map +1 -0
- package/build/logger/scrubbing/secret-scrubber.js +177 -0
- package/build/logger/scrubbing/secret-scrubber.js.map +1 -0
- package/build/logger/writers/base-writer.d.ts +45 -0
- package/build/logger/writers/base-writer.d.ts.map +1 -0
- package/build/logger/writers/base-writer.js +41 -0
- package/build/logger/writers/base-writer.js.map +1 -0
- package/build/logger/writers/composite-writer.d.ts +83 -0
- package/build/logger/writers/composite-writer.d.ts.map +1 -0
- package/build/logger/writers/composite-writer.js +121 -0
- package/build/logger/writers/composite-writer.js.map +1 -0
- package/build/logger/writers/console-writer.d.ts +59 -0
- package/build/logger/writers/console-writer.d.ts.map +1 -0
- package/build/logger/writers/console-writer.js +73 -0
- package/build/logger/writers/console-writer.js.map +1 -0
- package/build/logger/writers/file-writer.d.ts +160 -0
- package/build/logger/writers/file-writer.d.ts.map +1 -0
- package/build/logger/writers/file-writer.js +345 -0
- package/build/logger/writers/file-writer.js.map +1 -0
- package/build/logger/writers/index.d.ts +15 -0
- package/build/logger/writers/index.d.ts.map +1 -0
- package/build/logger/writers/index.js +19 -0
- package/build/logger/writers/index.js.map +1 -0
- package/build/mcp/capabilities/apps/define-app.d.ts +68 -0
- package/build/mcp/capabilities/apps/define-app.d.ts.map +1 -0
- package/build/mcp/capabilities/apps/define-app.js +127 -0
- package/build/mcp/capabilities/apps/define-app.js.map +1 -0
- package/build/mcp/capabilities/apps/index.d.ts +10 -0
- package/build/mcp/capabilities/apps/index.d.ts.map +1 -0
- package/build/mcp/capabilities/apps/index.js +10 -0
- package/build/mcp/capabilities/apps/index.js.map +1 -0
- package/build/mcp/capabilities/capabilities.d.ts +24 -0
- package/build/mcp/capabilities/capabilities.d.ts.map +1 -0
- package/build/mcp/capabilities/capabilities.js +50 -0
- package/build/mcp/capabilities/capabilities.js.map +1 -0
- package/build/mcp/capabilities/index.d.ts +17 -0
- package/build/mcp/capabilities/index.d.ts.map +1 -0
- package/build/mcp/capabilities/index.js +20 -0
- package/build/mcp/capabilities/index.js.map +1 -0
- package/build/mcp/capabilities/prompts/define-prompt.d.ts +95 -0
- package/build/mcp/capabilities/prompts/define-prompt.d.ts.map +1 -0
- package/build/mcp/capabilities/prompts/define-prompt.js +109 -0
- package/build/mcp/capabilities/prompts/define-prompt.js.map +1 -0
- package/build/mcp/capabilities/prompts/index.d.ts +10 -0
- package/build/mcp/capabilities/prompts/index.d.ts.map +1 -0
- package/build/mcp/capabilities/prompts/index.js +10 -0
- package/build/mcp/capabilities/prompts/index.js.map +1 -0
- package/build/mcp/capabilities/registry/base-registry.d.ts +95 -0
- package/build/mcp/capabilities/registry/base-registry.d.ts.map +1 -0
- package/build/mcp/capabilities/registry/base-registry.js +149 -0
- package/build/mcp/capabilities/registry/base-registry.js.map +1 -0
- package/build/mcp/capabilities/registry/index.d.ts +16 -0
- package/build/mcp/capabilities/registry/index.d.ts.map +1 -0
- package/build/mcp/capabilities/registry/index.js +34 -0
- package/build/mcp/capabilities/registry/index.js.map +1 -0
- package/build/mcp/capabilities/registry/prompt-registry.d.ts +116 -0
- package/build/mcp/capabilities/registry/prompt-registry.d.ts.map +1 -0
- package/build/mcp/capabilities/registry/prompt-registry.js +232 -0
- package/build/mcp/capabilities/registry/prompt-registry.js.map +1 -0
- package/build/mcp/capabilities/registry/reset.d.ts +30 -0
- package/build/mcp/capabilities/registry/reset.d.ts.map +1 -0
- package/build/mcp/capabilities/registry/reset.js +48 -0
- package/build/mcp/capabilities/registry/reset.js.map +1 -0
- package/build/mcp/capabilities/registry/resource-registry.d.ts +152 -0
- package/build/mcp/capabilities/registry/resource-registry.d.ts.map +1 -0
- package/build/mcp/capabilities/registry/resource-registry.js +430 -0
- package/build/mcp/capabilities/registry/resource-registry.js.map +1 -0
- package/build/mcp/capabilities/registry/scope-enforcement.d.ts +48 -0
- package/build/mcp/capabilities/registry/scope-enforcement.d.ts.map +1 -0
- package/build/mcp/capabilities/registry/scope-enforcement.js +62 -0
- package/build/mcp/capabilities/registry/scope-enforcement.js.map +1 -0
- package/build/mcp/capabilities/registry/task-tool-registry.d.ts +96 -0
- package/build/mcp/capabilities/registry/task-tool-registry.d.ts.map +1 -0
- package/build/mcp/capabilities/registry/task-tool-registry.js +190 -0
- package/build/mcp/capabilities/registry/task-tool-registry.js.map +1 -0
- package/build/mcp/capabilities/registry/tool-registry.d.ts +100 -0
- package/build/mcp/capabilities/registry/tool-registry.d.ts.map +1 -0
- package/build/mcp/capabilities/registry/tool-registry.js +242 -0
- package/build/mcp/capabilities/registry/tool-registry.js.map +1 -0
- package/build/mcp/capabilities/resources/define-resource.d.ts +103 -0
- package/build/mcp/capabilities/resources/define-resource.d.ts.map +1 -0
- package/build/mcp/capabilities/resources/define-resource.js +137 -0
- package/build/mcp/capabilities/resources/define-resource.js.map +1 -0
- package/build/mcp/capabilities/resources/index.d.ts +10 -0
- package/build/mcp/capabilities/resources/index.d.ts.map +1 -0
- package/build/mcp/capabilities/resources/index.js +10 -0
- package/build/mcp/capabilities/resources/index.js.map +1 -0
- package/build/mcp/capabilities/server-capabilities.d.ts +33 -0
- package/build/mcp/capabilities/server-capabilities.d.ts.map +1 -0
- package/build/mcp/capabilities/server-capabilities.js +16 -0
- package/build/mcp/capabilities/server-capabilities.js.map +1 -0
- package/build/mcp/capabilities/tasks/define-task.d.ts +75 -0
- package/build/mcp/capabilities/tasks/define-task.d.ts.map +1 -0
- package/build/mcp/capabilities/tasks/define-task.js +93 -0
- package/build/mcp/capabilities/tasks/define-task.js.map +1 -0
- package/build/mcp/capabilities/tasks/index.d.ts +11 -0
- package/build/mcp/capabilities/tasks/index.d.ts.map +1 -0
- package/build/mcp/capabilities/tasks/index.js +11 -0
- package/build/mcp/capabilities/tasks/index.js.map +1 -0
- package/build/mcp/capabilities/tools/define-tool.d.ts +62 -0
- package/build/mcp/capabilities/tools/define-tool.d.ts.map +1 -0
- package/build/mcp/capabilities/tools/define-tool.js +73 -0
- package/build/mcp/capabilities/tools/define-tool.js.map +1 -0
- package/build/mcp/capabilities/tools/index.d.ts +10 -0
- package/build/mcp/capabilities/tools/index.d.ts.map +1 -0
- package/build/mcp/capabilities/tools/index.js +10 -0
- package/build/mcp/capabilities/tools/index.js.map +1 -0
- package/build/mcp/handlers/index.d.ts +19 -0
- package/build/mcp/handlers/index.d.ts.map +1 -0
- package/build/mcp/handlers/index.js +26 -0
- package/build/mcp/handlers/index.js.map +1 -0
- package/build/mcp/handlers/ping.d.ts +27 -0
- package/build/mcp/handlers/ping.d.ts.map +1 -0
- package/build/mcp/handlers/ping.js +61 -0
- package/build/mcp/handlers/ping.js.map +1 -0
- package/build/mcp/handlers/progress.d.ts +41 -0
- package/build/mcp/handlers/progress.d.ts.map +1 -0
- package/build/mcp/handlers/progress.js +79 -0
- package/build/mcp/handlers/progress.js.map +1 -0
- package/build/mcp/index.d.ts +28 -0
- package/build/mcp/index.d.ts.map +1 -0
- package/build/mcp/index.js +34 -0
- package/build/mcp/index.js.map +1 -0
- package/build/mcp/responses/helpers.d.ts +146 -0
- package/build/mcp/responses/helpers.d.ts.map +1 -0
- package/build/mcp/responses/helpers.js +197 -0
- package/build/mcp/responses/helpers.js.map +1 -0
- package/build/mcp/responses/index.d.ts +9 -0
- package/build/mcp/responses/index.d.ts.map +1 -0
- package/build/mcp/responses/index.js +12 -0
- package/build/mcp/responses/index.js.map +1 -0
- package/build/mcp/types/context.d.ts +371 -0
- package/build/mcp/types/context.d.ts.map +1 -0
- package/build/mcp/types/context.js +17 -0
- package/build/mcp/types/context.js.map +1 -0
- package/build/mcp/types/definition.d.ts +727 -0
- package/build/mcp/types/definition.d.ts.map +1 -0
- package/build/mcp/types/definition.js +29 -0
- package/build/mcp/types/definition.js.map +1 -0
- package/build/mcp/types/handler.d.ts +58 -0
- package/build/mcp/types/handler.d.ts.map +1 -0
- package/build/mcp/types/handler.js +10 -0
- package/build/mcp/types/handler.js.map +1 -0
- package/build/mcp/types/index.d.ts +21 -0
- package/build/mcp/types/index.d.ts.map +1 -0
- package/build/mcp/types/index.js +18 -0
- package/build/mcp/types/index.js.map +1 -0
- package/build/mcp/types/response.d.ts +79 -0
- package/build/mcp/types/response.d.ts.map +1 -0
- package/build/mcp/types/response.js +10 -0
- package/build/mcp/types/response.js.map +1 -0
- package/build/server/auth/auth-context.d.ts +52 -0
- package/build/server/auth/auth-context.d.ts.map +1 -0
- package/build/server/auth/auth-context.js +45 -0
- package/build/server/auth/auth-context.js.map +1 -0
- package/build/server/auth/guards.d.ts +72 -0
- package/build/server/auth/guards.d.ts.map +1 -0
- package/build/server/auth/guards.js +103 -0
- package/build/server/auth/guards.js.map +1 -0
- package/build/server/auth/index.d.ts +21 -0
- package/build/server/auth/index.d.ts.map +1 -0
- package/build/server/auth/index.js +20 -0
- package/build/server/auth/index.js.map +1 -0
- package/build/server/auth/oidc-discovery.d.ts +68 -0
- package/build/server/auth/oidc-discovery.d.ts.map +1 -0
- package/build/server/auth/oidc-discovery.js +234 -0
- package/build/server/auth/oidc-discovery.js.map +1 -0
- package/build/server/auth/oidc-provider.d.ts +96 -0
- package/build/server/auth/oidc-provider.d.ts.map +1 -0
- package/build/server/auth/oidc-provider.js +126 -0
- package/build/server/auth/oidc-provider.js.map +1 -0
- package/build/server/auth/types.d.ts +204 -0
- package/build/server/auth/types.d.ts.map +1 -0
- package/build/server/auth/types.js +29 -0
- package/build/server/auth/types.js.map +1 -0
- package/build/server/auth/upstream-provider.d.ts +161 -0
- package/build/server/auth/upstream-provider.d.ts.map +1 -0
- package/build/server/auth/upstream-provider.js +411 -0
- package/build/server/auth/upstream-provider.js.map +1 -0
- package/build/server/builder/constants.d.ts +45 -0
- package/build/server/builder/constants.d.ts.map +1 -0
- package/build/server/builder/constants.js +54 -0
- package/build/server/builder/constants.js.map +1 -0
- package/build/server/builder/index.d.ts +24 -0
- package/build/server/builder/index.d.ts.map +1 -0
- package/build/server/builder/index.js +25 -0
- package/build/server/builder/index.js.map +1 -0
- package/build/server/builder/primitive-collector.d.ts +24 -0
- package/build/server/builder/primitive-collector.d.ts.map +1 -0
- package/build/server/builder/primitive-collector.js +89 -0
- package/build/server/builder/primitive-collector.js.map +1 -0
- package/build/server/builder/server-builder.d.ts +53 -0
- package/build/server/builder/server-builder.d.ts.map +1 -0
- package/build/server/builder/server-builder.js +132 -0
- package/build/server/builder/server-builder.js.map +1 -0
- package/build/server/builder/types.d.ts +93 -0
- package/build/server/builder/types.d.ts.map +1 -0
- package/build/server/builder/types.js +25 -0
- package/build/server/builder/types.js.map +1 -0
- package/build/server/builder/validation.d.ts +36 -0
- package/build/server/builder/validation.d.ts.map +1 -0
- package/build/server/builder/validation.js +44 -0
- package/build/server/builder/validation.js.map +1 -0
- package/build/server/create-server.d.ts +57 -0
- package/build/server/create-server.d.ts.map +1 -0
- package/build/server/create-server.js +104 -0
- package/build/server/create-server.js.map +1 -0
- package/build/server/http/express-app.d.ts +103 -0
- package/build/server/http/express-app.d.ts.map +1 -0
- package/build/server/http/express-app.js +391 -0
- package/build/server/http/express-app.js.map +1 -0
- package/build/server/http/http-server.d.ts +67 -0
- package/build/server/http/http-server.d.ts.map +1 -0
- package/build/server/http/http-server.js +188 -0
- package/build/server/http/http-server.js.map +1 -0
- package/build/server/http/http-transport.d.ts +33 -0
- package/build/server/http/http-transport.d.ts.map +1 -0
- package/build/server/http/http-transport.js +84 -0
- package/build/server/http/http-transport.js.map +1 -0
- package/build/server/http/index.d.ts +15 -0
- package/build/server/http/index.d.ts.map +1 -0
- package/build/server/http/index.js +11 -0
- package/build/server/http/index.js.map +1 -0
- package/build/server/index.d.ts +25 -0
- package/build/server/index.d.ts.map +1 -0
- package/build/server/index.js +41 -0
- package/build/server/index.js.map +1 -0
- package/build/server/lifecycle.d.ts +114 -0
- package/build/server/lifecycle.d.ts.map +1 -0
- package/build/server/lifecycle.js +30 -0
- package/build/server/lifecycle.js.map +1 -0
- package/build/server/middleware/bearer-auth.d.ts +43 -0
- package/build/server/middleware/bearer-auth.d.ts.map +1 -0
- package/build/server/middleware/bearer-auth.js +75 -0
- package/build/server/middleware/bearer-auth.js.map +1 -0
- package/build/server/middleware/custom-header-auth.d.ts +40 -0
- package/build/server/middleware/custom-header-auth.d.ts.map +1 -0
- package/build/server/middleware/custom-header-auth.js +90 -0
- package/build/server/middleware/custom-header-auth.js.map +1 -0
- package/build/server/middleware/dns-rebinding.d.ts +25 -0
- package/build/server/middleware/dns-rebinding.d.ts.map +1 -0
- package/build/server/middleware/dns-rebinding.js +94 -0
- package/build/server/middleware/dns-rebinding.js.map +1 -0
- package/build/server/middleware/index.d.ts +69 -0
- package/build/server/middleware/index.d.ts.map +1 -0
- package/build/server/middleware/index.js +68 -0
- package/build/server/middleware/index.js.map +1 -0
- package/build/server/middleware/logging.d.ts +21 -0
- package/build/server/middleware/logging.d.ts.map +1 -0
- package/build/server/middleware/logging.js +36 -0
- package/build/server/middleware/logging.js.map +1 -0
- package/build/server/middleware/oauth-router.d.ts +50 -0
- package/build/server/middleware/oauth-router.d.ts.map +1 -0
- package/build/server/middleware/oauth-router.js +53 -0
- package/build/server/middleware/oauth-router.js.map +1 -0
- package/build/server/middleware/protocol-version.d.ts +13 -0
- package/build/server/middleware/protocol-version.d.ts.map +1 -0
- package/build/server/middleware/protocol-version.js +48 -0
- package/build/server/middleware/protocol-version.js.map +1 -0
- package/build/server/middleware/rate-limit.d.ts +47 -0
- package/build/server/middleware/rate-limit.d.ts.map +1 -0
- package/build/server/middleware/rate-limit.js +109 -0
- package/build/server/middleware/rate-limit.js.map +1 -0
- package/build/server/middleware/trust-proxy.d.ts +37 -0
- package/build/server/middleware/trust-proxy.d.ts.map +1 -0
- package/build/server/middleware/trust-proxy.js +154 -0
- package/build/server/middleware/trust-proxy.js.map +1 -0
- package/build/server/option-overrides.d.ts +25 -0
- package/build/server/option-overrides.d.ts.map +1 -0
- package/build/server/option-overrides.js +85 -0
- package/build/server/option-overrides.js.map +1 -0
- package/build/server/routes/health.d.ts +87 -0
- package/build/server/routes/health.d.ts.map +1 -0
- package/build/server/routes/health.js +183 -0
- package/build/server/routes/health.js.map +1 -0
- package/build/server/routes/index.d.ts +16 -0
- package/build/server/routes/index.d.ts.map +1 -0
- package/build/server/routes/index.js +18 -0
- package/build/server/routes/index.js.map +1 -0
- package/build/server/routes/metrics.d.ts +40 -0
- package/build/server/routes/metrics.d.ts.map +1 -0
- package/build/server/routes/metrics.js +81 -0
- package/build/server/routes/metrics.js.map +1 -0
- package/build/server/routes/oauth-router.d.ts +50 -0
- package/build/server/routes/oauth-router.d.ts.map +1 -0
- package/build/server/routes/oauth-router.js +53 -0
- package/build/server/routes/oauth-router.js.map +1 -0
- package/build/server/routes/readiness-status.d.ts +25 -0
- package/build/server/routes/readiness-status.d.ts.map +1 -0
- package/build/server/routes/readiness-status.js +27 -0
- package/build/server/routes/readiness-status.js.map +1 -0
- package/build/server/routes/sse-router.d.ts +43 -0
- package/build/server/routes/sse-router.d.ts.map +1 -0
- package/build/server/routes/sse-router.js +92 -0
- package/build/server/routes/sse-router.js.map +1 -0
- package/build/server/routes/streamable-http-router.d.ts +36 -0
- package/build/server/routes/streamable-http-router.d.ts.map +1 -0
- package/build/server/routes/streamable-http-router.js +59 -0
- package/build/server/routes/streamable-http-router.js.map +1 -0
- package/build/server/server-instance.d.ts +185 -0
- package/build/server/server-instance.d.ts.map +1 -0
- package/build/server/server-instance.js +615 -0
- package/build/server/server-instance.js.map +1 -0
- package/build/server/server-options.d.ts +411 -0
- package/build/server/server-options.d.ts.map +1 -0
- package/build/server/server-options.js +17 -0
- package/build/server/server-options.js.map +1 -0
- package/build/server/session/in-memory-store.d.ts +128 -0
- package/build/server/session/in-memory-store.d.ts.map +1 -0
- package/build/server/session/in-memory-store.js +312 -0
- package/build/server/session/in-memory-store.js.map +1 -0
- package/build/server/session/index.d.ts +43 -0
- package/build/server/session/index.d.ts.map +1 -0
- package/build/server/session/index.js +47 -0
- package/build/server/session/index.js.map +1 -0
- package/build/server/session/mcp-session.d.ts +210 -0
- package/build/server/session/mcp-session.d.ts.map +1 -0
- package/build/server/session/mcp-session.js +428 -0
- package/build/server/session/mcp-session.js.map +1 -0
- package/build/server/session/session-factory.d.ts +119 -0
- package/build/server/session/session-factory.d.ts.map +1 -0
- package/build/server/session/session-factory.js +131 -0
- package/build/server/session/session-factory.js.map +1 -0
- package/build/server/session/session-housekeeper.d.ts +100 -0
- package/build/server/session/session-housekeeper.d.ts.map +1 -0
- package/build/server/session/session-housekeeper.js +217 -0
- package/build/server/session/session-housekeeper.js.map +1 -0
- package/build/server/session/session-manager.d.ts +227 -0
- package/build/server/session/session-manager.d.ts.map +1 -0
- package/build/server/session/session-manager.js +282 -0
- package/build/server/session/session-manager.js.map +1 -0
- package/build/server/session/session-store.d.ts +95 -0
- package/build/server/session/session-store.d.ts.map +1 -0
- package/build/server/session/session-store.js +13 -0
- package/build/server/session/session-store.js.map +1 -0
- package/build/server/session/session.d.ts +132 -0
- package/build/server/session/session.d.ts.map +1 -0
- package/build/server/session/session.js +61 -0
- package/build/server/session/session.js.map +1 -0
- package/build/server/transport/constants.d.ts +85 -0
- package/build/server/transport/constants.d.ts.map +1 -0
- package/build/server/transport/constants.js +103 -0
- package/build/server/transport/constants.js.map +1 -0
- package/build/server/transport/index.d.ts +21 -0
- package/build/server/transport/index.d.ts.map +1 -0
- package/build/server/transport/index.js +28 -0
- package/build/server/transport/index.js.map +1 -0
- package/build/server/transport/sse/handler.d.ts +46 -0
- package/build/server/transport/sse/handler.d.ts.map +1 -0
- package/build/server/transport/sse/handler.js +189 -0
- package/build/server/transport/sse/handler.js.map +1 -0
- package/build/server/transport/sse/index.d.ts +15 -0
- package/build/server/transport/sse/index.d.ts.map +1 -0
- package/build/server/transport/sse/index.js +14 -0
- package/build/server/transport/sse/index.js.map +1 -0
- package/build/server/transport/sse/transport.d.ts +94 -0
- package/build/server/transport/sse/transport.d.ts.map +1 -0
- package/build/server/transport/sse/transport.js +175 -0
- package/build/server/transport/sse/transport.js.map +1 -0
- package/build/server/transport/stdio-transport.d.ts +23 -0
- package/build/server/transport/stdio-transport.d.ts.map +1 -0
- package/build/server/transport/stdio-transport.js +59 -0
- package/build/server/transport/stdio-transport.js.map +1 -0
- package/build/server/transport/streamable-http/index.d.ts +9 -0
- package/build/server/transport/streamable-http/index.d.ts.map +1 -0
- package/build/server/transport/streamable-http/index.js +9 -0
- package/build/server/transport/streamable-http/index.js.map +1 -0
- package/build/server/transport/streamable-http/stateful-handler.d.ts +41 -0
- package/build/server/transport/streamable-http/stateful-handler.d.ts.map +1 -0
- package/build/server/transport/streamable-http/stateful-handler.js +264 -0
- package/build/server/transport/streamable-http/stateful-handler.js.map +1 -0
- package/build/server/transport/streamable-http/stateless-handler.d.ts +28 -0
- package/build/server/transport/streamable-http/stateless-handler.d.ts.map +1 -0
- package/build/server/transport/streamable-http/stateless-handler.js +81 -0
- package/build/server/transport/streamable-http/stateless-handler.js.map +1 -0
- package/build/server/transport/streamable-http/transport.d.ts +110 -0
- package/build/server/transport/streamable-http/transport.d.ts.map +1 -0
- package/build/server/transport/streamable-http/transport.js +118 -0
- package/build/server/transport/streamable-http/transport.js.map +1 -0
- package/build/server/transport/transport-context.d.ts +67 -0
- package/build/server/transport/transport-context.d.ts.map +1 -0
- package/build/server/transport/transport-context.js +38 -0
- package/build/server/transport/transport-context.js.map +1 -0
- package/build/server/transport/types.d.ts +56 -0
- package/build/server/transport/types.d.ts.map +1 -0
- package/build/server/transport/types.js +11 -0
- package/build/server/transport/types.js.map +1 -0
- package/build/server/transport-options.d.ts +248 -0
- package/build/server/transport-options.d.ts.map +1 -0
- package/build/server/transport-options.js +18 -0
- package/build/server/transport-options.js.map +1 -0
- package/build/server/types.d.ts +172 -0
- package/build/server/types.d.ts.map +1 -0
- package/build/server/types.js +9 -0
- package/build/server/types.js.map +1 -0
- package/build/telemetry/connection-telemetry-bridge.d.ts +30 -0
- package/build/telemetry/connection-telemetry-bridge.d.ts.map +1 -0
- package/build/telemetry/connection-telemetry-bridge.js +54 -0
- package/build/telemetry/connection-telemetry-bridge.js.map +1 -0
- package/build/telemetry/core/config.d.ts +38 -0
- package/build/telemetry/core/config.d.ts.map +1 -0
- package/build/telemetry/core/config.js +54 -0
- package/build/telemetry/core/config.js.map +1 -0
- package/build/telemetry/core/constants.d.ts +183 -0
- package/build/telemetry/core/constants.d.ts.map +1 -0
- package/build/telemetry/core/constants.js +207 -0
- package/build/telemetry/core/constants.js.map +1 -0
- package/build/telemetry/core/diag-logger.d.ts +35 -0
- package/build/telemetry/core/diag-logger.d.ts.map +1 -0
- package/build/telemetry/core/diag-logger.js +54 -0
- package/build/telemetry/core/diag-logger.js.map +1 -0
- package/build/telemetry/core/index.d.ts +12 -0
- package/build/telemetry/core/index.d.ts.map +1 -0
- package/build/telemetry/core/index.js +32 -0
- package/build/telemetry/core/index.js.map +1 -0
- package/build/telemetry/core/types.d.ts +106 -0
- package/build/telemetry/core/types.d.ts.map +1 -0
- package/build/telemetry/core/types.js +10 -0
- package/build/telemetry/core/types.js.map +1 -0
- package/build/telemetry/index.d.ts +59 -0
- package/build/telemetry/index.d.ts.map +1 -0
- package/build/telemetry/index.js +79 -0
- package/build/telemetry/index.js.map +1 -0
- package/build/telemetry/metrics.d.ts +127 -0
- package/build/telemetry/metrics.d.ts.map +1 -0
- package/build/telemetry/metrics.js +337 -0
- package/build/telemetry/metrics.js.map +1 -0
- package/build/telemetry/sdk.d.ts +110 -0
- package/build/telemetry/sdk.d.ts.map +1 -0
- package/build/telemetry/sdk.js +547 -0
- package/build/telemetry/sdk.js.map +1 -0
- package/build/telemetry/tracing.d.ts +78 -0
- package/build/telemetry/tracing.d.ts.map +1 -0
- package/build/telemetry/tracing.js +257 -0
- package/build/telemetry/tracing.js.map +1 -0
- package/build/utils/env-helpers.d.ts +46 -0
- package/build/utils/env-helpers.d.ts.map +1 -0
- package/build/utils/env-helpers.js +54 -0
- package/build/utils/env-helpers.js.map +1 -0
- package/build/utils/index.d.ts +14 -0
- package/build/utils/index.d.ts.map +1 -0
- package/build/utils/index.js +19 -0
- package/build/utils/index.js.map +1 -0
- package/build/utils/sensitive-keys.d.ts +48 -0
- package/build/utils/sensitive-keys.d.ts.map +1 -0
- package/build/utils/sensitive-keys.js +131 -0
- package/build/utils/sensitive-keys.js.map +1 -0
- package/build/utils/string-helpers.d.ts +126 -0
- package/build/utils/string-helpers.d.ts.map +1 -0
- package/build/utils/string-helpers.js +189 -0
- package/build/utils/string-helpers.js.map +1 -0
- package/build/utils/validation.d.ts +84 -0
- package/build/utils/validation.d.ts.map +1 -0
- package/build/utils/validation.js +111 -0
- package/build/utils/validation.js.map +1 -0
- package/build/utils/zod-helpers.d.ts +92 -0
- package/build/utils/zod-helpers.d.ts.map +1 -0
- package/build/utils/zod-helpers.js +120 -0
- package/build/utils/zod-helpers.js.map +1 -0
- package/package.json +133 -0
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* App Definition Factory
|
|
3
|
+
*
|
|
4
|
+
* Provides the defineApp() factory function for defining MCP Apps.
|
|
5
|
+
* An MCP App combines a tool with a UI resource, linked via
|
|
6
|
+
* `_meta.ui.resourceUri` on the tool definition.
|
|
7
|
+
*
|
|
8
|
+
* `defineApp()` internally creates:
|
|
9
|
+
* 1. A static resource via `defineResource()` (the UI)
|
|
10
|
+
* 2. A tool via `defineTool()` with `_meta.ui.resourceUri` pointing to the resource
|
|
11
|
+
*
|
|
12
|
+
* Both are automatically registered in the global registries.
|
|
13
|
+
*
|
|
14
|
+
* @module mcp/capabilities/apps/define-app
|
|
15
|
+
*/
|
|
16
|
+
import { defineTool } from "../tools/index.js";
|
|
17
|
+
import { defineResource } from "../resources/index.js";
|
|
18
|
+
import { globalToolRegistry } from "../registry/index.js";
|
|
19
|
+
import { validateDefinitionBase, validateZodSchema, validateFunction } from "../../../utils/index.js";
|
|
20
|
+
import { FrameworkErrorFactory } from "../../../errors/index.js";
|
|
21
|
+
// ============================================================================
|
|
22
|
+
// Factory Function
|
|
23
|
+
// ============================================================================
|
|
24
|
+
/**
|
|
25
|
+
* Define an MCP App with automatic resource and tool registration.
|
|
26
|
+
*
|
|
27
|
+
* Creates a tool linked to a UI resource via `_meta.ui.resourceUri`.
|
|
28
|
+
* Both the tool and the resource are registered in the global registries,
|
|
29
|
+
* so they are automatically available when `createServer()` is called.
|
|
30
|
+
*
|
|
31
|
+
* @typeParam TInput - Zod schema type for the tool input (inferred)
|
|
32
|
+
*
|
|
33
|
+
* @param definition - App definition with resource and tool configuration
|
|
34
|
+
* @returns The original app definition (for re-export and type inference)
|
|
35
|
+
*
|
|
36
|
+
* @example
|
|
37
|
+
* ```typescript
|
|
38
|
+
* import { defineApp, text, z } from 'mcp-server-framework';
|
|
39
|
+
*
|
|
40
|
+
* export const calculator = defineApp({
|
|
41
|
+
* name: 'calculator',
|
|
42
|
+
* description: 'An interactive calculator app',
|
|
43
|
+
* resource: {
|
|
44
|
+
* uri: 'ui://calculator',
|
|
45
|
+
* mimeType: 'text/html;profile=mcp-app',
|
|
46
|
+
* read: async () => '<html>...calculator UI...</html>',
|
|
47
|
+
* },
|
|
48
|
+
* input: z.object({ expression: z.string() }),
|
|
49
|
+
* handler: async ({ expression }) => text('42'),
|
|
50
|
+
* });
|
|
51
|
+
* ```
|
|
52
|
+
*
|
|
53
|
+
* @example
|
|
54
|
+
* ```typescript
|
|
55
|
+
* // With annotations and custom _meta
|
|
56
|
+
* export const dashboard = defineApp({
|
|
57
|
+
* name: 'dashboard',
|
|
58
|
+
* description: 'System monitoring dashboard',
|
|
59
|
+
* resource: {
|
|
60
|
+
* uri: 'ui://dashboard',
|
|
61
|
+
* name: 'Dashboard UI',
|
|
62
|
+
* description: 'Interactive system monitoring dashboard',
|
|
63
|
+
* mimeType: 'text/html;profile=mcp-app',
|
|
64
|
+
* read: async () => generateDashboardHtml(),
|
|
65
|
+
* },
|
|
66
|
+
* input: z.object({ metric: z.string().optional() }),
|
|
67
|
+
* handler: async ({ metric }, ctx) => json(await getMetrics(metric)),
|
|
68
|
+
* annotations: { readOnlyHint: true },
|
|
69
|
+
* _meta: { version: '2.0' },
|
|
70
|
+
* });
|
|
71
|
+
* ```
|
|
72
|
+
*/
|
|
73
|
+
export function defineApp(definition) {
|
|
74
|
+
// Validate app-level fields before delegation to defineTool/defineResource
|
|
75
|
+
// This ensures error messages say "App" instead of "Tool" or "Resource"
|
|
76
|
+
validateDefinitionBase(definition, "App");
|
|
77
|
+
validateZodSchema(definition.input, "App", "input");
|
|
78
|
+
validateFunction(definition.handler, "App", "handler");
|
|
79
|
+
const { resource } = definition;
|
|
80
|
+
// Validate URI scheme — MCP Inspector and clients require 'ui://' prefix
|
|
81
|
+
if (!resource.uri.startsWith("ui://")) {
|
|
82
|
+
throw FrameworkErrorFactory.validation.custom(`Invalid app resource URI "${resource.uri}" for app "${definition.name}": ` +
|
|
83
|
+
`URI must use the "ui://" scheme (e.g., "ui://${definition.name}"). ` +
|
|
84
|
+
`MCP clients require this prefix to identify app resources.`, "resource.uri");
|
|
85
|
+
}
|
|
86
|
+
// 1. Register the tool first (more likely to fail due to schema issues)
|
|
87
|
+
const toolMeta = {
|
|
88
|
+
...definition._meta,
|
|
89
|
+
ui: {
|
|
90
|
+
// @type-narrowing — _meta is Record<string, unknown>, ui may be an object or undefined
|
|
91
|
+
...definition._meta?.ui,
|
|
92
|
+
resourceUri: resource.uri,
|
|
93
|
+
},
|
|
94
|
+
};
|
|
95
|
+
defineTool({
|
|
96
|
+
name: definition.name,
|
|
97
|
+
description: definition.description,
|
|
98
|
+
input: definition.input,
|
|
99
|
+
handler: definition.handler,
|
|
100
|
+
...(definition.annotations && { annotations: definition.annotations }),
|
|
101
|
+
...(definition.requiredScopes && {
|
|
102
|
+
requiredScopes: definition.requiredScopes,
|
|
103
|
+
}),
|
|
104
|
+
_meta: toolMeta,
|
|
105
|
+
});
|
|
106
|
+
// 2. Register the UI resource — rollback tool on failure
|
|
107
|
+
try {
|
|
108
|
+
defineResource({
|
|
109
|
+
name: resource.name ?? definition.name,
|
|
110
|
+
description: resource.description ?? definition.description,
|
|
111
|
+
uri: resource.uri,
|
|
112
|
+
mimeType: resource.mimeType ?? "text/html;profile=mcp-app",
|
|
113
|
+
read: async () => resource.read(),
|
|
114
|
+
});
|
|
115
|
+
}
|
|
116
|
+
catch (registrationError) {
|
|
117
|
+
try {
|
|
118
|
+
globalToolRegistry.unregister(definition.name);
|
|
119
|
+
}
|
|
120
|
+
catch {
|
|
121
|
+
// Rollback best-effort — original registration error takes priority
|
|
122
|
+
}
|
|
123
|
+
throw registrationError;
|
|
124
|
+
}
|
|
125
|
+
return definition;
|
|
126
|
+
}
|
|
127
|
+
//# sourceMappingURL=define-app.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"define-app.js","sourceRoot":"","sources":["../../../../src/mcp/capabilities/apps/define-app.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAKH,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AACtG,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAEjE,+EAA+E;AAC/E,mBAAmB;AACnB,+EAA+E;AAE/E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgDG;AACH,MAAM,UAAU,SAAS,CAA8B,UAAiC;IACtF,2EAA2E;IAC3E,wEAAwE;IACxE,sBAAsB,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;IAC1C,iBAAiB,CAAC,UAAU,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;IACpD,gBAAgB,CAAC,UAAU,CAAC,OAAO,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;IAEvD,MAAM,EAAE,QAAQ,EAAE,GAAG,UAAU,CAAC;IAEhC,yEAAyE;IACzE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QACtC,MAAM,qBAAqB,CAAC,UAAU,CAAC,MAAM,CAC3C,6BAA6B,QAAQ,CAAC,GAAG,cAAc,UAAU,CAAC,IAAI,KAAK;YACzE,gDAAgD,UAAU,CAAC,IAAI,MAAM;YACrE,4DAA4D,EAC9D,cAAc,CACf,CAAC;IACJ,CAAC;IAED,wEAAwE;IACxE,MAAM,QAAQ,GAA4B;QACxC,GAAG,UAAU,CAAC,KAAK;QACnB,EAAE,EAAE;YACF,uFAAuF;YACvF,GAAI,UAAU,CAAC,KAAK,EAAE,EAA0C;YAChE,WAAW,EAAE,QAAQ,CAAC,GAAG;SAC1B;KACF,CAAC;IAEF,UAAU,CAAC;QACT,IAAI,EAAE,UAAU,CAAC,IAAI;QACrB,WAAW,EAAE,UAAU,CAAC,WAAW;QACnC,KAAK,EAAE,UAAU,CAAC,KAAK;QACvB,OAAO,EAAE,UAAU,CAAC,OAAO;QAC3B,GAAG,CAAC,UAAU,CAAC,WAAW,IAAI,EAAE,WAAW,EAAE,UAAU,CAAC,WAAW,EAAE,CAAC;QACtE,GAAG,CAAC,UAAU,CAAC,cAAc,IAAI;YAC/B,cAAc,EAAE,UAAU,CAAC,cAAc;SAC1C,CAAC;QACF,KAAK,EAAE,QAAQ;KAChB,CAAC,CAAC;IAEH,yDAAyD;IACzD,IAAI,CAAC;QACH,cAAc,CAAC;YACb,IAAI,EAAE,QAAQ,CAAC,IAAI,IAAI,UAAU,CAAC,IAAI;YACtC,WAAW,EAAE,QAAQ,CAAC,WAAW,IAAI,UAAU,CAAC,WAAW;YAC3D,GAAG,EAAE,QAAQ,CAAC,GAAG;YACjB,QAAQ,EAAE,QAAQ,CAAC,QAAQ,IAAI,2BAA2B;YAC1D,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE;SAClC,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,iBAAiB,EAAE,CAAC;QAC3B,IAAI,CAAC;YACH,kBAAkB,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACjD,CAAC;QAAC,MAAM,CAAC;YACP,oEAAoE;QACtE,CAAC;QACD,MAAM,iBAAiB,CAAC;IAC1B,CAAC;IAED,OAAO,UAAU,CAAC;AACpB,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MCP Apps Module
|
|
3
|
+
*
|
|
4
|
+
* Provides the defineApp() factory for creating MCP Apps
|
|
5
|
+
* (tool + resource combinations with UI linking).
|
|
6
|
+
*
|
|
7
|
+
* @module mcp/capabilities/apps
|
|
8
|
+
*/
|
|
9
|
+
export { defineApp } from "./define-app.js";
|
|
10
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/mcp/capabilities/apps/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MCP Apps Module
|
|
3
|
+
*
|
|
4
|
+
* Provides the defineApp() factory for creating MCP Apps
|
|
5
|
+
* (tool + resource combinations with UI linking).
|
|
6
|
+
*
|
|
7
|
+
* @module mcp/capabilities/apps
|
|
8
|
+
*/
|
|
9
|
+
export { defineApp } from "./define-app.js";
|
|
10
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/mcp/capabilities/apps/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MCP Capabilities Builder
|
|
3
|
+
*
|
|
4
|
+
* Builds MCP capabilities objects based on registered primitives.
|
|
5
|
+
* The capabilities object tells the SDK which features the server supports.
|
|
6
|
+
*
|
|
7
|
+
* @module mcp/capabilities
|
|
8
|
+
*/
|
|
9
|
+
import type { ToolDefinition, TaskToolDefinition, ResourceStaticDefinition, ResourceTemplateDefinition, PromptDefinition } from "../types/index.js";
|
|
10
|
+
import { type ServerCapabilities } from "./server-capabilities.js";
|
|
11
|
+
/**
|
|
12
|
+
* Builds the MCP capabilities object based on registered primitives.
|
|
13
|
+
*
|
|
14
|
+
* @internal Used by server runtime during SDK initialization.
|
|
15
|
+
* @param capabilities - Configured server capabilities
|
|
16
|
+
* @param tools - All available tool definitions
|
|
17
|
+
* @param resources - Static resource definitions
|
|
18
|
+
* @param resourceTemplates - Resource template definitions
|
|
19
|
+
* @param prompts - Prompt definitions
|
|
20
|
+
* @param taskTools - Task tool definitions (experimental)
|
|
21
|
+
* @returns Capabilities object for the MCP SDK
|
|
22
|
+
*/
|
|
23
|
+
export declare function buildCapabilities(capabilities: ServerCapabilities | undefined, tools: readonly ToolDefinition[], resources: readonly ResourceStaticDefinition[], resourceTemplates: readonly ResourceTemplateDefinition[], prompts: readonly PromptDefinition[], taskTools?: readonly TaskToolDefinition[]): Record<string, unknown>;
|
|
24
|
+
//# sourceMappingURL=capabilities.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"capabilities.d.ts","sourceRoot":"","sources":["../../../src/mcp/capabilities/capabilities.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EACV,cAAc,EACd,kBAAkB,EAClB,wBAAwB,EACxB,0BAA0B,EAC1B,gBAAgB,EACjB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAwB,KAAK,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAMzF;;;;;;;;;;;GAWG;AACH,wBAAgB,iBAAiB,CAC/B,YAAY,EAAE,kBAAkB,GAAG,SAAS,EAC5C,KAAK,EAAE,SAAS,cAAc,EAAE,EAChC,SAAS,EAAE,SAAS,wBAAwB,EAAE,EAC9C,iBAAiB,EAAE,SAAS,0BAA0B,EAAE,EACxD,OAAO,EAAE,SAAS,gBAAgB,EAAE,EACpC,SAAS,GAAE,SAAS,kBAAkB,EAAO,GAC5C,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CA8BzB"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MCP Capabilities Builder
|
|
3
|
+
*
|
|
4
|
+
* Builds MCP capabilities objects based on registered primitives.
|
|
5
|
+
* The capabilities object tells the SDK which features the server supports.
|
|
6
|
+
*
|
|
7
|
+
* @module mcp/capabilities
|
|
8
|
+
*/
|
|
9
|
+
import { DEFAULT_CAPABILITIES } from "./server-capabilities.js";
|
|
10
|
+
// ============================================================================
|
|
11
|
+
// Capabilities Builder
|
|
12
|
+
// ============================================================================
|
|
13
|
+
/**
|
|
14
|
+
* Builds the MCP capabilities object based on registered primitives.
|
|
15
|
+
*
|
|
16
|
+
* @internal Used by server runtime during SDK initialization.
|
|
17
|
+
* @param capabilities - Configured server capabilities
|
|
18
|
+
* @param tools - All available tool definitions
|
|
19
|
+
* @param resources - Static resource definitions
|
|
20
|
+
* @param resourceTemplates - Resource template definitions
|
|
21
|
+
* @param prompts - Prompt definitions
|
|
22
|
+
* @param taskTools - Task tool definitions (experimental)
|
|
23
|
+
* @returns Capabilities object for the MCP SDK
|
|
24
|
+
*/
|
|
25
|
+
export function buildCapabilities(capabilities, tools, resources, resourceTemplates, prompts, taskTools = []) {
|
|
26
|
+
const caps = capabilities ?? DEFAULT_CAPABILITIES;
|
|
27
|
+
const result = {};
|
|
28
|
+
// Logging capability
|
|
29
|
+
if (caps.logging) {
|
|
30
|
+
result.logging = {};
|
|
31
|
+
}
|
|
32
|
+
// Tools capability
|
|
33
|
+
if (caps.tools && tools.length > 0) {
|
|
34
|
+
result.tools = typeof caps.tools === "object" ? caps.tools : { listChanged: true };
|
|
35
|
+
}
|
|
36
|
+
// Resources capability
|
|
37
|
+
if (caps.resources && (resources.length > 0 || resourceTemplates.length > 0)) {
|
|
38
|
+
result.resources = typeof caps.resources === "object" ? caps.resources : { listChanged: true };
|
|
39
|
+
}
|
|
40
|
+
// Prompts capability
|
|
41
|
+
if (caps.prompts && prompts.length > 0) {
|
|
42
|
+
result.prompts = typeof caps.prompts === "object" ? caps.prompts : { listChanged: true };
|
|
43
|
+
}
|
|
44
|
+
// Tasks capability (experimental) — required by SDK assertRequestHandlerCapability
|
|
45
|
+
if (taskTools.length > 0) {
|
|
46
|
+
result.tasks = { requests: { tools: { call: {} } } };
|
|
47
|
+
}
|
|
48
|
+
return result;
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=capabilities.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"capabilities.js","sourceRoot":"","sources":["../../../src/mcp/capabilities/capabilities.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AASH,OAAO,EAAE,oBAAoB,EAA2B,MAAM,0BAA0B,CAAC;AAEzF,+EAA+E;AAC/E,uBAAuB;AACvB,+EAA+E;AAE/E;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,iBAAiB,CAC/B,YAA4C,EAC5C,KAAgC,EAChC,SAA8C,EAC9C,iBAAwD,EACxD,OAAoC,EACpC,YAA2C,EAAE;IAE7C,MAAM,IAAI,GAAG,YAAY,IAAI,oBAAoB,CAAC;IAClD,MAAM,MAAM,GAA4B,EAAE,CAAC;IAE3C,qBAAqB;IACrB,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;QACjB,MAAM,CAAC,OAAO,GAAG,EAAE,CAAC;IACtB,CAAC;IAED,mBAAmB;IACnB,IAAI,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACnC,MAAM,CAAC,KAAK,GAAG,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;IACrF,CAAC;IAED,uBAAuB;IACvB,IAAI,IAAI,CAAC,SAAS,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,iBAAiB,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC;QAC7E,MAAM,CAAC,SAAS,GAAG,OAAO,IAAI,CAAC,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;IACjG,CAAC;IAED,qBAAqB;IACrB,IAAI,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvC,MAAM,CAAC,OAAO,GAAG,OAAO,IAAI,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;IAC3F,CAAC;IAED,mFAAmF;IACnF,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzB,MAAM,CAAC,KAAK,GAAG,EAAE,QAAQ,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IACvD,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MCP Registration Module
|
|
3
|
+
*
|
|
4
|
+
* Provides the capabilities builder for the MCP SDK.
|
|
5
|
+
* Tool/resource/prompt registration is handled directly by McpSession.
|
|
6
|
+
*
|
|
7
|
+
* ## Architecture
|
|
8
|
+
*
|
|
9
|
+
* ```
|
|
10
|
+
* Registry (stores definitions) → McpSession (registers with SDK) → SDK (protocol server)
|
|
11
|
+
* ```
|
|
12
|
+
*
|
|
13
|
+
* @module mcp/capabilities
|
|
14
|
+
*/
|
|
15
|
+
export { buildCapabilities } from "./capabilities.js";
|
|
16
|
+
export { type ServerCapabilities, DEFAULT_CAPABILITIES } from "./server-capabilities.js";
|
|
17
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/mcp/capabilities/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAMH,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,KAAK,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MCP Registration Module
|
|
3
|
+
*
|
|
4
|
+
* Provides the capabilities builder for the MCP SDK.
|
|
5
|
+
* Tool/resource/prompt registration is handled directly by McpSession.
|
|
6
|
+
*
|
|
7
|
+
* ## Architecture
|
|
8
|
+
*
|
|
9
|
+
* ```
|
|
10
|
+
* Registry (stores definitions) → McpSession (registers with SDK) → SDK (protocol server)
|
|
11
|
+
* ```
|
|
12
|
+
*
|
|
13
|
+
* @module mcp/capabilities
|
|
14
|
+
*/
|
|
15
|
+
// ============================================================================
|
|
16
|
+
// Capabilities
|
|
17
|
+
// ============================================================================
|
|
18
|
+
export { buildCapabilities } from "./capabilities.js";
|
|
19
|
+
export { DEFAULT_CAPABILITIES } from "./server-capabilities.js";
|
|
20
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/mcp/capabilities/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,+EAA+E;AAC/E,eAAe;AACf,+EAA+E;AAE/E,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAA2B,oBAAoB,EAAE,MAAM,0BAA0B,CAAC"}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Prompt Definition Factory
|
|
3
|
+
*
|
|
4
|
+
* Provides the definePrompt() factory function for zero-boilerplate prompt registration.
|
|
5
|
+
* Prompts defined with this function are automatically registered in a global registry.
|
|
6
|
+
*
|
|
7
|
+
* @module mcp/capabilities/prompts/define-prompt
|
|
8
|
+
*/
|
|
9
|
+
import type { z } from "zod";
|
|
10
|
+
import type { PromptDefinition } from "../../types/index.js";
|
|
11
|
+
/**
|
|
12
|
+
* Define a prompt with automatic registration.
|
|
13
|
+
*
|
|
14
|
+
* This is the recommended way to define prompts in the framework.
|
|
15
|
+
* The prompt is automatically registered in the global registry when defined.
|
|
16
|
+
*
|
|
17
|
+
* @typeParam TInput - Zod object schema for input validation
|
|
18
|
+
* @param definition - Prompt definition with name, description, optional input schema, and generate handler
|
|
19
|
+
* @returns The prompt definition (for re-export and type inference)
|
|
20
|
+
*
|
|
21
|
+
* @example
|
|
22
|
+
* ```typescript
|
|
23
|
+
* // prompts/explain.ts - Prompt with typed arguments
|
|
24
|
+
* import { definePrompt } from 'mcp-server-framework';
|
|
25
|
+
* import { z } from 'zod';
|
|
26
|
+
*
|
|
27
|
+
* export const explainPrompt = definePrompt({
|
|
28
|
+
* name: 'explain-concept',
|
|
29
|
+
* description: 'Explain a technical concept clearly',
|
|
30
|
+
* input: z.object({
|
|
31
|
+
* topic: z.string().describe('The topic to explain'),
|
|
32
|
+
* level: z.enum(['beginner', 'intermediate', 'expert'])
|
|
33
|
+
* .default('intermediate')
|
|
34
|
+
* .describe('Target expertise level'),
|
|
35
|
+
* }),
|
|
36
|
+
* generate: async ({ topic, level }) => [
|
|
37
|
+
* {
|
|
38
|
+
* role: 'user',
|
|
39
|
+
* content: `Please explain ${topic} for someone at ${level} level.
|
|
40
|
+
*
|
|
41
|
+
* Include:
|
|
42
|
+
* - A clear definition
|
|
43
|
+
* - Key concepts
|
|
44
|
+
* - Practical examples
|
|
45
|
+
* - Common misconceptions`,
|
|
46
|
+
* },
|
|
47
|
+
* ],
|
|
48
|
+
* });
|
|
49
|
+
* ```
|
|
50
|
+
*
|
|
51
|
+
* @example
|
|
52
|
+
* ```typescript
|
|
53
|
+
* // prompts/code-review.ts - Multi-turn prompt
|
|
54
|
+
* import { definePrompt } from 'mcp-server-framework';
|
|
55
|
+
* import { z } from 'zod';
|
|
56
|
+
*
|
|
57
|
+
* export const codeReviewPrompt = definePrompt({
|
|
58
|
+
* name: 'code-review',
|
|
59
|
+
* description: 'Start a code review conversation',
|
|
60
|
+
* input: z.object({
|
|
61
|
+
* code: z.string().describe('The code to review'),
|
|
62
|
+
* language: z.string().describe('Programming language'),
|
|
63
|
+
* }),
|
|
64
|
+
* generate: async ({ code, language }) => [
|
|
65
|
+
* {
|
|
66
|
+
* role: 'user',
|
|
67
|
+
* content: `Please review this ${language} code:\n\n\`\`\`${language}\n${code}\n\`\`\``,
|
|
68
|
+
* },
|
|
69
|
+
* {
|
|
70
|
+
* role: 'assistant',
|
|
71
|
+
* content: 'I\'ll analyze this code for best practices, potential bugs, and improvements.',
|
|
72
|
+
* },
|
|
73
|
+
* ],
|
|
74
|
+
* });
|
|
75
|
+
* ```
|
|
76
|
+
*
|
|
77
|
+
* @example
|
|
78
|
+
* ```typescript
|
|
79
|
+
* // prompts/greeting.ts - No-argument prompt
|
|
80
|
+
* import { definePrompt } from 'mcp-server-framework';
|
|
81
|
+
*
|
|
82
|
+
* export const greetingPrompt = definePrompt({
|
|
83
|
+
* name: 'greeting',
|
|
84
|
+
* description: 'Standard greeting prompt',
|
|
85
|
+
* generate: async () => [
|
|
86
|
+
* {
|
|
87
|
+
* role: 'user',
|
|
88
|
+
* content: 'Hello! How can you help me today?',
|
|
89
|
+
* },
|
|
90
|
+
* ],
|
|
91
|
+
* });
|
|
92
|
+
* ```
|
|
93
|
+
*/
|
|
94
|
+
export declare function definePrompt<TInput extends z.AnyZodObject = z.AnyZodObject>(definition: PromptDefinition<TInput>): PromptDefinition<TInput>;
|
|
95
|
+
//# sourceMappingURL=define-prompt.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"define-prompt.d.ts","sourceRoot":"","sources":["../../../../src/mcp/capabilities/prompts/define-prompt.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAC7B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAQ7D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkFG;AACH,wBAAgB,YAAY,CAAC,MAAM,SAAS,CAAC,CAAC,YAAY,GAAG,CAAC,CAAC,YAAY,EACzE,UAAU,EAAE,gBAAgB,CAAC,MAAM,CAAC,GACnC,gBAAgB,CAAC,MAAM,CAAC,CAc1B"}
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Prompt Definition Factory
|
|
3
|
+
*
|
|
4
|
+
* Provides the definePrompt() factory function for zero-boilerplate prompt registration.
|
|
5
|
+
* Prompts defined with this function are automatically registered in a global registry.
|
|
6
|
+
*
|
|
7
|
+
* @module mcp/capabilities/prompts/define-prompt
|
|
8
|
+
*/
|
|
9
|
+
import { globalPromptRegistry } from "../registry/index.js";
|
|
10
|
+
import { validateDefinitionBase, validateFunction, validateZodSchema } from "../../../utils/index.js";
|
|
11
|
+
// ============================================================================
|
|
12
|
+
// Factory Function
|
|
13
|
+
// ============================================================================
|
|
14
|
+
/**
|
|
15
|
+
* Define a prompt with automatic registration.
|
|
16
|
+
*
|
|
17
|
+
* This is the recommended way to define prompts in the framework.
|
|
18
|
+
* The prompt is automatically registered in the global registry when defined.
|
|
19
|
+
*
|
|
20
|
+
* @typeParam TInput - Zod object schema for input validation
|
|
21
|
+
* @param definition - Prompt definition with name, description, optional input schema, and generate handler
|
|
22
|
+
* @returns The prompt definition (for re-export and type inference)
|
|
23
|
+
*
|
|
24
|
+
* @example
|
|
25
|
+
* ```typescript
|
|
26
|
+
* // prompts/explain.ts - Prompt with typed arguments
|
|
27
|
+
* import { definePrompt } from 'mcp-server-framework';
|
|
28
|
+
* import { z } from 'zod';
|
|
29
|
+
*
|
|
30
|
+
* export const explainPrompt = definePrompt({
|
|
31
|
+
* name: 'explain-concept',
|
|
32
|
+
* description: 'Explain a technical concept clearly',
|
|
33
|
+
* input: z.object({
|
|
34
|
+
* topic: z.string().describe('The topic to explain'),
|
|
35
|
+
* level: z.enum(['beginner', 'intermediate', 'expert'])
|
|
36
|
+
* .default('intermediate')
|
|
37
|
+
* .describe('Target expertise level'),
|
|
38
|
+
* }),
|
|
39
|
+
* generate: async ({ topic, level }) => [
|
|
40
|
+
* {
|
|
41
|
+
* role: 'user',
|
|
42
|
+
* content: `Please explain ${topic} for someone at ${level} level.
|
|
43
|
+
*
|
|
44
|
+
* Include:
|
|
45
|
+
* - A clear definition
|
|
46
|
+
* - Key concepts
|
|
47
|
+
* - Practical examples
|
|
48
|
+
* - Common misconceptions`,
|
|
49
|
+
* },
|
|
50
|
+
* ],
|
|
51
|
+
* });
|
|
52
|
+
* ```
|
|
53
|
+
*
|
|
54
|
+
* @example
|
|
55
|
+
* ```typescript
|
|
56
|
+
* // prompts/code-review.ts - Multi-turn prompt
|
|
57
|
+
* import { definePrompt } from 'mcp-server-framework';
|
|
58
|
+
* import { z } from 'zod';
|
|
59
|
+
*
|
|
60
|
+
* export const codeReviewPrompt = definePrompt({
|
|
61
|
+
* name: 'code-review',
|
|
62
|
+
* description: 'Start a code review conversation',
|
|
63
|
+
* input: z.object({
|
|
64
|
+
* code: z.string().describe('The code to review'),
|
|
65
|
+
* language: z.string().describe('Programming language'),
|
|
66
|
+
* }),
|
|
67
|
+
* generate: async ({ code, language }) => [
|
|
68
|
+
* {
|
|
69
|
+
* role: 'user',
|
|
70
|
+
* content: `Please review this ${language} code:\n\n\`\`\`${language}\n${code}\n\`\`\``,
|
|
71
|
+
* },
|
|
72
|
+
* {
|
|
73
|
+
* role: 'assistant',
|
|
74
|
+
* content: 'I\'ll analyze this code for best practices, potential bugs, and improvements.',
|
|
75
|
+
* },
|
|
76
|
+
* ],
|
|
77
|
+
* });
|
|
78
|
+
* ```
|
|
79
|
+
*
|
|
80
|
+
* @example
|
|
81
|
+
* ```typescript
|
|
82
|
+
* // prompts/greeting.ts - No-argument prompt
|
|
83
|
+
* import { definePrompt } from 'mcp-server-framework';
|
|
84
|
+
*
|
|
85
|
+
* export const greetingPrompt = definePrompt({
|
|
86
|
+
* name: 'greeting',
|
|
87
|
+
* description: 'Standard greeting prompt',
|
|
88
|
+
* generate: async () => [
|
|
89
|
+
* {
|
|
90
|
+
* role: 'user',
|
|
91
|
+
* content: 'Hello! How can you help me today?',
|
|
92
|
+
* },
|
|
93
|
+
* ],
|
|
94
|
+
* });
|
|
95
|
+
* ```
|
|
96
|
+
*/
|
|
97
|
+
export function definePrompt(definition) {
|
|
98
|
+
// Validate required fields (safety net for JS consumers and empty strings)
|
|
99
|
+
validateDefinitionBase(definition, "Prompt");
|
|
100
|
+
validateFunction(definition.generate, "Prompt", "generate");
|
|
101
|
+
// Validate optional Zod schema if provided (consistent with defineTool)
|
|
102
|
+
if (definition.input) {
|
|
103
|
+
validateZodSchema(definition.input, "Prompt", "input");
|
|
104
|
+
}
|
|
105
|
+
// Auto-register in global registry (variance handled by registry)
|
|
106
|
+
globalPromptRegistry.registerFromFactory(definition);
|
|
107
|
+
return definition;
|
|
108
|
+
}
|
|
109
|
+
//# sourceMappingURL=define-prompt.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"define-prompt.js","sourceRoot":"","sources":["../../../../src/mcp/capabilities/prompts/define-prompt.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAEtG,+EAA+E;AAC/E,mBAAmB;AACnB,+EAA+E;AAE/E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkFG;AACH,MAAM,UAAU,YAAY,CAC1B,UAAoC;IAEpC,2EAA2E;IAC3E,sBAAsB,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;IAC7C,gBAAgB,CAAC,UAAU,CAAC,QAAQ,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;IAE5D,wEAAwE;IACxE,IAAI,UAAU,CAAC,KAAK,EAAE,CAAC;QACrB,iBAAiB,CAAC,UAAU,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;IACzD,CAAC;IAED,kEAAkE;IAClE,oBAAoB,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAC;IAErD,OAAO,UAAU,CAAC;AACpB,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Prompts Module
|
|
3
|
+
*
|
|
4
|
+
* Exports the prompt definition factory for zero-boilerplate registration.
|
|
5
|
+
* Types should be imported directly from `mcp/types/`.
|
|
6
|
+
*
|
|
7
|
+
* @module mcp/capabilities/prompts
|
|
8
|
+
*/
|
|
9
|
+
export { definePrompt } from "./define-prompt.js";
|
|
10
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/mcp/capabilities/prompts/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Prompts Module
|
|
3
|
+
*
|
|
4
|
+
* Exports the prompt definition factory for zero-boilerplate registration.
|
|
5
|
+
* Types should be imported directly from `mcp/types/`.
|
|
6
|
+
*
|
|
7
|
+
* @module mcp/capabilities/prompts
|
|
8
|
+
*/
|
|
9
|
+
export { definePrompt } from "./define-prompt.js";
|
|
10
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/mcp/capabilities/prompts/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC"}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Base Registry
|
|
3
|
+
*
|
|
4
|
+
* Generic abstract base class for MCP registries (Tools, Resources, Prompts).
|
|
5
|
+
* Extracts common functionality to reduce code duplication.
|
|
6
|
+
*
|
|
7
|
+
* @module mcp/capabilities/registry/base-registry
|
|
8
|
+
*/
|
|
9
|
+
/**
|
|
10
|
+
* Minimum interface for items that can be registered.
|
|
11
|
+
*/
|
|
12
|
+
export interface RegistryItem {
|
|
13
|
+
readonly name: string;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Abstract base class for MCP registries.
|
|
17
|
+
*
|
|
18
|
+
* Provides common functionality:
|
|
19
|
+
* - Registration (with duplicate checking)
|
|
20
|
+
* - Lookup by name
|
|
21
|
+
* - Iteration and size
|
|
22
|
+
* - Clear/unregister operations
|
|
23
|
+
*
|
|
24
|
+
* @typeParam T - The item type (must have a `name` property)
|
|
25
|
+
*
|
|
26
|
+
* @example
|
|
27
|
+
* ```typescript
|
|
28
|
+
* class ToolRegistry extends BaseRegistry<Tool> {
|
|
29
|
+
* // Add tool-specific methods here
|
|
30
|
+
* }
|
|
31
|
+
* ```
|
|
32
|
+
*/
|
|
33
|
+
export declare abstract class BaseRegistry<T extends RegistryItem> {
|
|
34
|
+
/** Internal storage */
|
|
35
|
+
protected readonly items: Map<string, T>;
|
|
36
|
+
/**
|
|
37
|
+
* Register a new item. Throws if name already exists.
|
|
38
|
+
*
|
|
39
|
+
* @param item - Item to register
|
|
40
|
+
* @throws If an item with the same name is already registered
|
|
41
|
+
*/
|
|
42
|
+
register(item: T): void;
|
|
43
|
+
/**
|
|
44
|
+
* Register or replace an existing item.
|
|
45
|
+
*
|
|
46
|
+
* @param item - Item to register/replace
|
|
47
|
+
* @returns true if replaced, false if new
|
|
48
|
+
*/
|
|
49
|
+
registerOrReplace(item: T): boolean;
|
|
50
|
+
/**
|
|
51
|
+
* Unregister an item by name.
|
|
52
|
+
*
|
|
53
|
+
* @param name - Name of the item to remove
|
|
54
|
+
* @returns true if removed, false if not found
|
|
55
|
+
*/
|
|
56
|
+
unregister(name: string): boolean;
|
|
57
|
+
/**
|
|
58
|
+
* Clear all items from the registry.
|
|
59
|
+
*/
|
|
60
|
+
clear(): void;
|
|
61
|
+
/**
|
|
62
|
+
* Get an item by name.
|
|
63
|
+
*
|
|
64
|
+
* @param name - Name of the item
|
|
65
|
+
* @returns The item or undefined
|
|
66
|
+
*/
|
|
67
|
+
get(name: string): T | undefined;
|
|
68
|
+
/**
|
|
69
|
+
* Check if an item exists.
|
|
70
|
+
*
|
|
71
|
+
* @param name - Name to check
|
|
72
|
+
* @returns true if exists
|
|
73
|
+
*/
|
|
74
|
+
has(name: string): boolean;
|
|
75
|
+
/**
|
|
76
|
+
* Get all registered items.
|
|
77
|
+
*
|
|
78
|
+
* @returns Readonly array of all items
|
|
79
|
+
*/
|
|
80
|
+
getAll(): ReadonlyArray<T>;
|
|
81
|
+
/**
|
|
82
|
+
* Number of registered items.
|
|
83
|
+
*/
|
|
84
|
+
get size(): number;
|
|
85
|
+
/**
|
|
86
|
+
* Iterate over all items.
|
|
87
|
+
*/
|
|
88
|
+
[Symbol.iterator](): Iterator<T>;
|
|
89
|
+
/**
|
|
90
|
+
* Human-readable name for error messages (e.g., "Tool", "Resource").
|
|
91
|
+
* Override in subclasses.
|
|
92
|
+
*/
|
|
93
|
+
protected get itemTypeName(): string;
|
|
94
|
+
}
|
|
95
|
+
//# sourceMappingURL=base-registry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base-registry.d.ts","sourceRoot":"","sources":["../../../../src/mcp/capabilities/registry/base-registry.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAuBH;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAMD;;;;;;;;;;;;;;;;;GAiBG;AACH,8BAAsB,YAAY,CAAC,CAAC,SAAS,YAAY;IACvD,uBAAuB;IACvB,SAAS,CAAC,QAAQ,CAAC,KAAK,iBAAwB;IAMhD;;;;;OAKG;IACH,QAAQ,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI;IAQvB;;;;;OAKG;IACH,iBAAiB,CAAC,IAAI,EAAE,CAAC,GAAG,OAAO;IAWnC;;;;;OAKG;IACH,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAIjC;;OAEG;IACH,KAAK,IAAI,IAAI;IAYb;;;;;OAKG;IACH,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,CAAC,GAAG,SAAS;IAIhC;;;;;OAKG;IACH,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAI1B;;;;OAIG;IACH,MAAM,IAAI,aAAa,CAAC,CAAC,CAAC;IAI1B;;OAEG;IACH,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED;;OAEG;IACH,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC;IAQhC;;;OAGG;IACH,SAAS,KAAK,YAAY,IAAI,MAAM,CAEnC;CACF"}
|