@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.
Files changed (428) hide show
  1. package/README.md +174 -791
  2. package/assets/oauth-templates/callback-failure.html +22 -0
  3. package/assets/oauth-templates/callback-success.html +19 -0
  4. package/assets/oauth-templates/logo.html +91 -0
  5. package/assets/oauth-templates/styles.html +49 -0
  6. package/config.example.yaml +149 -0
  7. package/config.oauth.example.yaml +45 -0
  8. package/dist/cli.d.ts +59 -12
  9. package/dist/cli.d.ts.map +1 -1
  10. package/dist/cli.js +131 -61
  11. package/dist/cli.js.map +1 -1
  12. package/dist/config/env-config.d.ts +33 -0
  13. package/dist/config/env-config.d.ts.map +1 -0
  14. package/dist/config/env-config.js +473 -0
  15. package/dist/config/env-config.js.map +1 -0
  16. package/dist/config/index.d.ts +31 -0
  17. package/dist/config/index.d.ts.map +1 -0
  18. package/dist/config/index.js +76 -0
  19. package/dist/config/index.js.map +1 -0
  20. package/dist/config/interpolation.d.ts +9 -0
  21. package/dist/config/interpolation.d.ts.map +1 -0
  22. package/dist/config/interpolation.js +51 -0
  23. package/dist/config/interpolation.js.map +1 -0
  24. package/dist/config/models.d.ts +396 -0
  25. package/dist/config/models.d.ts.map +1 -0
  26. package/dist/config/models.js +401 -0
  27. package/dist/config/models.js.map +1 -0
  28. package/dist/config/validation.d.ts +9 -0
  29. package/dist/config/validation.d.ts.map +1 -0
  30. package/dist/config/validation.js +46 -0
  31. package/dist/config/validation.js.map +1 -0
  32. package/dist/confluent/base-client-manager.d.ts +100 -0
  33. package/dist/confluent/base-client-manager.d.ts.map +1 -0
  34. package/dist/confluent/base-client-manager.js +188 -0
  35. package/dist/confluent/base-client-manager.js.map +1 -0
  36. package/dist/confluent/client-manager.d.ts +42 -94
  37. package/dist/confluent/client-manager.d.ts.map +1 -1
  38. package/dist/confluent/client-manager.js +5 -242
  39. package/dist/confluent/client-manager.js.map +1 -1
  40. package/dist/confluent/config-telemetry.d.ts +41 -0
  41. package/dist/confluent/config-telemetry.d.ts.map +1 -0
  42. package/dist/confluent/config-telemetry.js +17 -0
  43. package/dist/confluent/config-telemetry.js.map +1 -0
  44. package/dist/confluent/direct-client-manager.d.ts +43 -0
  45. package/dist/confluent/direct-client-manager.d.ts.map +1 -0
  46. package/dist/confluent/direct-client-manager.js +146 -0
  47. package/dist/confluent/direct-client-manager.js.map +1 -0
  48. package/dist/confluent/middleware.d.ts +32 -4
  49. package/dist/confluent/middleware.d.ts.map +1 -1
  50. package/dist/confluent/middleware.js +46 -2
  51. package/dist/confluent/middleware.js.map +1 -1
  52. package/dist/confluent/node-deps.d.ts +32 -39
  53. package/dist/confluent/node-deps.d.ts.map +1 -1
  54. package/dist/confluent/node-deps.js +42 -7
  55. package/dist/confluent/node-deps.js.map +1 -1
  56. package/dist/confluent/oauth/auth-context.d.ts +94 -0
  57. package/dist/confluent/oauth/auth-context.d.ts.map +1 -0
  58. package/dist/confluent/oauth/auth-context.js +323 -0
  59. package/dist/confluent/oauth/auth-context.js.map +1 -0
  60. package/dist/confluent/oauth/auth0-config.d.ts +12 -0
  61. package/dist/confluent/oauth/auth0-config.d.ts.map +1 -0
  62. package/dist/confluent/oauth/auth0-config.js +43 -0
  63. package/dist/confluent/oauth/auth0-config.js.map +1 -0
  64. package/dist/confluent/oauth/callback-pages.d.ts +5 -0
  65. package/dist/confluent/oauth/callback-pages.d.ts.map +1 -0
  66. package/dist/confluent/oauth/callback-pages.js +38 -0
  67. package/dist/confluent/oauth/callback-pages.js.map +1 -0
  68. package/dist/confluent/oauth/crypto-utils.d.ts +16 -0
  69. package/dist/confluent/oauth/crypto-utils.d.ts.map +1 -0
  70. package/dist/confluent/oauth/crypto-utils.js +23 -0
  71. package/dist/confluent/oauth/crypto-utils.js.map +1 -0
  72. package/dist/confluent/oauth/errors.d.ts +27 -0
  73. package/dist/confluent/oauth/errors.d.ts.map +1 -0
  74. package/dist/confluent/oauth/errors.js +6 -0
  75. package/dist/confluent/oauth/errors.js.map +1 -0
  76. package/dist/confluent/oauth/oauth-holder.d.ts +34 -0
  77. package/dist/confluent/oauth/oauth-holder.d.ts.map +1 -0
  78. package/dist/confluent/oauth/oauth-holder.js +155 -0
  79. package/dist/confluent/oauth/oauth-holder.js.map +1 -0
  80. package/dist/confluent/oauth/pkce-login.d.ts +26 -0
  81. package/dist/confluent/oauth/pkce-login.d.ts.map +1 -0
  82. package/dist/confluent/oauth/pkce-login.js +161 -0
  83. package/dist/confluent/oauth/pkce-login.js.map +1 -0
  84. package/dist/confluent/oauth/token-chain.d.ts +53 -0
  85. package/dist/confluent/oauth/token-chain.d.ts.map +1 -0
  86. package/dist/confluent/oauth/token-chain.js +141 -0
  87. package/dist/confluent/oauth/token-chain.js.map +1 -0
  88. package/dist/confluent/oauth/token-lifetimes.d.ts +13 -0
  89. package/dist/confluent/oauth/token-lifetimes.d.ts.map +1 -0
  90. package/dist/confluent/oauth/token-lifetimes.js +13 -0
  91. package/dist/confluent/oauth/token-lifetimes.js.map +1 -0
  92. package/dist/confluent/oauth/types.d.ts +68 -0
  93. package/dist/confluent/oauth/types.d.ts.map +1 -0
  94. package/dist/confluent/oauth/types.js +2 -0
  95. package/dist/confluent/oauth/types.js.map +1 -0
  96. package/dist/confluent/oauth-client-manager.d.ts +78 -0
  97. package/dist/confluent/oauth-client-manager.d.ts.map +1 -0
  98. package/dist/confluent/oauth-client-manager.js +265 -0
  99. package/dist/confluent/oauth-client-manager.js.map +1 -0
  100. package/dist/confluent/oauth-resource-resolvers.d.ts +6 -0
  101. package/dist/confluent/oauth-resource-resolvers.d.ts.map +1 -0
  102. package/dist/confluent/oauth-resource-resolvers.js +65 -0
  103. package/dist/confluent/oauth-resource-resolvers.js.map +1 -0
  104. package/dist/confluent/telemetry.d.ts +32 -1
  105. package/dist/confluent/telemetry.d.ts.map +1 -1
  106. package/dist/confluent/telemetry.js +31 -8
  107. package/dist/confluent/telemetry.js.map +1 -1
  108. package/dist/confluent/tools/base-tools.d.ts +108 -34
  109. package/dist/confluent/tools/base-tools.d.ts.map +1 -1
  110. package/dist/confluent/tools/base-tools.js +73 -10
  111. package/dist/confluent/tools/base-tools.js.map +1 -1
  112. package/dist/confluent/tools/cluster-arg-resolvers.d.ts +75 -0
  113. package/dist/confluent/tools/cluster-arg-resolvers.d.ts.map +1 -0
  114. package/dist/confluent/tools/cluster-arg-resolvers.js +127 -0
  115. package/dist/confluent/tools/cluster-arg-resolvers.js.map +1 -0
  116. package/dist/confluent/tools/connection-predicates.d.ts +168 -0
  117. package/dist/confluent/tools/connection-predicates.d.ts.map +1 -0
  118. package/dist/confluent/tools/connection-predicates.js +273 -0
  119. package/dist/confluent/tools/connection-predicates.js.map +1 -0
  120. package/dist/confluent/tools/handlers/billing/list-billing-costs-handler.d.ts +3 -5
  121. package/dist/confluent/tools/handlers/billing/list-billing-costs-handler.d.ts.map +1 -1
  122. package/dist/confluent/tools/handlers/billing/list-billing-costs-handler.js +7 -19
  123. package/dist/confluent/tools/handlers/billing/list-billing-costs-handler.js.map +1 -1
  124. package/dist/confluent/tools/handlers/catalog/add-tags-to-topic.d.ts +4 -5
  125. package/dist/confluent/tools/handlers/catalog/add-tags-to-topic.d.ts.map +1 -1
  126. package/dist/confluent/tools/handlers/catalog/add-tags-to-topic.js +7 -19
  127. package/dist/confluent/tools/handlers/catalog/add-tags-to-topic.js.map +1 -1
  128. package/dist/confluent/tools/handlers/catalog/create-topic-tags.d.ts +4 -5
  129. package/dist/confluent/tools/handlers/catalog/create-topic-tags.d.ts.map +1 -1
  130. package/dist/confluent/tools/handlers/catalog/create-topic-tags.js +7 -19
  131. package/dist/confluent/tools/handlers/catalog/create-topic-tags.js.map +1 -1
  132. package/dist/confluent/tools/handlers/catalog/delete-tag.d.ts +4 -5
  133. package/dist/confluent/tools/handlers/catalog/delete-tag.d.ts.map +1 -1
  134. package/dist/confluent/tools/handlers/catalog/delete-tag.js +7 -19
  135. package/dist/confluent/tools/handlers/catalog/delete-tag.js.map +1 -1
  136. package/dist/confluent/tools/handlers/catalog/list-tags.d.ts +4 -5
  137. package/dist/confluent/tools/handlers/catalog/list-tags.d.ts.map +1 -1
  138. package/dist/confluent/tools/handlers/catalog/list-tags.js +7 -23
  139. package/dist/confluent/tools/handlers/catalog/list-tags.js.map +1 -1
  140. package/dist/confluent/tools/handlers/catalog/remove-tag-from-entity.d.ts +4 -5
  141. package/dist/confluent/tools/handlers/catalog/remove-tag-from-entity.d.ts.map +1 -1
  142. package/dist/confluent/tools/handlers/catalog/remove-tag-from-entity.js +7 -19
  143. package/dist/confluent/tools/handlers/catalog/remove-tag-from-entity.js.map +1 -1
  144. package/dist/confluent/tools/handlers/clusters/list-clusters-handler.d.ts +3 -5
  145. package/dist/confluent/tools/handlers/clusters/list-clusters-handler.d.ts.map +1 -1
  146. package/dist/confluent/tools/handlers/clusters/list-clusters-handler.js +11 -22
  147. package/dist/confluent/tools/handlers/clusters/list-clusters-handler.js.map +1 -1
  148. package/dist/confluent/tools/handlers/connect/connect-tool-handler.d.ts +21 -0
  149. package/dist/confluent/tools/handlers/connect/connect-tool-handler.d.ts.map +1 -0
  150. package/dist/confluent/tools/handlers/connect/connect-tool-handler.js +22 -0
  151. package/dist/confluent/tools/handlers/connect/connect-tool-handler.js.map +1 -0
  152. package/dist/confluent/tools/handlers/connect/create-connector-handler.d.ts +11 -7
  153. package/dist/confluent/tools/handlers/connect/create-connector-handler.d.ts.map +1 -1
  154. package/dist/confluent/tools/handlers/connect/create-connector-handler.js +23 -33
  155. package/dist/confluent/tools/handlers/connect/create-connector-handler.js.map +1 -1
  156. package/dist/confluent/tools/handlers/connect/delete-connector-handler.d.ts +6 -7
  157. package/dist/confluent/tools/handlers/connect/delete-connector-handler.d.ts.map +1 -1
  158. package/dist/confluent/tools/handlers/connect/delete-connector-handler.js +12 -26
  159. package/dist/confluent/tools/handlers/connect/delete-connector-handler.js.map +1 -1
  160. package/dist/confluent/tools/handlers/connect/list-connectors-handler.d.ts +6 -7
  161. package/dist/confluent/tools/handlers/connect/list-connectors-handler.d.ts.map +1 -1
  162. package/dist/confluent/tools/handlers/connect/list-connectors-handler.js +17 -28
  163. package/dist/confluent/tools/handlers/connect/list-connectors-handler.js.map +1 -1
  164. package/dist/confluent/tools/handlers/connect/read-connectors-handler.d.ts +6 -7
  165. package/dist/confluent/tools/handlers/connect/read-connectors-handler.d.ts.map +1 -1
  166. package/dist/confluent/tools/handlers/connect/read-connectors-handler.js +12 -26
  167. package/dist/confluent/tools/handlers/connect/read-connectors-handler.js.map +1 -1
  168. package/dist/confluent/tools/handlers/diagnostics/explain-disabled-tools-handler.d.ts +57 -0
  169. package/dist/confluent/tools/handlers/diagnostics/explain-disabled-tools-handler.d.ts.map +1 -0
  170. package/dist/confluent/tools/handlers/diagnostics/explain-disabled-tools-handler.js +122 -0
  171. package/dist/confluent/tools/handlers/diagnostics/explain-disabled-tools-handler.js.map +1 -0
  172. package/dist/confluent/tools/handlers/docs/get-product-doc-page-handler.d.ts +17 -0
  173. package/dist/confluent/tools/handlers/docs/get-product-doc-page-handler.d.ts.map +1 -0
  174. package/dist/confluent/tools/handlers/docs/get-product-doc-page-handler.js +234 -0
  175. package/dist/confluent/tools/handlers/docs/get-product-doc-page-handler.js.map +1 -0
  176. package/dist/confluent/tools/handlers/docs/search-product-docs-handler.d.ts +13 -0
  177. package/dist/confluent/tools/handlers/docs/search-product-docs-handler.d.ts.map +1 -0
  178. package/dist/confluent/tools/handlers/docs/search-product-docs-handler.js +285 -0
  179. package/dist/confluent/tools/handlers/docs/search-product-docs-handler.js.map +1 -0
  180. package/dist/confluent/tools/handlers/environments/list-environments-handler.d.ts +3 -5
  181. package/dist/confluent/tools/handlers/environments/list-environments-handler.d.ts.map +1 -1
  182. package/dist/confluent/tools/handlers/environments/list-environments-handler.js +7 -19
  183. package/dist/confluent/tools/handlers/environments/list-environments-handler.js.map +1 -1
  184. package/dist/confluent/tools/handlers/environments/read-environment-handler.d.ts +3 -5
  185. package/dist/confluent/tools/handlers/environments/read-environment-handler.d.ts.map +1 -1
  186. package/dist/confluent/tools/handlers/environments/read-environment-handler.js +7 -19
  187. package/dist/confluent/tools/handlers/environments/read-environment-handler.js.map +1 -1
  188. package/dist/confluent/tools/handlers/flink/catalog/catalog-resolver.d.ts +16 -9
  189. package/dist/confluent/tools/handlers/flink/catalog/catalog-resolver.d.ts.map +1 -1
  190. package/dist/confluent/tools/handlers/flink/catalog/catalog-resolver.js +18 -12
  191. package/dist/confluent/tools/handlers/flink/catalog/catalog-resolver.js.map +1 -1
  192. package/dist/confluent/tools/handlers/flink/catalog/describe-table-handler.d.ts +5 -7
  193. package/dist/confluent/tools/handlers/flink/catalog/describe-table-handler.d.ts.map +1 -1
  194. package/dist/confluent/tools/handlers/flink/catalog/describe-table-handler.js +17 -31
  195. package/dist/confluent/tools/handlers/flink/catalog/describe-table-handler.js.map +1 -1
  196. package/dist/confluent/tools/handlers/flink/catalog/flink-catalog-tool-handler.d.ts +14 -0
  197. package/dist/confluent/tools/handlers/flink/catalog/flink-catalog-tool-handler.d.ts.map +1 -0
  198. package/dist/confluent/tools/handlers/flink/catalog/flink-catalog-tool-handler.js +15 -0
  199. package/dist/confluent/tools/handlers/flink/catalog/flink-catalog-tool-handler.js.map +1 -0
  200. package/dist/confluent/tools/handlers/flink/catalog/get-table-info-handler.d.ts +5 -7
  201. package/dist/confluent/tools/handlers/flink/catalog/get-table-info-handler.d.ts.map +1 -1
  202. package/dist/confluent/tools/handlers/flink/catalog/get-table-info-handler.js +17 -31
  203. package/dist/confluent/tools/handlers/flink/catalog/get-table-info-handler.js.map +1 -1
  204. package/dist/confluent/tools/handlers/flink/catalog/list-catalogs-handler.d.ts +5 -7
  205. package/dist/confluent/tools/handlers/flink/catalog/list-catalogs-handler.d.ts.map +1 -1
  206. package/dist/confluent/tools/handlers/flink/catalog/list-catalogs-handler.js +14 -28
  207. package/dist/confluent/tools/handlers/flink/catalog/list-catalogs-handler.js.map +1 -1
  208. package/dist/confluent/tools/handlers/flink/catalog/list-databases-handler.d.ts +5 -7
  209. package/dist/confluent/tools/handlers/flink/catalog/list-databases-handler.d.ts.map +1 -1
  210. package/dist/confluent/tools/handlers/flink/catalog/list-databases-handler.js +14 -30
  211. package/dist/confluent/tools/handlers/flink/catalog/list-databases-handler.js.map +1 -1
  212. package/dist/confluent/tools/handlers/flink/catalog/list-tables-handler.d.ts +5 -7
  213. package/dist/confluent/tools/handlers/flink/catalog/list-tables-handler.d.ts.map +1 -1
  214. package/dist/confluent/tools/handlers/flink/catalog/list-tables-handler.js +14 -38
  215. package/dist/confluent/tools/handlers/flink/catalog/list-tables-handler.js.map +1 -1
  216. package/dist/confluent/tools/handlers/flink/create-flink-statement-handler.d.ts +5 -7
  217. package/dist/confluent/tools/handlers/flink/create-flink-statement-handler.d.ts.map +1 -1
  218. package/dist/confluent/tools/handlers/flink/create-flink-statement-handler.js +20 -32
  219. package/dist/confluent/tools/handlers/flink/create-flink-statement-handler.js.map +1 -1
  220. package/dist/confluent/tools/handlers/flink/delete-flink-statement-handler.d.ts +5 -7
  221. package/dist/confluent/tools/handlers/flink/delete-flink-statement-handler.d.ts.map +1 -1
  222. package/dist/confluent/tools/handlers/flink/delete-flink-statement-handler.js +9 -24
  223. package/dist/confluent/tools/handlers/flink/delete-flink-statement-handler.js.map +1 -1
  224. package/dist/confluent/tools/handlers/flink/diagnostics/check-health-handler.d.ts +5 -7
  225. package/dist/confluent/tools/handlers/flink/diagnostics/check-health-handler.d.ts.map +1 -1
  226. package/dist/confluent/tools/handlers/flink/diagnostics/check-health-handler.js +9 -23
  227. package/dist/confluent/tools/handlers/flink/diagnostics/check-health-handler.js.map +1 -1
  228. package/dist/confluent/tools/handlers/flink/diagnostics/detect-issues-handler.d.ts +5 -7
  229. package/dist/confluent/tools/handlers/flink/diagnostics/detect-issues-handler.d.ts.map +1 -1
  230. package/dist/confluent/tools/handlers/flink/diagnostics/detect-issues-handler.js +11 -25
  231. package/dist/confluent/tools/handlers/flink/diagnostics/detect-issues-handler.js.map +1 -1
  232. package/dist/confluent/tools/handlers/flink/diagnostics/metrics-helper.d.ts +2 -2
  233. package/dist/confluent/tools/handlers/flink/diagnostics/metrics-helper.d.ts.map +1 -1
  234. package/dist/confluent/tools/handlers/flink/diagnostics/metrics-helper.js.map +1 -1
  235. package/dist/confluent/tools/handlers/flink/diagnostics/query-profiler-handler.d.ts +7 -7
  236. package/dist/confluent/tools/handlers/flink/diagnostics/query-profiler-handler.d.ts.map +1 -1
  237. package/dist/confluent/tools/handlers/flink/diagnostics/query-profiler-handler.js +13 -29
  238. package/dist/confluent/tools/handlers/flink/diagnostics/query-profiler-handler.js.map +1 -1
  239. package/dist/confluent/tools/handlers/flink/flink-sql-helper.d.ts +2 -2
  240. package/dist/confluent/tools/handlers/flink/flink-sql-helper.d.ts.map +1 -1
  241. package/dist/confluent/tools/handlers/flink/flink-sql-helper.js.map +1 -1
  242. package/dist/confluent/tools/handlers/flink/flink-tool-handler.d.ts +21 -0
  243. package/dist/confluent/tools/handlers/flink/flink-tool-handler.d.ts.map +1 -0
  244. package/dist/confluent/tools/handlers/flink/flink-tool-handler.js +31 -0
  245. package/dist/confluent/tools/handlers/flink/flink-tool-handler.js.map +1 -0
  246. package/dist/confluent/tools/handlers/flink/get-flink-exceptions-handler.d.ts +5 -7
  247. package/dist/confluent/tools/handlers/flink/get-flink-exceptions-handler.d.ts.map +1 -1
  248. package/dist/confluent/tools/handlers/flink/get-flink-exceptions-handler.js +9 -23
  249. package/dist/confluent/tools/handlers/flink/get-flink-exceptions-handler.js.map +1 -1
  250. package/dist/confluent/tools/handlers/flink/list-flink-statements-handler.d.ts +5 -7
  251. package/dist/confluent/tools/handlers/flink/list-flink-statements-handler.d.ts.map +1 -1
  252. package/dist/confluent/tools/handlers/flink/list-flink-statements-handler.js +11 -25
  253. package/dist/confluent/tools/handlers/flink/list-flink-statements-handler.js.map +1 -1
  254. package/dist/confluent/tools/handlers/flink/read-flink-statement-handler.d.ts +5 -7
  255. package/dist/confluent/tools/handlers/flink/read-flink-statement-handler.d.ts.map +1 -1
  256. package/dist/confluent/tools/handlers/flink/read-flink-statement-handler.js +9 -23
  257. package/dist/confluent/tools/handlers/flink/read-flink-statement-handler.js.map +1 -1
  258. package/dist/confluent/tools/handlers/kafka/alter-topic-config.d.ts +3 -5
  259. package/dist/confluent/tools/handlers/kafka/alter-topic-config.d.ts.map +1 -1
  260. package/dist/confluent/tools/handlers/kafka/alter-topic-config.js +22 -29
  261. package/dist/confluent/tools/handlers/kafka/alter-topic-config.js.map +1 -1
  262. package/dist/confluent/tools/handlers/kafka/consume-kafka-messages-handler.d.ts +5 -4
  263. package/dist/confluent/tools/handlers/kafka/consume-kafka-messages-handler.d.ts.map +1 -1
  264. package/dist/confluent/tools/handlers/kafka/consume-kafka-messages-handler.js +25 -17
  265. package/dist/confluent/tools/handlers/kafka/consume-kafka-messages-handler.js.map +1 -1
  266. package/dist/confluent/tools/handlers/kafka/create-topics-handler.d.ts +3 -4
  267. package/dist/confluent/tools/handlers/kafka/create-topics-handler.d.ts.map +1 -1
  268. package/dist/confluent/tools/handlers/kafka/create-topics-handler.js +52 -15
  269. package/dist/confluent/tools/handlers/kafka/create-topics-handler.js.map +1 -1
  270. package/dist/confluent/tools/handlers/kafka/delete-topics-handler.d.ts +3 -4
  271. package/dist/confluent/tools/handlers/kafka/delete-topics-handler.d.ts.map +1 -1
  272. package/dist/confluent/tools/handlers/kafka/delete-topics-handler.js +26 -8
  273. package/dist/confluent/tools/handlers/kafka/delete-topics-handler.js.map +1 -1
  274. package/dist/confluent/tools/handlers/kafka/get-topic-config.d.ts +3 -5
  275. package/dist/confluent/tools/handlers/kafka/get-topic-config.d.ts.map +1 -1
  276. package/dist/confluent/tools/handlers/kafka/get-topic-config.js +21 -28
  277. package/dist/confluent/tools/handlers/kafka/get-topic-config.js.map +1 -1
  278. package/dist/confluent/tools/handlers/kafka/list-topics-handler.d.ts +3 -4
  279. package/dist/confluent/tools/handlers/kafka/list-topics-handler.d.ts.map +1 -1
  280. package/dist/confluent/tools/handlers/kafka/list-topics-handler.js +25 -10
  281. package/dist/confluent/tools/handlers/kafka/list-topics-handler.js.map +1 -1
  282. package/dist/confluent/tools/handlers/kafka/produce-kafka-message-handler.d.ts +3 -4
  283. package/dist/confluent/tools/handlers/kafka/produce-kafka-message-handler.d.ts.map +1 -1
  284. package/dist/confluent/tools/handlers/kafka/produce-kafka-message-handler.js +54 -34
  285. package/dist/confluent/tools/handlers/kafka/produce-kafka-message-handler.js.map +1 -1
  286. package/dist/confluent/tools/handlers/metrics/list-metrics-handler.d.ts +4 -5
  287. package/dist/confluent/tools/handlers/metrics/list-metrics-handler.d.ts.map +1 -1
  288. package/dist/confluent/tools/handlers/metrics/list-metrics-handler.js +6 -8
  289. package/dist/confluent/tools/handlers/metrics/list-metrics-handler.js.map +1 -1
  290. package/dist/confluent/tools/handlers/metrics/query-metrics-handler.d.ts +22 -5
  291. package/dist/confluent/tools/handlers/metrics/query-metrics-handler.d.ts.map +1 -1
  292. package/dist/confluent/tools/handlers/metrics/query-metrics-handler.js +88 -52
  293. package/dist/confluent/tools/handlers/metrics/query-metrics-handler.js.map +1 -1
  294. package/dist/confluent/tools/handlers/organizations/list-organizations-handler.d.ts +49 -0
  295. package/dist/confluent/tools/handlers/organizations/list-organizations-handler.d.ts.map +1 -0
  296. package/dist/confluent/tools/handlers/organizations/list-organizations-handler.js +115 -0
  297. package/dist/confluent/tools/handlers/organizations/list-organizations-handler.js.map +1 -0
  298. package/dist/confluent/tools/handlers/schema/delete-schema-handler.d.ts +3 -4
  299. package/dist/confluent/tools/handlers/schema/delete-schema-handler.d.ts.map +1 -1
  300. package/dist/confluent/tools/handlers/schema/delete-schema-handler.js +13 -18
  301. package/dist/confluent/tools/handlers/schema/delete-schema-handler.js.map +1 -1
  302. package/dist/confluent/tools/handlers/schema/list-schemas-handler.d.ts +3 -4
  303. package/dist/confluent/tools/handlers/schema/list-schemas-handler.d.ts.map +1 -1
  304. package/dist/confluent/tools/handlers/schema/list-schemas-handler.js +13 -7
  305. package/dist/confluent/tools/handlers/schema/list-schemas-handler.js.map +1 -1
  306. package/dist/confluent/tools/handlers/search/search-topic-by-tag-handler.d.ts +4 -5
  307. package/dist/confluent/tools/handlers/search/search-topic-by-tag-handler.d.ts.map +1 -1
  308. package/dist/confluent/tools/handlers/search/search-topic-by-tag-handler.js +7 -19
  309. package/dist/confluent/tools/handlers/search/search-topic-by-tag-handler.js.map +1 -1
  310. package/dist/confluent/tools/handlers/search/search-topics-by-name-handler.d.ts +4 -5
  311. package/dist/confluent/tools/handlers/search/search-topics-by-name-handler.d.ts.map +1 -1
  312. package/dist/confluent/tools/handlers/search/search-topics-by-name-handler.js +7 -19
  313. package/dist/confluent/tools/handlers/search/search-topics-by-name-handler.js.map +1 -1
  314. package/dist/confluent/tools/handlers/tableflow/catalog/create-tableflow-catalog-integration-handler.d.ts +5 -7
  315. package/dist/confluent/tools/handlers/tableflow/catalog/create-tableflow-catalog-integration-handler.d.ts.map +1 -1
  316. package/dist/confluent/tools/handlers/tableflow/catalog/create-tableflow-catalog-integration-handler.js +16 -22
  317. package/dist/confluent/tools/handlers/tableflow/catalog/create-tableflow-catalog-integration-handler.js.map +1 -1
  318. package/dist/confluent/tools/handlers/tableflow/catalog/delete-tableflow-catalog-integration-handler.d.ts +5 -7
  319. package/dist/confluent/tools/handlers/tableflow/catalog/delete-tableflow-catalog-integration-handler.d.ts.map +1 -1
  320. package/dist/confluent/tools/handlers/tableflow/catalog/delete-tableflow-catalog-integration-handler.js +8 -24
  321. package/dist/confluent/tools/handlers/tableflow/catalog/delete-tableflow-catalog-integration-handler.js.map +1 -1
  322. package/dist/confluent/tools/handlers/tableflow/catalog/list-tableflow-catalog-integrations-handler.d.ts +5 -7
  323. package/dist/confluent/tools/handlers/tableflow/catalog/list-tableflow-catalog-integrations-handler.d.ts.map +1 -1
  324. package/dist/confluent/tools/handlers/tableflow/catalog/list-tableflow-catalog-integrations-handler.js +9 -25
  325. package/dist/confluent/tools/handlers/tableflow/catalog/list-tableflow-catalog-integrations-handler.js.map +1 -1
  326. package/dist/confluent/tools/handlers/tableflow/catalog/read-tableflow-catalog-integration-handler.d.ts +5 -7
  327. package/dist/confluent/tools/handlers/tableflow/catalog/read-tableflow-catalog-integration-handler.d.ts.map +1 -1
  328. package/dist/confluent/tools/handlers/tableflow/catalog/read-tableflow-catalog-integration-handler.js +8 -24
  329. package/dist/confluent/tools/handlers/tableflow/catalog/read-tableflow-catalog-integration-handler.js.map +1 -1
  330. package/dist/confluent/tools/handlers/tableflow/catalog/update-tableflow-catalog-integration-handler.d.ts +5 -7
  331. package/dist/confluent/tools/handlers/tableflow/catalog/update-tableflow-catalog-integration-handler.d.ts.map +1 -1
  332. package/dist/confluent/tools/handlers/tableflow/catalog/update-tableflow-catalog-integration-handler.js +7 -21
  333. package/dist/confluent/tools/handlers/tableflow/catalog/update-tableflow-catalog-integration-handler.js.map +1 -1
  334. package/dist/confluent/tools/handlers/tableflow/list-tableflow-regions-handler.d.ts +5 -7
  335. package/dist/confluent/tools/handlers/tableflow/list-tableflow-regions-handler.d.ts.map +1 -1
  336. package/dist/confluent/tools/handlers/tableflow/list-tableflow-regions-handler.js +20 -32
  337. package/dist/confluent/tools/handlers/tableflow/list-tableflow-regions-handler.js.map +1 -1
  338. package/dist/confluent/tools/handlers/tableflow/tableflow-tool-handler.d.ts +25 -0
  339. package/dist/confluent/tools/handlers/tableflow/tableflow-tool-handler.d.ts.map +1 -0
  340. package/dist/confluent/tools/handlers/tableflow/tableflow-tool-handler.js +27 -0
  341. package/dist/confluent/tools/handlers/tableflow/tableflow-tool-handler.js.map +1 -0
  342. package/dist/confluent/tools/handlers/tableflow/topic/create-tableflow-topic-handler.d.ts +5 -7
  343. package/dist/confluent/tools/handlers/tableflow/topic/create-tableflow-topic-handler.d.ts.map +1 -1
  344. package/dist/confluent/tools/handlers/tableflow/topic/create-tableflow-topic-handler.js +16 -22
  345. package/dist/confluent/tools/handlers/tableflow/topic/create-tableflow-topic-handler.js.map +1 -1
  346. package/dist/confluent/tools/handlers/tableflow/topic/delete-tableflow-topic-handler.d.ts +5 -7
  347. package/dist/confluent/tools/handlers/tableflow/topic/delete-tableflow-topic-handler.d.ts.map +1 -1
  348. package/dist/confluent/tools/handlers/tableflow/topic/delete-tableflow-topic-handler.js +8 -24
  349. package/dist/confluent/tools/handlers/tableflow/topic/delete-tableflow-topic-handler.js.map +1 -1
  350. package/dist/confluent/tools/handlers/tableflow/topic/list-tableflow-topics-handler.d.ts +5 -7
  351. package/dist/confluent/tools/handlers/tableflow/topic/list-tableflow-topics-handler.d.ts.map +1 -1
  352. package/dist/confluent/tools/handlers/tableflow/topic/list-tableflow-topics-handler.js +9 -25
  353. package/dist/confluent/tools/handlers/tableflow/topic/list-tableflow-topics-handler.js.map +1 -1
  354. package/dist/confluent/tools/handlers/tableflow/topic/read-tableflow-topic-handler.d.ts +5 -7
  355. package/dist/confluent/tools/handlers/tableflow/topic/read-tableflow-topic-handler.d.ts.map +1 -1
  356. package/dist/confluent/tools/handlers/tableflow/topic/read-tableflow-topic-handler.js +8 -24
  357. package/dist/confluent/tools/handlers/tableflow/topic/read-tableflow-topic-handler.js.map +1 -1
  358. package/dist/confluent/tools/handlers/tableflow/topic/update-tableflow-topic-handler.d.ts +5 -7
  359. package/dist/confluent/tools/handlers/tableflow/topic/update-tableflow-topic-handler.d.ts.map +1 -1
  360. package/dist/confluent/tools/handlers/tableflow/topic/update-tableflow-topic-handler.js +7 -21
  361. package/dist/confluent/tools/handlers/tableflow/topic/update-tableflow-topic-handler.js.map +1 -1
  362. package/dist/confluent/tools/tool-availability.d.ts +74 -0
  363. package/dist/confluent/tools/tool-availability.d.ts.map +1 -0
  364. package/dist/confluent/tools/tool-availability.js +121 -0
  365. package/dist/confluent/tools/tool-availability.js.map +1 -0
  366. package/dist/confluent/tools/tool-name.d.ts +5 -1
  367. package/dist/confluent/tools/tool-name.d.ts.map +1 -1
  368. package/dist/confluent/tools/tool-name.js +4 -0
  369. package/dist/confluent/tools/tool-name.js.map +1 -1
  370. package/dist/confluent/tools/tool-registry.d.ts +18 -0
  371. package/dist/confluent/tools/tool-registry.d.ts.map +1 -0
  372. package/dist/confluent/tools/{tool-factory.js → tool-registry.js} +32 -19
  373. package/dist/confluent/tools/tool-registry.js.map +1 -0
  374. package/dist/env-schema.d.ts +5 -2
  375. package/dist/env-schema.d.ts.map +1 -1
  376. package/dist/env-schema.js +20 -5
  377. package/dist/env-schema.js.map +1 -1
  378. package/dist/env.d.ts +16 -7
  379. package/dist/env.d.ts.map +1 -1
  380. package/dist/env.js +16 -6
  381. package/dist/env.js.map +1 -1
  382. package/dist/index.d.ts +74 -1
  383. package/dist/index.d.ts.map +1 -1
  384. package/dist/index.js +279 -162
  385. package/dist/index.js.map +1 -1
  386. package/dist/logger.d.ts.map +1 -1
  387. package/dist/logger.js +21 -20
  388. package/dist/logger.js.map +1 -1
  389. package/dist/mcp/server.d.ts +29 -0
  390. package/dist/mcp/server.d.ts.map +1 -0
  391. package/dist/mcp/server.js +52 -0
  392. package/dist/mcp/server.js.map +1 -0
  393. package/dist/mcp/transports/auth.d.ts +20 -4
  394. package/dist/mcp/transports/auth.d.ts.map +1 -1
  395. package/dist/mcp/transports/auth.js +27 -7
  396. package/dist/mcp/transports/auth.js.map +1 -1
  397. package/dist/mcp/transports/http.d.ts +8 -2
  398. package/dist/mcp/transports/http.d.ts.map +1 -1
  399. package/dist/mcp/transports/http.js +57 -42
  400. package/dist/mcp/transports/http.js.map +1 -1
  401. package/dist/mcp/transports/manager.d.ts +23 -9
  402. package/dist/mcp/transports/manager.d.ts.map +1 -1
  403. package/dist/mcp/transports/manager.js +27 -24
  404. package/dist/mcp/transports/manager.js.map +1 -1
  405. package/dist/mcp/transports/server.d.ts +1 -1
  406. package/dist/mcp/transports/server.d.ts.map +1 -1
  407. package/dist/mcp/transports/server.js +17 -5
  408. package/dist/mcp/transports/server.js.map +1 -1
  409. package/dist/mcp/transports/session-registry.d.ts +33 -0
  410. package/dist/mcp/transports/session-registry.d.ts.map +1 -0
  411. package/dist/mcp/transports/session-registry.js +65 -0
  412. package/dist/mcp/transports/session-registry.js.map +1 -0
  413. package/dist/mcp/transports/sse.d.ts +13 -2
  414. package/dist/mcp/transports/sse.d.ts.map +1 -1
  415. package/dist/mcp/transports/sse.js +58 -46
  416. package/dist/mcp/transports/sse.js.map +1 -1
  417. package/dist/server-runtime.d.ts +28 -0
  418. package/dist/server-runtime.d.ts.map +1 -0
  419. package/dist/server-runtime.js +73 -0
  420. package/dist/server-runtime.js.map +1 -0
  421. package/package.json +25 -9
  422. package/dist/confluent/helpers.d.ts +0 -11
  423. package/dist/confluent/helpers.d.ts.map +0 -1
  424. package/dist/confluent/helpers.js +0 -17
  425. package/dist/confluent/helpers.js.map +0 -1
  426. package/dist/confluent/tools/tool-factory.d.ts +0 -9
  427. package/dist/confluent/tools/tool-factory.d.ts.map +0 -1
  428. package/dist/confluent/tools/tool-factory.js.map +0 -1
