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,75 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Task Tool Definition Factory
|
|
3
|
+
*
|
|
4
|
+
* Provides the defineTask() factory function for defining MCP task tools.
|
|
5
|
+
* Task tools enable long-running, asynchronous tool execution with a
|
|
6
|
+
* create → poll → result lifecycle.
|
|
7
|
+
*
|
|
8
|
+
* Tools defined with this function are automatically registered in the
|
|
9
|
+
* global task tool registry and discovered by `createServer()`.
|
|
10
|
+
*
|
|
11
|
+
* @experimental MCP Tasks is an experimental SDK feature
|
|
12
|
+
* @module mcp/capabilities/tasks/define-task
|
|
13
|
+
*/
|
|
14
|
+
import type { z } from "zod";
|
|
15
|
+
import type { TaskToolDefinition } from "../../types/index.js";
|
|
16
|
+
/**
|
|
17
|
+
* Define a task tool with automatic registration.
|
|
18
|
+
*
|
|
19
|
+
* Task tools support long-running operations via the MCP Tasks protocol.
|
|
20
|
+
* Instead of blocking until completion, the client receives a task ID and
|
|
21
|
+
* can poll for status updates and results.
|
|
22
|
+
*
|
|
23
|
+
* The tool is automatically registered in the global task tool registry.
|
|
24
|
+
* The framework uses the SDK's `experimental.tasks.registerToolTask()` internally.
|
|
25
|
+
*
|
|
26
|
+
* @typeParam TInput - Zod schema type (inferred)
|
|
27
|
+
*
|
|
28
|
+
* @param definition - Task tool definition with name, description, input schema, and task handler
|
|
29
|
+
* @returns The registered task tool definition (for re-export and type inference)
|
|
30
|
+
*
|
|
31
|
+
* @experimental MCP Tasks is an experimental SDK feature
|
|
32
|
+
*
|
|
33
|
+
* @example
|
|
34
|
+
* ```typescript
|
|
35
|
+
* import { defineTask, text, z } from 'mcp-server-framework';
|
|
36
|
+
*
|
|
37
|
+
* export const longComputation = defineTask({
|
|
38
|
+
* name: 'long_computation',
|
|
39
|
+
* description: 'Perform a long-running computation',
|
|
40
|
+
* input: z.object({ data: z.string() }),
|
|
41
|
+
* taskSupport: 'required',
|
|
42
|
+
* taskHandler: {
|
|
43
|
+
* createTask: async (args, ctx) => {
|
|
44
|
+
* const task = await ctx.taskStore.createTask({ ttl: 300_000 });
|
|
45
|
+
* startBackgroundWork(task.taskId, args);
|
|
46
|
+
* return { task };
|
|
47
|
+
* },
|
|
48
|
+
* getTask: async (_args, ctx) => ctx.taskStore.getTask(ctx.taskId),
|
|
49
|
+
* getTaskResult: async (_args, ctx) => ctx.taskStore.getTaskResult(ctx.taskId),
|
|
50
|
+
* },
|
|
51
|
+
* });
|
|
52
|
+
* ```
|
|
53
|
+
*
|
|
54
|
+
* @example
|
|
55
|
+
* ```typescript
|
|
56
|
+
* // Optional task support — tool can be called normally OR as a task
|
|
57
|
+
* export const flexibleTool = defineTask({
|
|
58
|
+
* name: 'flexible_process',
|
|
59
|
+
* description: 'Process that supports both sync and async execution',
|
|
60
|
+
* input: z.object({ items: z.array(z.string()) }),
|
|
61
|
+
* taskSupport: 'optional',
|
|
62
|
+
* taskHandler: {
|
|
63
|
+
* createTask: async (args, ctx) => {
|
|
64
|
+
* const task = await ctx.taskStore.createTask({});
|
|
65
|
+
* processInBackground(task.taskId, args);
|
|
66
|
+
* return { task };
|
|
67
|
+
* },
|
|
68
|
+
* getTask: async (_args, ctx) => ctx.taskStore.getTask(ctx.taskId),
|
|
69
|
+
* getTaskResult: async (_args, ctx) => ctx.taskStore.getTaskResult(ctx.taskId),
|
|
70
|
+
* },
|
|
71
|
+
* });
|
|
72
|
+
* ```
|
|
73
|
+
*/
|
|
74
|
+
export declare function defineTask<TInput extends z.ZodTypeAny>(definition: TaskToolDefinition<TInput>): TaskToolDefinition<TInput>;
|
|
75
|
+
//# sourceMappingURL=define-task.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"define-task.d.ts","sourceRoot":"","sources":["../../../../src/mcp/capabilities/tasks/define-task.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAE7B,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAc/D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyDG;AACH,wBAAgB,UAAU,CAAC,MAAM,SAAS,CAAC,CAAC,UAAU,EACpD,UAAU,EAAE,kBAAkB,CAAC,MAAM,CAAC,GACrC,kBAAkB,CAAC,MAAM,CAAC,CAmB5B"}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Task Tool Definition Factory
|
|
3
|
+
*
|
|
4
|
+
* Provides the defineTask() factory function for defining MCP task tools.
|
|
5
|
+
* Task tools enable long-running, asynchronous tool execution with a
|
|
6
|
+
* create → poll → result lifecycle.
|
|
7
|
+
*
|
|
8
|
+
* Tools defined with this function are automatically registered in the
|
|
9
|
+
* global task tool registry and discovered by `createServer()`.
|
|
10
|
+
*
|
|
11
|
+
* @experimental MCP Tasks is an experimental SDK feature
|
|
12
|
+
* @module mcp/capabilities/tasks/define-task
|
|
13
|
+
*/
|
|
14
|
+
import { globalTaskToolRegistry } from "../registry/index.js";
|
|
15
|
+
import { validateDefinitionBase, validateFunction, validateZodSchema, validateObject, validateEnum, } from "../../../utils/index.js";
|
|
16
|
+
// ============================================================================
|
|
17
|
+
// Factory Function
|
|
18
|
+
// ============================================================================
|
|
19
|
+
/**
|
|
20
|
+
* Define a task tool with automatic registration.
|
|
21
|
+
*
|
|
22
|
+
* Task tools support long-running operations via the MCP Tasks protocol.
|
|
23
|
+
* Instead of blocking until completion, the client receives a task ID and
|
|
24
|
+
* can poll for status updates and results.
|
|
25
|
+
*
|
|
26
|
+
* The tool is automatically registered in the global task tool registry.
|
|
27
|
+
* The framework uses the SDK's `experimental.tasks.registerToolTask()` internally.
|
|
28
|
+
*
|
|
29
|
+
* @typeParam TInput - Zod schema type (inferred)
|
|
30
|
+
*
|
|
31
|
+
* @param definition - Task tool definition with name, description, input schema, and task handler
|
|
32
|
+
* @returns The registered task tool definition (for re-export and type inference)
|
|
33
|
+
*
|
|
34
|
+
* @experimental MCP Tasks is an experimental SDK feature
|
|
35
|
+
*
|
|
36
|
+
* @example
|
|
37
|
+
* ```typescript
|
|
38
|
+
* import { defineTask, text, z } from 'mcp-server-framework';
|
|
39
|
+
*
|
|
40
|
+
* export const longComputation = defineTask({
|
|
41
|
+
* name: 'long_computation',
|
|
42
|
+
* description: 'Perform a long-running computation',
|
|
43
|
+
* input: z.object({ data: z.string() }),
|
|
44
|
+
* taskSupport: 'required',
|
|
45
|
+
* taskHandler: {
|
|
46
|
+
* createTask: async (args, ctx) => {
|
|
47
|
+
* const task = await ctx.taskStore.createTask({ ttl: 300_000 });
|
|
48
|
+
* startBackgroundWork(task.taskId, args);
|
|
49
|
+
* return { task };
|
|
50
|
+
* },
|
|
51
|
+
* getTask: async (_args, ctx) => ctx.taskStore.getTask(ctx.taskId),
|
|
52
|
+
* getTaskResult: async (_args, ctx) => ctx.taskStore.getTaskResult(ctx.taskId),
|
|
53
|
+
* },
|
|
54
|
+
* });
|
|
55
|
+
* ```
|
|
56
|
+
*
|
|
57
|
+
* @example
|
|
58
|
+
* ```typescript
|
|
59
|
+
* // Optional task support — tool can be called normally OR as a task
|
|
60
|
+
* export const flexibleTool = defineTask({
|
|
61
|
+
* name: 'flexible_process',
|
|
62
|
+
* description: 'Process that supports both sync and async execution',
|
|
63
|
+
* input: z.object({ items: z.array(z.string()) }),
|
|
64
|
+
* taskSupport: 'optional',
|
|
65
|
+
* taskHandler: {
|
|
66
|
+
* createTask: async (args, ctx) => {
|
|
67
|
+
* const task = await ctx.taskStore.createTask({});
|
|
68
|
+
* processInBackground(task.taskId, args);
|
|
69
|
+
* return { task };
|
|
70
|
+
* },
|
|
71
|
+
* getTask: async (_args, ctx) => ctx.taskStore.getTask(ctx.taskId),
|
|
72
|
+
* getTaskResult: async (_args, ctx) => ctx.taskStore.getTaskResult(ctx.taskId),
|
|
73
|
+
* },
|
|
74
|
+
* });
|
|
75
|
+
* ```
|
|
76
|
+
*/
|
|
77
|
+
export function defineTask(definition) {
|
|
78
|
+
// Validate required fields
|
|
79
|
+
validateDefinitionBase(definition, "TaskTool");
|
|
80
|
+
validateZodSchema(definition.input, "TaskTool", "input");
|
|
81
|
+
// Validate task handler object and its methods
|
|
82
|
+
validateObject(definition.taskHandler, "TaskTool", "taskHandler");
|
|
83
|
+
validateFunction(definition.taskHandler.createTask, "TaskTool", "taskHandler.createTask");
|
|
84
|
+
validateFunction(definition.taskHandler.getTask, "TaskTool", "taskHandler.getTask");
|
|
85
|
+
validateFunction(definition.taskHandler.getTaskResult, "TaskTool", "taskHandler.getTaskResult");
|
|
86
|
+
// Validate taskSupport value (defaults to 'required')
|
|
87
|
+
const taskSupport = definition.taskSupport ?? "required";
|
|
88
|
+
validateEnum(taskSupport, ["optional", "required"], "TaskTool", "taskSupport");
|
|
89
|
+
// Auto-register in global task tool registry
|
|
90
|
+
globalTaskToolRegistry.registerFromFactory(definition);
|
|
91
|
+
return definition;
|
|
92
|
+
}
|
|
93
|
+
//# sourceMappingURL=define-task.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"define-task.js","sourceRoot":"","sources":["../../../../src/mcp/capabilities/tasks/define-task.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAKH,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EACL,sBAAsB,EACtB,gBAAgB,EAChB,iBAAiB,EACjB,cAAc,EACd,YAAY,GACb,MAAM,yBAAyB,CAAC;AAEjC,+EAA+E;AAC/E,mBAAmB;AACnB,+EAA+E;AAE/E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyDG;AACH,MAAM,UAAU,UAAU,CACxB,UAAsC;IAEtC,2BAA2B;IAC3B,sBAAsB,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;IAC/C,iBAAiB,CAAC,UAAU,CAAC,KAAK,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;IAEzD,+CAA+C;IAC/C,cAAc,CAAC,UAAU,CAAC,WAAW,EAAE,UAAU,EAAE,aAAa,CAAC,CAAC;IAClE,gBAAgB,CAAC,UAAU,CAAC,WAAW,CAAC,UAAU,EAAE,UAAU,EAAE,wBAAwB,CAAC,CAAC;IAC1F,gBAAgB,CAAC,UAAU,CAAC,WAAW,CAAC,OAAO,EAAE,UAAU,EAAE,qBAAqB,CAAC,CAAC;IACpF,gBAAgB,CAAC,UAAU,CAAC,WAAW,CAAC,aAAa,EAAE,UAAU,EAAE,2BAA2B,CAAC,CAAC;IAEhG,sDAAsD;IACtD,MAAM,WAAW,GAAG,UAAU,CAAC,WAAW,IAAI,UAAU,CAAC;IACzD,YAAY,CAAC,WAAW,EAAE,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,UAAU,EAAE,aAAa,CAAC,CAAC;IAE/E,6CAA6C;IAC7C,sBAAsB,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAC;IAEvD,OAAO,UAAU,CAAC;AACpB,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MCP Task Tools Module
|
|
3
|
+
*
|
|
4
|
+
* Provides the defineTask() factory for creating MCP task tools
|
|
5
|
+
* (tools with asynchronous execution support).
|
|
6
|
+
*
|
|
7
|
+
* @experimental MCP Tasks is an experimental SDK feature
|
|
8
|
+
* @module mcp/capabilities/tasks
|
|
9
|
+
*/
|
|
10
|
+
export { defineTask } from "./define-task.js";
|
|
11
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/mcp/capabilities/tasks/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MCP Task Tools Module
|
|
3
|
+
*
|
|
4
|
+
* Provides the defineTask() factory for creating MCP task tools
|
|
5
|
+
* (tools with asynchronous execution support).
|
|
6
|
+
*
|
|
7
|
+
* @experimental MCP Tasks is an experimental SDK feature
|
|
8
|
+
* @module mcp/capabilities/tasks
|
|
9
|
+
*/
|
|
10
|
+
export { defineTask } from "./define-task.js";
|
|
11
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/mcp/capabilities/tasks/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tool Definition Factory
|
|
3
|
+
*
|
|
4
|
+
* Provides the defineTool() factory function for zero-boilerplate tool registration.
|
|
5
|
+
* Tools defined with this function are automatically registered in a global registry.
|
|
6
|
+
*
|
|
7
|
+
* @module mcp/capabilities/tools/define-tool
|
|
8
|
+
*/
|
|
9
|
+
import type { z } from "zod";
|
|
10
|
+
import type { ToolDefinition } from "../../types/index.js";
|
|
11
|
+
/**
|
|
12
|
+
* Define a tool with automatic registration.
|
|
13
|
+
*
|
|
14
|
+
* This is the recommended way to define tools in the framework.
|
|
15
|
+
* The tool is automatically registered in the global registry when defined.
|
|
16
|
+
*
|
|
17
|
+
* @typeParam TInput - Zod schema type (inferred)
|
|
18
|
+
*
|
|
19
|
+
* @param definition - Tool definition with name, description, input schema, and handler
|
|
20
|
+
* @returns The registered tool definition (for re-export and type inference)
|
|
21
|
+
*
|
|
22
|
+
* **Important**: Call `defineTool()` at module scope (top-level). The tool is
|
|
23
|
+
* registered as a side-effect of module import. For conditional or runtime
|
|
24
|
+
* tool management, use `McpServerBuilder` with a custom `ToolProvider`.
|
|
25
|
+
*
|
|
26
|
+
* @example
|
|
27
|
+
* ```typescript
|
|
28
|
+
* // tools/greet.ts
|
|
29
|
+
* import { defineTool, text } from 'mcp-server-framework';
|
|
30
|
+
* import { z } from 'zod';
|
|
31
|
+
*
|
|
32
|
+
* export const greetTool = defineTool({
|
|
33
|
+
* name: 'greet',
|
|
34
|
+
* description: 'Greet a user by name',
|
|
35
|
+
* input: z.object({
|
|
36
|
+
* name: z.string().describe('The name to greet'),
|
|
37
|
+
* }),
|
|
38
|
+
* handler: async ({ name }) => text(`Hello, ${name}!`),
|
|
39
|
+
* });
|
|
40
|
+
* ```
|
|
41
|
+
*
|
|
42
|
+
* @example
|
|
43
|
+
* ```typescript
|
|
44
|
+
* // tools/items.ts - With annotations and external API client
|
|
45
|
+
* import { defineTool, json } from 'mcp-server-framework';
|
|
46
|
+
* import { z } from 'zod';
|
|
47
|
+
* import { apiClient } from '../api/client.js';
|
|
48
|
+
*
|
|
49
|
+
* export const listItems = defineTool({
|
|
50
|
+
* name: 'list_items',
|
|
51
|
+
* description: 'List all items',
|
|
52
|
+
* input: z.object({ category: z.string() }),
|
|
53
|
+
* annotations: { readOnlyHint: true, openWorldHint: true },
|
|
54
|
+
* handler: async ({ category }) => {
|
|
55
|
+
* const items = await apiClient.items.list(category);
|
|
56
|
+
* return json(items);
|
|
57
|
+
* },
|
|
58
|
+
* });
|
|
59
|
+
* ```
|
|
60
|
+
*/
|
|
61
|
+
export declare function defineTool<TInput extends z.ZodTypeAny>(definition: ToolDefinition<TInput>): ToolDefinition<TInput>;
|
|
62
|
+
//# sourceMappingURL=define-tool.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"define-tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp/capabilities/tools/define-tool.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAE7B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAQ3D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiDG;AACH,wBAAgB,UAAU,CAAC,MAAM,SAAS,CAAC,CAAC,UAAU,EAAE,UAAU,EAAE,cAAc,CAAC,MAAM,CAAC,GAAG,cAAc,CAAC,MAAM,CAAC,CAUlH"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tool Definition Factory
|
|
3
|
+
*
|
|
4
|
+
* Provides the defineTool() factory function for zero-boilerplate tool registration.
|
|
5
|
+
* Tools defined with this function are automatically registered in a global registry.
|
|
6
|
+
*
|
|
7
|
+
* @module mcp/capabilities/tools/define-tool
|
|
8
|
+
*/
|
|
9
|
+
import { globalToolRegistry } from "../registry/index.js";
|
|
10
|
+
import { validateDefinitionBase, validateFunction, validateZodSchema } from "../../../utils/index.js";
|
|
11
|
+
// ============================================================================
|
|
12
|
+
// Factory Function
|
|
13
|
+
// ============================================================================
|
|
14
|
+
/**
|
|
15
|
+
* Define a tool with automatic registration.
|
|
16
|
+
*
|
|
17
|
+
* This is the recommended way to define tools in the framework.
|
|
18
|
+
* The tool is automatically registered in the global registry when defined.
|
|
19
|
+
*
|
|
20
|
+
* @typeParam TInput - Zod schema type (inferred)
|
|
21
|
+
*
|
|
22
|
+
* @param definition - Tool definition with name, description, input schema, and handler
|
|
23
|
+
* @returns The registered tool definition (for re-export and type inference)
|
|
24
|
+
*
|
|
25
|
+
* **Important**: Call `defineTool()` at module scope (top-level). The tool is
|
|
26
|
+
* registered as a side-effect of module import. For conditional or runtime
|
|
27
|
+
* tool management, use `McpServerBuilder` with a custom `ToolProvider`.
|
|
28
|
+
*
|
|
29
|
+
* @example
|
|
30
|
+
* ```typescript
|
|
31
|
+
* // tools/greet.ts
|
|
32
|
+
* import { defineTool, text } from 'mcp-server-framework';
|
|
33
|
+
* import { z } from 'zod';
|
|
34
|
+
*
|
|
35
|
+
* export const greetTool = defineTool({
|
|
36
|
+
* name: 'greet',
|
|
37
|
+
* description: 'Greet a user by name',
|
|
38
|
+
* input: z.object({
|
|
39
|
+
* name: z.string().describe('The name to greet'),
|
|
40
|
+
* }),
|
|
41
|
+
* handler: async ({ name }) => text(`Hello, ${name}!`),
|
|
42
|
+
* });
|
|
43
|
+
* ```
|
|
44
|
+
*
|
|
45
|
+
* @example
|
|
46
|
+
* ```typescript
|
|
47
|
+
* // tools/items.ts - With annotations and external API client
|
|
48
|
+
* import { defineTool, json } from 'mcp-server-framework';
|
|
49
|
+
* import { z } from 'zod';
|
|
50
|
+
* import { apiClient } from '../api/client.js';
|
|
51
|
+
*
|
|
52
|
+
* export const listItems = defineTool({
|
|
53
|
+
* name: 'list_items',
|
|
54
|
+
* description: 'List all items',
|
|
55
|
+
* input: z.object({ category: z.string() }),
|
|
56
|
+
* annotations: { readOnlyHint: true, openWorldHint: true },
|
|
57
|
+
* handler: async ({ category }) => {
|
|
58
|
+
* const items = await apiClient.items.list(category);
|
|
59
|
+
* return json(items);
|
|
60
|
+
* },
|
|
61
|
+
* });
|
|
62
|
+
* ```
|
|
63
|
+
*/
|
|
64
|
+
export function defineTool(definition) {
|
|
65
|
+
// Validate required fields (safety net for JS consumers and empty strings)
|
|
66
|
+
validateDefinitionBase(definition, "Tool");
|
|
67
|
+
validateZodSchema(definition.input, "Tool", "input");
|
|
68
|
+
validateFunction(definition.handler, "Tool", "handler");
|
|
69
|
+
// Auto-register in global registry (variance handled by registry)
|
|
70
|
+
globalToolRegistry.registerFromFactory(definition);
|
|
71
|
+
return definition;
|
|
72
|
+
}
|
|
73
|
+
//# sourceMappingURL=define-tool.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"define-tool.js","sourceRoot":"","sources":["../../../../src/mcp/capabilities/tools/define-tool.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAKH,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAEtG,+EAA+E;AAC/E,mBAAmB;AACnB,+EAA+E;AAE/E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiDG;AACH,MAAM,UAAU,UAAU,CAA8B,UAAkC;IACxF,2EAA2E;IAC3E,sBAAsB,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IAC3C,iBAAiB,CAAC,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IACrD,gBAAgB,CAAC,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;IAExD,kEAAkE;IAClE,kBAAkB,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAC;IAEnD,OAAO,UAAU,CAAC;AACpB,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tools Module
|
|
3
|
+
*
|
|
4
|
+
* Exports the tool definition factory for zero-boilerplate registration.
|
|
5
|
+
* Types should be imported directly from `mcp/types/`.
|
|
6
|
+
*
|
|
7
|
+
* @module mcp/capabilities/tools
|
|
8
|
+
*/
|
|
9
|
+
export { defineTool } from "./define-tool.js";
|
|
10
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/mcp/capabilities/tools/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tools Module
|
|
3
|
+
*
|
|
4
|
+
* Exports the tool definition factory for zero-boilerplate registration.
|
|
5
|
+
* Types should be imported directly from `mcp/types/`.
|
|
6
|
+
*
|
|
7
|
+
* @module mcp/capabilities/tools
|
|
8
|
+
*/
|
|
9
|
+
export { defineTool } from "./define-tool.js";
|
|
10
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/mcp/capabilities/tools/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MCP Protocol Handlers Module
|
|
3
|
+
*
|
|
4
|
+
* Setup functions for MCP protocol request/notification handlers.
|
|
5
|
+
*
|
|
6
|
+
* - **Ping Handler**: Responds to client liveness checks
|
|
7
|
+
* - **Progress Reporter**: Rate-limited progress notifications
|
|
8
|
+
*
|
|
9
|
+
* Cancellation is handled natively by the MCP SDK's Protocol layer.
|
|
10
|
+
* The SDK creates per-request AbortControllers and automatically aborts
|
|
11
|
+
* them when `notifications/cancelled` is received. No custom handler needed.
|
|
12
|
+
*
|
|
13
|
+
* @see https://modelcontextprotocol.io/specification/2025-11-25/basic/utilities/ping
|
|
14
|
+
* @see https://modelcontextprotocol.io/specification/2025-11-25/basic/utilities/cancellation
|
|
15
|
+
* @module mcp/handlers
|
|
16
|
+
*/
|
|
17
|
+
export { setupPingHandler } from "./ping.js";
|
|
18
|
+
export { createProgressReporter } from "./progress.js";
|
|
19
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/mcp/handlers/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAOH,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAM7C,OAAO,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MCP Protocol Handlers Module
|
|
3
|
+
*
|
|
4
|
+
* Setup functions for MCP protocol request/notification handlers.
|
|
5
|
+
*
|
|
6
|
+
* - **Ping Handler**: Responds to client liveness checks
|
|
7
|
+
* - **Progress Reporter**: Rate-limited progress notifications
|
|
8
|
+
*
|
|
9
|
+
* Cancellation is handled natively by the MCP SDK's Protocol layer.
|
|
10
|
+
* The SDK creates per-request AbortControllers and automatically aborts
|
|
11
|
+
* them when `notifications/cancelled` is received. No custom handler needed.
|
|
12
|
+
*
|
|
13
|
+
* @see https://modelcontextprotocol.io/specification/2025-11-25/basic/utilities/ping
|
|
14
|
+
* @see https://modelcontextprotocol.io/specification/2025-11-25/basic/utilities/cancellation
|
|
15
|
+
* @module mcp/handlers
|
|
16
|
+
*/
|
|
17
|
+
// ============================================================================
|
|
18
|
+
// Handler Setup Functions
|
|
19
|
+
// @internal Used by McpSession during initialization
|
|
20
|
+
// ============================================================================
|
|
21
|
+
export { setupPingHandler } from "./ping.js";
|
|
22
|
+
// ============================================================================
|
|
23
|
+
// Progress Utilities
|
|
24
|
+
// ============================================================================
|
|
25
|
+
export { createProgressReporter } from "./progress.js";
|
|
26
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/mcp/handlers/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,+EAA+E;AAC/E,0BAA0B;AAC1B,qDAAqD;AACrD,+EAA+E;AAE/E,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAE7C,+EAA+E;AAC/E,qBAAqB;AACrB,+EAA+E;AAE/E,OAAO,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Ping Handler
|
|
3
|
+
*
|
|
4
|
+
* Handles ping/pong liveness checks per MCP Specification.
|
|
5
|
+
*
|
|
6
|
+
* Per MCP Spec:
|
|
7
|
+
* - Ping is a standard request that servers SHOULD respond to
|
|
8
|
+
* - Response is an empty object
|
|
9
|
+
* - Used for connection health checks
|
|
10
|
+
*
|
|
11
|
+
* @see https://modelcontextprotocol.io/specification/2025-11-25/basic/utilities/ping
|
|
12
|
+
* @module mcp/handlers/ping
|
|
13
|
+
*/
|
|
14
|
+
import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
15
|
+
import type { PingHandler } from "../types/index.js";
|
|
16
|
+
/**
|
|
17
|
+
* Sets up the ping request handler.
|
|
18
|
+
*
|
|
19
|
+
* Registers a handler that responds to ping requests with an empty object
|
|
20
|
+
* and optionally invokes a custom handler for app-specific logic.
|
|
21
|
+
*
|
|
22
|
+
* @internal Called by McpSession during initialization.
|
|
23
|
+
* @param server - The McpServer instance
|
|
24
|
+
* @param onPing - Optional custom handler for app logic (metrics, health tracking, etc.)
|
|
25
|
+
*/
|
|
26
|
+
export declare function setupPingHandler(server: McpServer, onPing?: PingHandler): void;
|
|
27
|
+
//# sourceMappingURL=ping.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ping.d.ts","sourceRoot":"","sources":["../../../src/mcp/handlers/ping.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAGzE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAqBrD;;;;;;;;;GASG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,IAAI,CAuB9E"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Ping Handler
|
|
3
|
+
*
|
|
4
|
+
* Handles ping/pong liveness checks per MCP Specification.
|
|
5
|
+
*
|
|
6
|
+
* Per MCP Spec:
|
|
7
|
+
* - Ping is a standard request that servers SHOULD respond to
|
|
8
|
+
* - Response is an empty object
|
|
9
|
+
* - Used for connection health checks
|
|
10
|
+
*
|
|
11
|
+
* @see https://modelcontextprotocol.io/specification/2025-11-25/basic/utilities/ping
|
|
12
|
+
* @module mcp/handlers/ping
|
|
13
|
+
*/
|
|
14
|
+
import { PingRequestSchema } from "@modelcontextprotocol/sdk/types.js";
|
|
15
|
+
import { logger as baseLogger, mcpLogger } from "../../logger/index.js";
|
|
16
|
+
// ============================================================================
|
|
17
|
+
// Constants
|
|
18
|
+
// ============================================================================
|
|
19
|
+
const LOG_COMPONENT = "ping";
|
|
20
|
+
/** @internal Log messages used by the ping handler. */
|
|
21
|
+
const LogMessages = {
|
|
22
|
+
PONG_SENT: "🏓 pong",
|
|
23
|
+
PING_RECEIVED: "Received ping, sent pong",
|
|
24
|
+
HANDLER_REGISTERED: "%s handler registered",
|
|
25
|
+
};
|
|
26
|
+
const logger = baseLogger.child({ component: LOG_COMPONENT });
|
|
27
|
+
// ============================================================================
|
|
28
|
+
// Handler Implementation
|
|
29
|
+
// ============================================================================
|
|
30
|
+
/**
|
|
31
|
+
* Sets up the ping request handler.
|
|
32
|
+
*
|
|
33
|
+
* Registers a handler that responds to ping requests with an empty object
|
|
34
|
+
* and optionally invokes a custom handler for app-specific logic.
|
|
35
|
+
*
|
|
36
|
+
* @internal Called by McpSession during initialization.
|
|
37
|
+
* @param server - The McpServer instance
|
|
38
|
+
* @param onPing - Optional custom handler for app logic (metrics, health tracking, etc.)
|
|
39
|
+
*/
|
|
40
|
+
export function setupPingHandler(server, onPing) {
|
|
41
|
+
server.server.setRequestHandler(PingRequestSchema, async () => {
|
|
42
|
+
// Call custom handler if defined (fire-and-forget, errors logged)
|
|
43
|
+
if (onPing) {
|
|
44
|
+
try {
|
|
45
|
+
await Promise.resolve(onPing());
|
|
46
|
+
}
|
|
47
|
+
catch (err) {
|
|
48
|
+
logger.warn("Custom ping handler error: %s", err instanceof Error ? err.message : String(err));
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
// Log pong via MCP notification (demonstrates server -> client communication)
|
|
52
|
+
mcpLogger.info(LogMessages.PONG_SENT).catch(() => {
|
|
53
|
+
// Ignore errors if client disconnected
|
|
54
|
+
});
|
|
55
|
+
logger.trace(LogMessages.PING_RECEIVED);
|
|
56
|
+
// Return empty object as per MCP spec
|
|
57
|
+
return {};
|
|
58
|
+
});
|
|
59
|
+
logger.trace(LogMessages.HANDLER_REGISTERED, LOG_COMPONENT);
|
|
60
|
+
}
|
|
61
|
+
//# sourceMappingURL=ping.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ping.js","sourceRoot":"","sources":["../../../src/mcp/handlers/ping.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAGH,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AACvE,OAAO,EAAE,MAAM,IAAI,UAAU,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAGxE,+EAA+E;AAC/E,YAAY;AACZ,+EAA+E;AAE/E,MAAM,aAAa,GAAG,MAAM,CAAC;AAE7B,uDAAuD;AACvD,MAAM,WAAW,GAAG;IAClB,SAAS,EAAE,SAAS;IACpB,aAAa,EAAE,0BAA0B;IACzC,kBAAkB,EAAE,uBAAuB;CACnC,CAAC;AAEX,MAAM,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,EAAE,SAAS,EAAE,aAAa,EAAE,CAAC,CAAC;AAE9D,+EAA+E;AAC/E,yBAAyB;AACzB,+EAA+E;AAE/E;;;;;;;;;GASG;AACH,MAAM,UAAU,gBAAgB,CAAC,MAAiB,EAAE,MAAoB;IACtE,MAAM,CAAC,MAAM,CAAC,iBAAiB,CAAC,iBAAiB,EAAE,KAAK,IAAoC,EAAE;QAC5F,kEAAkE;QAClE,IAAI,MAAM,EAAE,CAAC;YACX,IAAI,CAAC;gBACH,MAAM,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;YAClC,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,CAAC,IAAI,CAAC,+BAA+B,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;YACjG,CAAC;QACH,CAAC;QAED,8EAA8E;QAC9E,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE;YAC/C,uCAAuC;QACzC,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;QAExC,sCAAsC;QACtC,OAAO,EAAE,CAAC;IACZ,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,kBAAkB,EAAE,aAAa,CAAC,CAAC;AAC9D,CAAC"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Progress Reporting Utility
|
|
3
|
+
*
|
|
4
|
+
* Creates rate-limited progress reporters using the SDK's native
|
|
5
|
+
* `sendNotification` from `RequestHandlerExtra`. This replaces
|
|
6
|
+
* the redundant RequestManager progress functionality.
|
|
7
|
+
*
|
|
8
|
+
* Rate-limiting prevents flooding the client with too many
|
|
9
|
+
* `notifications/progress` messages during tight loops.
|
|
10
|
+
*
|
|
11
|
+
* @see https://spec.modelcontextprotocol.io/specification/2025-11-25/server/utilities/progress/
|
|
12
|
+
* @module mcp/handlers/progress
|
|
13
|
+
*/
|
|
14
|
+
import type { ProgressReporter, SendNotificationFn, ProgressToken } from "../types/index.js";
|
|
15
|
+
/**
|
|
16
|
+
* Minimum interval between progress notifications in milliseconds.
|
|
17
|
+
* Prevents flooding the client with updates during tight loops.
|
|
18
|
+
*/
|
|
19
|
+
export declare const PROGRESS_MIN_INTERVAL_MS = 100;
|
|
20
|
+
/**
|
|
21
|
+
* Creates a rate-limited progress reporter for a tool invocation.
|
|
22
|
+
*
|
|
23
|
+
* Uses the SDK's native `sendNotification` to send `notifications/progress`
|
|
24
|
+
* messages. Applies rate-limiting (100ms minimum interval) to prevent
|
|
25
|
+
* flooding the client during tight loops.
|
|
26
|
+
*
|
|
27
|
+
* @param sendNotification - The SDK extra's `sendNotification` function
|
|
28
|
+
* @param progressToken - The progress token from `_meta.progressToken` (undefined = no progress requested)
|
|
29
|
+
* @returns A ProgressReporter function, or undefined if no progressToken was provided
|
|
30
|
+
*
|
|
31
|
+
* @example
|
|
32
|
+
* ```typescript
|
|
33
|
+
* // Inside SDK tool callback:
|
|
34
|
+
* const reporter = createProgressReporter(extra.sendNotification, extra._meta?.progressToken);
|
|
35
|
+
*
|
|
36
|
+
* // Use in tool handler:
|
|
37
|
+
* await reporter?.({ progress: 1, total: 10, message: 'Processing...' });
|
|
38
|
+
* ```
|
|
39
|
+
*/
|
|
40
|
+
export declare function createProgressReporter(sendNotification: SendNotificationFn, progressToken: ProgressToken | undefined): ProgressReporter | undefined;
|
|
41
|
+
//# sourceMappingURL=progress.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"progress.d.ts","sourceRoot":"","sources":["../../../src/mcp/handlers/progress.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAgB,gBAAgB,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAM3G;;;GAGG;AACH,eAAO,MAAM,wBAAwB,MAAM,CAAC;AAW5C;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,sBAAsB,CACpC,gBAAgB,EAAE,kBAAkB,EACpC,aAAa,EAAE,aAAa,GAAG,SAAS,GACvC,gBAAgB,GAAG,SAAS,CAiC9B"}
|