@confluentinc/mcp-confluent 1.2.2 → 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 +171 -193
  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 -77
  37. package/dist/confluent/client-manager.d.ts.map +1 -1
  38. package/dist/confluent/client-manager.js +5 -213
  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 +98 -23
  109. package/dist/confluent/tools/base-tools.d.ts.map +1 -1
  110. package/dist/confluent/tools/base-tools.js +62 -4
  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 +4 -8
  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 +4 -8
  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 +4 -8
  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 +4 -8
  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 +4 -8
  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 +4 -8
  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 +9 -12
  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 +21 -21
  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 +10 -15
  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 +15 -17
  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 +10 -15
  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 +4 -8
  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 +4 -8
  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 +15 -21
  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 +15 -21
  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 +12 -20
  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 +12 -20
  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 +13 -29
  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 +18 -23
  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 +7 -13
  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 +7 -13
  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 +8 -15
  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 +11 -17
  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 +7 -13
  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 +9 -16
  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 +7 -13
  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 +20 -19
  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 +23 -16
  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 +50 -14
  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 +24 -7
  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 +20 -19
  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 +23 -9
  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 +51 -32
  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 +4 -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 +86 -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 +11 -7
  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 +11 -6
  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 +4 -8
  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 +4 -8
  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 +17 -13
  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 +6 -12
  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 +7 -13
  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 +6 -12
  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 +5 -9
  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 +19 -21
  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 +17 -13
  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 +6 -12
  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 +7 -13
  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 +6 -12
  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 +5 -9
  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 -7
  375. package/dist/env-schema.d.ts.map +1 -1
  376. package/dist/env-schema.js +20 -39
  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 -166
  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