@@ -0,0 +1,122 @@
1
+ import { BaseToolHandler, READ_ONLY, } from "../../../../confluent/tools/base-tools.js";
2
+ import { alwaysEnabled } from "../../../../confluent/tools/connection-predicates.js";
3
+ import { buildToolGatingReport, } from "../../../../confluent/tools/tool-availability.js";
4
+ import { ToolName } from "../../../../confluent/tools/tool-name.js";
5
+ import { z } from "zod";
6
+ const explainDisabledToolsArguments = z.object({});
7
+ /**
8
+ * Diagnostic tool that surfaces *why* tools are absent from `tools/list`.
9
+ *
10
+ * The MCP protocol already advertises the enabled tool set via `tools/list`;
11
+ * what it does not surface is the predicate-driven decision behind every
12
+ * absence — which config piece is missing, and which tools each gap would
13
+ * unlock. This handler returns that view.
14
+ *
15
+ * v1 scope (today's release): the server enforces a single configured
16
+ * connection (see `enforceSingleConnectionOnly()` in
17
+ * `src/config/models.ts`), so the output is a flat list of disabled tools
18
+ * grouped by the missing config piece (kafka block, flink block, schema
19
+ * registry block, …). Tools enabled on the active connection are
20
+ * intentionally absent — `tools/list` already advertises them.
21
+ *
22
+ * v2 plan (when multi-connection support lands — issue #151's follow-ups):
23
+ * regrow output around connections. The text body becomes one block per
24
+ * connection (header + per-connection gaps) plus a `Cross-connection
25
+ * deltas` section that surfaces tools enabled on some connections but not
26
+ * others — the canonical "what does connection B need to reach parity with
27
+ * connection A?" view. The structured `_meta` shape mirrors that change;
28
+ * see the {@linkcode ToolGatingReport} JSDoc in `tool-availability.ts` for
29
+ * the exact target type.
30
+ *
31
+ * Until v2 lands, the helper accepts a multi-connection runtime without
32
+ * crashing, but the v1 flatten is *lossy*: a tool whose predicate is
33
+ * enabled on at least one configured connection is reported as enabled
34
+ * (and therefore omitted from `disabledGroups` entirely), and a tool
35
+ * disabled on multiple connections with different reasons is bucketed
36
+ * under the first disabled verdict its iteration produces — the
37
+ * cross-connection asymmetry vanishes from the output. Today's
38
+ * single-connection invariant means neither lossy case can fire in
39
+ * production; this paragraph exists so a future reader does not mistake
40
+ * defensive iteration for parity reporting.
41
+ *
42
+ * Always enabled (predicate is `alwaysEnabled`) so an operator can call it
43
+ * to diagnose a config that left every other tool disabled.
44
+ *
45
+ * The handlers iterable is supplied at construction time via a thunk so
46
+ * this module does not need to import `ToolHandlerRegistry`. Importing the
47
+ * registry from a registered handler would create an ESM cycle, leaving
48
+ * the registry's static initializer running before this class's binding
49
+ * is set. The thunk is invoked at request time, after every module is
50
+ * fully loaded, sidestepping the cycle entirely.
51
+ */
52
+ export class ExplainDisabledToolsHandler extends BaseToolHandler {
53
+ listHandlers;
54
+ constructor(listHandlers) {
55
+ super();
56
+ this.listHandlers = listHandlers;
57
+ }
58
+ handle(runtime) {
59
+ const report = buildToolGatingReport(this.listHandlers(), runtime);
60
+ return this.createResponse(renderReport(report), false, { ...report });
61
+ }
62
+ getToolConfig() {
63
+ return {
64
+ name: ToolName.EXPLAIN_DISABLED_TOOLS,
65
+ description: 'Call when the user asks why a tool is missing or unavailable (e.g., "why can\'t I list Kafka topics?", "where are the Flink tools?"). Returns disabled tools grouped by the config gap each one is waiting on, so you can tell the user the exact YAML block or field to add. Prefer this over guessing about credentials, network, or auth.',
66
+ inputSchema: explainDisabledToolsArguments.shape,
67
+ annotations: READ_ONLY,
68
+ };
69
+ }
70
+ predicate = alwaysEnabled;
71
+ }
72
+ /**
73
+ * Render a {@linkcode ToolGatingReport} as the human-readable text body of
74
+ * the tool's response. Format is stable — handler tests pin specific
75
+ * substrings so the AI/script-facing structure does not drift silently.
76
+ *
77
+ * v1 (single-connection) shape:
78
+ *
79
+ * {disabled} of {total} tools disabled for the following reasons:
80
+ *
81
+ * {reason} ({n}):
82
+ * - {tool}
83
+ * - {tool}
84
+ * …
85
+ *
86
+ * {next reason} ({n}):
87
+ * - {tool}
88
+ * …
89
+ *
90
+ * {enabled} tools advertised via tools/list.
91
+ *
92
+ * Each disabled-reason group is a header line followed by one tool per
93
+ * indented bullet (two-space indent on the reason header, four-space
94
+ * indent on the bullets). Groups are separated by a blank line so
95
+ * adjacent buckets stay visually distinct.
96
+ *
97
+ * v2 (multi-connection): grow a connection header per per-connection
98
+ * section and an optional `Cross-connection deltas` section. See the
99
+ * handler's class JSDoc for the migration sketch.
100
+ */
101
+ function renderReport(report) {
102
+ const total = report.enabledCount + report.disabledCount;
103
+ if (report.disabledCount === 0) {
104
+ return `All ${total} registered tools are advertised via tools/list.`;
105
+ }
106
+ // Each group's render contains its own header line + indented bullets;
107
+ // joining with a blank line separates groups visually so long bullet
108
+ // lists from one group don't bleed into the next.
109
+ return [
110
+ `${report.disabledCount} of ${total} tools disabled for the following reasons:`,
111
+ "",
112
+ report.disabledGroups.map(renderGroup).join("\n\n"),
113
+ "",
114
+ `${report.enabledCount} tools advertised via tools/list.`,
115
+ ].join("\n");
116
+ }
117
+ function renderGroup(group) {
118
+ const header = ` ${group.reason} (${group.tools.length}):`;
119
+ const bullets = group.tools.map((tool) => ` - ${tool}`);
120
+ return [header, ...bullets].join("\n");
121
+ }
122
+ //# sourceMappingURL=explain-disabled-tools-handler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"explain-disabled-tools-handler.js","sourceRoot":"","sources":["../../../../../src/confluent/tools/handlers/diagnostics/explain-disabled-tools-handler.ts"],"names":[],"mappings":"AACA,OAAO,EACL,eAAe,EACf,SAAS,GAGV,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,+CAA+C,CAAC;AAC9E,OAAO,EACL,qBAAqB,GAGtB,MAAM,2CAA2C,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAE,MAAM,mCAAmC,CAAC;AAE7D,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,6BAA6B,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AAEnD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AACH,MAAM,OAAO,2BAA4B,SAAQ,eAAe;IAC7C,YAAY,CAE3B;IAEF,YAAY,YAA8D;QACxE,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;IACnC,CAAC;IAED,MAAM,CAAC,OAAsB;QAC3B,MAAM,MAAM,GAAG,qBAAqB,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,OAAO,CAAC,CAAC;QACnE,OAAO,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC;IACzE,CAAC;IAED,aAAa;QACX,OAAO;YACL,IAAI,EAAE,QAAQ,CAAC,sBAAsB;YACrC,WAAW,EACT,8UAA8U;YAChV,WAAW,EAAE,6BAA6B,CAAC,KAAK;YAChD,WAAW,EAAE,SAAS;SACvB,CAAC;IACJ,CAAC;IAEQ,SAAS,GAAG,aAAa,CAAC;CACpC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,SAAS,YAAY,CAAC,MAAwB;IAC5C,MAAM,KAAK,GAAG,MAAM,CAAC,YAAY,GAAG,MAAM,CAAC,aAAa,CAAC;IACzD,IAAI,MAAM,CAAC,aAAa,KAAK,CAAC,EAAE,CAAC;QAC/B,OAAO,OAAO,KAAK,kDAAkD,CAAC;IACxE,CAAC;IAED,uEAAuE;IACvE,qEAAqE;IACrE,kDAAkD;IAClD,OAAO;QACL,GAAG,MAAM,CAAC,aAAa,OAAO,KAAK,4CAA4C;QAC/E,EAAE;QACF,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;QACnD,EAAE;QACF,GAAG,MAAM,CAAC,YAAY,mCAAmC;KAC1D,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED,SAAS,WAAW,CAAC,KAA4B;IAC/C,MAAM,MAAM,GAAG,KAAK,KAAK,CAAC,MAAM,KAAK,KAAK,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC;IAC5D,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC;IAC3D,OAAO,CAAC,MAAM,EAAE,GAAG,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACzC,CAAC"}
@@ -0,0 +1,17 @@
1
+ import { CallToolResult } from "../../../../confluent/schema.js";
2
+ import { BaseToolHandler, ToolConfig } from "../../../../confluent/tools/base-tools.js";
3
+ import { ServerRuntime } from "../../../../server-runtime.js";
4
+ export declare class GetProductDocPageHandler extends BaseToolHandler {
5
+ private readonly turndown;
6
+ handle(_runtime: ServerRuntime, toolArguments: Record<string, unknown>): Promise<CallToolResult>;
7
+ private fetchFromDocsConfluent;
8
+ private fetchFromDeveloperConfluent;
9
+ private fetchFromSupportZendesk;
10
+ private fetchFromGatsbyPageData;
11
+ private fetchHtml;
12
+ private toMarkdown;
13
+ private formatResponse;
14
+ getToolConfig(): ToolConfig;
15
+ readonly predicate: import("../../../../confluent/tools/connection-predicates.js").ConnectionPredicate;
16
+ }
17
+ //# sourceMappingURL=get-product-doc-page-handler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-product-doc-page-handler.d.ts","sourceRoot":"","sources":["../../../../../src/confluent/tools/handlers/docs/get-product-doc-page-handler.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EACL,eAAe,EAEf,UAAU,EACX,MAAM,oCAAoC,CAAC;AAI5C,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AA2BvD,qBAAa,wBAAyB,SAAQ,eAAe;IAC3D,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAItB;IAEG,MAAM,CACV,QAAQ,EAAE,aAAa,EACvB,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACrC,OAAO,CAAC,cAAc,CAAC;YA8BZ,sBAAsB;YA4BtB,2BAA2B;YA2D3B,uBAAuB;YAyCvB,uBAAuB;YAgCvB,SAAS;IAqBvB,OAAO,CAAC,UAAU;IAIlB,OAAO,CAAC,cAAc;IAWtB,aAAa,IAAI,UAAU;IAU3B,QAAQ,CAAC,SAAS,8EAAiB;CACpC"}
@@ -0,0 +1,234 @@
1
+ import { nodeFetch } from "../../../../confluent/node-deps.js";
2
+ import { BaseToolHandler, READ_ONLY, } from "../../../../confluent/tools/base-tools.js";
3
+ import { alwaysEnabled } from "../../../../confluent/tools/connection-predicates.js";
4
+ import { ToolName } from "../../../../confluent/tools/tool-name.js";
5
+ import { logger } from "../../../../logger.js";
6
+ import * as cheerio from "cheerio";
7
+ import TurndownService from "turndown";
8
+ import { z } from "zod";
9
+ const ALLOWED_HOSTS = new Set([
10
+ "docs.confluent.io",
11
+ "developer.confluent.io",
12
+ "support.confluent.io",
13
+ ]);
14
+ const USER_AGENT = "mcp-confluent/get-product-doc-page";
15
+ const REQUEST_TIMEOUT_MS = 10_000;
16
+ const getProductDocPageArguments = z.object({
17
+ url: z
18
+ .url()
19
+ .describe("Absolute URL of a page under https://docs.confluent.io/, https://developer.confluent.io/, or https://support.confluent.io/. Prefer URLs returned by search-product-docs."),
20
+ });
21
+ export class GetProductDocPageHandler extends BaseToolHandler {
22
+ turndown = new TurndownService({
23
+ headingStyle: "atx",
24
+ codeBlockStyle: "fenced",
25
+ bulletListMarker: "-",
26
+ });
27
+ async handle(_runtime, toolArguments) {
28
+ const { url } = getProductDocPageArguments.parse(toolArguments);
29
+ const parsed = new URL(url);
30
+ if (parsed.protocol !== "https:" ||
31
+ !ALLOWED_HOSTS.has(parsed.hostname)) {
32
+ return this.createResponse(`Hostname '${parsed.hostname}' is not allowed. Only docs.confluent.io, developer.confluent.io, and support.confluent.io are supported.`, true);
33
+ }
34
+ try {
35
+ switch (parsed.hostname) {
36
+ case "docs.confluent.io":
37
+ return await this.fetchFromDocsConfluent(parsed);
38
+ case "developer.confluent.io":
39
+ return await this.fetchFromDeveloperConfluent(parsed);
40
+ case "support.confluent.io":
41
+ return await this.fetchFromSupportZendesk(parsed);
42
+ }
43
+ }
44
+ catch (error) {
45
+ const message = error instanceof Error ? error.message : String(error);
46
+ logger.warn({ url, error: message }, "get-product-doc-page fetch failed");
47
+ return this.createResponse(`Failed to fetch ${url}: ${message}`, true);
48
+ }
49
+ }
50
+ // Sphinx publishes a .md twin at the same path; HTML scrape is the fallback.
51
+ async fetchFromDocsConfluent(parsed) {
52
+ const mdResponse = await fetchWithTimeout(toMarkdownTwin(parsed), {
53
+ headers: { "user-agent": USER_AGENT, accept: "text/markdown,text/plain" },
54
+ });
55
+ if (mdResponse.ok &&
56
+ (mdResponse.headers.get("content-type") ?? "")
57
+ .toLowerCase()
58
+ .includes("markdown")) {
59
+ const body = (await mdResponse.text()).trim();
60
+ return this.formatResponse(parsed, undefined, body);
61
+ }
62
+ // 404s on docs.confluent.io soft-redirect to /index.html; reject path
63
+ // changes so we don't return the homepage as if it were the requested page.
64
+ const html = await this.fetchHtml(parsed, { rejectRedirect: true });
65
+ const $ = cheerio.load(html);
66
+ const main = $("div.rst-content").first();
67
+ const target = main.length > 0 ? main : $("body");
68
+ return this.formatResponse(parsed, undefined, this.toMarkdown(target.html()));
69
+ }
70
+ // Gatsby site has hashed CSS classes; key off stable data-swiftype-* attributes.
71
+ async fetchFromDeveloperConfluent(parsed) {
72
+ const html = await this.fetchHtml(parsed);
73
+ const $ = cheerio.load(html);
74
+ // <section data-test-id="section"> wraps both content and footer chrome
75
+ // (Cloud promo, newsletter). Real content is 3KB+ text; chrome is < 1KB.
76
+ $('section[data-test-id="section"]').each((_, el) => {
77
+ if ($(el).text().trim().length < 1500)
78
+ $(el).remove();
79
+ });
80
+ const title = $('[data-swiftype-name="title"]').first().text().trim();
81
+ let bodyHtml = null;
82
+ const swiftypeBody = $('[data-swiftype-name="body"]').first();
83
+ if (swiftypeBody.length > 0) {
84
+ swiftypeBody.find('[data-swiftype-index="false"]').remove();
85
+ bodyHtml = swiftypeBody.html();
86
+ }
87
+ else {
88
+ const fromPageData = await this.fetchFromGatsbyPageData(parsed);
89
+ if (fromPageData)
90
+ return fromPageData;
91
+ // Quickstart pages have no Swiftype body — content lives in <section> blocks.
92
+ const sections = $('section[data-test-id="section"]');
93
+ if (sections.length > 0) {
94
+ sections.find('[data-swiftype-index="false"]').remove();
95
+ bodyHtml = sections
96
+ .map((_, el) => $.html(el))
97
+ .get()
98
+ .join("\n");
99
+ }
100
+ else {
101
+ // Tutorial pages (/confluent-tutorials/...) have neither marker —
102
+ // strip <body> chrome and keep the rest.
103
+ const body = $("body");
104
+ body
105
+ .find('header, footer, nav, script, style, noscript, [data-swiftype-index="false"]')
106
+ .remove();
107
+ const stripped = body.html()?.trim();
108
+ if (stripped)
109
+ bodyHtml = stripped;
110
+ }
111
+ }
112
+ if (!bodyHtml) {
113
+ return this.createResponse(`Could not locate article body for ${parsed.toString()}. The page structure may have changed.`, true);
114
+ }
115
+ return this.formatResponse(parsed, title || undefined, this.toMarkdown(bodyHtml));
116
+ }
117
+ // Zendesk Help Center: prefer the public JSON API for clean body; HTML scrape is the fallback.
118
+ async fetchFromSupportZendesk(parsed) {
119
+ const articleId = parsed.pathname.match(/\/articles\/(\d+)/)?.[1];
120
+ if (articleId) {
121
+ const apiResponse = await fetchWithTimeout(`https://support.confluent.io/api/v2/help_center/articles/${articleId}.json`, {
122
+ headers: { "user-agent": USER_AGENT, accept: "application/json" },
123
+ });
124
+ if (apiResponse.ok) {
125
+ const { article } = (await apiResponse.json());
126
+ if (article?.body) {
127
+ return this.formatResponse(parsed, article.title, this.toMarkdown(article.body));
128
+ }
129
+ }
130
+ }
131
+ const html = await this.fetchHtml(parsed);
132
+ const $ = cheerio.load(html);
133
+ const article = $("article#main-content").first();
134
+ if (article.length === 0) {
135
+ return this.createResponse(`Could not locate article body for ${parsed.toString()}. ` +
136
+ `This URL may be a Help Center index or category page; only article URLs (containing "/articles/<id>") are supported.`, true);
137
+ }
138
+ return this.formatResponse(parsed, undefined, this.toMarkdown(article.html()));
139
+ }
140
+ // CSR pages (e.g. /get-started/<lang>/) expose their real content as JSON
141
+ // at /page-data/<path>/page-data.json instead of in the SSR HTML.
142
+ async fetchFromGatsbyPageData(parsed) {
143
+ const pageDataUrl = `${parsed.origin}/page-data${parsed.pathname.replace(/\/?$/, "/")}page-data.json`;
144
+ const resp = await fetchWithTimeout(pageDataUrl, {
145
+ headers: { "user-agent": USER_AGENT, accept: "application/json" },
146
+ });
147
+ if (!resp.ok)
148
+ return null;
149
+ let data;
150
+ try {
151
+ data = (await resp.json());
152
+ }
153
+ catch {
154
+ return null;
155
+ }
156
+ const ctx = data?.result?.pageContext;
157
+ const cm = ctx?.contentMappings;
158
+ if (!cm || typeof cm !== "object")
159
+ return null;
160
+ // If the URL has a fragment (e.g. #produce-events), return only that section.
161
+ const sections = parsed.hash && cm[parsed.hash] ? [cm[parsed.hash]] : Object.values(cm);
162
+ const html = sections.join("\n");
163
+ if (!html)
164
+ return null;
165
+ const title = ctx?.hero?.title ?? ctx?.seo?.title;
166
+ return this.formatResponse(parsed, title || undefined, this.toMarkdown(html));
167
+ }
168
+ async fetchHtml(parsed, opts) {
169
+ const response = await fetchWithTimeout(parsed.toString(), {
170
+ headers: { "user-agent": USER_AGENT },
171
+ });
172
+ if (!response.ok) {
173
+ throw new Error(`${response.status} ${response.statusText}`);
174
+ }
175
+ if (opts?.rejectRedirect) {
176
+ const finalPath = new URL(response.url || parsed.toString()).pathname;
177
+ if (finalPath !== parsed.pathname) {
178
+ throw new Error(`${parsed.toString()} redirected to ${finalPath}; page may have been moved or removed.`);
179
+ }
180
+ }
181
+ return response.text();
182
+ }
183
+ toMarkdown(html) {
184
+ return this.turndown.turndown(html ?? "").trim();
185
+ }
186
+ formatResponse(parsed, title, body) {
187
+ const heading = title ? `# ${title}\n\n` : "";
188
+ return this.createResponse(`# Source: ${parsed.toString()}\n\n${heading}${body}`);
189
+ }
190
+ getToolConfig() {
191
+ return {
192
+ name: ToolName.GET_PRODUCT_DOC_PAGE,
193
+ description: "Fetch the full markdown content of a Confluent product documentation page. Accepts URLs under https://docs.confluent.io/, https://developer.confluent.io/, or https://support.confluent.io/. Use this after search-product-docs to read a result's full content.",
194
+ inputSchema: getProductDocPageArguments.shape,
195
+ annotations: READ_ONLY,
196
+ };
197
+ }
198
+ predicate = alwaysEnabled;
199
+ }
200
+ function toMarkdownTwin(parsed) {
201
+ const twin = new URL(parsed.toString());
202
+ if (twin.pathname.endsWith(".html")) {
203
+ twin.pathname = twin.pathname.slice(0, -".html".length) + ".md";
204
+ }
205
+ else if (twin.pathname.endsWith("/")) {
206
+ twin.pathname += "index.md";
207
+ }
208
+ else {
209
+ twin.pathname += ".md";
210
+ }
211
+ return twin.toString();
212
+ }
213
+ // Adds a 10s deadline and re-checks the post-redirect host so a 3xx
214
+ // can't escape ALLOWED_HOSTS. Relabels TimeoutError with URL and budget.
215
+ async function fetchWithTimeout(url, init) {
216
+ try {
217
+ const response = await nodeFetch.fetch(url, {
218
+ ...init,
219
+ signal: AbortSignal.timeout(REQUEST_TIMEOUT_MS),
220
+ });
221
+ const finalHost = new URL(response.url || url).hostname;
222
+ if (!ALLOWED_HOSTS.has(finalHost)) {
223
+ throw new Error(`Request to ${url} redirected to disallowed host ${finalHost}`);
224
+ }
225
+ return response;
226
+ }
227
+ catch (err) {
228
+ if (err instanceof Error && err.name === "TimeoutError") {
229
+ throw new Error(`Request to ${url} timed out after ${REQUEST_TIMEOUT_MS}ms`);
230
+ }
231
+ throw err;
232
+ }
233
+ }
234
+ //# sourceMappingURL=get-product-doc-page-handler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-product-doc-page-handler.js","sourceRoot":"","sources":["../../../../../src/confluent/tools/handlers/docs/get-product-doc-page-handler.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import { CallToolResult } from "../../../../confluent/schema.js";
2
+ import { BaseToolHandler, ToolConfig } from "../../../../confluent/tools/base-tools.js";
3
+ import { ServerRuntime } from "../../../../server-runtime.js";
4
+ export declare class SearchProductDocsHandler extends BaseToolHandler {
5
+ handle(_runtime: ServerRuntime, toolArguments: Record<string, unknown>): Promise<CallToolResult>;
6
+ private searchSwiftype;
7
+ private searchDeveloperProxy;
8
+ /** Zendesk Help Center public search API — no auth, support hits only. */
9
+ private searchSupportZendesk;
10
+ getToolConfig(): ToolConfig;
11
+ readonly predicate: import("../../../../confluent/tools/connection-predicates.js").ConnectionPredicate;
12
+ }
13
+ //# sourceMappingURL=search-product-docs-handler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search-product-docs-handler.d.ts","sourceRoot":"","sources":["../../../../../src/confluent/tools/handlers/docs/search-product-docs-handler.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EACL,eAAe,EAEf,UAAU,EACX,MAAM,oCAAoC,CAAC;AAI5C,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAwDvD,qBAAa,wBAAyB,SAAQ,eAAe;IACrD,MAAM,CACV,QAAQ,EAAE,aAAa,EACvB,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACrC,OAAO,CAAC,cAAc,CAAC;YAkDZ,cAAc;YAgCd,oBAAoB;IA4ClC,0EAA0E;YAC5D,oBAAoB;IA6BlC,aAAa,IAAI,UAAU;IAW3B,QAAQ,CAAC,SAAS,8EAAiB;CACpC"}