@confluentinc/mcp-confluent 1.2.1 → 1.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +174 -791
- package/assets/oauth-templates/callback-failure.html +22 -0
- package/assets/oauth-templates/callback-success.html +19 -0
- package/assets/oauth-templates/logo.html +91 -0
- package/assets/oauth-templates/styles.html +49 -0
- package/config.example.yaml +149 -0
- package/config.oauth.example.yaml +45 -0
- package/dist/cli.d.ts +59 -12
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +131 -61
- package/dist/cli.js.map +1 -1
- package/dist/config/env-config.d.ts +33 -0
- package/dist/config/env-config.d.ts.map +1 -0
- package/dist/config/env-config.js +473 -0
- package/dist/config/env-config.js.map +1 -0
- package/dist/config/index.d.ts +31 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +76 -0
- package/dist/config/index.js.map +1 -0
- package/dist/config/interpolation.d.ts +9 -0
- package/dist/config/interpolation.d.ts.map +1 -0
- package/dist/config/interpolation.js +51 -0
- package/dist/config/interpolation.js.map +1 -0
- package/dist/config/models.d.ts +396 -0
- package/dist/config/models.d.ts.map +1 -0
- package/dist/config/models.js +401 -0
- package/dist/config/models.js.map +1 -0
- package/dist/config/validation.d.ts +9 -0
- package/dist/config/validation.d.ts.map +1 -0
- package/dist/config/validation.js +46 -0
- package/dist/config/validation.js.map +1 -0
- package/dist/confluent/base-client-manager.d.ts +100 -0
- package/dist/confluent/base-client-manager.d.ts.map +1 -0
- package/dist/confluent/base-client-manager.js +188 -0
- package/dist/confluent/base-client-manager.js.map +1 -0
- package/dist/confluent/client-manager.d.ts +42 -94
- package/dist/confluent/client-manager.d.ts.map +1 -1
- package/dist/confluent/client-manager.js +5 -242
- package/dist/confluent/client-manager.js.map +1 -1
- package/dist/confluent/config-telemetry.d.ts +41 -0
- package/dist/confluent/config-telemetry.d.ts.map +1 -0
- package/dist/confluent/config-telemetry.js +17 -0
- package/dist/confluent/config-telemetry.js.map +1 -0
- package/dist/confluent/direct-client-manager.d.ts +43 -0
- package/dist/confluent/direct-client-manager.d.ts.map +1 -0
- package/dist/confluent/direct-client-manager.js +146 -0
- package/dist/confluent/direct-client-manager.js.map +1 -0
- package/dist/confluent/middleware.d.ts +32 -4
- package/dist/confluent/middleware.d.ts.map +1 -1
- package/dist/confluent/middleware.js +46 -2
- package/dist/confluent/middleware.js.map +1 -1
- package/dist/confluent/node-deps.d.ts +32 -39
- package/dist/confluent/node-deps.d.ts.map +1 -1
- package/dist/confluent/node-deps.js +42 -7
- package/dist/confluent/node-deps.js.map +1 -1
- package/dist/confluent/oauth/auth-context.d.ts +94 -0
- package/dist/confluent/oauth/auth-context.d.ts.map +1 -0
- package/dist/confluent/oauth/auth-context.js +323 -0
- package/dist/confluent/oauth/auth-context.js.map +1 -0
- package/dist/confluent/oauth/auth0-config.d.ts +12 -0
- package/dist/confluent/oauth/auth0-config.d.ts.map +1 -0
- package/dist/confluent/oauth/auth0-config.js +43 -0
- package/dist/confluent/oauth/auth0-config.js.map +1 -0
- package/dist/confluent/oauth/callback-pages.d.ts +5 -0
- package/dist/confluent/oauth/callback-pages.d.ts.map +1 -0
- package/dist/confluent/oauth/callback-pages.js +38 -0
- package/dist/confluent/oauth/callback-pages.js.map +1 -0
- package/dist/confluent/oauth/crypto-utils.d.ts +16 -0
- package/dist/confluent/oauth/crypto-utils.d.ts.map +1 -0
- package/dist/confluent/oauth/crypto-utils.js +23 -0
- package/dist/confluent/oauth/crypto-utils.js.map +1 -0
- package/dist/confluent/oauth/errors.d.ts +27 -0
- package/dist/confluent/oauth/errors.d.ts.map +1 -0
- package/dist/confluent/oauth/errors.js +6 -0
- package/dist/confluent/oauth/errors.js.map +1 -0
- package/dist/confluent/oauth/oauth-holder.d.ts +34 -0
- package/dist/confluent/oauth/oauth-holder.d.ts.map +1 -0
- package/dist/confluent/oauth/oauth-holder.js +155 -0
- package/dist/confluent/oauth/oauth-holder.js.map +1 -0
- package/dist/confluent/oauth/pkce-login.d.ts +26 -0
- package/dist/confluent/oauth/pkce-login.d.ts.map +1 -0
- package/dist/confluent/oauth/pkce-login.js +161 -0
- package/dist/confluent/oauth/pkce-login.js.map +1 -0
- package/dist/confluent/oauth/token-chain.d.ts +53 -0
- package/dist/confluent/oauth/token-chain.d.ts.map +1 -0
- package/dist/confluent/oauth/token-chain.js +141 -0
- package/dist/confluent/oauth/token-chain.js.map +1 -0
- package/dist/confluent/oauth/token-lifetimes.d.ts +13 -0
- package/dist/confluent/oauth/token-lifetimes.d.ts.map +1 -0
- package/dist/confluent/oauth/token-lifetimes.js +13 -0
- package/dist/confluent/oauth/token-lifetimes.js.map +1 -0
- package/dist/confluent/oauth/types.d.ts +68 -0
- package/dist/confluent/oauth/types.d.ts.map +1 -0
- package/dist/confluent/oauth/types.js +2 -0
- package/dist/confluent/oauth/types.js.map +1 -0
- package/dist/confluent/oauth-client-manager.d.ts +78 -0
- package/dist/confluent/oauth-client-manager.d.ts.map +1 -0
- package/dist/confluent/oauth-client-manager.js +265 -0
- package/dist/confluent/oauth-client-manager.js.map +1 -0
- package/dist/confluent/oauth-resource-resolvers.d.ts +6 -0
- package/dist/confluent/oauth-resource-resolvers.d.ts.map +1 -0
- package/dist/confluent/oauth-resource-resolvers.js +65 -0
- package/dist/confluent/oauth-resource-resolvers.js.map +1 -0
- package/dist/confluent/telemetry.d.ts +32 -1
- package/dist/confluent/telemetry.d.ts.map +1 -1
- package/dist/confluent/telemetry.js +31 -8
- package/dist/confluent/telemetry.js.map +1 -1
- package/dist/confluent/tools/base-tools.d.ts +108 -34
- package/dist/confluent/tools/base-tools.d.ts.map +1 -1
- package/dist/confluent/tools/base-tools.js +73 -10
- package/dist/confluent/tools/base-tools.js.map +1 -1
- package/dist/confluent/tools/cluster-arg-resolvers.d.ts +75 -0
- package/dist/confluent/tools/cluster-arg-resolvers.d.ts.map +1 -0
- package/dist/confluent/tools/cluster-arg-resolvers.js +127 -0
- package/dist/confluent/tools/cluster-arg-resolvers.js.map +1 -0
- package/dist/confluent/tools/connection-predicates.d.ts +168 -0
- package/dist/confluent/tools/connection-predicates.d.ts.map +1 -0
- package/dist/confluent/tools/connection-predicates.js +273 -0
- package/dist/confluent/tools/connection-predicates.js.map +1 -0
- package/dist/confluent/tools/handlers/billing/list-billing-costs-handler.d.ts +3 -5
- package/dist/confluent/tools/handlers/billing/list-billing-costs-handler.d.ts.map +1 -1
- package/dist/confluent/tools/handlers/billing/list-billing-costs-handler.js +7 -19
- package/dist/confluent/tools/handlers/billing/list-billing-costs-handler.js.map +1 -1
- package/dist/confluent/tools/handlers/catalog/add-tags-to-topic.d.ts +4 -5
- package/dist/confluent/tools/handlers/catalog/add-tags-to-topic.d.ts.map +1 -1
- package/dist/confluent/tools/handlers/catalog/add-tags-to-topic.js +7 -19
- package/dist/confluent/tools/handlers/catalog/add-tags-to-topic.js.map +1 -1
- package/dist/confluent/tools/handlers/catalog/create-topic-tags.d.ts +4 -5
- package/dist/confluent/tools/handlers/catalog/create-topic-tags.d.ts.map +1 -1
- package/dist/confluent/tools/handlers/catalog/create-topic-tags.js +7 -19
- package/dist/confluent/tools/handlers/catalog/create-topic-tags.js.map +1 -1
- package/dist/confluent/tools/handlers/catalog/delete-tag.d.ts +4 -5
- package/dist/confluent/tools/handlers/catalog/delete-tag.d.ts.map +1 -1
- package/dist/confluent/tools/handlers/catalog/delete-tag.js +7 -19
- package/dist/confluent/tools/handlers/catalog/delete-tag.js.map +1 -1
- package/dist/confluent/tools/handlers/catalog/list-tags.d.ts +4 -5
- package/dist/confluent/tools/handlers/catalog/list-tags.d.ts.map +1 -1
- package/dist/confluent/tools/handlers/catalog/list-tags.js +7 -23
- package/dist/confluent/tools/handlers/catalog/list-tags.js.map +1 -1
- package/dist/confluent/tools/handlers/catalog/remove-tag-from-entity.d.ts +4 -5
- package/dist/confluent/tools/handlers/catalog/remove-tag-from-entity.d.ts.map +1 -1
- package/dist/confluent/tools/handlers/catalog/remove-tag-from-entity.js +7 -19
- package/dist/confluent/tools/handlers/catalog/remove-tag-from-entity.js.map +1 -1
- package/dist/confluent/tools/handlers/clusters/list-clusters-handler.d.ts +3 -5
- package/dist/confluent/tools/handlers/clusters/list-clusters-handler.d.ts.map +1 -1
- package/dist/confluent/tools/handlers/clusters/list-clusters-handler.js +11 -22
- package/dist/confluent/tools/handlers/clusters/list-clusters-handler.js.map +1 -1
- package/dist/confluent/tools/handlers/connect/connect-tool-handler.d.ts +21 -0
- package/dist/confluent/tools/handlers/connect/connect-tool-handler.d.ts.map +1 -0
- package/dist/confluent/tools/handlers/connect/connect-tool-handler.js +22 -0
- package/dist/confluent/tools/handlers/connect/connect-tool-handler.js.map +1 -0
- package/dist/confluent/tools/handlers/connect/create-connector-handler.d.ts +11 -7
- package/dist/confluent/tools/handlers/connect/create-connector-handler.d.ts.map +1 -1
- package/dist/confluent/tools/handlers/connect/create-connector-handler.js +23 -33
- package/dist/confluent/tools/handlers/connect/create-connector-handler.js.map +1 -1
- package/dist/confluent/tools/handlers/connect/delete-connector-handler.d.ts +6 -7
- package/dist/confluent/tools/handlers/connect/delete-connector-handler.d.ts.map +1 -1
- package/dist/confluent/tools/handlers/connect/delete-connector-handler.js +12 -26
- package/dist/confluent/tools/handlers/connect/delete-connector-handler.js.map +1 -1
- package/dist/confluent/tools/handlers/connect/list-connectors-handler.d.ts +6 -7
- package/dist/confluent/tools/handlers/connect/list-connectors-handler.d.ts.map +1 -1
- package/dist/confluent/tools/handlers/connect/list-connectors-handler.js +17 -28
- package/dist/confluent/tools/handlers/connect/list-connectors-handler.js.map +1 -1
- package/dist/confluent/tools/handlers/connect/read-connectors-handler.d.ts +6 -7
- package/dist/confluent/tools/handlers/connect/read-connectors-handler.d.ts.map +1 -1
- package/dist/confluent/tools/handlers/connect/read-connectors-handler.js +12 -26
- package/dist/confluent/tools/handlers/connect/read-connectors-handler.js.map +1 -1
- package/dist/confluent/tools/handlers/diagnostics/explain-disabled-tools-handler.d.ts +57 -0
- package/dist/confluent/tools/handlers/diagnostics/explain-disabled-tools-handler.d.ts.map +1 -0
- package/dist/confluent/tools/handlers/diagnostics/explain-disabled-tools-handler.js +122 -0
- package/dist/confluent/tools/handlers/diagnostics/explain-disabled-tools-handler.js.map +1 -0
- package/dist/confluent/tools/handlers/docs/get-product-doc-page-handler.d.ts +17 -0
- package/dist/confluent/tools/handlers/docs/get-product-doc-page-handler.d.ts.map +1 -0
- package/dist/confluent/tools/handlers/docs/get-product-doc-page-handler.js +234 -0
- package/dist/confluent/tools/handlers/docs/get-product-doc-page-handler.js.map +1 -0
- package/dist/confluent/tools/handlers/docs/search-product-docs-handler.d.ts +13 -0
- package/dist/confluent/tools/handlers/docs/search-product-docs-handler.d.ts.map +1 -0
- package/dist/confluent/tools/handlers/docs/search-product-docs-handler.js +285 -0
- package/dist/confluent/tools/handlers/docs/search-product-docs-handler.js.map +1 -0
- package/dist/confluent/tools/handlers/environments/list-environments-handler.d.ts +3 -5
- package/dist/confluent/tools/handlers/environments/list-environments-handler.d.ts.map +1 -1
- package/dist/confluent/tools/handlers/environments/list-environments-handler.js +7 -19
- package/dist/confluent/tools/handlers/environments/list-environments-handler.js.map +1 -1
- package/dist/confluent/tools/handlers/environments/read-environment-handler.d.ts +3 -5
- package/dist/confluent/tools/handlers/environments/read-environment-handler.d.ts.map +1 -1
- package/dist/confluent/tools/handlers/environments/read-environment-handler.js +7 -19
- package/dist/confluent/tools/handlers/environments/read-environment-handler.js.map +1 -1
- package/dist/confluent/tools/handlers/flink/catalog/catalog-resolver.d.ts +16 -9
- package/dist/confluent/tools/handlers/flink/catalog/catalog-resolver.d.ts.map +1 -1
- package/dist/confluent/tools/handlers/flink/catalog/catalog-resolver.js +18 -12
- package/dist/confluent/tools/handlers/flink/catalog/catalog-resolver.js.map +1 -1
- package/dist/confluent/tools/handlers/flink/catalog/describe-table-handler.d.ts +5 -7
- package/dist/confluent/tools/handlers/flink/catalog/describe-table-handler.d.ts.map +1 -1
- package/dist/confluent/tools/handlers/flink/catalog/describe-table-handler.js +17 -31
- package/dist/confluent/tools/handlers/flink/catalog/describe-table-handler.js.map +1 -1
- package/dist/confluent/tools/handlers/flink/catalog/flink-catalog-tool-handler.d.ts +14 -0
- package/dist/confluent/tools/handlers/flink/catalog/flink-catalog-tool-handler.d.ts.map +1 -0
- package/dist/confluent/tools/handlers/flink/catalog/flink-catalog-tool-handler.js +15 -0
- package/dist/confluent/tools/handlers/flink/catalog/flink-catalog-tool-handler.js.map +1 -0
- package/dist/confluent/tools/handlers/flink/catalog/get-table-info-handler.d.ts +5 -7
- package/dist/confluent/tools/handlers/flink/catalog/get-table-info-handler.d.ts.map +1 -1
- package/dist/confluent/tools/handlers/flink/catalog/get-table-info-handler.js +17 -31
- package/dist/confluent/tools/handlers/flink/catalog/get-table-info-handler.js.map +1 -1
- package/dist/confluent/tools/handlers/flink/catalog/list-catalogs-handler.d.ts +5 -7
- package/dist/confluent/tools/handlers/flink/catalog/list-catalogs-handler.d.ts.map +1 -1
- package/dist/confluent/tools/handlers/flink/catalog/list-catalogs-handler.js +14 -28
- package/dist/confluent/tools/handlers/flink/catalog/list-catalogs-handler.js.map +1 -1
- package/dist/confluent/tools/handlers/flink/catalog/list-databases-handler.d.ts +5 -7
- package/dist/confluent/tools/handlers/flink/catalog/list-databases-handler.d.ts.map +1 -1
- package/dist/confluent/tools/handlers/flink/catalog/list-databases-handler.js +14 -30
- package/dist/confluent/tools/handlers/flink/catalog/list-databases-handler.js.map +1 -1
- package/dist/confluent/tools/handlers/flink/catalog/list-tables-handler.d.ts +5 -7
- package/dist/confluent/tools/handlers/flink/catalog/list-tables-handler.d.ts.map +1 -1
- package/dist/confluent/tools/handlers/flink/catalog/list-tables-handler.js +14 -38
- package/dist/confluent/tools/handlers/flink/catalog/list-tables-handler.js.map +1 -1
- package/dist/confluent/tools/handlers/flink/create-flink-statement-handler.d.ts +5 -7
- package/dist/confluent/tools/handlers/flink/create-flink-statement-handler.d.ts.map +1 -1
- package/dist/confluent/tools/handlers/flink/create-flink-statement-handler.js +20 -32
- package/dist/confluent/tools/handlers/flink/create-flink-statement-handler.js.map +1 -1
- package/dist/confluent/tools/handlers/flink/delete-flink-statement-handler.d.ts +5 -7
- package/dist/confluent/tools/handlers/flink/delete-flink-statement-handler.d.ts.map +1 -1
- package/dist/confluent/tools/handlers/flink/delete-flink-statement-handler.js +9 -24
- package/dist/confluent/tools/handlers/flink/delete-flink-statement-handler.js.map +1 -1
- package/dist/confluent/tools/handlers/flink/diagnostics/check-health-handler.d.ts +5 -7
- package/dist/confluent/tools/handlers/flink/diagnostics/check-health-handler.d.ts.map +1 -1
- package/dist/confluent/tools/handlers/flink/diagnostics/check-health-handler.js +9 -23
- package/dist/confluent/tools/handlers/flink/diagnostics/check-health-handler.js.map +1 -1
- package/dist/confluent/tools/handlers/flink/diagnostics/detect-issues-handler.d.ts +5 -7
- package/dist/confluent/tools/handlers/flink/diagnostics/detect-issues-handler.d.ts.map +1 -1
- package/dist/confluent/tools/handlers/flink/diagnostics/detect-issues-handler.js +11 -25
- package/dist/confluent/tools/handlers/flink/diagnostics/detect-issues-handler.js.map +1 -1
- package/dist/confluent/tools/handlers/flink/diagnostics/metrics-helper.d.ts +2 -2
- package/dist/confluent/tools/handlers/flink/diagnostics/metrics-helper.d.ts.map +1 -1
- package/dist/confluent/tools/handlers/flink/diagnostics/metrics-helper.js.map +1 -1
- package/dist/confluent/tools/handlers/flink/diagnostics/query-profiler-handler.d.ts +7 -7
- package/dist/confluent/tools/handlers/flink/diagnostics/query-profiler-handler.d.ts.map +1 -1
- package/dist/confluent/tools/handlers/flink/diagnostics/query-profiler-handler.js +13 -29
- package/dist/confluent/tools/handlers/flink/diagnostics/query-profiler-handler.js.map +1 -1
- package/dist/confluent/tools/handlers/flink/flink-sql-helper.d.ts +2 -2
- package/dist/confluent/tools/handlers/flink/flink-sql-helper.d.ts.map +1 -1
- package/dist/confluent/tools/handlers/flink/flink-sql-helper.js.map +1 -1
- package/dist/confluent/tools/handlers/flink/flink-tool-handler.d.ts +21 -0
- package/dist/confluent/tools/handlers/flink/flink-tool-handler.d.ts.map +1 -0
- package/dist/confluent/tools/handlers/flink/flink-tool-handler.js +31 -0
- package/dist/confluent/tools/handlers/flink/flink-tool-handler.js.map +1 -0
- package/dist/confluent/tools/handlers/flink/get-flink-exceptions-handler.d.ts +5 -7
- package/dist/confluent/tools/handlers/flink/get-flink-exceptions-handler.d.ts.map +1 -1
- package/dist/confluent/tools/handlers/flink/get-flink-exceptions-handler.js +9 -23
- package/dist/confluent/tools/handlers/flink/get-flink-exceptions-handler.js.map +1 -1
- package/dist/confluent/tools/handlers/flink/list-flink-statements-handler.d.ts +5 -7
- package/dist/confluent/tools/handlers/flink/list-flink-statements-handler.d.ts.map +1 -1
- package/dist/confluent/tools/handlers/flink/list-flink-statements-handler.js +11 -25
- package/dist/confluent/tools/handlers/flink/list-flink-statements-handler.js.map +1 -1
- package/dist/confluent/tools/handlers/flink/read-flink-statement-handler.d.ts +5 -7
- package/dist/confluent/tools/handlers/flink/read-flink-statement-handler.d.ts.map +1 -1
- package/dist/confluent/tools/handlers/flink/read-flink-statement-handler.js +9 -23
- package/dist/confluent/tools/handlers/flink/read-flink-statement-handler.js.map +1 -1
- package/dist/confluent/tools/handlers/kafka/alter-topic-config.d.ts +3 -5
- package/dist/confluent/tools/handlers/kafka/alter-topic-config.d.ts.map +1 -1
- package/dist/confluent/tools/handlers/kafka/alter-topic-config.js +22 -29
- package/dist/confluent/tools/handlers/kafka/alter-topic-config.js.map +1 -1
- package/dist/confluent/tools/handlers/kafka/consume-kafka-messages-handler.d.ts +5 -4
- package/dist/confluent/tools/handlers/kafka/consume-kafka-messages-handler.d.ts.map +1 -1
- package/dist/confluent/tools/handlers/kafka/consume-kafka-messages-handler.js +25 -17
- package/dist/confluent/tools/handlers/kafka/consume-kafka-messages-handler.js.map +1 -1
- package/dist/confluent/tools/handlers/kafka/create-topics-handler.d.ts +3 -4
- package/dist/confluent/tools/handlers/kafka/create-topics-handler.d.ts.map +1 -1
- package/dist/confluent/tools/handlers/kafka/create-topics-handler.js +52 -15
- package/dist/confluent/tools/handlers/kafka/create-topics-handler.js.map +1 -1
- package/dist/confluent/tools/handlers/kafka/delete-topics-handler.d.ts +3 -4
- package/dist/confluent/tools/handlers/kafka/delete-topics-handler.d.ts.map +1 -1
- package/dist/confluent/tools/handlers/kafka/delete-topics-handler.js +26 -8
- package/dist/confluent/tools/handlers/kafka/delete-topics-handler.js.map +1 -1
- package/dist/confluent/tools/handlers/kafka/get-topic-config.d.ts +3 -5
- package/dist/confluent/tools/handlers/kafka/get-topic-config.d.ts.map +1 -1
- package/dist/confluent/tools/handlers/kafka/get-topic-config.js +21 -28
- package/dist/confluent/tools/handlers/kafka/get-topic-config.js.map +1 -1
- package/dist/confluent/tools/handlers/kafka/list-topics-handler.d.ts +3 -4
- package/dist/confluent/tools/handlers/kafka/list-topics-handler.d.ts.map +1 -1
- package/dist/confluent/tools/handlers/kafka/list-topics-handler.js +25 -10
- package/dist/confluent/tools/handlers/kafka/list-topics-handler.js.map +1 -1
- package/dist/confluent/tools/handlers/kafka/produce-kafka-message-handler.d.ts +3 -4
- package/dist/confluent/tools/handlers/kafka/produce-kafka-message-handler.d.ts.map +1 -1
- package/dist/confluent/tools/handlers/kafka/produce-kafka-message-handler.js +54 -34
- package/dist/confluent/tools/handlers/kafka/produce-kafka-message-handler.js.map +1 -1
- package/dist/confluent/tools/handlers/metrics/list-metrics-handler.d.ts +4 -5
- package/dist/confluent/tools/handlers/metrics/list-metrics-handler.d.ts.map +1 -1
- package/dist/confluent/tools/handlers/metrics/list-metrics-handler.js +6 -8
- package/dist/confluent/tools/handlers/metrics/list-metrics-handler.js.map +1 -1
- package/dist/confluent/tools/handlers/metrics/query-metrics-handler.d.ts +22 -5
- package/dist/confluent/tools/handlers/metrics/query-metrics-handler.d.ts.map +1 -1
- package/dist/confluent/tools/handlers/metrics/query-metrics-handler.js +88 -52
- package/dist/confluent/tools/handlers/metrics/query-metrics-handler.js.map +1 -1
- package/dist/confluent/tools/handlers/organizations/list-organizations-handler.d.ts +49 -0
- package/dist/confluent/tools/handlers/organizations/list-organizations-handler.d.ts.map +1 -0
- package/dist/confluent/tools/handlers/organizations/list-organizations-handler.js +115 -0
- package/dist/confluent/tools/handlers/organizations/list-organizations-handler.js.map +1 -0
- package/dist/confluent/tools/handlers/schema/delete-schema-handler.d.ts +3 -4
- package/dist/confluent/tools/handlers/schema/delete-schema-handler.d.ts.map +1 -1
- package/dist/confluent/tools/handlers/schema/delete-schema-handler.js +13 -18
- package/dist/confluent/tools/handlers/schema/delete-schema-handler.js.map +1 -1
- package/dist/confluent/tools/handlers/schema/list-schemas-handler.d.ts +3 -4
- package/dist/confluent/tools/handlers/schema/list-schemas-handler.d.ts.map +1 -1
- package/dist/confluent/tools/handlers/schema/list-schemas-handler.js +13 -7
- package/dist/confluent/tools/handlers/schema/list-schemas-handler.js.map +1 -1
- package/dist/confluent/tools/handlers/search/search-topic-by-tag-handler.d.ts +4 -5
- package/dist/confluent/tools/handlers/search/search-topic-by-tag-handler.d.ts.map +1 -1
- package/dist/confluent/tools/handlers/search/search-topic-by-tag-handler.js +7 -19
- package/dist/confluent/tools/handlers/search/search-topic-by-tag-handler.js.map +1 -1
- package/dist/confluent/tools/handlers/search/search-topics-by-name-handler.d.ts +4 -5
- package/dist/confluent/tools/handlers/search/search-topics-by-name-handler.d.ts.map +1 -1
- package/dist/confluent/tools/handlers/search/search-topics-by-name-handler.js +7 -19
- package/dist/confluent/tools/handlers/search/search-topics-by-name-handler.js.map +1 -1
- package/dist/confluent/tools/handlers/tableflow/catalog/create-tableflow-catalog-integration-handler.d.ts +5 -7
- package/dist/confluent/tools/handlers/tableflow/catalog/create-tableflow-catalog-integration-handler.d.ts.map +1 -1
- package/dist/confluent/tools/handlers/tableflow/catalog/create-tableflow-catalog-integration-handler.js +16 -22
- package/dist/confluent/tools/handlers/tableflow/catalog/create-tableflow-catalog-integration-handler.js.map +1 -1
- package/dist/confluent/tools/handlers/tableflow/catalog/delete-tableflow-catalog-integration-handler.d.ts +5 -7
- package/dist/confluent/tools/handlers/tableflow/catalog/delete-tableflow-catalog-integration-handler.d.ts.map +1 -1
- package/dist/confluent/tools/handlers/tableflow/catalog/delete-tableflow-catalog-integration-handler.js +8 -24
- package/dist/confluent/tools/handlers/tableflow/catalog/delete-tableflow-catalog-integration-handler.js.map +1 -1
- package/dist/confluent/tools/handlers/tableflow/catalog/list-tableflow-catalog-integrations-handler.d.ts +5 -7
- package/dist/confluent/tools/handlers/tableflow/catalog/list-tableflow-catalog-integrations-handler.d.ts.map +1 -1
- package/dist/confluent/tools/handlers/tableflow/catalog/list-tableflow-catalog-integrations-handler.js +9 -25
- package/dist/confluent/tools/handlers/tableflow/catalog/list-tableflow-catalog-integrations-handler.js.map +1 -1
- package/dist/confluent/tools/handlers/tableflow/catalog/read-tableflow-catalog-integration-handler.d.ts +5 -7
- package/dist/confluent/tools/handlers/tableflow/catalog/read-tableflow-catalog-integration-handler.d.ts.map +1 -1
- package/dist/confluent/tools/handlers/tableflow/catalog/read-tableflow-catalog-integration-handler.js +8 -24
- package/dist/confluent/tools/handlers/tableflow/catalog/read-tableflow-catalog-integration-handler.js.map +1 -1
- package/dist/confluent/tools/handlers/tableflow/catalog/update-tableflow-catalog-integration-handler.d.ts +5 -7
- package/dist/confluent/tools/handlers/tableflow/catalog/update-tableflow-catalog-integration-handler.d.ts.map +1 -1
- package/dist/confluent/tools/handlers/tableflow/catalog/update-tableflow-catalog-integration-handler.js +7 -21
- package/dist/confluent/tools/handlers/tableflow/catalog/update-tableflow-catalog-integration-handler.js.map +1 -1
- package/dist/confluent/tools/handlers/tableflow/list-tableflow-regions-handler.d.ts +5 -7
- package/dist/confluent/tools/handlers/tableflow/list-tableflow-regions-handler.d.ts.map +1 -1
- package/dist/confluent/tools/handlers/tableflow/list-tableflow-regions-handler.js +20 -32
- package/dist/confluent/tools/handlers/tableflow/list-tableflow-regions-handler.js.map +1 -1
- package/dist/confluent/tools/handlers/tableflow/tableflow-tool-handler.d.ts +25 -0
- package/dist/confluent/tools/handlers/tableflow/tableflow-tool-handler.d.ts.map +1 -0
- package/dist/confluent/tools/handlers/tableflow/tableflow-tool-handler.js +27 -0
- package/dist/confluent/tools/handlers/tableflow/tableflow-tool-handler.js.map +1 -0
- package/dist/confluent/tools/handlers/tableflow/topic/create-tableflow-topic-handler.d.ts +5 -7
- package/dist/confluent/tools/handlers/tableflow/topic/create-tableflow-topic-handler.d.ts.map +1 -1
- package/dist/confluent/tools/handlers/tableflow/topic/create-tableflow-topic-handler.js +16 -22
- package/dist/confluent/tools/handlers/tableflow/topic/create-tableflow-topic-handler.js.map +1 -1
- package/dist/confluent/tools/handlers/tableflow/topic/delete-tableflow-topic-handler.d.ts +5 -7
- package/dist/confluent/tools/handlers/tableflow/topic/delete-tableflow-topic-handler.d.ts.map +1 -1
- package/dist/confluent/tools/handlers/tableflow/topic/delete-tableflow-topic-handler.js +8 -24
- package/dist/confluent/tools/handlers/tableflow/topic/delete-tableflow-topic-handler.js.map +1 -1
- package/dist/confluent/tools/handlers/tableflow/topic/list-tableflow-topics-handler.d.ts +5 -7
- package/dist/confluent/tools/handlers/tableflow/topic/list-tableflow-topics-handler.d.ts.map +1 -1
- package/dist/confluent/tools/handlers/tableflow/topic/list-tableflow-topics-handler.js +9 -25
- package/dist/confluent/tools/handlers/tableflow/topic/list-tableflow-topics-handler.js.map +1 -1
- package/dist/confluent/tools/handlers/tableflow/topic/read-tableflow-topic-handler.d.ts +5 -7
- package/dist/confluent/tools/handlers/tableflow/topic/read-tableflow-topic-handler.d.ts.map +1 -1
- package/dist/confluent/tools/handlers/tableflow/topic/read-tableflow-topic-handler.js +8 -24
- package/dist/confluent/tools/handlers/tableflow/topic/read-tableflow-topic-handler.js.map +1 -1
- package/dist/confluent/tools/handlers/tableflow/topic/update-tableflow-topic-handler.d.ts +5 -7
- package/dist/confluent/tools/handlers/tableflow/topic/update-tableflow-topic-handler.d.ts.map +1 -1
- package/dist/confluent/tools/handlers/tableflow/topic/update-tableflow-topic-handler.js +7 -21
- package/dist/confluent/tools/handlers/tableflow/topic/update-tableflow-topic-handler.js.map +1 -1
- package/dist/confluent/tools/tool-availability.d.ts +74 -0
- package/dist/confluent/tools/tool-availability.d.ts.map +1 -0
- package/dist/confluent/tools/tool-availability.js +121 -0
- package/dist/confluent/tools/tool-availability.js.map +1 -0
- package/dist/confluent/tools/tool-name.d.ts +5 -1
- package/dist/confluent/tools/tool-name.d.ts.map +1 -1
- package/dist/confluent/tools/tool-name.js +4 -0
- package/dist/confluent/tools/tool-name.js.map +1 -1
- package/dist/confluent/tools/tool-registry.d.ts +18 -0
- package/dist/confluent/tools/tool-registry.d.ts.map +1 -0
- package/dist/confluent/tools/{tool-factory.js → tool-registry.js} +32 -19
- package/dist/confluent/tools/tool-registry.js.map +1 -0
- package/dist/env-schema.d.ts +5 -2
- package/dist/env-schema.d.ts.map +1 -1
- package/dist/env-schema.js +20 -5
- package/dist/env-schema.js.map +1 -1
- package/dist/env.d.ts +16 -7
- package/dist/env.d.ts.map +1 -1
- package/dist/env.js +16 -6
- package/dist/env.js.map +1 -1
- package/dist/index.d.ts +74 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +279 -162
- package/dist/index.js.map +1 -1
- package/dist/logger.d.ts.map +1 -1
- package/dist/logger.js +21 -20
- package/dist/logger.js.map +1 -1
- package/dist/mcp/server.d.ts +29 -0
- package/dist/mcp/server.d.ts.map +1 -0
- package/dist/mcp/server.js +52 -0
- package/dist/mcp/server.js.map +1 -0
- package/dist/mcp/transports/auth.d.ts +20 -4
- package/dist/mcp/transports/auth.d.ts.map +1 -1
- package/dist/mcp/transports/auth.js +27 -7
- package/dist/mcp/transports/auth.js.map +1 -1
- package/dist/mcp/transports/http.d.ts +8 -2
- package/dist/mcp/transports/http.d.ts.map +1 -1
- package/dist/mcp/transports/http.js +57 -42
- package/dist/mcp/transports/http.js.map +1 -1
- package/dist/mcp/transports/manager.d.ts +23 -9
- package/dist/mcp/transports/manager.d.ts.map +1 -1
- package/dist/mcp/transports/manager.js +27 -24
- package/dist/mcp/transports/manager.js.map +1 -1
- package/dist/mcp/transports/server.d.ts +1 -1
- package/dist/mcp/transports/server.d.ts.map +1 -1
- package/dist/mcp/transports/server.js +17 -5
- package/dist/mcp/transports/server.js.map +1 -1
- package/dist/mcp/transports/session-registry.d.ts +33 -0
- package/dist/mcp/transports/session-registry.d.ts.map +1 -0
- package/dist/mcp/transports/session-registry.js +65 -0
- package/dist/mcp/transports/session-registry.js.map +1 -0
- package/dist/mcp/transports/sse.d.ts +13 -2
- package/dist/mcp/transports/sse.d.ts.map +1 -1
- package/dist/mcp/transports/sse.js +58 -46
- package/dist/mcp/transports/sse.js.map +1 -1
- package/dist/server-runtime.d.ts +28 -0
- package/dist/server-runtime.d.ts.map +1 -0
- package/dist/server-runtime.js +73 -0
- package/dist/server-runtime.js.map +1 -0
- package/package.json +25 -9
- package/dist/confluent/helpers.d.ts +0 -11
- package/dist/confluent/helpers.d.ts.map +0 -1
- package/dist/confluent/helpers.js +0 -17
- package/dist/confluent/helpers.js.map +0 -1
- package/dist/confluent/tools/tool-factory.d.ts +0 -9
- package/dist/confluent/tools/tool-factory.d.ts.map +0 -1
- package/dist/confluent/tools/tool-factory.js.map +0 -1
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
2
|
+
import { alwaysEnabled } from "../confluent/tools/connection-predicates.js";
|
|
3
|
+
const noopTrack = () => { };
|
|
4
|
+
/** Builds a fresh {@link McpServer} with every supplied {@linkcode ToolHandler} registered. */
|
|
5
|
+
export function createMcpServer({ serverVersion, toolHandlers, runtime, track = noopTrack, }) {
|
|
6
|
+
const srv = new McpServer({
|
|
7
|
+
name: "confluent",
|
|
8
|
+
version: serverVersion,
|
|
9
|
+
});
|
|
10
|
+
toolHandlers.forEach((handler, name) => {
|
|
11
|
+
const config = handler.getToolConfig();
|
|
12
|
+
srv.registerTool(name, {
|
|
13
|
+
description: config.description,
|
|
14
|
+
inputSchema: config.inputSchema,
|
|
15
|
+
annotations: config.annotations,
|
|
16
|
+
}, async (args, context) => {
|
|
17
|
+
const startTime = Date.now();
|
|
18
|
+
// per-instance lookup so concurrent HTTP sessions don't clobber each other's telemetry
|
|
19
|
+
const clientInfo = srv.server.getClientVersion();
|
|
20
|
+
const baseProps = {
|
|
21
|
+
toolName: name,
|
|
22
|
+
clientName: clientInfo?.name,
|
|
23
|
+
clientVersion: clientInfo?.version,
|
|
24
|
+
};
|
|
25
|
+
try {
|
|
26
|
+
// Gate launch of the browser OAuth login flow only on the
|
|
27
|
+
// first tool call that needs Confluent OAuth tokens.
|
|
28
|
+
if (runtime.oauthHolder !== undefined &&
|
|
29
|
+
handler.predicate !== alwaysEnabled) {
|
|
30
|
+
await runtime.oauthHolder.ensureLoggedIn();
|
|
31
|
+
}
|
|
32
|
+
const result = await handler.handle(runtime, args, context?.sessionId);
|
|
33
|
+
track({
|
|
34
|
+
...baseProps,
|
|
35
|
+
durationMs: Date.now() - startTime,
|
|
36
|
+
status: result.isError ? "error" : "success",
|
|
37
|
+
});
|
|
38
|
+
return result;
|
|
39
|
+
}
|
|
40
|
+
catch (error) {
|
|
41
|
+
track({
|
|
42
|
+
...baseProps,
|
|
43
|
+
durationMs: Date.now() - startTime,
|
|
44
|
+
status: "error",
|
|
45
|
+
});
|
|
46
|
+
throw error;
|
|
47
|
+
}
|
|
48
|
+
});
|
|
49
|
+
});
|
|
50
|
+
return srv;
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=server.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,EAAE,aAAa,EAAE,MAAM,+CAA+C,CAAC;AAkB9E,MAAM,SAAS,GAAkB,GAAG,EAAE,GAAE,CAAC,CAAC;AAa1C,+FAA+F;AAC/F,MAAM,UAAU,eAAe,CAAC,EAC9B,aAAa,EACb,YAAY,EACZ,OAAO,EACP,KAAK,GAAG,SAAS,GACM;IACvB,MAAM,GAAG,GAAG,IAAI,SAAS,CAAC;QACxB,IAAI,EAAE,WAAW;QACjB,OAAO,EAAE,aAAa;KACvB,CAAC,CAAC;IAEH,YAAY,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE;QACrC,MAAM,MAAM,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;QAEvC,GAAG,CAAC,YAAY,CACd,IAAI,EACJ;YACE,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,WAAW,EAAE,MAAM,CAAC,WAAW;SAChC,EACD,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE;YACtB,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAC7B,uFAAuF;YACvF,MAAM,UAAU,GAAG,GAAG,CAAC,MAAM,CAAC,gBAAgB,EAAE,CAAC;YACjD,MAAM,SAAS,GAAG;gBAChB,QAAQ,EAAE,IAAI;gBACd,UAAU,EAAE,UAAU,EAAE,IAAI;gBAC5B,aAAa,EAAE,UAAU,EAAE,OAAO;aACnC,CAAC;YACF,IAAI,CAAC;gBACH,0DAA0D;gBAC1D,qDAAqD;gBACrD,IACE,OAAO,CAAC,WAAW,KAAK,SAAS;oBACjC,OAAO,CAAC,SAAS,KAAK,aAAa,EACnC,CAAC;oBACD,MAAM,OAAO,CAAC,WAAW,CAAC,cAAc,EAAE,CAAC;gBAC7C,CAAC;gBACD,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,MAAM,CACjC,OAAO,EACP,IAAI,EACJ,OAAO,EAAE,SAAS,CACnB,CAAC;gBACF,KAAK,CAAC;oBACJ,GAAG,SAAS;oBACZ,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;oBAClC,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS;iBAC7C,CAAC,CAAC;gBACH,OAAO,MAAM,CAAC;YAChB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,KAAK,CAAC;oBACJ,GAAG,SAAS;oBACZ,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;oBAClC,MAAM,EAAE,OAAO;iBAChB,CAAC,CAAC;gBACH,MAAM,KAAK,CAAC;YACd,CAAC;QACH,CAAC,CACF,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,OAAO,GAAG,CAAC;AACb,CAAC"}
|
|
@@ -1,17 +1,33 @@
|
|
|
1
1
|
import { FastifyReply, FastifyRequest } from "fastify";
|
|
2
|
+
/**
|
|
3
|
+
* HTTP header name carrying the MCP API key. Confluent custom-header
|
|
4
|
+
* convention prefixes with `cflt-`. Defined here (rather than in `server.ts`)
|
|
5
|
+
* because {@link authErrorSchemas} below is a module-level const that
|
|
6
|
+
* references it eagerly; putting the constant in `server.ts` would create a
|
|
7
|
+
* cyclic-import init-order bug.
|
|
8
|
+
*
|
|
9
|
+
* Header lookups must use the lowercased form Fastify normalizes incoming
|
|
10
|
+
* headers to.
|
|
11
|
+
*/
|
|
12
|
+
export declare const CFLT_MCP_API_KEY_HEADER = "cflt-mcp-api-key";
|
|
2
13
|
/**
|
|
3
14
|
* Configuration for MCP server authentication
|
|
4
15
|
*/
|
|
5
16
|
export interface AuthConfig {
|
|
6
17
|
/** API key for authentication */
|
|
7
|
-
apiKey: string;
|
|
18
|
+
readonly apiKey: string;
|
|
8
19
|
/** Whether authentication is enabled */
|
|
9
|
-
enabled: boolean;
|
|
20
|
+
readonly enabled: boolean;
|
|
10
21
|
/** List of allowed Host header values for DNS rebinding protection */
|
|
11
|
-
allowedHosts: string[];
|
|
22
|
+
readonly allowedHosts: readonly string[];
|
|
12
23
|
}
|
|
13
24
|
/**
|
|
14
|
-
* Generates a cryptographically secure random API key
|
|
25
|
+
* Generates a cryptographically secure random API key.
|
|
26
|
+
*
|
|
27
|
+
* Uses {@linkcode nodeCrypto.randomBytes} (rather than a direct `crypto` import)
|
|
28
|
+
* so tests can swap the primitive via `vi.spyOn(nodeCrypto, "randomBytes")`
|
|
29
|
+
* to assert deterministic output.
|
|
30
|
+
*
|
|
15
31
|
* @returns 64-character hex string
|
|
16
32
|
*/
|
|
17
33
|
export declare function generateApiKey(): string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../../src/mcp/transports/auth.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../../src/mcp/transports/auth.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAEvD;;;;;;;;;GASG;AACH,eAAO,MAAM,uBAAuB,qBAAqB,CAAC;AAE1D;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,iCAAiC;IACjC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,wCAAwC;IACxC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,sEAAsE;IACtE,QAAQ,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;CAC1C;AAED;;;;;;;;GAQG;AACH,wBAAgB,cAAc,IAAI,MAAM,CAEvC;AAiED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,UAAU,IAE7C,SAAS,cAAc,EACvB,OAAO,YAAY,KAClB,OAAO,CAAC,IAAI,CAAC,CA+CjB;AAED;;GAEG;AACH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkB5B,CAAC"}
|
|
@@ -1,11 +1,28 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { nodeCrypto } from "../../confluent/node-deps.js";
|
|
2
2
|
import { logger } from "../../logger.js";
|
|
3
|
+
import { timingSafeEqual } from "crypto";
|
|
3
4
|
/**
|
|
4
|
-
*
|
|
5
|
+
* HTTP header name carrying the MCP API key. Confluent custom-header
|
|
6
|
+
* convention prefixes with `cflt-`. Defined here (rather than in `server.ts`)
|
|
7
|
+
* because {@link authErrorSchemas} below is a module-level const that
|
|
8
|
+
* references it eagerly; putting the constant in `server.ts` would create a
|
|
9
|
+
* cyclic-import init-order bug.
|
|
10
|
+
*
|
|
11
|
+
* Header lookups must use the lowercased form Fastify normalizes incoming
|
|
12
|
+
* headers to.
|
|
13
|
+
*/
|
|
14
|
+
export const CFLT_MCP_API_KEY_HEADER = "cflt-mcp-api-key";
|
|
15
|
+
/**
|
|
16
|
+
* Generates a cryptographically secure random API key.
|
|
17
|
+
*
|
|
18
|
+
* Uses {@linkcode nodeCrypto.randomBytes} (rather than a direct `crypto` import)
|
|
19
|
+
* so tests can swap the primitive via `vi.spyOn(nodeCrypto, "randomBytes")`
|
|
20
|
+
* to assert deterministic output.
|
|
21
|
+
*
|
|
5
22
|
* @returns 64-character hex string
|
|
6
23
|
*/
|
|
7
24
|
export function generateApiKey() {
|
|
8
|
-
return randomBytes(32).toString("hex");
|
|
25
|
+
return nodeCrypto.randomBytes(32).toString("hex");
|
|
9
26
|
}
|
|
10
27
|
/**
|
|
11
28
|
* Timing-safe comparison of API keys to prevent timing attacks
|
|
@@ -85,12 +102,12 @@ export function createAuthHook(config) {
|
|
|
85
102
|
return;
|
|
86
103
|
}
|
|
87
104
|
// 3. Validate API Key (header names are lowercased by Fastify)
|
|
88
|
-
const apiKey = request.headers[
|
|
105
|
+
const apiKey = request.headers[CFLT_MCP_API_KEY_HEADER];
|
|
89
106
|
if (!apiKey || typeof apiKey !== "string") {
|
|
90
|
-
logger.warn(
|
|
107
|
+
logger.warn(`Request rejected: Missing ${CFLT_MCP_API_KEY_HEADER} header`);
|
|
91
108
|
reply.status(401).send({
|
|
92
109
|
error: "Unauthorized",
|
|
93
|
-
message:
|
|
110
|
+
message: `Missing ${CFLT_MCP_API_KEY_HEADER} header`,
|
|
94
111
|
});
|
|
95
112
|
return;
|
|
96
113
|
}
|
|
@@ -113,7 +130,10 @@ export const authErrorSchemas = {
|
|
|
113
130
|
type: "object",
|
|
114
131
|
properties: {
|
|
115
132
|
error: { type: "string", example: "Unauthorized" },
|
|
116
|
-
message: {
|
|
133
|
+
message: {
|
|
134
|
+
type: "string",
|
|
135
|
+
example: `Missing ${CFLT_MCP_API_KEY_HEADER} header`,
|
|
136
|
+
},
|
|
117
137
|
},
|
|
118
138
|
},
|
|
119
139
|
forbidden: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../../src/mcp/transports/auth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../../src/mcp/transports/auth.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,12 +2,18 @@ import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
|
2
2
|
import { HttpServer } from "../../mcp/transports/server.js";
|
|
3
3
|
import { Transport } from "../../mcp/transports/types.js";
|
|
4
4
|
export declare class HttpTransport implements Transport {
|
|
5
|
-
private
|
|
5
|
+
private serverFactory;
|
|
6
6
|
private httpServer;
|
|
7
7
|
private httpMcpEndpointPath;
|
|
8
8
|
private sessions;
|
|
9
|
-
constructor(
|
|
9
|
+
constructor(serverFactory: () => McpServer, httpServer: HttpServer, httpMcpEndpointPath?: string);
|
|
10
10
|
connect(): Promise<void>;
|
|
11
11
|
disconnect(): Promise<void>;
|
|
12
|
+
/**
|
|
13
|
+
* Creates a fresh {@link McpServer} + {@link StreamableHTTPServerTransport} pair for an incoming
|
|
14
|
+
* initialize POST, sets up session lifecycle callbacks, and binds the server.
|
|
15
|
+
* NOTE: callers are responsible for forwarding the request to the returned transport
|
|
16
|
+
*/
|
|
17
|
+
private createSession;
|
|
12
18
|
}
|
|
13
19
|
//# sourceMappingURL=http.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../../src/mcp/transports/http.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;
|
|
1
|
+
{"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../../src/mcp/transports/http.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAKpE,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAE3D,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAsBzD,qBAAa,aAAc,YAAW,SAAS;IAI3C,OAAO,CAAC,aAAa;IACrB,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,mBAAmB;IAL7B,OAAO,CAAC,QAAQ,CAAwD;gBAG9D,aAAa,EAAE,MAAM,SAAS,EAC9B,UAAU,EAAE,UAAU,EACtB,mBAAmB,GAAE,MAAe;IAGxC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAqIxB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAKjC;;;;OAIG;YACW,aAAa;CAwB5B"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { isInitializeRequest } from "@modelcontextprotocol/sdk/types.js";
|
|
2
|
+
import { sdkTransports } from "../../confluent/node-deps.js";
|
|
2
3
|
import { logger } from "../../logger.js";
|
|
3
|
-
import {
|
|
4
|
+
import { SessionRegistry } from "../../mcp/transports/session-registry.js";
|
|
4
5
|
import { randomUUID } from "crypto";
|
|
5
6
|
const mcpSessionSchema = {
|
|
6
7
|
type: "object",
|
|
@@ -15,12 +16,12 @@ const mcpErrorSchema = {
|
|
|
15
16
|
},
|
|
16
17
|
};
|
|
17
18
|
export class HttpTransport {
|
|
18
|
-
|
|
19
|
+
serverFactory;
|
|
19
20
|
httpServer;
|
|
20
21
|
httpMcpEndpointPath;
|
|
21
|
-
sessions =
|
|
22
|
-
constructor(
|
|
23
|
-
this.
|
|
22
|
+
sessions = new SessionRegistry();
|
|
23
|
+
constructor(serverFactory, httpServer, httpMcpEndpointPath = "/mcp") {
|
|
24
|
+
this.serverFactory = serverFactory;
|
|
24
25
|
this.httpServer = httpServer;
|
|
25
26
|
this.httpMcpEndpointPath = httpMcpEndpointPath;
|
|
26
27
|
}
|
|
@@ -39,24 +40,30 @@ export class HttpTransport {
|
|
|
39
40
|
},
|
|
40
41
|
response: {
|
|
41
42
|
200: mcpSessionSchema,
|
|
43
|
+
400: mcpErrorSchema,
|
|
42
44
|
404: mcpErrorSchema,
|
|
43
45
|
},
|
|
44
46
|
},
|
|
45
47
|
}, async (request, reply) => {
|
|
46
48
|
const sessionId = request.headers["mcp-session-id"];
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
49
|
+
if (sessionId) {
|
|
50
|
+
const entry = this.sessions.get(sessionId);
|
|
51
|
+
if (!entry) {
|
|
52
|
+
reply.status(404).send({ error: "Session not found" });
|
|
53
|
+
return;
|
|
54
|
+
}
|
|
55
|
+
await entry.transport.handleRequest(request.raw, reply.raw, request.body);
|
|
56
|
+
return;
|
|
50
57
|
}
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
},
|
|
58
|
+
// gate sessionless POSTs on init-body shape; the SDK's 400 path doesn't fire
|
|
59
|
+
// onsessioninitialized or close the transport, which would leak a per-session McpServer
|
|
60
|
+
if (!isInitializeRequest(request.body)) {
|
|
61
|
+
reply.status(400).send({
|
|
62
|
+
error: "Bad Request: Mcp-Session-Id header is required for non-initialize requests",
|
|
57
63
|
});
|
|
58
|
-
|
|
64
|
+
return;
|
|
59
65
|
}
|
|
66
|
+
const transport = await this.createSession();
|
|
60
67
|
await transport.handleRequest(request.raw, reply.raw, request.body);
|
|
61
68
|
});
|
|
62
69
|
// GET handler for session status and message receiving
|
|
@@ -78,12 +85,12 @@ export class HttpTransport {
|
|
|
78
85
|
},
|
|
79
86
|
}, async (request, reply) => {
|
|
80
87
|
const sessionId = request.headers["mcp-session-id"];
|
|
81
|
-
|
|
88
|
+
const entry = sessionId ? this.sessions.get(sessionId) : undefined;
|
|
89
|
+
if (!entry) {
|
|
82
90
|
reply.status(404).send({ error: "Session not found" });
|
|
83
91
|
return;
|
|
84
92
|
}
|
|
85
|
-
|
|
86
|
-
await transport.handleRequest(request.raw, reply.raw);
|
|
93
|
+
await entry.transport.handleRequest(request.raw, reply.raw);
|
|
87
94
|
});
|
|
88
95
|
// DELETE handler for session cleanup
|
|
89
96
|
fastify.delete(this.httpMcpEndpointPath, {
|
|
@@ -104,38 +111,46 @@ export class HttpTransport {
|
|
|
104
111
|
},
|
|
105
112
|
}, async (request, reply) => {
|
|
106
113
|
const sessionId = request.headers["mcp-session-id"];
|
|
107
|
-
|
|
114
|
+
const entry = sessionId ? this.sessions.get(sessionId) : undefined;
|
|
115
|
+
if (!entry) {
|
|
108
116
|
reply.status(404).send({ error: "Session not found" });
|
|
109
117
|
return;
|
|
110
118
|
}
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
delete this.sessions[sessionId];
|
|
119
|
+
// the SDK's DELETE path closes the transport, which fires onclose (registered in POST)
|
|
120
|
+
// where session + per-session-server cleanup actually happen
|
|
121
|
+
await entry.transport.handleRequest(request.raw, reply.raw);
|
|
115
122
|
});
|
|
116
|
-
// POST ping endpoint for health checks
|
|
117
|
-
fastify.post("/ping", {
|
|
118
|
-
schema: {
|
|
119
|
-
tags: ["mcp"],
|
|
120
|
-
summary: "JSON-RPC 2.0 ping endpoint",
|
|
121
|
-
body: pingRequestSchema,
|
|
122
|
-
response: {
|
|
123
|
-
200: pingResponseSchema,
|
|
124
|
-
},
|
|
125
|
-
},
|
|
126
|
-
}, pingHandler());
|
|
127
123
|
logger.info("HTTP transport routes registered");
|
|
128
124
|
}
|
|
129
125
|
async disconnect() {
|
|
130
126
|
logger.info("Cleaning up HTTP transport sessions...");
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
127
|
+
await this.sessions.closeAll();
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* Creates a fresh {@link McpServer} + {@link StreamableHTTPServerTransport} pair for an incoming
|
|
131
|
+
* initialize POST, sets up session lifecycle callbacks, and binds the server.
|
|
132
|
+
* NOTE: callers are responsible for forwarding the request to the returned transport
|
|
133
|
+
*/
|
|
134
|
+
async createSession() {
|
|
135
|
+
const perSessionServer = this.serverFactory();
|
|
136
|
+
const transport = new sdkTransports.StreamableHTTPServerTransport({
|
|
137
|
+
sessionIdGenerator: () => randomUUID(),
|
|
138
|
+
onsessioninitialized: (sid) => {
|
|
139
|
+
this.sessions.set(sid, { transport, server: perSessionServer });
|
|
140
|
+
},
|
|
138
141
|
});
|
|
142
|
+
// fires on every close path (DELETE, network drop, server-initiated) so abandoned sessions
|
|
143
|
+
// don't leak
|
|
144
|
+
transport.onclose = () => {
|
|
145
|
+
const sid = transport.sessionId;
|
|
146
|
+
if (!sid)
|
|
147
|
+
return;
|
|
148
|
+
this.sessions.closeAndRemove(sid).catch((err) => {
|
|
149
|
+
logger.error({ err, sessionId: sid }, "Failed to close session on transport.onclose");
|
|
150
|
+
});
|
|
151
|
+
};
|
|
152
|
+
await this.sessions.bindServer(perSessionServer, transport);
|
|
153
|
+
return transport;
|
|
139
154
|
}
|
|
140
155
|
}
|
|
141
156
|
//# sourceMappingURL=http.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http.js","sourceRoot":"","sources":["../../../src/mcp/transports/http.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"http.js","sourceRoot":"","sources":["../../../src/mcp/transports/http.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,23 +1,37 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { CreateMcpServerOptions } from "../../mcp/server.js";
|
|
2
2
|
import { TransportType } from "../../mcp/transports/types.js";
|
|
3
3
|
/**
|
|
4
4
|
* Configuration for the transport manager
|
|
5
5
|
*/
|
|
6
6
|
export interface TransportManagerConfig {
|
|
7
7
|
/** Disable authentication for HTTP/SSE transports */
|
|
8
|
-
disableAuth?: boolean;
|
|
8
|
+
readonly disableAuth?: boolean;
|
|
9
9
|
/** List of allowed Host header values for DNS rebinding protection */
|
|
10
|
-
allowedHosts?: string[];
|
|
10
|
+
readonly allowedHosts?: readonly string[];
|
|
11
11
|
/** API key for authentication (required when auth is enabled) */
|
|
12
|
-
apiKey?: string;
|
|
12
|
+
readonly apiKey?: string;
|
|
13
|
+
}
|
|
14
|
+
/** HTTP/SSE bind config; ignored for stdio-only setups. */
|
|
15
|
+
export interface HttpStartOptions {
|
|
16
|
+
readonly port: number;
|
|
17
|
+
readonly host: string;
|
|
18
|
+
readonly mcpEndpointPath?: string;
|
|
19
|
+
readonly sseEndpointPath?: string;
|
|
20
|
+
readonly sseMessageEndpointPath?: string;
|
|
21
|
+
}
|
|
22
|
+
export interface TransportStartOptions {
|
|
23
|
+
readonly serverOptions: CreateMcpServerOptions;
|
|
24
|
+
readonly types: readonly TransportType[];
|
|
25
|
+
/** Required when {@linkcode types} includes HTTP or SSE. */
|
|
26
|
+
readonly http?: HttpStartOptions;
|
|
13
27
|
}
|
|
14
28
|
export declare class TransportManager {
|
|
15
|
-
private
|
|
16
|
-
private
|
|
17
|
-
private transports;
|
|
29
|
+
private readonly config?;
|
|
30
|
+
private readonly transports;
|
|
18
31
|
private httpServer;
|
|
19
|
-
|
|
20
|
-
|
|
32
|
+
private stdioServer;
|
|
33
|
+
constructor(config?: TransportManagerConfig | undefined);
|
|
34
|
+
start(options: TransportStartOptions): Promise<void>;
|
|
21
35
|
stop(): Promise<void>;
|
|
22
36
|
private createTransport;
|
|
23
37
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../../src/mcp/transports/manager.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../../src/mcp/transports/manager.ts"],"names":[],"mappings":"AAEA,OAAO,EAAmB,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAM7E,OAAO,EAAa,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAExE;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,qDAAqD;IACrD,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC;IAC/B,sEAAsE;IACtE,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1C,iEAAiE;IACjE,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,2DAA2D;AAC3D,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,sBAAsB,CAAC,EAAE,MAAM,CAAC;CAC1C;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,aAAa,EAAE,sBAAsB,CAAC;IAC/C,QAAQ,CAAC,KAAK,EAAE,SAAS,aAAa,EAAE,CAAC;IACzC,4DAA4D;IAC5D,QAAQ,CAAC,IAAI,CAAC,EAAE,gBAAgB,CAAC;CAClC;AAED,qBAAa,gBAAgB;IAKf,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;IAJpC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA4C;IACvE,OAAO,CAAC,UAAU,CAA2B;IAC7C,OAAO,CAAC,WAAW,CAA0B;gBAEhB,MAAM,CAAC,EAAE,sBAAsB,YAAA;IAEtD,KAAK,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC;IA+DpD,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IA+B3B,OAAO,CAAC,eAAe;CAmCxB"}
|
|
@@ -1,23 +1,27 @@
|
|
|
1
1
|
import { logger } from "../../logger.js";
|
|
2
|
+
import { createMcpServer } from "../../mcp/server.js";
|
|
2
3
|
import { HttpTransport } from "../../mcp/transports/http.js";
|
|
3
4
|
import { HttpServer } from "../../mcp/transports/server.js";
|
|
4
5
|
import { SseTransport } from "../../mcp/transports/sse.js";
|
|
5
6
|
import { StdioTransport } from "../../mcp/transports/stdio.js";
|
|
6
7
|
import { TransportType } from "../../mcp/transports/types.js";
|
|
7
8
|
export class TransportManager {
|
|
8
|
-
server;
|
|
9
9
|
config;
|
|
10
10
|
transports = new Map();
|
|
11
11
|
httpServer = null;
|
|
12
|
-
|
|
13
|
-
|
|
12
|
+
stdioServer = null;
|
|
13
|
+
constructor(config) {
|
|
14
14
|
this.config = config;
|
|
15
15
|
}
|
|
16
|
-
async start(
|
|
16
|
+
async start(options) {
|
|
17
|
+
const { serverOptions, types, http } = options;
|
|
17
18
|
try {
|
|
18
19
|
const needsHttpServer = types.some((type) => type === TransportType.HTTP || type === TransportType.SSE);
|
|
19
20
|
// Initialize and prepare HTTP server if needed
|
|
20
21
|
if (needsHttpServer) {
|
|
22
|
+
if (!http) {
|
|
23
|
+
throw new Error("HTTP/SSE transports require `http` start options (port, host)");
|
|
24
|
+
}
|
|
21
25
|
// Prepare auth configuration
|
|
22
26
|
const authEnabled = !this.config?.disableAuth;
|
|
23
27
|
const apiKey = this.config?.apiKey;
|
|
@@ -32,29 +36,20 @@ export class TransportManager {
|
|
|
32
36
|
allowedHosts: this.config?.allowedHosts || ["localhost", "127.0.0.1"],
|
|
33
37
|
};
|
|
34
38
|
this.httpServer = new HttpServer({ auth: authConfig });
|
|
35
|
-
await this.httpServer.prepare();
|
|
39
|
+
await this.httpServer.prepare(http);
|
|
36
40
|
if (authEnabled) {
|
|
37
41
|
logger.info("MCP Server authentication enabled");
|
|
38
42
|
}
|
|
39
43
|
}
|
|
40
44
|
// Create and connect all transports
|
|
41
45
|
await Promise.all(types.map(async (type) => {
|
|
42
|
-
const transport =
|
|
46
|
+
const transport = this.createTransport(type, serverOptions, http);
|
|
43
47
|
this.transports.set(type, transport);
|
|
44
48
|
await transport.connect();
|
|
45
49
|
}));
|
|
46
50
|
// Start HTTP server if needed (after routes are registered)
|
|
47
|
-
if (needsHttpServer && this.httpServer) {
|
|
48
|
-
|
|
49
|
-
await this.httpServer.start({
|
|
50
|
-
port,
|
|
51
|
-
host,
|
|
52
|
-
});
|
|
53
|
-
}
|
|
54
|
-
else {
|
|
55
|
-
logger.error("Port and host are required");
|
|
56
|
-
throw new Error("Port and host are required");
|
|
57
|
-
}
|
|
51
|
+
if (needsHttpServer && this.httpServer && http) {
|
|
52
|
+
await this.httpServer.start(http);
|
|
58
53
|
}
|
|
59
54
|
logger.info("All transports started successfully");
|
|
60
55
|
}
|
|
@@ -81,21 +76,29 @@ export class TransportManager {
|
|
|
81
76
|
}));
|
|
82
77
|
this.transports.clear();
|
|
83
78
|
this.httpServer = null;
|
|
79
|
+
// close the cached stdio McpServer; HTTP and SSE per-session servers were already closed
|
|
80
|
+
// by their respective transports' disconnect() above
|
|
81
|
+
if (this.stdioServer) {
|
|
82
|
+
await this.stdioServer.close();
|
|
83
|
+
this.stdioServer = null;
|
|
84
|
+
}
|
|
84
85
|
}
|
|
85
|
-
|
|
86
|
+
createTransport(type, serverOptions, http) {
|
|
86
87
|
switch (type) {
|
|
87
|
-
case
|
|
88
|
+
case TransportType.HTTP:
|
|
88
89
|
if (!this.httpServer) {
|
|
89
90
|
throw new Error("HTTP server not initialized");
|
|
90
91
|
}
|
|
91
|
-
return new HttpTransport(
|
|
92
|
-
case
|
|
92
|
+
return new HttpTransport(() => createMcpServer(serverOptions), this.httpServer, http?.mcpEndpointPath);
|
|
93
|
+
case TransportType.SSE:
|
|
93
94
|
if (!this.httpServer) {
|
|
94
95
|
throw new Error("HTTP server not initialized");
|
|
95
96
|
}
|
|
96
|
-
return new SseTransport(
|
|
97
|
-
case
|
|
98
|
-
|
|
97
|
+
return new SseTransport(() => createMcpServer(serverOptions), this.httpServer, http?.sseEndpointPath, http?.sseMessageEndpointPath);
|
|
98
|
+
case TransportType.STDIO:
|
|
99
|
+
// stdio is single-client by construction (one process, one stdin/stdout pair), so we
|
|
100
|
+
// cache one McpServer for the lifetime of the manager rather than minting per session
|
|
101
|
+
return new StdioTransport((this.stdioServer ??= createMcpServer(serverOptions)));
|
|
99
102
|
default:
|
|
100
103
|
throw new Error(`Unsupported transport type: ${type}`);
|
|
101
104
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manager.js","sourceRoot":"","sources":["../../../src/mcp/transports/manager.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"manager.js","sourceRoot":"","sources":["../../../src/mcp/transports/manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,7 +13,7 @@ export declare class HttpServer {
|
|
|
13
13
|
private isSwaggerConfigured;
|
|
14
14
|
private authConfig;
|
|
15
15
|
constructor(config?: HttpServerConfig);
|
|
16
|
-
prepare(): Promise<void>;
|
|
16
|
+
prepare(config: ServerConfig): Promise<void>;
|
|
17
17
|
getInstance(): FastifyInstance;
|
|
18
18
|
start(config: ServerConfig): Promise<void>;
|
|
19
19
|
stop(): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../../src/mcp/transports/server.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../../src/mcp/transports/server.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,UAAU,EAGX,MAAM,6BAA6B,CAAC;AAMrC,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAC5D,OAAO,EAGL,eAAe,EAChB,MAAM,SAAS,CAAC;AAEjB;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,mCAAmC;IACnC,IAAI,CAAC,EAAE,UAAU,CAAC;CACnB;AAED,qBAAa,UAAU;IACrB,OAAO,CAAC,OAAO,CAAkB;IACjC,OAAO,CAAC,mBAAmB,CAAS;IACpC,OAAO,CAAC,UAAU,CAA2B;gBAEjC,MAAM,CAAC,EAAE,gBAAgB;IAY/B,OAAO,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAyElD,WAAW,IAAI,eAAe;IAIxB,KAAK,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAgB1C,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;CAS5B"}
|