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,67 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* HTTP/HTTPS Server Creation
|
|
3
|
+
*
|
|
4
|
+
* Factory functions for creating HTTP and HTTPS servers from
|
|
5
|
+
* a configured Express application.
|
|
6
|
+
*
|
|
7
|
+
* The server creation is separated from app configuration to support
|
|
8
|
+
* three transport modes:
|
|
9
|
+
* - `startHttpServer()` — Plain HTTP (development, behind reverse proxy)
|
|
10
|
+
* - `startHttpsServer()` — HTTPS with TLS (direct TLS termination)
|
|
11
|
+
*
|
|
12
|
+
* TLS credentials are read from the filesystem using paths configured
|
|
13
|
+
* via environment variables or programmatic options.
|
|
14
|
+
*
|
|
15
|
+
* @module server/http/http-server
|
|
16
|
+
*/
|
|
17
|
+
import { type Server } from "node:http";
|
|
18
|
+
import type { SecureContextOptions } from "node:tls";
|
|
19
|
+
import type { Application } from "express";
|
|
20
|
+
import type { TlsConfig } from "../server-options.js";
|
|
21
|
+
/**
|
|
22
|
+
* HTTP Server Configuration Options.
|
|
23
|
+
*/
|
|
24
|
+
export interface HttpServerOptions {
|
|
25
|
+
/** Port to listen on (default: from MCP_PORT env or 8000) */
|
|
26
|
+
readonly port?: number | undefined;
|
|
27
|
+
/** Host to bind to (default: from MCP_BIND_HOST env or '127.0.0.1') */
|
|
28
|
+
readonly bindHost?: string | undefined;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* HTTPS Server Configuration Options.
|
|
32
|
+
*/
|
|
33
|
+
export interface HttpsServerOptions extends HttpServerOptions {
|
|
34
|
+
/** TLS certificate configuration */
|
|
35
|
+
readonly tls: TlsConfig;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Reads TLS credentials from the filesystem.
|
|
39
|
+
*
|
|
40
|
+
* @param tls - TLS configuration with file paths
|
|
41
|
+
* @returns Node.js SecureContextOptions for https.createServer
|
|
42
|
+
* @throws TransportError if files exceed size limit or cannot be read
|
|
43
|
+
*/
|
|
44
|
+
export declare function readTlsCredentials(tls: TlsConfig): SecureContextOptions;
|
|
45
|
+
/**
|
|
46
|
+
* Creates and starts a plain HTTP server.
|
|
47
|
+
*
|
|
48
|
+
* Resolves after the server is listening and ready to accept connections.
|
|
49
|
+
*
|
|
50
|
+
* @param app - Configured Express application
|
|
51
|
+
* @param options - Server configuration (defaults to environment variables)
|
|
52
|
+
* @returns Running HTTP server instance
|
|
53
|
+
*/
|
|
54
|
+
export declare function startHttpServer(app: Application, options?: HttpServerOptions): Promise<Server>;
|
|
55
|
+
/**
|
|
56
|
+
* Creates and starts an HTTPS server with TLS.
|
|
57
|
+
*
|
|
58
|
+
* Reads TLS credentials from the filesystem at startup.
|
|
59
|
+
* Resolves after the server is listening and ready to accept connections.
|
|
60
|
+
* Certificate rotation requires server restart.
|
|
61
|
+
*
|
|
62
|
+
* @param app - Configured Express application
|
|
63
|
+
* @param options - Server configuration with TLS options
|
|
64
|
+
* @returns Running HTTPS server instance
|
|
65
|
+
*/
|
|
66
|
+
export declare function startHttpsServer(app: Application, options: HttpsServerOptions): Promise<Server>;
|
|
67
|
+
//# sourceMappingURL=http-server.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"http-server.d.ts","sourceRoot":"","sources":["../../../src/server/http/http-server.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAoC,KAAK,MAAM,EAAE,MAAM,WAAW,CAAC;AAE1E,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAErD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAK3C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAItD;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,6DAA6D;IAC7D,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,uEAAuE;IACvE,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACxC;AAED;;GAEG;AACH,MAAM,WAAW,kBAAmB,SAAQ,iBAAiB;IAC3D,oCAAoC;IACpC,QAAQ,CAAC,GAAG,EAAE,SAAS,CAAC;CACzB;AAsDD;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,SAAS,GAAG,oBAAoB,CAavE;AAwBD;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,WAAW,EAAE,OAAO,GAAE,iBAAsB,GAAG,OAAO,CAAC,MAAM,CAAC,CAoBlG;AAMD;;;;;;;;;;GAUG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,WAAW,EAAE,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,MAAM,CAAC,CAsB/F"}
|
|
@@ -0,0 +1,188 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* HTTP/HTTPS Server Creation
|
|
3
|
+
*
|
|
4
|
+
* Factory functions for creating HTTP and HTTPS servers from
|
|
5
|
+
* a configured Express application.
|
|
6
|
+
*
|
|
7
|
+
* The server creation is separated from app configuration to support
|
|
8
|
+
* three transport modes:
|
|
9
|
+
* - `startHttpServer()` — Plain HTTP (development, behind reverse proxy)
|
|
10
|
+
* - `startHttpsServer()` — HTTPS with TLS (direct TLS termination)
|
|
11
|
+
*
|
|
12
|
+
* TLS credentials are read from the filesystem using paths configured
|
|
13
|
+
* via environment variables or programmatic options.
|
|
14
|
+
*
|
|
15
|
+
* @module server/http/http-server
|
|
16
|
+
*/
|
|
17
|
+
import { createServer as createHttpServer } from "node:http";
|
|
18
|
+
import { createServer as createHttpsServer } from "node:https";
|
|
19
|
+
import { readFileSync, statSync } from "node:fs";
|
|
20
|
+
import { logger as baseLogger } from "../../logger/index.js";
|
|
21
|
+
import { TRANSPORT_LOG_COMPONENTS } from "../transport/constants.js";
|
|
22
|
+
import { getFrameworkConfig } from "../../config/index.js";
|
|
23
|
+
import { TransportError } from "../../errors/index.js";
|
|
24
|
+
const logger = baseLogger.child({
|
|
25
|
+
component: TRANSPORT_LOG_COMPONENTS.HTTP_SERVER,
|
|
26
|
+
});
|
|
27
|
+
/** @internal Log messages for HTTP/HTTPS server lifecycle */
|
|
28
|
+
const LogMessages = {
|
|
29
|
+
TLS_READING_CREDENTIALS: "Reading TLS credentials: cert=%s, key=%s, ca=%s",
|
|
30
|
+
HTTP_LISTENING: "HTTP server listening on http://%s:%d",
|
|
31
|
+
HTTPS_LISTENING: "HTTPS server listening on https://%s:%d",
|
|
32
|
+
PORT_IN_USE: "Port %s is already in use — server cannot start",
|
|
33
|
+
PORT_REQUIRES_PRIVILEGES: "Binding to %s requires elevated privileges",
|
|
34
|
+
SERVER_ERROR: "Unexpected server error: %s",
|
|
35
|
+
};
|
|
36
|
+
/** Maximum allowed TLS file size (1 MB) — prevents accidental reads of large files */
|
|
37
|
+
const MAX_TLS_FILE_SIZE = 1024 * 1024;
|
|
38
|
+
// ── HTTP Timeout Defaults ─────────────────────────────────────────────────
|
|
39
|
+
// Industry-standard values to prevent resource exhaustion (Slowloris, idle connections).
|
|
40
|
+
// headersTimeout must be > requestTimeout per Node.js docs.
|
|
41
|
+
/** Max time for the entire request (30s) */
|
|
42
|
+
const HTTP_REQUEST_TIMEOUT = 30_000;
|
|
43
|
+
/** Max time for headers to arrive (40s, must exceed requestTimeout) */
|
|
44
|
+
const HTTP_HEADERS_TIMEOUT = 40_000;
|
|
45
|
+
/** Idle keep-alive timeout (65s, exceeds common LB thresholds like ALB 60s) */
|
|
46
|
+
const HTTP_KEEP_ALIVE_TIMEOUT = 65_000;
|
|
47
|
+
// ============================================================================
|
|
48
|
+
// TLS Credential Reading
|
|
49
|
+
// ============================================================================
|
|
50
|
+
/**
|
|
51
|
+
* Reads a single TLS file with size validation.
|
|
52
|
+
*
|
|
53
|
+
* @param filePath - Path to the TLS file (cert, key, or CA)
|
|
54
|
+
* @returns File contents as UTF-8 string
|
|
55
|
+
* @throws TransportError if file exceeds MAX_TLS_FILE_SIZE
|
|
56
|
+
*/
|
|
57
|
+
function readTlsFile(filePath) {
|
|
58
|
+
const { size } = statSync(filePath);
|
|
59
|
+
if (size === 0) {
|
|
60
|
+
throw new TransportError(`TLS file is empty (0 bytes): ${filePath}`);
|
|
61
|
+
}
|
|
62
|
+
if (size > MAX_TLS_FILE_SIZE) {
|
|
63
|
+
throw new TransportError(`TLS file exceeds maximum allowed size of ${MAX_TLS_FILE_SIZE} bytes: ${filePath} (${size} bytes)`);
|
|
64
|
+
}
|
|
65
|
+
return readFileSync(filePath, "utf-8");
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Reads TLS credentials from the filesystem.
|
|
69
|
+
*
|
|
70
|
+
* @param tls - TLS configuration with file paths
|
|
71
|
+
* @returns Node.js SecureContextOptions for https.createServer
|
|
72
|
+
* @throws TransportError if files exceed size limit or cannot be read
|
|
73
|
+
*/
|
|
74
|
+
export function readTlsCredentials(tls) {
|
|
75
|
+
logger.debug(LogMessages.TLS_READING_CREDENTIALS, tls.certPath, tls.keyPath, tls.caPath ?? "none");
|
|
76
|
+
const credentials = {
|
|
77
|
+
cert: readTlsFile(tls.certPath),
|
|
78
|
+
key: readTlsFile(tls.keyPath),
|
|
79
|
+
};
|
|
80
|
+
if (tls.caPath) {
|
|
81
|
+
credentials.ca = readTlsFile(tls.caPath);
|
|
82
|
+
}
|
|
83
|
+
return credentials;
|
|
84
|
+
}
|
|
85
|
+
// ============================================================================
|
|
86
|
+
// Server Defaults
|
|
87
|
+
// ============================================================================
|
|
88
|
+
/**
|
|
89
|
+
* Resolves server options with framework environment defaults.
|
|
90
|
+
*/
|
|
91
|
+
function resolveOptions(options = {}) {
|
|
92
|
+
const frameworkConfig = getFrameworkConfig();
|
|
93
|
+
return {
|
|
94
|
+
port: options.port ?? frameworkConfig.MCP_PORT,
|
|
95
|
+
bindHost: options.bindHost ?? frameworkConfig.MCP_BIND_HOST,
|
|
96
|
+
};
|
|
97
|
+
}
|
|
98
|
+
// ============================================================================
|
|
99
|
+
// HTTP Server
|
|
100
|
+
// ============================================================================
|
|
101
|
+
/**
|
|
102
|
+
* Creates and starts a plain HTTP server.
|
|
103
|
+
*
|
|
104
|
+
* Resolves after the server is listening and ready to accept connections.
|
|
105
|
+
*
|
|
106
|
+
* @param app - Configured Express application
|
|
107
|
+
* @param options - Server configuration (defaults to environment variables)
|
|
108
|
+
* @returns Running HTTP server instance
|
|
109
|
+
*/
|
|
110
|
+
export function startHttpServer(app, options = {}) {
|
|
111
|
+
const { port, bindHost } = resolveOptions(options);
|
|
112
|
+
return new Promise((resolve, reject) => {
|
|
113
|
+
const server = createHttpServer(app);
|
|
114
|
+
server.requestTimeout = HTTP_REQUEST_TIMEOUT;
|
|
115
|
+
server.headersTimeout = HTTP_HEADERS_TIMEOUT;
|
|
116
|
+
server.keepAliveTimeout = HTTP_KEEP_ALIVE_TIMEOUT;
|
|
117
|
+
server.on("error", (error) => {
|
|
118
|
+
reject(handleServerError(error, port, bindHost));
|
|
119
|
+
});
|
|
120
|
+
server.listen(port, bindHost, () => {
|
|
121
|
+
// @node-api — server.address() returns string | AddressInfo | null; inside listen() callback it is always AddressInfo
|
|
122
|
+
const addr = server.address();
|
|
123
|
+
logger.info(LogMessages.HTTP_LISTENING, addr.address, addr.port);
|
|
124
|
+
resolve(server);
|
|
125
|
+
});
|
|
126
|
+
});
|
|
127
|
+
}
|
|
128
|
+
// ============================================================================
|
|
129
|
+
// HTTPS Server
|
|
130
|
+
// ============================================================================
|
|
131
|
+
/**
|
|
132
|
+
* Creates and starts an HTTPS server with TLS.
|
|
133
|
+
*
|
|
134
|
+
* Reads TLS credentials from the filesystem at startup.
|
|
135
|
+
* Resolves after the server is listening and ready to accept connections.
|
|
136
|
+
* Certificate rotation requires server restart.
|
|
137
|
+
*
|
|
138
|
+
* @param app - Configured Express application
|
|
139
|
+
* @param options - Server configuration with TLS options
|
|
140
|
+
* @returns Running HTTPS server instance
|
|
141
|
+
*/
|
|
142
|
+
export function startHttpsServer(app, options) {
|
|
143
|
+
const { port, bindHost } = resolveOptions(options);
|
|
144
|
+
const credentials = readTlsCredentials(options.tls);
|
|
145
|
+
return new Promise((resolve, reject) => {
|
|
146
|
+
const server = createHttpsServer(credentials, app);
|
|
147
|
+
server.requestTimeout = HTTP_REQUEST_TIMEOUT;
|
|
148
|
+
server.headersTimeout = HTTP_HEADERS_TIMEOUT;
|
|
149
|
+
server.keepAliveTimeout = HTTP_KEEP_ALIVE_TIMEOUT;
|
|
150
|
+
server.on("error", (error) => {
|
|
151
|
+
reject(handleServerError(error, port, bindHost));
|
|
152
|
+
});
|
|
153
|
+
server.listen(port, bindHost, () => {
|
|
154
|
+
// @node-api — server.address() returns string | AddressInfo | null; inside listen() callback it is always AddressInfo
|
|
155
|
+
const addr = server.address();
|
|
156
|
+
logger.info(LogMessages.HTTPS_LISTENING, addr.address, addr.port);
|
|
157
|
+
resolve(server);
|
|
158
|
+
});
|
|
159
|
+
});
|
|
160
|
+
}
|
|
161
|
+
// ============================================================================
|
|
162
|
+
// Error Handling
|
|
163
|
+
// ============================================================================
|
|
164
|
+
/**
|
|
165
|
+
* Handles critical server errors like EADDRINUSE and EACCES.
|
|
166
|
+
*
|
|
167
|
+
* @param error - Node.js error with errno code
|
|
168
|
+
* @param port - Configured port number
|
|
169
|
+
* @param bindHost - Configured bind host
|
|
170
|
+
*/
|
|
171
|
+
function handleServerError(error, port, bindHost) {
|
|
172
|
+
if (error.syscall !== "listen") {
|
|
173
|
+
return error;
|
|
174
|
+
}
|
|
175
|
+
const bind = `${bindHost}:${port}`;
|
|
176
|
+
switch (error.code) {
|
|
177
|
+
case "EADDRINUSE":
|
|
178
|
+
logger.error(LogMessages.PORT_IN_USE, bind);
|
|
179
|
+
return TransportError.portInUse(bind);
|
|
180
|
+
case "EACCES":
|
|
181
|
+
logger.error(LogMessages.PORT_REQUIRES_PRIVILEGES, bind);
|
|
182
|
+
return TransportError.privilegesRequired(bind);
|
|
183
|
+
default:
|
|
184
|
+
logger.error(LogMessages.SERVER_ERROR, error.message);
|
|
185
|
+
return error;
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
//# sourceMappingURL=http-server.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"http-server.js","sourceRoot":"","sources":["../../../src/server/http/http-server.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* HTTP Transport
|
|
3
|
+
*
|
|
4
|
+
* Starts an HTTP or HTTPS server from a configured Express application.
|
|
5
|
+
* Returns a lightweight TransportHandle for shutdown and info queries.
|
|
6
|
+
*
|
|
7
|
+
* @module server/http/http-transport
|
|
8
|
+
*/
|
|
9
|
+
import type { Application } from "express";
|
|
10
|
+
import type { TransportHandle } from "../transport/types.js";
|
|
11
|
+
import type { HttpTransportOptions, HttpsTransportOptions } from "../server-options.js";
|
|
12
|
+
/**
|
|
13
|
+
* Options for starting the HTTP transport.
|
|
14
|
+
*
|
|
15
|
+
* Accepts the narrowed discriminated union member directly.
|
|
16
|
+
*/
|
|
17
|
+
export interface HttpTransportStartOptions {
|
|
18
|
+
/** The HTTP or HTTPS transport configuration from the discriminated union */
|
|
19
|
+
readonly transport: HttpTransportOptions | HttpsTransportOptions;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Starts an HTTP or HTTPS transport server.
|
|
23
|
+
*
|
|
24
|
+
* Creates and starts the appropriate server:
|
|
25
|
+
* - HTTP mode: Plain HTTP server (development, behind reverse proxy)
|
|
26
|
+
* - HTTPS mode: HTTPS server with TLS (direct TLS termination)
|
|
27
|
+
*
|
|
28
|
+
* @param app - Configured Express application
|
|
29
|
+
* @param options - Transport configuration
|
|
30
|
+
* @returns TransportHandle for shutdown and runtime info
|
|
31
|
+
*/
|
|
32
|
+
export declare function startHttpTransport(app: Application, options: HttpTransportStartOptions): Promise<TransportHandle>;
|
|
33
|
+
//# sourceMappingURL=http-transport.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"http-transport.d.ts","sourceRoot":"","sources":["../../../src/server/http/http-transport.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAE3C,OAAO,KAAK,EAAE,eAAe,EAAiB,MAAM,uBAAuB,CAAC;AAC5E,OAAO,KAAK,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAmBxF;;;;GAIG;AACH,MAAM,WAAW,yBAAyB;IACxC,6EAA6E;IAC7E,QAAQ,CAAC,SAAS,EAAE,oBAAoB,GAAG,qBAAqB,CAAC;CAClE;AAMD;;;;;;;;;;GAUG;AACH,wBAAsB,kBAAkB,CACtC,GAAG,EAAE,WAAW,EAChB,OAAO,EAAE,yBAAyB,GACjC,OAAO,CAAC,eAAe,CAAC,CAsD1B"}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* HTTP Transport
|
|
3
|
+
*
|
|
4
|
+
* Starts an HTTP or HTTPS server from a configured Express application.
|
|
5
|
+
* Returns a lightweight TransportHandle for shutdown and info queries.
|
|
6
|
+
*
|
|
7
|
+
* @module server/http/http-transport
|
|
8
|
+
*/
|
|
9
|
+
import { startHttpServer, startHttpsServer } from "./http-server.js";
|
|
10
|
+
import { logger as baseLogger } from "../../logger/index.js";
|
|
11
|
+
import { TRANSPORT_LOG_COMPONENTS } from "../transport/constants.js";
|
|
12
|
+
const logger = baseLogger.child({
|
|
13
|
+
component: TRANSPORT_LOG_COMPONENTS.HTTP_SERVER,
|
|
14
|
+
});
|
|
15
|
+
const LogMessages = {
|
|
16
|
+
TRANSPORT_STARTING: "Starting %s transport...",
|
|
17
|
+
SERVER_CLOSED: "HTTP server closed",
|
|
18
|
+
SHUTDOWN_ERROR: "Error during HTTP server shutdown: %s",
|
|
19
|
+
};
|
|
20
|
+
// ============================================================================
|
|
21
|
+
// HTTP Transport Function
|
|
22
|
+
// ============================================================================
|
|
23
|
+
/**
|
|
24
|
+
* Starts an HTTP or HTTPS transport server.
|
|
25
|
+
*
|
|
26
|
+
* Creates and starts the appropriate server:
|
|
27
|
+
* - HTTP mode: Plain HTTP server (development, behind reverse proxy)
|
|
28
|
+
* - HTTPS mode: HTTPS server with TLS (direct TLS termination)
|
|
29
|
+
*
|
|
30
|
+
* @param app - Configured Express application
|
|
31
|
+
* @param options - Transport configuration
|
|
32
|
+
* @returns TransportHandle for shutdown and runtime info
|
|
33
|
+
*/
|
|
34
|
+
export async function startHttpTransport(app, options) {
|
|
35
|
+
const startedAt = new Date();
|
|
36
|
+
const { transport } = options;
|
|
37
|
+
const useTls = transport.mode === "https";
|
|
38
|
+
logger.debug(LogMessages.TRANSPORT_STARTING, useTls ? "HTTPS" : "HTTP");
|
|
39
|
+
const serverOptions = {
|
|
40
|
+
port: transport.port,
|
|
41
|
+
bindHost: transport.host,
|
|
42
|
+
};
|
|
43
|
+
let server;
|
|
44
|
+
if (useTls) {
|
|
45
|
+
server = await startHttpsServer(app, {
|
|
46
|
+
...serverOptions,
|
|
47
|
+
tls: transport.tls,
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
else {
|
|
51
|
+
server = await startHttpServer(app, serverOptions);
|
|
52
|
+
}
|
|
53
|
+
return {
|
|
54
|
+
async shutdown() {
|
|
55
|
+
// Close existing keep-alive connections before stopping the server.
|
|
56
|
+
// server.close() alone only stops accepting NEW connections — existing
|
|
57
|
+
// idle keep-alive connections hang indefinitely until they time out,
|
|
58
|
+
// blocking graceful shutdown. Available since Node.js 18.2+.
|
|
59
|
+
server.closeAllConnections();
|
|
60
|
+
await new Promise((resolve, reject) => {
|
|
61
|
+
server.close((err) => {
|
|
62
|
+
if (err) {
|
|
63
|
+
logger.error(LogMessages.SHUTDOWN_ERROR, err.message);
|
|
64
|
+
reject(err);
|
|
65
|
+
}
|
|
66
|
+
else {
|
|
67
|
+
logger.info(LogMessages.SERVER_CLOSED);
|
|
68
|
+
resolve();
|
|
69
|
+
}
|
|
70
|
+
});
|
|
71
|
+
});
|
|
72
|
+
},
|
|
73
|
+
info() {
|
|
74
|
+
return {
|
|
75
|
+
state: "running",
|
|
76
|
+
startedAt,
|
|
77
|
+
mode: transport.mode,
|
|
78
|
+
host: transport.host,
|
|
79
|
+
port: transport.port,
|
|
80
|
+
};
|
|
81
|
+
},
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
//# sourceMappingURL=http-transport.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"http-transport.js","sourceRoot":"","sources":["../../../src/server/http/http-transport.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAOH,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACrE,OAAO,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AAErE,MAAM,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC;IAC9B,SAAS,EAAE,wBAAwB,CAAC,WAAW;CAChD,CAAC,CAAC;AAEH,MAAM,WAAW,GAAG;IAClB,kBAAkB,EAAE,0BAA0B;IAC9C,aAAa,EAAE,oBAAoB;IACnC,cAAc,EAAE,uCAAuC;CAC/C,CAAC;AAgBX,+EAA+E;AAC/E,0BAA0B;AAC1B,+EAA+E;AAE/E;;;;;;;;;;GAUG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,GAAgB,EAChB,OAAkC;IAElC,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC;IAC7B,MAAM,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC;IAC9B,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,KAAK,OAAO,CAAC;IAE1C,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,kBAAkB,EAAE,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IAExE,MAAM,aAAa,GAAG;QACpB,IAAI,EAAE,SAAS,CAAC,IAAI;QACpB,QAAQ,EAAE,SAAS,CAAC,IAAI;KACzB,CAAC;IAEF,IAAI,MAAc,CAAC;IAEnB,IAAI,MAAM,EAAE,CAAC;QACX,MAAM,GAAG,MAAM,gBAAgB,CAAC,GAAG,EAAE;YACnC,GAAG,aAAa;YAChB,GAAG,EAAE,SAAS,CAAC,GAAG;SACnB,CAAC,CAAC;IACL,CAAC;SAAM,CAAC;QACN,MAAM,GAAG,MAAM,eAAe,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC;IACrD,CAAC;IAED,OAAO;QACL,KAAK,CAAC,QAAQ;YACZ,oEAAoE;YACpE,uEAAuE;YACvE,qEAAqE;YACrE,6DAA6D;YAC7D,MAAM,CAAC,mBAAmB,EAAE,CAAC;YAE7B,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;gBAC1C,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;oBACnB,IAAI,GAAG,EAAE,CAAC;wBACR,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,cAAc,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;wBACtD,MAAM,CAAC,GAAG,CAAC,CAAC;oBACd,CAAC;yBAAM,CAAC;wBACN,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;wBACvC,OAAO,EAAE,CAAC;oBACZ,CAAC;gBACH,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACL,CAAC;QAED,IAAI;YACF,OAAO;gBACL,KAAK,EAAE,SAAS;gBAChB,SAAS;gBACT,IAAI,EAAE,SAAS,CAAC,IAAI;gBACpB,IAAI,EAAE,SAAS,CAAC,IAAI;gBACpB,IAAI,EAAE,SAAS,CAAC,IAAI;aACrB,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* HTTP Transport
|
|
3
|
+
*
|
|
4
|
+
* Express application factory and HTTP/HTTPS server creation.
|
|
5
|
+
*
|
|
6
|
+
* @module server/http
|
|
7
|
+
*/
|
|
8
|
+
export { createExpressApp } from "./express-app.js";
|
|
9
|
+
export type { ExpressAppOptions } from "./express-app.js";
|
|
10
|
+
export { startHttpServer, startHttpsServer, readTlsCredentials } from "./http-server.js";
|
|
11
|
+
export type { HttpServerOptions, HttpsServerOptions } from "./http-server.js";
|
|
12
|
+
export { startHttpTransport } from "./http-transport.js";
|
|
13
|
+
export type { HttpTransportStartOptions } from "./http-transport.js";
|
|
14
|
+
export type { SessionFactory, TransportHandle, TransportInfo, TransportState } from "../transport/types.js";
|
|
15
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/server/http/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,YAAY,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACzF,YAAY,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAC9E,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,YAAY,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AACrE,YAAY,EAAE,cAAc,EAAE,eAAe,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* HTTP Transport
|
|
3
|
+
*
|
|
4
|
+
* Express application factory and HTTP/HTTPS server creation.
|
|
5
|
+
*
|
|
6
|
+
* @module server/http
|
|
7
|
+
*/
|
|
8
|
+
export { createExpressApp } from "./express-app.js";
|
|
9
|
+
export { startHttpServer, startHttpsServer, readTlsCredentials } from "./http-server.js";
|
|
10
|
+
export { startHttpTransport } from "./http-transport.js";
|
|
11
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/server/http/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEpD,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAEzF,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Server Module
|
|
3
|
+
*
|
|
4
|
+
* High-level API for creating MCP servers with minimal boilerplate.
|
|
5
|
+
* Re-exports builder, session, and transport for convenience.
|
|
6
|
+
*
|
|
7
|
+
* @module server
|
|
8
|
+
*/
|
|
9
|
+
export { createServer } from "./create-server.js";
|
|
10
|
+
export type { CreateServerOptions, CreateServerResult } from "./types.js";
|
|
11
|
+
export { isHttpTransport } from "./server-options.js";
|
|
12
|
+
export type { TransportMode, BaseHttpTransportOptions, StdioTransportOptions, HttpTransportOptions, HttpsTransportOptions, TransportOptions, TlsConfig, ServerCapabilities, HealthConfig, SessionConfigOptions, ServerOptions, ServerInstance, } from "./server-options.js";
|
|
13
|
+
export type { ServerState, ServerLifecycleHooks, ShutdownConfig } from "./lifecycle.js";
|
|
14
|
+
export { McpServerBuilder } from "./builder/index.js";
|
|
15
|
+
export type { ServerBuilder } from "./builder/index.js";
|
|
16
|
+
export { McpSessionFactory, SessionManagerImpl, InMemorySessionStore, SessionHousekeeper, McpSession, createSession, createAuthContext, ANONYMOUS_AUTH, SESSION_CLOSE_REASONS, } from "./session/index.js";
|
|
17
|
+
export type { SessionFactoryConfig, Session, SessionManager, SessionStore, SessionConfig, SessionStats, HousekeeperConfig, AuthContext, ClientInfo, SessionState, SessionCloseReason, CreateSessionOptions, } from "./session/index.js";
|
|
18
|
+
export type { SessionFactory, TransportHandle, TransportInfo, TransportType, TransportState, TransportContext, HeartbeatCapableTransport, HeartbeatState, } from "./transport/types.js";
|
|
19
|
+
export { createTransportContext, isHeartbeatCapable } from "./transport/types.js";
|
|
20
|
+
export type { HttpTransportStartOptions, HttpServerOptions, HttpsServerOptions } from "./http/index.js";
|
|
21
|
+
export { startStdioTransport } from "./transport/stdio-transport.js";
|
|
22
|
+
export { ReadinessStatus } from "./routes/readiness-status.js";
|
|
23
|
+
export type { ReadinessStatusValue } from "./routes/readiness-status.js";
|
|
24
|
+
export type { HealthRouterOptions, SseInfoProvider } from "./routes/index.js";
|
|
25
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAMH,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,YAAY,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAM1E,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAEtD,YAAY,EACV,aAAa,EACb,wBAAwB,EACxB,qBAAqB,EACrB,oBAAoB,EACpB,qBAAqB,EACrB,gBAAgB,EAChB,SAAS,EACT,kBAAkB,EAClB,YAAY,EACZ,oBAAoB,EACpB,aAAa,EACb,cAAc,GACf,MAAM,qBAAqB,CAAC;AAM7B,YAAY,EAAE,WAAW,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAMxF,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD,YAAY,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAMxD,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,oBAAoB,EACpB,kBAAkB,EAClB,UAAU,EAEV,aAAa,EACb,iBAAiB,EACjB,cAAc,EACd,qBAAqB,GACtB,MAAM,oBAAoB,CAAC;AAE5B,YAAY,EACV,oBAAoB,EACpB,OAAO,EACP,cAAc,EACd,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,iBAAiB,EACjB,WAAW,EACX,UAAU,EACV,YAAY,EACZ,kBAAkB,EAClB,oBAAoB,GACrB,MAAM,oBAAoB,CAAC;AAM5B,YAAY,EACV,cAAc,EACd,eAAe,EACf,aAAa,EACb,aAAa,EACb,cAAc,EACd,gBAAgB,EAChB,yBAAyB,EACzB,cAAc,GACf,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAElF,YAAY,EAAE,yBAAyB,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAQxG,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AAQrE,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,YAAY,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACzE,YAAY,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Server Module
|
|
3
|
+
*
|
|
4
|
+
* High-level API for creating MCP servers with minimal boilerplate.
|
|
5
|
+
* Re-exports builder, session, and transport for convenience.
|
|
6
|
+
*
|
|
7
|
+
* @module server
|
|
8
|
+
*/
|
|
9
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
10
|
+
// Create Server (main entry point)
|
|
11
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
12
|
+
export { createServer } from "./create-server.js";
|
|
13
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
14
|
+
// Server Configuration Types
|
|
15
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
16
|
+
export { isHttpTransport } from "./server-options.js";
|
|
17
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
18
|
+
// Builder
|
|
19
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
20
|
+
export { McpServerBuilder } from "./builder/index.js";
|
|
21
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
22
|
+
// Session (includes SessionFactory, Manager, Store, MCP Session)
|
|
23
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
24
|
+
export { McpSessionFactory, SessionManagerImpl, InMemorySessionStore, SessionHousekeeper, McpSession,
|
|
25
|
+
// Factories
|
|
26
|
+
createSession, createAuthContext, ANONYMOUS_AUTH, SESSION_CLOSE_REASONS, } from "./session/index.js";
|
|
27
|
+
export { createTransportContext, isHeartbeatCapable } from "./transport/types.js";
|
|
28
|
+
// Only stdio is statically exported from this barrel.
|
|
29
|
+
// Express-dependent HTTP transport functions (startHttpTransport, createExpressApp,
|
|
30
|
+
// startHttpServer, startHttpsServer, readTlsCredentials) are available via the
|
|
31
|
+
// 'mcp-server-framework/http' subpath import.
|
|
32
|
+
// This prevents Express from loading at import time, allowing OTEL instrumentation
|
|
33
|
+
// to initialize before Express is required.
|
|
34
|
+
export { startStdioTransport } from "./transport/stdio-transport.js";
|
|
35
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
36
|
+
// Routes
|
|
37
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
38
|
+
// ReadinessStatus from dedicated module — avoids loading Express via routes barrel.
|
|
39
|
+
// createHealthRouter is framework-internal (used by createExpressApp).
|
|
40
|
+
export { ReadinessStatus } from "./routes/readiness-status.js";
|
|
41
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,gFAAgF;AAChF,mCAAmC;AACnC,gFAAgF;AAEhF,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAIlD,gFAAgF;AAChF,6BAA6B;AAC7B,gFAAgF;AAEhF,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAuBtD,gFAAgF;AAChF,UAAU;AACV,gFAAgF;AAEhF,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAItD,gFAAgF;AAChF,iEAAiE;AACjE,gFAAgF;AAEhF,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,oBAAoB,EACpB,kBAAkB,EAClB,UAAU;AACV,YAAY;AACZ,aAAa,EACb,iBAAiB,EACjB,cAAc,EACd,qBAAqB,GACtB,MAAM,oBAAoB,CAAC;AAgC5B,OAAO,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAIlF,sDAAsD;AACtD,oFAAoF;AACpF,+EAA+E;AAC/E,8CAA8C;AAC9C,mFAAmF;AACnF,4CAA4C;AAC5C,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AAErE,gFAAgF;AAChF,SAAS;AACT,gFAAgF;AAEhF,oFAAoF;AACpF,uEAAuE;AACvE,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC"}
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Server Lifecycle Types
|
|
3
|
+
*
|
|
4
|
+
* Defines lifecycle hooks and state management for MCP servers.
|
|
5
|
+
* These types enable clean startup/shutdown handling and event-driven architecture.
|
|
6
|
+
*
|
|
7
|
+
* @module server/lifecycle
|
|
8
|
+
*/
|
|
9
|
+
/**
|
|
10
|
+
* Server lifecycle states.
|
|
11
|
+
*
|
|
12
|
+
* State machine:
|
|
13
|
+
* ```
|
|
14
|
+
* created → starting → running → stopping → stopped
|
|
15
|
+
* ↓ ↓
|
|
16
|
+
* error ←────┘
|
|
17
|
+
* ```
|
|
18
|
+
*/
|
|
19
|
+
export type ServerState = "created" | "starting" | "running" | "stopping" | "stopped" | "error";
|
|
20
|
+
/**
|
|
21
|
+
* All possible server states as a readonly array.
|
|
22
|
+
*
|
|
23
|
+
* @public Exported for consumer validation and iteration.
|
|
24
|
+
* The {@link ServerState} type is the recommended way to type state values.
|
|
25
|
+
*/
|
|
26
|
+
export declare const SERVER_STATES: readonly ["created", "starting", "running", "stopping", "stopped", "error"];
|
|
27
|
+
/**
|
|
28
|
+
* Lifecycle hooks for MCP servers.
|
|
29
|
+
*
|
|
30
|
+
* Implement these hooks to execute code at specific points in the server lifecycle.
|
|
31
|
+
* All hooks are optional and async-friendly.
|
|
32
|
+
*
|
|
33
|
+
* @example
|
|
34
|
+
* ```typescript
|
|
35
|
+
* const hooks: ServerLifecycleHooks = {
|
|
36
|
+
* onStarting: async () => {
|
|
37
|
+
* await initializeDatabase();
|
|
38
|
+
* },
|
|
39
|
+
* onStarted: async () => {
|
|
40
|
+
* logger.info('Server is ready');
|
|
41
|
+
* },
|
|
42
|
+
* onStopping: async () => {
|
|
43
|
+
* await flushMetrics();
|
|
44
|
+
* },
|
|
45
|
+
* onStopped: async () => {
|
|
46
|
+
* await closeConnections();
|
|
47
|
+
* },
|
|
48
|
+
* };
|
|
49
|
+
* ```
|
|
50
|
+
*/
|
|
51
|
+
export interface ServerLifecycleHooks {
|
|
52
|
+
/**
|
|
53
|
+
* Called before server starts accepting connections.
|
|
54
|
+
* Use for initialization tasks (database, cache, external services).
|
|
55
|
+
*/
|
|
56
|
+
onStarting?: () => void | Promise<void>;
|
|
57
|
+
/**
|
|
58
|
+
* Called after server is fully started and accepting connections.
|
|
59
|
+
* Use for logging, metrics, or notifying external systems.
|
|
60
|
+
*/
|
|
61
|
+
onStarted?: () => void | Promise<void>;
|
|
62
|
+
/**
|
|
63
|
+
* Called when server begins shutdown process.
|
|
64
|
+
* Use for graceful cleanup (flush buffers, notify clients).
|
|
65
|
+
*/
|
|
66
|
+
onStopping?: () => void | Promise<void>;
|
|
67
|
+
/**
|
|
68
|
+
* Called after server has fully stopped.
|
|
69
|
+
* Use for final cleanup (close file handles, database connections).
|
|
70
|
+
*/
|
|
71
|
+
onStopped?: () => void | Promise<void>;
|
|
72
|
+
/**
|
|
73
|
+
* Called when an unhandled error occurs.
|
|
74
|
+
* Use for error reporting/logging.
|
|
75
|
+
*/
|
|
76
|
+
onError?: (error: Error) => void | Promise<void>;
|
|
77
|
+
/**
|
|
78
|
+
* Called when a client connects to the server.
|
|
79
|
+
* Use for session initialization or connection tracking.
|
|
80
|
+
*
|
|
81
|
+
* **Important:** This hook is invoked asynchronously (fire-and-forget) during
|
|
82
|
+
* session creation. It is NOT awaited — the session is returned to the transport
|
|
83
|
+
* before this hook completes. For async setup that must finish before the session
|
|
84
|
+
* handles requests, use the tool/resource handlers themselves.
|
|
85
|
+
*
|
|
86
|
+
* During session close, {@link onClientDisconnected} IS awaited.
|
|
87
|
+
*/
|
|
88
|
+
onClientConnected?: (sessionId: string) => void | Promise<void>;
|
|
89
|
+
/**
|
|
90
|
+
* Called when a client disconnects from the server.
|
|
91
|
+
* Use for session cleanup or connection tracking.
|
|
92
|
+
*/
|
|
93
|
+
onClientDisconnected?: (sessionId: string) => void | Promise<void>;
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Configuration for graceful shutdown behavior.
|
|
97
|
+
*/
|
|
98
|
+
export interface ShutdownConfig {
|
|
99
|
+
/** Maximum time to wait for graceful shutdown (ms) */
|
|
100
|
+
readonly timeoutMs: number;
|
|
101
|
+
/** Whether to force exit after timeout */
|
|
102
|
+
readonly forceExitOnTimeout: boolean;
|
|
103
|
+
/** Signals to listen for (default: ['SIGINT', 'SIGTERM']) */
|
|
104
|
+
readonly signals?: ReadonlyArray<NodeJS.Signals>;
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Default shutdown configuration values.
|
|
108
|
+
*
|
|
109
|
+
* Configurable only via `ServerOptions.shutdown` (programmatic API).
|
|
110
|
+
* Not exposed as env variable or config file field — shutdown behavior
|
|
111
|
+
* is typically set per-deployment in code, not per-environment.
|
|
112
|
+
*/
|
|
113
|
+
export declare const DEFAULT_SHUTDOWN_CONFIG: ShutdownConfig;
|
|
114
|
+
//# sourceMappingURL=lifecycle.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lifecycle.d.ts","sourceRoot":"","sources":["../../src/server/lifecycle.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAMH;;;;;;;;;GASG;AACH,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,UAAU,GAAG,SAAS,GAAG,UAAU,GAAG,SAAS,GAAG,OAAO,CAAC;AAEhG;;;;;GAKG;AACH,eAAO,MAAM,aAAa,6EAA8E,CAAC;AAMzG;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,WAAW,oBAAoB;IACnC;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAExC;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEvC;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAExC;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEvC;;;OAGG;IACH,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjD;;;;;;;;;;OAUG;IACH,iBAAiB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEhE;;;OAGG;IACH,oBAAoB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACpE;AAMD;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,sDAAsD;IACtD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,0CAA0C;IAC1C,QAAQ,CAAC,kBAAkB,EAAE,OAAO,CAAC;IACrC,6DAA6D;IAC7D,QAAQ,CAAC,OAAO,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;CAClD;AAKD;;;;;;GAMG;AACH,eAAO,MAAM,uBAAuB,EAAE,cAIrC,CAAC"}
|