package/README.md CHANGED
@@ -3,250 +3,212 @@
3
3
  [![npm version](https://img.shields.io/npm/v/@confluentinc/mcp-confluent.svg)](https://www.npmjs.com/package/@confluentinc/mcp-confluent)
4
4
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)
5
5
 
6
- An open-source [MCP server](https://modelcontextprotocol.io/) that enables AI assistants to interact with Confluent Cloud and Confluent Local through natural language. It provides 50+ tools across Kafka, Flink SQL, Schema Registry, Connectors, Tableflow, and more -- usable from any MCP-compatible client including Claude Desktop, Claude Code, Cursor, VS Code, Goose, and Gemini CLI.
6
+ An open-source [MCP server](https://modelcontextprotocol.io/) that enables AI assistants to interact with Confluent Cloud, Confluent Platform, and standalone Apache Kafka deployments through natural language.
7
+ It provides 50+ tools across Kafka, Flink SQL, Schema Registry, Connectors, Tableflow, and more -- usable from any MCP-compatible client including Claude Desktop, Claude Code, Cursor, VS Code, Goose, and Gemini CLI.
7
8
 
8
9
  ## Quick Start
9
10
 
10
- > **Prerequisites:** [Node.js 22+](https://nodejs.org/). If you want to interact with [Confluent Cloud](https://confluent.cloud/), you need to create an account first.
11
+ > **Prerequisites:** [Node.js 22+](https://nodejs.org/).
12
+ > If you want to interact with [Confluent Cloud](https://confluent.cloud/), you need to create an account first.
13
+
14
+ 1. Generate a quick `config.yaml` file in your project root:
15
+
16
+ ```bash
17
+ npx @confluentinc/mcp-confluent --init-config
18
+ ```
19
+
20
+ 2. Edit the `config.yaml` file with your connection details, then:
11
21
 
12
22
  ```bash
13
- # Install and run
14
- npx -y @confluentinc/mcp-confluent -e /path/to/.env
23
+ npx @confluentinc/mcp-confluent --config ./config.yaml
15
24
  ```
16
25
 
17
- Or install the [npm package](https://www.npmjs.com/package/@confluentinc/mcp-confluent) directly. See [Getting Started](#getting-started) for full setup instructions and [Configuring MCP Clients](#configuring-mcp-clients) for integration with your preferred AI tool.
26
+ See [Getting Started](#getting-started) for full setup instructions and [Configuring MCP Clients](#configuring-mcp-clients) for integration with your preferred AI tool.
18
27
 
19
28
  ## Table of Contents
20
29
 
21
30
  - [Quick Start](#quick-start)
22
31
  - [Available Tools](#available-tools)
32
+ - [Always Available](#always-available-tools)
23
33
  - [Confluent Cloud](#available-tools-for-confluent-cloud)
24
- - [Confluent Local](#available-tools-for-confluent-local)
25
- - [User Guide](#user-guide)
26
- - [Getting Started](#getting-started)
27
- - [Configuration](#configuration)
28
- - [Authentication for HTTP/SSE Transports](#authentication-for-httpsse-transports)
29
- - [Usage](#usage)
30
- - [CLI Usage](#cli-usage)
31
- - [Configuring MCP Clients](#configuring-mcp-clients)
34
+ - [Local deployments](#available-tools-for-local-deployments)
35
+ - [Getting Started](#getting-started)
36
+ - [Configuration](#configuration)
37
+ - [OAuth Authentication for Confluent Cloud](#oauth-authentication-for-confluent-cloud)
38
+ - [CLI Usage](#cli-usage)
39
+ - [Configuring MCP Clients](#configuring-mcp-clients)
32
40
  - [Telemetry](#telemetry)
33
41
  - [Troubleshooting](#troubleshooting)
34
42
  - [Contributing](#contributing)
35
43
 
36
44
  ## Available Tools
37
45
 
38
- Only the tools whose required environment variables are configured will be enabled. You can also list all available tools via the CLI:
46
+ Tools are auto-enabled based on which service blocks are present in your resolved configuration; see [CONFIGURATION.md](CONFIGURATION.md#tool-enablement-which-block-lights-up-what) for the full block-to-tool mapping.
47
+
48
+ You can list all available tools via the CLI:
39
49
 
40
50
  ```bash
41
51
  npx -y @confluentinc/mcp-confluent --list-tools
42
52
  ```
43
53
 
54
+ ### Always-Available Tools
55
+
56
+ These tools need no service blocks or authentication — they're enabled even on a bare config, regardless of which deployment the rest of your config targets.
57
+
58
+ | Category | Tools | Description |
59
+ | ----------------- | --------------------------------------------- | --------------------------------------------------------- |
60
+ | **Documentation** | `search-product-docs`, `get-product-doc-page` | Search Confluent product docs and fetch full page content |
61
+ | **Diagnostics** | `explain-disabled-tools` | Explain why specific tools are absent from `tools/list` |
62
+
44
63
  ### Available Tools for Confluent Cloud
45
64
 
46
- These tools require endpoints and authentication against specific Confluent Cloud components. Refer to [`.env.example`](.env.example) for the full set of configuration variables.
47
-
48
- | Category | Tools | Description |
49
- | --------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------- |
50
- | **Kafka** | `list-topics`, `create-topics`, `delete-topics`, `produce-message`, `consume-messages`, `alter-topic-config`, `get-topic-config` | Manage topics, produce/consume messages, configure topic settings |
51
- | **Flink SQL** | `create-flink-statement`, `list-flink-statements`, `read-flink-statement`, `delete-flink-statements`, `get-flink-statement-exceptions` | Create and manage Flink SQL statements |
52
- | **Flink Catalog** | `list-flink-catalogs`, `list-flink-databases`, `list-flink-tables`, `describe-flink-table`, `get-flink-table-info` | Explore Flink catalogs, databases, and table schemas |
53
- | **Flink Diagnostics** | `check-flink-statement-health`, `detect-flink-statement-issues`, `get-flink-statement-profile` | Health checks, issue detection, and query profiling |
54
- | **Connectors** | `list-connectors`, `read-connector`, `create-connector`, `delete-connector` | Manage Kafka Connect connectors |
55
- | **Schema Registry** | `list-schemas`, `delete-schema` | List, inspect, and delete data schemas |
56
- | **Catalog & Tags** | `search-topics-by-tag`, `search-topics-by-name`, `create-topic-tags`, `delete-tag`, `remove-tag-from-entity`, `add-tags-to-topic`, `list-tags` | Organize and search topics using tags |
57
- | **Environments & Clusters** | `list-environments`, `read-environment`, `list-clusters` | Discover Confluent Cloud resources |
58
- | **Tableflow** | `create-tableflow-topic`, `list-tableflow-topics`, `read-tableflow-topic`, `update-tableflow-topic`, `delete-tableflow-topic`, `list-tableflow-regions` | Manage Tableflow-enabled topics |
59
- | **Tableflow Catalog** | `create-tableflow-catalog-integration`, `list-tableflow-catalog-integrations`, `read-tableflow-catalog-integration`, `update-tableflow-catalog-integration`, `delete-tableflow-catalog-integration` | Manage Tableflow catalog integrations (e.g., AWS Glue) |
60
- | **Metrics** | `list-available-metrics`, `query-metrics` | Discover and query Confluent Cloud operational metrics |
61
- | **Billing** | `list-billing-costs` | Query billing and cost data |
62
-
63
- ### Available Tools for Confluent Local
64
-
65
- These tools only require Kafka or Schema Registry endpoints - no Confluent Cloud API key/secret is needed. Ideal for local development with Docker Compose or self-managed clusters.
66
-
67
- ```properties
68
- # minimal .env for local development
69
- BOOTSTRAP_SERVERS="localhost:9092"
70
- SCHEMA_REGISTRY_ENDPOINT="http://localhost:8081"
65
+ These tools require endpoints and authentication against specific Confluent Cloud components.
66
+ Refer to [`config.example.yaml`](config.example.yaml) for the full set of configuration variables.
67
+ Categories marked with ¹ also work with [OAuth authentication](#oauth-authentication-for-confluent-cloud) — sign in via your browser instead of provisioning API keys.
68
+
69
+ | Category | Tools | Description |
70
+ | -------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------- |
71
+ | **Kafka** ¹ | `list-topics`, `create-topics`, `delete-topics`, `produce-message`, `consume-messages`, `alter-topic-config`, `get-topic-config` | Manage topics, produce/consume messages, configure topic settings |
72
+ | **Flink SQL** | `create-flink-statement`, `list-flink-statements`, `read-flink-statement`, `delete-flink-statements`, `get-flink-statement-exceptions` | Create and manage Flink SQL statements |
73
+ | **Flink Catalog** | `list-flink-catalogs`, `list-flink-databases`, `list-flink-tables`, `describe-flink-table`, `get-flink-table-info` | Explore Flink catalogs, databases, and table schemas |
74
+ | **Flink Diagnostics** | `check-flink-statement-health`, `detect-flink-statement-issues`, `get-flink-statement-profile` | Health checks, issue detection, and query profiling |
75
+ | **Connectors** | `list-connectors`, `read-connector`, `create-connector`, `delete-connector` | Manage Kafka Connect connectors |
76
+ | **Schema Registry** ¹ | `list-schemas`, `delete-schema` | List, inspect, and delete data schemas |
77
+ | **Catalog & Tags** | `search-topics-by-tag`, `search-topics-by-name`, `create-topic-tags`, `delete-tag`, `remove-tag-from-entity`, `add-tags-to-topic`, `list-tags` | Organize and search topics using tags |
78
+ | **Organizations, Environments & Clusters** ¹ | `list-organizations`, `list-environments`, `read-environment`, `list-clusters` | Discover Confluent Cloud resources |
79
+ | **Tableflow** | `create-tableflow-topic`, `list-tableflow-topics`, `read-tableflow-topic`, `update-tableflow-topic`, `delete-tableflow-topic`, `list-tableflow-regions` | Manage Tableflow-enabled topics |
80
+ | **Tableflow Catalog** | `create-tableflow-catalog-integration`, `list-tableflow-catalog-integrations`, `read-tableflow-catalog-integration`, `update-tableflow-catalog-integration`, `delete-tableflow-catalog-integration` | Manage Tableflow catalog integrations (e.g., AWS Glue) |
81
+ | **Metrics** | `list-available-metrics`, `query-metrics` | Discover and query Confluent Cloud operational metrics |
82
+ | **Billing** ¹ | `list-billing-costs` | Query billing and cost data |
83
+
84
+ ¹ Also available under OAuth — see [OAuth Authentication for Confluent Cloud](#oauth-authentication-for-confluent-cloud) for setup and caveats.
85
+ Categories not marked currently require a `direct` connection with static API keys; OAuth migration is in progress.
86
+
87
+ ### Available Tools for local deployments
88
+
89
+ These tools only require Kafka or Schema Registry endpoints - no Confluent Cloud API key/secret is needed.
90
+ Ideal for local development with self-managed clusters, including Confluent Platform.
91
+
92
+ ```yaml
93
+ # minimal config.yaml for local development
94
+ connections:
95
+ local:
96
+ type: direct
97
+ kafka:
98
+ bootstrap_servers: "localhost:9092"
99
+ schema_registry:
100
+ endpoint: "http://localhost:8081"
71
101
  ```
72
102
 
103
+ Ready-to-use variants live in [`sample_configs/`](sample_configs/).
104
+
73
105
  | Category | Tools | Description |
74
106
  | ------------------- | -------------------------------------------------------------------------------------- | --------------------------------------- |
75
107
  | **Kafka** | `list-topics`, `create-topics`, `delete-topics`, `produce-message`, `consume-messages` | Manage topics, produce/consume messages |
76
108
  | **Schema Registry** | `list-schemas`, `delete-schema` | List, inspect, and delete data schemas |
77
109
 
78
- ## User Guide
110
+ ## Getting Started
79
111
 
80
- ### Getting Started
81
-
82
- #### Prerequisites
112
+ ### Prerequisites
83
113
 
84
114
  - **Node.js 22 or later** -- we recommend using [NVM](https://github.com/nvm-sh/nvm) to manage versions:
85
115
  ```bash
86
116
  nvm install 22
87
117
  nvm use 22
88
118
  ```
89
- - A **Confluent Cloud** account with appropriate API keys
90
-
91
- #### Setup
92
-
93
- 1. **Create a `.env` file:** Copy the provided `.env.example` file to `.env` in the root of your project:
94
- ```bash
95
- cp .env.example .env
96
- ```
97
- 2. **Populate the `.env` file:** Fill in the necessary values for your Confluent Cloud environment. See the [Configuration](#configuration) section for details on each variable.
98
-
99
- ### Configuration
100
-
101
- You can configure the MCP server using the following environment variables:
102
-
103
- | Variable | Description | Default Value | Required |
104
- | ----------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------- | -------- |
105
- | HTTP_HOST | Host to bind for HTTP transport. Defaults to localhost only for security. | "127.0.0.1" | Yes |
106
- | HTTP_MCP_ENDPOINT_PATH | HTTP endpoint path for MCP transport (e.g., '/mcp') (string) | "/mcp" | Yes |
107
- | HTTP_PORT | Port to use for HTTP transport (number (min: 0)) | 8080 | Yes |
108
- | LOG_LEVEL | Log level for application logging (trace, debug, info, warn, error, fatal) | "info" | Yes |
109
- | MCP_API_KEY | API key for HTTP/SSE authentication. Generate using `--generate-key`. Required when auth is enabled. | | No\* |
110
- | MCP_AUTH_DISABLED | Disable authentication for HTTP/SSE transports. WARNING: Only use in development environments. | false | No |
111
- | MCP_ALLOWED_HOSTS | Comma-separated list of allowed Host header values for DNS rebinding protection. | "localhost,127.0.0.1" | No |
112
- | SSE_MCP_ENDPOINT_PATH | SSE endpoint path for establishing SSE connections (e.g., '/sse', '/events') (string) | "/sse" | Yes |
113
- | SSE_MCP_MESSAGE_ENDPOINT_PATH | SSE message endpoint path for receiving messages (e.g., '/messages', '/events/messages') (string) | "/messages" | Yes |
114
- | BOOTSTRAP_SERVERS | List of Kafka broker addresses in the format host1:port1,host2:port2 used to establish initial connection to the Kafka cluster (string) | | No |
115
- | CONFLUENT_CLOUD_API_KEY | Master API key for Confluent Cloud platform administration, enabling management of resources across your organization (string (min: 1)) | | No |
116
- | CONFLUENT_CLOUD_API_SECRET | Master API secret paired with CONFLUENT_CLOUD_API_KEY for comprehensive Confluent Cloud platform administration (string (min: 1)) | | No |
117
- | CONFLUENT_CLOUD_REST_ENDPOINT | Base URL for Confluent Cloud's REST API services (default) | https://api.confluent.cloud | No |
118
- | FLINK_API_KEY | Authentication key for accessing Confluent Cloud's Flink services, including compute pools and SQL statement management (string (min: 1)) | | No |
119
- | FLINK_API_SECRET | Secret token paired with FLINK_API_KEY for authenticated access to Confluent Cloud's Flink services (string (min: 1)) | | No |
120
- | FLINK_COMPUTE_POOL_ID | Unique identifier for the Flink compute pool, must start with 'lfcp-' prefix (string) | | No |
121
- | FLINK_DATABASE_NAME | Name of the associated Kafka cluster used as a database reference in Flink SQL operations (string (min: 1)) | | No |
122
- | FLINK_ENV_ID | Unique identifier for the Flink environment, must start with 'env-' prefix (string) | | No |
123
- | FLINK_ENV_NAME | Human-readable name for the Flink environment used for identification and display purposes (string (min: 1)) | | No |
124
- | FLINK_ORG_ID | Organization identifier within Confluent Cloud for Flink resource management (string (min: 1)) | | No |
125
- | FLINK_REST_ENDPOINT | Base URL for Confluent Cloud's Flink REST API endpoints used for SQL statement and compute pool management (string) | | No |
126
- | KAFKA_API_KEY | Authentication credential (username) required to establish secure connection with the Kafka cluster (string (min: 1)) | | No |
127
- | KAFKA_API_SECRET | Authentication credential (password) paired with KAFKA_API_KEY for secure Kafka cluster access (string (min: 1)) | | No |
128
- | KAFKA_CLUSTER_ID | Unique identifier for the Kafka cluster within Confluent Cloud ecosystem (string (min: 1)) | | No |
129
- | KAFKA_ENV_ID | Environment identifier for Kafka cluster, must start with 'env-' prefix (string) | | No |
130
- | KAFKA_REST_ENDPOINT | REST API endpoint for Kafka cluster management and administration (string) | | No |
131
- | SCHEMA_REGISTRY_API_KEY | Authentication key for accessing Schema Registry services to manage and validate data schemas (string (min: 1)) | | No |
132
- | SCHEMA_REGISTRY_API_SECRET | Authentication secret paired with SCHEMA_REGISTRY_API_KEY for secure Schema Registry access (string (min: 1)) | | No |
133
- | SCHEMA_REGISTRY_ENDPOINT | URL endpoint for accessing Schema Registry services to manage data schemas (string) | | No |
134
- | TABLEFLOW_API_KEY | Authentication key for accessing Confluent Cloud's Tableflow services (string (min: 1)) | | No |
135
- | TABLEFLOW_API_SECRET | Authentication secret paired with TABLEFLOW_API_KEY for secure Tableflow access (string (min: 1)) | | No |
136
- | TELEMETRY_ENDPOINT | Base URL for Confluent Cloud Telemetry API (metrics) | "https://api.telemetry.confluent.cloud" | No |
137
- | TELEMETRY_API_KEY | Optional API key for telemetry access. Falls back to CONFLUENT_CLOUD_API_KEY if not set. (See [Metrics API authentication docs](https://docs.confluent.io/cloud/current/monitoring/metrics-api.html#create-an-api-key-to-authenticate-to-the-metrics-api).) | | No |
138
- | TELEMETRY_API_SECRET | Optional API secret for telemetry access. Falls back to CONFLUENT_CLOUD_API_SECRET if not set. (See [Metrics API authentication docs](https://docs.confluent.io/cloud/current/monitoring/metrics-api.html#create-an-api-key-to-authenticate-to-the-metrics-api).) | | No |
139
- | DO_NOT_TRACK | Set to `true` to opt out of anonymous telemetry data collection. See [Telemetry](#telemetry) for details. | | No |
140
-
141
- #### Prerequisites & Setup for Tableflow Commands
142
-
143
- In order to leverage **Tableflow commands** to interact with your data ecosystem and successfully execute these Tableflow commands and manage resources (e.g., interacting with data storage like AWS S3 and metadata catalogs like AWS Glue), certain **IAM (Identity and Access Management) permissions** and configurations are essential.
144
-
145
- It is crucial to set up the necessary roles and policies in your cloud environment (e.g., AWS) and link them correctly within Confluent Cloud. This ensures your Flink SQL cluster, which powers Tableflow, has the required authorization to perform operations on your behalf.
146
-
147
- Please refer to the following Confluent Cloud documentation for detailed instructions on setting up these permissions and integrating with custom storage and Glue:
148
-
149
- - **Confluent Cloud Tableflow Quick Start with Custom Storage & Glue:**
150
- [https://docs.confluent.io/cloud/current/topics/tableflow/get-started/quick-start-custom-storage-glue.html](https://docs.confluent.io/cloud/current/topics/tableflow/get-started/quick-start-custom-storage-glue.html)
151
-
152
- Ensuring these prerequisites are met will prevent authorization errors when the `mcp-server` attempts to provision or manage Tableflow-enabled tables.
153
-
154
- ### Authentication for HTTP/SSE Transports
155
-
156
- When using HTTP or SSE transports, the MCP server requires API key authentication to prevent unauthorized access and protect against DNS rebinding attacks. This is **enabled by default**.
157
-
158
- #### Generating an API Key
159
-
160
- Generate a secure API key using the built-in utility:
119
+ - A local environment with Kafka or Schema Registry running, or a **Confluent Cloud** account with appropriate API keys or login credentials if [using OAuth to authenticate](#oauth-authentication-for-confluent-cloud).
161
120
 
162
- ```bash
163
- npx @confluentinc/mcp-confluent --generate-key
164
- ```
121
+ ### General Setup Steps
165
122
 
166
- This will output a 64-character key generated using secure cryptography:
123
+ This MCP server is designed to be used with various MCP clients, such as Claude Desktop, Copilot, or Goose CLI/Desktop.
124
+ The specific configuration and interaction will depend on the client you are using.
167
125
 
168
- ```
169
- Generated MCP API Key:
170
- ================================================================
171
- a1b2c3d4e5f6...your-64-char-key-here...
172
- ================================================================
126
+ The MCP server can authenticate to Confluent Cloud via **OAuth (PKCE)** in addition to static API keys defined in the YAML config.
127
+ See [OAuth Authentication For Confluent Cloud](#oauth-authentication-for-confluent-cloud) for more details.
173
128
 
174
- ```
175
-
176
- #### Configuring Authentication
177
-
178
- Add the generated key to your `.env` file:
179
-
180
- ```properties
181
- # MCP Server Authentication (required for HTTP/SSE transports)
182
- MCP_API_KEY=your-generated-64-char-key-here
183
- ```
129
+ The general steps to configure (if not using OAuth) and run this MCP are:
184
130
 
185
- #### Making Authenticated Requests
186
-
187
- Include the API key in the `cflt-mcp-api-Key` header for all HTTP/SSE requests:
131
+ 1. **Create a configuration file:** Copy the provided [`config.yaml` example](https://github.com/confluentinc/mcp-confluent/blob/main/config.example.yaml) file to the root of your project.
132
+ You can use the CLI to bootstrap one in your current directory — no git checkout required:
188
133
 
189
134
  ```bash
190
- curl -H "cflt-mcp-api-Key: your-api-key" http://localhost:8080/mcp
135
+ npx @confluentinc/mcp-confluent --init-config
191
136
  ```
192
137
 
193
- #### DNS Rebinding Protection
138
+ 2. **Populate the file:** Fill in the necessary values for your Confluent Cloud environment.
139
+ See [CONFIGURATION.md](CONFIGURATION.md) for the full reference; only fill in the service blocks you need (each one enables a group of tools).
194
140
 
195
- The server includes additional protections against DNS rebinding attacks:
141
+ 3. **Start the Server:** You can run the MCP server in one of two ways:
142
+ - **From source:** Follow the instructions in the [Contributing Guide](CONTRIBUTING.md) to build and run the server from source.
143
+ This typically involves:
144
+ - Installing dependencies (`npm install`)
145
+ - Building the project (`npm run build` or `npm run dev`)
146
+ - **With npx:** You can start the server directly using npx, no build required:
196
147
 
197
- - **Host Header Validation**: Only requests with allowed Host headers are accepted
148
+ ```bash
149
+ npx @confluentinc/mcp-confluent --config /path/to/myconfig.yaml
150
+ ```
198
151
 
199
- Configure allowed hosts if needed:
152
+ 4. **Configure your MCP Client:** Each client (e.g., Claude, Goose) will have its own way of specifying the MCP server's address and any required credentials.
153
+ You'll need to [configure your client](#configuring-mcp-clients) to connect to the address where this server is running (likely `localhost` with a specific port).
154
+ The port the server runs on is set via `server.http.port` in `config.yaml`.
200
155
 
201
- ```properties
202
- # Allow additional hosts (comma-separated)
203
- MCP_ALLOWED_HOSTS=localhost,127.0.0.1,myhost.local
204
- ```
156
+ 5. **Start your MCP Client:** Once your client is configured to connect to the MCP server, you can start your MCP client and on startup it will stand up an instance of this MCP server locally.
157
+ This instance will be responsible for managing data schemas and interacting with resources on your behalf.
205
158
 
206
- #### Additional security to prevent internet exposure of MCP server
159
+ 6. **Interact with your resources through the Client:** Once the client is connected and configured, you can use the client's interface to interact with Confluent Cloud or local resources.
160
+ The client will send requests to this MCP server, which will then interact with the available connections on your behalf.
207
161
 
208
- - **Localhost Binding**: Server binds to `127.0.0.1` by default (not `0.0.0.0`)
162
+ ## Configuration
209
163
 
210
- #### Disabling Authentication (Development Only)
164
+ The full configuration reference — YAML schema, every service block, env-var interpolation, OAuth and HTTP/SSE auth setup, the (deprecated) legacy env-var table, and tool-to-block mapping — lives in [CONFIGURATION.md](CONFIGURATION.md).
211
165
 
212
- For local development, you can disable authentication:
166
+ > **Compatibility note.** This release ships full parity between YAML (`-c config.yaml`) and the legacy env-var path (`-e config.env`) for a single connection.
167
+ > The env-var-only path will emit a startup warning in a near-future release and be removed a release or two later.
168
+ > Multi-connection support (next release) will be YAML-only.
169
+ > See [CONFIGURATION.md → Two paths, one configuration](CONFIGURATION.md#two-paths-one-configuration).
213
170
 
214
- ```bash
215
- # Via CLI flag
216
- npx @confluentinc/mcp-confluent -e .env --transport http --disable-auth
171
+ ### Prerequisites & setup for Tableflow commands
217
172
 
218
- # Or via environment variable
219
- MCP_AUTH_DISABLED=true
220
- ```
173
+ Tableflow tools interact with cloud storage (e.g. AWS S3) and a metadata catalog (e.g. AWS Glue) on your behalf via the Flink runtime in Confluent Cloud.
174
+ The Flink runtime needs IAM permissions on your cloud account, and those have to be granted and linked into Confluent Cloud before any Tableflow tool will succeed.
221
175
 
222
- > [!WARNING]
223
- > Never disable authentication in production or when the server is network-accessible.
176
+ Follow the **[Tableflow quick start with custom storage & Glue](https://docs.confluent.io/cloud/current/topics/tableflow/get-started/quick-start-custom-storage-glue.html)** to set up the roles, policies, and provider integrations.
177
+ Skipping this step leads to authorization errors when mcp-confluent tries to provision or manage Tableflow-enabled tables.
224
178
 
225
- ### Usage
179
+ ## OAuth Authentication for Confluent Cloud
226
180
 
227
- This MCP server is designed to be used with various MCP clients, such as Claude Desktop or Goose CLI/Desktop. The specific configuration and interaction will depend on the client you are using. However, the general steps are:
181
+ The MCP server can authenticate to Confluent Cloud via **OAuth (PKCE)** instead of static API keys.
182
+ On the first tool call that needs Confluent access, the server opens your browser to the Confluent Cloud sign-in page; subsequent tool calls reuse the resulting session.
183
+ No API keys to provision.
228
184
 
229
- 1. **Start the Server:** You can run the MCP server in one of two ways:
230
- - **From source:** Follow the instructions in the [Contributing Guide](CONTRIBUTING.md) to build and run the server from source. This typically involves:
231
- - Installing dependencies (`npm install`)
232
- - Building the project (`npm run build` or `npm run dev`)
233
- - **With npx:** You can start the server directly using npx (no build required):
185
+ ### Setup
234
186
 
235
- ```bash
236
- npx -y @confluentinc/mcp-confluent -e /path/to/confluent-mcp-server/.env
237
- ```
187
+ ```bash
188
+ npx @confluentinc/mcp-confluent --init-oauth-config
189
+ # edit ./config.yaml if needed, then:
190
+ npx @confluentinc/mcp-confluent --config ./config.yaml
191
+ ```
238
192
 
239
- 2. **Configure your MCP Client:** Each client will have its own way of specifying the MCP server's address and any required credentials. You'll need to configure your client (e.g., Claude, Goose) to connect to the address where this server is running (likely `localhost` with a specific port). The port the server runs on may be configured by an environment variable.
193
+ `--init-oauth-config` drops a starter [`config.oauth.example.yaml`](config.oauth.example.yaml) into `./config.yaml`.
194
+ The whole file is essentially:
240
195
 
241
- 3. **Start the MCP Client:** Once your client is configured to connect to the MCP server, you can start your mcp client and on startup - it will stand up an instance of this MCP server locally. This instance will be responsible for managing data schemas and interacting with Confluent Cloud on your behalf.
196
+ ```yaml
197
+ connections:
198
+ ccloud-oauth:
199
+ type: oauth
200
+ ```
201
+
202
+ See [CONFIGURATION.md → Authentication modes](CONFIGURATION.md#authentication-modes) for the full schema and ergonomics.
242
203
 
243
- 4. **Interact with Confluent through the Client:** Once the client is connected, you can use the client's interface to interact with Confluent Cloud resources. The client will send requests to this MCP server, which will then interact with Confluent Cloud on your behalf.
204
+ The ¹-marked categories in [Available Tools for Confluent Cloud](#available-tools-for-confluent-cloud) work under OAuth today; everything else still needs a `direct` connection with static API keys.
244
205
 
245
- ### CLI Usage
206
+ ## CLI Usage
246
207
 
247
- The MCP server provides a flexible command line interface (CLI) for advanced configuration and control. The CLI allows you to specify environment files, transports, and fine-tune which tools are enabled or blocked.
208
+ The MCP server provides a flexible command line interface (CLI) for advanced control.
209
+ The CLI lets you pick the config file, transports, and fine-tune which tools are enabled or blocked.
248
210
 
249
- #### Basic Usage
211
+ ### Basic Usage
250
212
 
251
213
  You can view all CLI options and help with:
252
214
 
@@ -272,7 +234,6 @@ Options:
272
234
  --allow-tools-file <file> File with tool names to allow (one per line). Used only if --allow-tools is not provided. Allow-list is applied before block-list.
273
235
  --block-tools-file <file> File with tool names to block (one per line). Used only if --block-tools is not provided. Block-list is applied after allow-list.
274
236
  --list-tools Print the final set of enabled tool names (with descriptions) after allow/block filtering and exit. Does not start the server.
275
- --disable-confluent-cloud-tools Disable all tools that require Confluent Cloud REST APIs (cloud-only tools).
276
237
  --disable-auth Disable authentication for HTTP/SSE transports. WARNING: Only use in development environments.
277
238
  --allowed-hosts <hosts> Comma-separated list of allowed Host header values for DNS rebinding protection.
278
239
  --generate-key Generate a secure API key for MCP_API_KEY and print it to stdout, then exit.
@@ -281,10 +242,10 @@ Options:
281
242
 
282
243
  </details>
283
244
 
284
- #### Example: Deploy using all transports
245
+ ### Example: Deploy using all transports
285
246
 
286
247
  ```bash
287
- npx @confluentinc/mcp-confluent -e .env --transport http,sse,stdio
248
+ npx @confluentinc/mcp-confluent -c config.yaml --transport http,sse,stdio
288
249
  ```
289
250
 
290
251
  <details>
@@ -303,31 +264,31 @@ npx @confluentinc/mcp-confluent -e .env --transport http,sse,stdio
303
264
 
304
265
  </details>
305
266
 
306
- #### Example: Allow Only Specific Tools
267
+ ### Example: Allow Only Specific Tools
307
268
 
308
269
  ```bash
309
- npx @confluentinc/mcp-confluent -e .env --allow-tools produce-message,consume-messages
270
+ npx @confluentinc/mcp-confluent -c config.yaml --allow-tools produce-message,consume-messages
310
271
  ```
311
272
 
312
273
  Only the specified tools will be enabled; all others will be disabled.
313
274
 
314
- #### Example: Block Certain Tools
275
+ ### Example: Block Certain Tools
315
276
 
316
277
  ```bash
317
- npx @confluentinc/mcp-confluent -e .env --block-tools produce-message,consume-messages
278
+ npx @confluentinc/mcp-confluent -c config.yaml --block-tools produce-message,consume-messages
318
279
  ```
319
280
 
320
281
  All tools except the specified ones will be enabled.
321
282
 
322
- #### Example: Use Tool Lists from Files
283
+ ### Example: Use Tool Lists from Files
323
284
 
324
285
  You can also maintain allow/block lists in files (one tool name per line):
325
286
 
326
287
  ```bash
327
- npx -y @confluentinc/mcp-confluent -e .env --allow-tools-file allow.txt --block-tools-file block.txt
288
+ npx -y @confluentinc/mcp-confluent -c config.yaml --allow-tools-file allow.txt --block-tools-file block.txt
328
289
  ```
329
290
 
330
- #### Example: List All Available Tools
291
+ ### Example: List All Available Tools
331
292
 
332
293
  ```bash
333
294
  npx -y @confluentinc/mcp-confluent --list-tools
@@ -383,13 +344,16 @@ list-tableflow-catalog-integrations: Retrieve a sorted, filtered, paginated list
383
344
  read-tableflow-catalog-integration: Make a request to read a catalog integration.
384
345
  update-tableflow-catalog-integration: Make a request to update a catalog integration.
385
346
  delete-tableflow-catalog-integration: Make a request to delete a tableflow catalog integration.
347
+ list-organizations: List Confluent Cloud organizations the current credentials can see. Paginated; if the response includes a nextPageToken, pass it back as pageToken to fetch additional pages.
348
+ explain-disabled-tools: 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.
386
349
  ```
387
350
 
388
351
  </details>
389
352
 
390
- > **Tip:** The allow-list is applied before the block-list. If neither is provided, all tools are enabled by default.
353
+ > **Tip:** The allow-list is applied before the block-list.
354
+ > If neither is provided, all tools are enabled by default.
391
355
 
392
- ### Configuring MCP Clients
356
+ ## Configuring MCP Clients
393
357
 
394
358
  Please refer to the following guides for step-by-step instructions on setting up and using this MCP server with your preferred client:
395
359
 
@@ -403,20 +367,34 @@ Please refer to the following guides for step-by-step instructions on setting up
403
367
 
404
368
  ## Telemetry
405
369
 
406
- This MCP server collects anonymous usage data to help make improvements. No personally identifiable information is collected. You can opt out by setting `DO_NOT_TRACK=true` in your environment. See [telemetry.md](telemetry.md) for full details on what is collected.
370
+ This MCP server collects usage data to help make improvements.
371
+ You can opt out by setting `DO_NOT_TRACK=true` in your environment.
372
+ See [telemetry.md](telemetry.md) for full details on what is collected.
407
373
 
408
374
  ## Troubleshooting
409
375
 
410
- **"Node.js version not supported"** -- This project requires Node.js 22 or later. Check your version with `node -v` and upgrade if needed.
376
+ **"Node.js version not supported"** -- This project requires Node.js 22 or later.
377
+ Check your version with `node -v` and upgrade if needed.
411
378
 
412
- **Tools not appearing** -- Ensure the required environment variables for those tools are set in your `.env` file. Tools are only enabled when their dependencies are configured. Run `--list-tools` to see which tools are active.
379
+ **Tools not appearing** -- Each tool requires specific service blocks in your `config.yaml`.
380
+ Run `--list-tools` to see which tools are active, or invoke the `explain-disabled-tools` MCP tool from your client for a per-tool reason.
381
+ The block-to-tool mapping lives in [CONFIGURATION.md](CONFIGURATION.md#tool-enablement-which-block-lights-up-what).
413
382
 
414
- **Authentication errors on HTTP/SSE** -- Generate an API key with `npx @confluentinc/mcp-confluent --generate-key` and add it to your `.env` file as `MCP_API_KEY`. See [Authentication for HTTP/SSE Transports](#authentication-for-httpsse-transports).
383
+ **Authentication errors on HTTP/SSE** -- Generate an API key with `npx @confluentinc/mcp-confluent --generate-key` and add it to your `config.yaml` under `server.auth.api_key`.
384
+ See [CONFIGURATION.md → HTTP/SSE transport security](CONFIGURATION.md#httpsse-transport-security).
415
385
 
416
- **Connection refused / port conflicts** -- The default HTTP port is 8080. If it's already in use, set a different port via `HTTP_PORT` in your `.env` file.
386
+ **Connection refused / port conflicts** -- The default HTTP port is 8080.
387
+ Set `server.http.port` in your `config.yaml` to change it.
417
388
 
418
- **Tableflow authorization errors** -- Tableflow tools require specific IAM permissions in your cloud environment. See [Prerequisites & Setup for Tableflow Commands](#prerequisites--setup-for-tableflow-commands).
389
+ **Tableflow authorization errors** -- Tableflow tools require specific IAM permissions in your cloud environment.
390
+ See [Prerequisites & setup for Tableflow commands](#prerequisites--setup-for-tableflow-commands).
419
391
 
420
392
  ## Contributing
421
393
 
422
- Bug reports and feedback is appreciated in the form of Github Issues. For guidelines on contributing please see [CONTRIBUTING.md](CONTRIBUTING.md)
394
+ Bug reports and feedback is appreciated in the form of Github Issues.
395
+ For guidelines on contributing please see [CONTRIBUTING.md](CONTRIBUTING.md)
396
+
397
+ ### Pre-release testing
398
+
399
+ To run the MCP server against a pre-release version for beta testing or early feedback, download the release tarball file to a local directory.
400
+ Then, when running any of the `npx` commands above, replace `@confluentinc/mcp-confluent` with the path to that tarball, e.g. `npx @~path/to/my/tarball --list-tools`
@@ -0,0 +1,22 @@
1
+ <!doctype html>
2
+ <html lang="en">
3
+ <head>
4
+ <title>Confluent Cloud — Authentication Failed</title>
5
+ <link rel="shortcut icon" href="https://www.confluent.io/favicon.ico" />
6
+ {#include styles/}
7
+ <meta name="color-scheme" content="light dark" />
8
+ </head>
9
+
10
+ <body>
11
+ {#include logo/}
12
+
13
+ <div class="banner">
14
+ <h1>Authentication Failed</h1>
15
+ <p>
16
+ We couldn't complete the authentication with Confluent Cloud due to the
17
+ following error:
18
+ </p>
19
+ <p><b class="failure">{{error}}</b></p>
20
+ </div>
21
+ </body>
22
+ </html>
@@ -0,0 +1,19 @@
1
+ <!doctype html>
2
+ <html lang="en">
3
+ <head>
4
+ <title>Confluent Cloud — Authentication Complete</title>
5
+ <link rel="shortcut icon" href="https://www.confluent.io/favicon.ico" />
6
+ {#include styles/}
7
+ <meta name="color-scheme" content="light dark" />
8
+ </head>
9
+
10
+ <body>
11
+ {#include logo/}
12
+
13
+ <div class="banner">
14
+ <h1>Authentication Complete</h1>
15
+ <p>You have successfully authenticated with Confluent Cloud.</p>
16
+ <p>You may close this page and return to your terminal.</p>
17
+ </div>
18
+ </body>
19
+ </html>