@confluentinc/mcp-confluent 1.0.1 → 1.0.3

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 (257) hide show
  1. package/README.md +277 -25
  2. package/dist/cli.d.ts +42 -3
  3. package/dist/cli.d.ts.map +1 -1
  4. package/dist/cli.js +203 -30
  5. package/dist/cli.js.map +1 -1
  6. package/dist/confluent/client-manager.d.ts +31 -11
  7. package/dist/confluent/client-manager.d.ts.map +1 -1
  8. package/dist/confluent/client-manager.js +76 -32
  9. package/dist/confluent/client-manager.js.map +1 -1
  10. package/dist/confluent/helpers.d.ts +2 -2
  11. package/dist/confluent/helpers.d.ts.map +1 -1
  12. package/dist/confluent/helpers.js +1 -1
  13. package/dist/confluent/helpers.js.map +1 -1
  14. package/dist/confluent/middleware.d.ts +12 -11
  15. package/dist/confluent/middleware.d.ts.map +1 -1
  16. package/dist/confluent/middleware.js +6 -37
  17. package/dist/confluent/middleware.js.map +1 -1
  18. package/dist/confluent/schema-registry-helper.d.ts +134 -0
  19. package/dist/confluent/schema-registry-helper.d.ts.map +1 -0
  20. package/dist/confluent/schema-registry-helper.js +202 -0
  21. package/dist/confluent/schema-registry-helper.js.map +1 -0
  22. package/dist/confluent/schema.d.ts.map +1 -1
  23. package/dist/confluent/schema.js +1 -3
  24. package/dist/confluent/schema.js.map +1 -1
  25. package/dist/confluent/tools/base-tools.d.ts +43 -2
  26. package/dist/confluent/tools/base-tools.d.ts.map +1 -1
  27. package/dist/confluent/tools/base-tools.js +17 -0
  28. package/dist/confluent/tools/base-tools.js.map +1 -1
  29. package/dist/confluent/tools/handlers/catalog/add-tags-to-topic.d.ts +3 -0
  30. package/dist/confluent/tools/handlers/catalog/add-tags-to-topic.d.ts.map +1 -1
  31. package/dist/confluent/tools/handlers/catalog/add-tags-to-topic.js +7 -1
  32. package/dist/confluent/tools/handlers/catalog/add-tags-to-topic.js.map +1 -1
  33. package/dist/confluent/tools/handlers/catalog/create-topic-tags.d.ts +3 -0
  34. package/dist/confluent/tools/handlers/catalog/create-topic-tags.d.ts.map +1 -1
  35. package/dist/confluent/tools/handlers/catalog/create-topic-tags.js +7 -1
  36. package/dist/confluent/tools/handlers/catalog/create-topic-tags.js.map +1 -1
  37. package/dist/confluent/tools/handlers/catalog/delete-tag.d.ts +3 -0
  38. package/dist/confluent/tools/handlers/catalog/delete-tag.d.ts.map +1 -1
  39. package/dist/confluent/tools/handlers/catalog/delete-tag.js +7 -1
  40. package/dist/confluent/tools/handlers/catalog/delete-tag.js.map +1 -1
  41. package/dist/confluent/tools/handlers/catalog/list-tags.d.ts +3 -0
  42. package/dist/confluent/tools/handlers/catalog/list-tags.d.ts.map +1 -1
  43. package/dist/confluent/tools/handlers/catalog/list-tags.js +7 -1
  44. package/dist/confluent/tools/handlers/catalog/list-tags.js.map +1 -1
  45. package/dist/confluent/tools/handlers/catalog/remove-tag-from-entity.d.ts +3 -0
  46. package/dist/confluent/tools/handlers/catalog/remove-tag-from-entity.d.ts.map +1 -1
  47. package/dist/confluent/tools/handlers/catalog/remove-tag-from-entity.js +7 -1
  48. package/dist/confluent/tools/handlers/catalog/remove-tag-from-entity.js.map +1 -1
  49. package/dist/confluent/tools/handlers/clusters/list-clusters-handler.d.ts +31 -28
  50. package/dist/confluent/tools/handlers/clusters/list-clusters-handler.d.ts.map +1 -1
  51. package/dist/confluent/tools/handlers/clusters/list-clusters-handler.js +11 -4
  52. package/dist/confluent/tools/handlers/clusters/list-clusters-handler.js.map +1 -1
  53. package/dist/confluent/tools/handlers/connect/create-connector-handler.d.ts +3 -0
  54. package/dist/confluent/tools/handlers/connect/create-connector-handler.d.ts.map +1 -1
  55. package/dist/confluent/tools/handlers/connect/create-connector-handler.js +12 -1
  56. package/dist/confluent/tools/handlers/connect/create-connector-handler.js.map +1 -1
  57. package/dist/confluent/tools/handlers/connect/delete-connector-handler.d.ts +3 -0
  58. package/dist/confluent/tools/handlers/connect/delete-connector-handler.d.ts.map +1 -1
  59. package/dist/confluent/tools/handlers/connect/delete-connector-handler.js +7 -1
  60. package/dist/confluent/tools/handlers/connect/delete-connector-handler.js.map +1 -1
  61. package/dist/confluent/tools/handlers/connect/list-connectors-handler.d.ts +3 -0
  62. package/dist/confluent/tools/handlers/connect/list-connectors-handler.d.ts.map +1 -1
  63. package/dist/confluent/tools/handlers/connect/list-connectors-handler.js +7 -1
  64. package/dist/confluent/tools/handlers/connect/list-connectors-handler.js.map +1 -1
  65. package/dist/confluent/tools/handlers/connect/read-connectors-handler.d.ts +3 -0
  66. package/dist/confluent/tools/handlers/connect/read-connectors-handler.d.ts.map +1 -1
  67. package/dist/confluent/tools/handlers/connect/read-connectors-handler.js +7 -1
  68. package/dist/confluent/tools/handlers/connect/read-connectors-handler.js.map +1 -1
  69. package/dist/confluent/tools/handlers/environments/list-environments-handler.d.ts +19 -16
  70. package/dist/confluent/tools/handlers/environments/list-environments-handler.d.ts.map +1 -1
  71. package/dist/confluent/tools/handlers/environments/list-environments-handler.js +11 -4
  72. package/dist/confluent/tools/handlers/environments/list-environments-handler.js.map +1 -1
  73. package/dist/confluent/tools/handlers/environments/read-environment-handler.d.ts +3 -0
  74. package/dist/confluent/tools/handlers/environments/read-environment-handler.d.ts.map +1 -1
  75. package/dist/confluent/tools/handlers/environments/read-environment-handler.js +11 -4
  76. package/dist/confluent/tools/handlers/environments/read-environment-handler.js.map +1 -1
  77. package/dist/confluent/tools/handlers/flink/create-flink-statement-handler.d.ts +3 -0
  78. package/dist/confluent/tools/handlers/flink/create-flink-statement-handler.d.ts.map +1 -1
  79. package/dist/confluent/tools/handlers/flink/create-flink-statement-handler.js +9 -3
  80. package/dist/confluent/tools/handlers/flink/create-flink-statement-handler.js.map +1 -1
  81. package/dist/confluent/tools/handlers/flink/delete-flink-statement-handler.d.ts +3 -0
  82. package/dist/confluent/tools/handlers/flink/delete-flink-statement-handler.d.ts.map +1 -1
  83. package/dist/confluent/tools/handlers/flink/delete-flink-statement-handler.js +7 -1
  84. package/dist/confluent/tools/handlers/flink/delete-flink-statement-handler.js.map +1 -1
  85. package/dist/confluent/tools/handlers/flink/list-flink-statements-handler.d.ts +3 -0
  86. package/dist/confluent/tools/handlers/flink/list-flink-statements-handler.d.ts.map +1 -1
  87. package/dist/confluent/tools/handlers/flink/list-flink-statements-handler.js +9 -3
  88. package/dist/confluent/tools/handlers/flink/list-flink-statements-handler.js.map +1 -1
  89. package/dist/confluent/tools/handlers/flink/read-flink-statement-handler.d.ts +3 -0
  90. package/dist/confluent/tools/handlers/flink/read-flink-statement-handler.d.ts.map +1 -1
  91. package/dist/confluent/tools/handlers/flink/read-flink-statement-handler.js +7 -1
  92. package/dist/confluent/tools/handlers/flink/read-flink-statement-handler.js.map +1 -1
  93. package/dist/confluent/tools/handlers/kafka/alter-topic-config.d.ts +3 -0
  94. package/dist/confluent/tools/handlers/kafka/alter-topic-config.d.ts.map +1 -1
  95. package/dist/confluent/tools/handlers/kafka/alter-topic-config.js +7 -1
  96. package/dist/confluent/tools/handlers/kafka/alter-topic-config.js.map +1 -1
  97. package/dist/confluent/tools/handlers/kafka/consume-kafka-messages-handler.d.ts +117 -0
  98. package/dist/confluent/tools/handlers/kafka/consume-kafka-messages-handler.d.ts.map +1 -0
  99. package/dist/confluent/tools/handlers/kafka/consume-kafka-messages-handler.js +177 -0
  100. package/dist/confluent/tools/handlers/kafka/consume-kafka-messages-handler.js.map +1 -0
  101. package/dist/confluent/tools/handlers/kafka/create-topics-handler.d.ts +2 -0
  102. package/dist/confluent/tools/handlers/kafka/create-topics-handler.d.ts.map +1 -1
  103. package/dist/confluent/tools/handlers/kafka/create-topics-handler.js +4 -1
  104. package/dist/confluent/tools/handlers/kafka/create-topics-handler.js.map +1 -1
  105. package/dist/confluent/tools/handlers/kafka/delete-topics-handler.d.ts +2 -0
  106. package/dist/confluent/tools/handlers/kafka/delete-topics-handler.d.ts.map +1 -1
  107. package/dist/confluent/tools/handlers/kafka/delete-topics-handler.js +3 -0
  108. package/dist/confluent/tools/handlers/kafka/delete-topics-handler.js.map +1 -1
  109. package/dist/confluent/tools/handlers/kafka/get-topic-config.d.ts +16 -0
  110. package/dist/confluent/tools/handlers/kafka/get-topic-config.d.ts.map +1 -0
  111. package/dist/confluent/tools/handlers/kafka/get-topic-config.js +67 -0
  112. package/dist/confluent/tools/handlers/kafka/get-topic-config.js.map +1 -0
  113. package/dist/confluent/tools/handlers/kafka/list-topics-handler.d.ts +2 -0
  114. package/dist/confluent/tools/handlers/kafka/list-topics-handler.d.ts.map +1 -1
  115. package/dist/confluent/tools/handlers/kafka/list-topics-handler.js +3 -0
  116. package/dist/confluent/tools/handlers/kafka/list-topics-handler.js.map +1 -1
  117. package/dist/confluent/tools/handlers/kafka/produce-kafka-message-handler.d.ts +30 -0
  118. package/dist/confluent/tools/handlers/kafka/produce-kafka-message-handler.d.ts.map +1 -1
  119. package/dist/confluent/tools/handlers/kafka/produce-kafka-message-handler.js +117 -7
  120. package/dist/confluent/tools/handlers/kafka/produce-kafka-message-handler.js.map +1 -1
  121. package/dist/confluent/tools/handlers/schema/list-schemas-handler.d.ts +2 -0
  122. package/dist/confluent/tools/handlers/schema/list-schemas-handler.d.ts.map +1 -1
  123. package/dist/confluent/tools/handlers/schema/list-schemas-handler.js +98 -24
  124. package/dist/confluent/tools/handlers/schema/list-schemas-handler.js.map +1 -1
  125. package/dist/confluent/tools/handlers/search/search-topic-by-tag-handler.d.ts +3 -0
  126. package/dist/confluent/tools/handlers/search/search-topic-by-tag-handler.d.ts.map +1 -1
  127. package/dist/confluent/tools/handlers/search/search-topic-by-tag-handler.js +7 -1
  128. package/dist/confluent/tools/handlers/search/search-topic-by-tag-handler.js.map +1 -1
  129. package/dist/confluent/tools/handlers/search/search-topics-by-name-handler.d.ts +3 -0
  130. package/dist/confluent/tools/handlers/search/search-topics-by-name-handler.d.ts.map +1 -1
  131. package/dist/confluent/tools/handlers/search/search-topics-by-name-handler.js +7 -1
  132. package/dist/confluent/tools/handlers/search/search-topics-by-name-handler.js.map +1 -1
  133. package/dist/confluent/tools/tool-factory.d.ts.map +1 -1
  134. package/dist/confluent/tools/tool-factory.js +8 -4
  135. package/dist/confluent/tools/tool-factory.js.map +1 -1
  136. package/dist/confluent/tools/tool-name.d.ts +3 -1
  137. package/dist/confluent/tools/tool-name.d.ts.map +1 -1
  138. package/dist/confluent/tools/tool-name.js +2 -0
  139. package/dist/confluent/tools/tool-name.js.map +1 -1
  140. package/dist/env-schema.d.ts +40 -30
  141. package/dist/env-schema.d.ts.map +1 -1
  142. package/dist/env-schema.js +36 -12
  143. package/dist/env-schema.js.map +1 -1
  144. package/dist/env.d.ts +12 -9
  145. package/dist/env.d.ts.map +1 -1
  146. package/dist/env.js +7 -7
  147. package/dist/env.js.map +1 -1
  148. package/dist/index.js +96 -28
  149. package/dist/index.js.map +1 -1
  150. package/dist/lazy.d.ts.map +1 -1
  151. package/dist/lazy.js +7 -6
  152. package/dist/lazy.js.map +1 -1
  153. package/dist/logger.d.ts +14 -0
  154. package/dist/logger.d.ts.map +1 -0
  155. package/dist/logger.js +65 -0
  156. package/dist/logger.js.map +1 -0
  157. package/dist/mcp/transports/http.d.ts +12 -0
  158. package/dist/mcp/transports/http.d.ts.map +1 -0
  159. package/dist/mcp/transports/http.js +127 -0
  160. package/dist/mcp/transports/http.js.map +1 -0
  161. package/dist/mcp/transports/index.d.ts +7 -0
  162. package/dist/mcp/transports/index.d.ts.map +1 -0
  163. package/dist/mcp/transports/index.js +7 -0
  164. package/dist/mcp/transports/index.js.map +1 -0
  165. package/dist/mcp/transports/manager.d.ts +12 -0
  166. package/dist/mcp/transports/manager.d.ts.map +1 -0
  167. package/dist/mcp/transports/manager.js +86 -0
  168. package/dist/mcp/transports/manager.js.map +1 -0
  169. package/dist/mcp/transports/server.d.ts +12 -0
  170. package/dist/mcp/transports/server.d.ts.map +1 -0
  171. package/dist/mcp/transports/server.js +87 -0
  172. package/dist/mcp/transports/server.js.map +1 -0
  173. package/dist/mcp/transports/sse.d.ts +12 -0
  174. package/dist/mcp/transports/sse.d.ts.map +1 -0
  175. package/dist/mcp/transports/sse.js +110 -0
  176. package/dist/mcp/transports/sse.js.map +1 -0
  177. package/dist/mcp/transports/stdio.d.ts +9 -0
  178. package/dist/mcp/transports/stdio.d.ts.map +1 -0
  179. package/dist/mcp/transports/stdio.js +17 -0
  180. package/dist/mcp/transports/stdio.js.map +1 -0
  181. package/dist/mcp/transports/types.d.ts +14 -0
  182. package/dist/mcp/transports/types.d.ts.map +1 -0
  183. package/dist/mcp/transports/types.js +7 -0
  184. package/dist/mcp/transports/types.js.map +1 -0
  185. package/dist/print-md-schema.d.ts +5 -0
  186. package/dist/print-md-schema.d.ts.map +1 -1
  187. package/dist/print-md-schema.js +6 -0
  188. package/dist/print-md-schema.js.map +1 -1
  189. package/package.json +31 -18
  190. package/dist/confluent/tools/handlers/catalog/add-tag-to-topic.d.ts +0 -8
  191. package/dist/confluent/tools/handlers/catalog/add-tag-to-topic.d.ts.map +0 -1
  192. package/dist/confluent/tools/handlers/catalog/add-tag-to-topic.js +0 -47
  193. package/dist/confluent/tools/handlers/catalog/add-tag-to-topic.js.map +0 -1
  194. package/dist/confluent/tools/handlers/catalog/add-tags-to-topic copy.d.ts +0 -8
  195. package/dist/confluent/tools/handlers/catalog/add-tags-to-topic copy.d.ts.map +0 -1
  196. package/dist/confluent/tools/handlers/catalog/add-tags-to-topic copy.js +0 -47
  197. package/dist/confluent/tools/handlers/catalog/add-tags-to-topic copy.js.map +0 -1
  198. package/dist/confluent/tools/handlers/catalog/create-topic-tags copy.d.ts +0 -8
  199. package/dist/confluent/tools/handlers/catalog/create-topic-tags copy.d.ts.map +0 -1
  200. package/dist/confluent/tools/handlers/catalog/create-topic-tags copy.js +0 -52
  201. package/dist/confluent/tools/handlers/catalog/create-topic-tags copy.js.map +0 -1
  202. package/dist/confluent/tools/handlers/catalog/delete-tag copy.d.ts +0 -8
  203. package/dist/confluent/tools/handlers/catalog/delete-tag copy.d.ts.map +0 -1
  204. package/dist/confluent/tools/handlers/catalog/delete-tag copy.js +0 -42
  205. package/dist/confluent/tools/handlers/catalog/delete-tag copy.js.map +0 -1
  206. package/dist/confluent/tools/handlers/catalog/delete-tag-for-entity.d.ts +0 -8
  207. package/dist/confluent/tools/handlers/catalog/delete-tag-for-entity.d.ts.map +0 -1
  208. package/dist/confluent/tools/handlers/catalog/delete-tag-for-entity.js +0 -56
  209. package/dist/confluent/tools/handlers/catalog/delete-tag-for-entity.js.map +0 -1
  210. package/dist/confluent/tools/handlers/catalog/list-.d.ts +0 -8
  211. package/dist/confluent/tools/handlers/catalog/list-.d.ts.map +0 -1
  212. package/dist/confluent/tools/handlers/catalog/list-.js +0 -35
  213. package/dist/confluent/tools/handlers/catalog/list-.js.map +0 -1
  214. package/dist/confluent/tools/handlers/connect/create-connector-handler copy.d.ts +0 -8
  215. package/dist/confluent/tools/handlers/connect/create-connector-handler copy.d.ts.map +0 -1
  216. package/dist/confluent/tools/handlers/connect/create-connector-handler copy.js +0 -84
  217. package/dist/confluent/tools/handlers/connect/create-connector-handler copy.js.map +0 -1
  218. package/dist/confluent/tools/handlers/entity/create-tags-for-topics.d.ts +0 -8
  219. package/dist/confluent/tools/handlers/entity/create-tags-for-topics.d.ts.map +0 -1
  220. package/dist/confluent/tools/handlers/entity/create-tags-for-topics.js +0 -52
  221. package/dist/confluent/tools/handlers/entity/create-tags-for-topics.js.map +0 -1
  222. package/dist/confluent/tools/handlers/entity/create-topic-tags.d.ts +0 -8
  223. package/dist/confluent/tools/handlers/entity/create-topic-tags.d.ts.map +0 -1
  224. package/dist/confluent/tools/handlers/entity/create-topic-tags.js +0 -52
  225. package/dist/confluent/tools/handlers/entity/create-topic-tags.js.map +0 -1
  226. package/dist/confluent/tools/handlers/entity/create-topicc-tags.d.ts +0 -8
  227. package/dist/confluent/tools/handlers/entity/create-topicc-tags.d.ts.map +0 -1
  228. package/dist/confluent/tools/handlers/entity/create-topicc-tags.js +0 -52
  229. package/dist/confluent/tools/handlers/entity/create-topicc-tags.js.map +0 -1
  230. package/dist/confluent/tools/handlers/entity/create-topics-tags.d.ts +0 -8
  231. package/dist/confluent/tools/handlers/entity/create-topics-tags.d.ts.map +0 -1
  232. package/dist/confluent/tools/handlers/entity/create-topics-tags.js +0 -52
  233. package/dist/confluent/tools/handlers/entity/create-topics-tags.js.map +0 -1
  234. package/dist/confluent/tools/handlers/entity/topics-with-tags-handler copy.d.ts +0 -8
  235. package/dist/confluent/tools/handlers/entity/topics-with-tags-handler copy.d.ts.map +0 -1
  236. package/dist/confluent/tools/handlers/entity/topics-with-tags-handler copy.js +0 -39
  237. package/dist/confluent/tools/handlers/entity/topics-with-tags-handler copy.js.map +0 -1
  238. package/dist/confluent/tools/handlers/entity/topics-with-tags-handler.d.ts +0 -8
  239. package/dist/confluent/tools/handlers/entity/topics-with-tags-handler.d.ts.map +0 -1
  240. package/dist/confluent/tools/handlers/entity/topics-with-tags-handler.js +0 -39
  241. package/dist/confluent/tools/handlers/entity/topics-with-tags-handler.js.map +0 -1
  242. package/dist/confluent/tools/handlers/kafka/alter-topic-config copy.d.ts +0 -14
  243. package/dist/confluent/tools/handlers/kafka/alter-topic-config copy.d.ts.map +0 -1
  244. package/dist/confluent/tools/handlers/kafka/alter-topic-config copy.js +0 -61
  245. package/dist/confluent/tools/handlers/kafka/alter-topic-config copy.js.map +0 -1
  246. package/dist/confluent/tools/handlers/kafka/create-topics-handler copy.d.ts +0 -8
  247. package/dist/confluent/tools/handlers/kafka/create-topics-handler copy.d.ts.map +0 -1
  248. package/dist/confluent/tools/handlers/kafka/create-topics-handler copy.js +0 -28
  249. package/dist/confluent/tools/handlers/kafka/create-topics-handler copy.js.map +0 -1
  250. package/dist/confluent/tools/handlers/search/search-topic-by-tag-handler copy.d.ts +0 -8
  251. package/dist/confluent/tools/handlers/search/search-topic-by-tag-handler copy.d.ts.map +0 -1
  252. package/dist/confluent/tools/handlers/search/search-topic-by-tag-handler copy.js +0 -45
  253. package/dist/confluent/tools/handlers/search/search-topic-by-tag-handler copy.js.map +0 -1
  254. package/dist/confluent/tools/handlers/search/topics-with-tags-handler.d.ts +0 -8
  255. package/dist/confluent/tools/handlers/search/topics-with-tags-handler.d.ts.map +0 -1
  256. package/dist/confluent/tools/handlers/search/topics-with-tags-handler.js +0 -39
  257. package/dist/confluent/tools/handlers/search/topics-with-tags-handler.js.map +0 -1
package/dist/cli.js CHANGED
@@ -1,7 +1,70 @@
1
- import { Command } from "@commander-js/extra-typings";
1
+ import { Command, CommanderError, Option } from "@commander-js/extra-typings";
2
+ import { ToolName } from "./confluent/tools/tool-name.js";
3
+ import { logger } from "./logger.js";
4
+ import { TransportType } from "./mcp/transports/types.js";
2
5
  import * as dotenv from "dotenv";
3
6
  import fs from "fs";
4
7
  import path from "path";
8
+ import { getProperties } from "properties-file";
9
+ import pkg from "../package.json" with { type: "json" };
10
+ /**
11
+ * Get the package version from package.json
12
+ * @returns Package version string
13
+ */
14
+ export function getPackageVersion() {
15
+ return pkg.version;
16
+ }
17
+ function parseTransportList(value) {
18
+ // Split, trim, and filter out empty strings
19
+ const types = value
20
+ .split(",")
21
+ .map((type) => type.trim())
22
+ .filter(Boolean);
23
+ // Validate each transport type
24
+ const validTypes = new Set(Object.values(TransportType));
25
+ const invalidTypes = types.filter((type) => !validTypes.has(type));
26
+ if (invalidTypes.length > 0) {
27
+ throw new Error(`Invalid transport type(s): ${invalidTypes.join(", ")}. Valid options: ${Array.from(validTypes).join(", ")}`);
28
+ }
29
+ // Deduplicate using Set
30
+ return Array.from(new Set(types));
31
+ }
32
+ /**
33
+ * Parses a comma-separated list of tool names and returns an array of valid tool names.
34
+ * Trims whitespace from each tool name.
35
+ * Exits the process with an error if any invalid tool names are provided.
36
+ *
37
+ * @param value - Comma-separated list of tool names
38
+ * @returns Array of valid tool names
39
+ */
40
+ function parseToolList(value) {
41
+ return (value
42
+ .split(",")
43
+ .map((t) => t.trim())
44
+ // Filter out any empty strings that may result from extra commas or whitespace
45
+ .filter(Boolean));
46
+ }
47
+ /**
48
+ * Reads a file and returns an array of non-empty, non-comment lines.
49
+ * Lines starting with '#' are treated as comments and ignored.
50
+ * Trims whitespace from each line.
51
+ * Exits the process with an error if the file does not exist.
52
+ *
53
+ * @param filePath - Path to the file to read
54
+ * @returns Array of valid lines from the file
55
+ */
56
+ function readFileLines(filePath) {
57
+ const absPath = path.resolve(filePath);
58
+ if (!fs.existsSync(absPath)) {
59
+ throw new Error(`Tool list file not found: ${absPath}`);
60
+ }
61
+ const lines = fs
62
+ .readFileSync(absPath, "utf-8")
63
+ .split("\n")
64
+ .map((line) => line.trim())
65
+ .filter((line) => line && !line.startsWith("#"));
66
+ return lines;
67
+ }
5
68
  /**
6
69
  * Parse command line arguments with strong typing
7
70
  * @returns Parsed CLI options
@@ -10,44 +73,154 @@ export function parseCliArgs() {
10
73
  const program = new Command()
11
74
  .name("mcp-confluent")
12
75
  .description("Confluent MCP Server - Model Context Protocol implementation for Confluent Cloud")
13
- .version(process.env.npm_package_version ?? "dev")
76
+ .version(getPackageVersion())
14
77
  .option("-e, --env-file <path>", "Load environment variables from file")
15
- .action((options) => {
16
- if (options.envFile) {
17
- loadEnvironmentVariables(options);
18
- }
19
- })
78
+ .option("-k, --kafka-config-file <file>", "Path to a properties file for configuring kafka clients")
79
+ .addOption(new Option("-t, --transport <types>", "Transport types (comma-separated list)")
80
+ .choices(Object.values(TransportType))
81
+ .default(TransportType.STDIO)
82
+ .argParser((value) => parseTransportList(value)))
83
+ .option("--allow-tools <tools>", "Comma-separated list of tool names to allow. If provided, takes precedence over --allow-tools-file. Allow-list is applied before block-list.")
84
+ .option("--block-tools <tools>", "Comma-separated list of tool names to block. If provided, takes precedence over --block-tools-file. Block-list is applied after allow-list.")
85
+ .option("--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.")
86
+ .option("--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.")
87
+ .option("--list-tools", "Print the final set of enabled tool names (with descriptions) after allow/block filtering and exit. Does not start the server.")
88
+ .option("--disable-confluent-cloud-tools", "Disable all tools that require Confluent Cloud REST APIs (cloud-only tools).")
20
89
  .allowExcessArguments(false)
21
90
  .exitOverride();
22
91
  try {
23
- // Parse arguments and get options (no need for generic type parameter with extra-typings)
24
- return program.parse().opts();
92
+ const opts = program.parse().opts();
93
+ if (opts.envFile) {
94
+ loadEnvironmentVariables(opts.envFile);
95
+ }
96
+ // Precedence: CLI > file > undefined
97
+ let allowTools = undefined;
98
+ let blockTools = undefined;
99
+ if (opts.allowTools) {
100
+ allowTools = parseToolList(opts.allowTools);
101
+ }
102
+ else if (opts.allowToolsFile) {
103
+ allowTools = readFileLines(opts.allowToolsFile);
104
+ }
105
+ if (opts.blockTools) {
106
+ blockTools = parseToolList(opts.blockTools);
107
+ }
108
+ else if (opts.blockToolsFile) {
109
+ blockTools = readFileLines(opts.blockToolsFile);
110
+ }
111
+ let kafkaConfig = {};
112
+ if (opts.kafkaConfigFile) {
113
+ kafkaConfig = parsePropertiesFile(opts.kafkaConfigFile);
114
+ }
115
+ return {
116
+ envFile: opts.envFile,
117
+ transports: Array.isArray(opts.transport)
118
+ ? opts.transport
119
+ : [opts.transport],
120
+ allowTools,
121
+ blockTools,
122
+ listTools: !!opts.listTools,
123
+ disableConfluentCloudTools: !!opts.disableConfluentCloudTools,
124
+ kafkaConfig: kafkaConfig,
125
+ };
25
126
  }
26
- catch {
27
- // This block is reached when --help or --version is called
28
- // as these will throw an error due to exitOverride()
29
- process.exit(0);
127
+ catch (error) {
128
+ if (error instanceof CommanderError &&
129
+ (error.code === "commander.helpDisplayed" ||
130
+ error.code === "commander.version")) {
131
+ process.exit(0);
132
+ }
133
+ if (error instanceof Error) {
134
+ logger.error({
135
+ error,
136
+ errorString: error.toString(),
137
+ errorMessage: error.message,
138
+ }, "Error parsing CLI options");
139
+ }
140
+ else {
141
+ logger.error({ error: String(error) }, "Error parsing CLI options");
142
+ }
143
+ process.exit(1);
144
+ }
145
+ }
146
+ /**
147
+ * Load environment variables from file
148
+ * @param envFile Path to the environment file
149
+ */
150
+ export function loadEnvironmentVariables(envFile) {
151
+ const envPath = path.resolve(envFile);
152
+ // Check if file exists
153
+ if (!fs.existsSync(envPath)) {
154
+ throw new Error(`Environment file not found: ${envPath}`);
155
+ }
156
+ // Load environment variables from file
157
+ const result = dotenv.config({ path: envPath });
158
+ if (result.error) {
159
+ throw new Error(`Error loading environment variables: ${result.error}`);
30
160
  }
161
+ logger.info(`Loaded environment variables from ${envPath}`);
31
162
  }
32
163
  /**
33
- * Load environment variables from file if specified in options
34
- * @param options CLI options containing envFile path
164
+ * Filters and returns a sorted list of enabled ToolNames based on CLI allow/block options.
165
+ *
166
+ * This function determines which tools should be enabled for the server by applying
167
+ * the following logic:
168
+ * 1. If an allow list (`cliOptions.allowTools`) is provided and non-empty, only those
169
+ * tool names present in the allow list (and valid) will be enabled. Any invalid
170
+ * tool names in the allow list are ignored and a warning is logged.
171
+ * 2. If a block list (`cliOptions.blockTools`) is provided and non-empty, any tool
172
+ * names present in the block list (and valid) will be removed from the enabled
173
+ * set. Any invalid tool names in the block list are ignored and a warning is logged.
174
+ * 3. If neither allow nor block lists are provided, all available tools are enabled.
175
+ *
176
+ * The returned list is always sorted alphabetically.
177
+ *
178
+ * @param cliOptions - The parsed CLI options containing allow/block tool lists.
179
+ * @returns An alphabetically sorted array of enabled ToolNames.
35
180
  */
36
- export function loadEnvironmentVariables(options) {
37
- if (options.envFile) {
38
- const envPath = path.resolve(options.envFile);
39
- // Check if file exists
40
- if (!fs.existsSync(envPath)) {
41
- console.error(`Environment file not found: ${envPath}`);
42
- return;
43
- }
44
- // Load environment variables from file
45
- const result = dotenv.config({ path: envPath });
46
- if (result.error) {
47
- console.error(`Error loading environment variables: ${result.error.message}`);
48
- return;
49
- }
50
- console.error(`Loaded environment variables from ${envPath}`);
181
+ export function getFilteredToolNames(cliOptions) {
182
+ let filteredToolNames = Object.values(ToolName);
183
+ const validToolNames = new Set(Object.values(ToolName));
184
+ if (cliOptions.allowTools && cliOptions.allowTools.length > 0) {
185
+ const valid = cliOptions.allowTools.filter((t) => validToolNames.has(t));
186
+ const invalid = cliOptions.allowTools.filter((t) => !validToolNames.has(t));
187
+ if (invalid.length > 0) {
188
+ logger.warn(`Ignoring invalid tool names in allow list: ${invalid.join(", ")}`);
189
+ }
190
+ filteredToolNames = valid.map((t) => t);
191
+ }
192
+ if (cliOptions.blockTools && cliOptions.blockTools.length > 0) {
193
+ const validBlock = cliOptions.blockTools.filter((t) => validToolNames.has(t));
194
+ const invalidBlock = cliOptions.blockTools.filter((t) => !validToolNames.has(t));
195
+ if (invalidBlock.length > 0) {
196
+ logger.warn(`Ignoring invalid tool names in block list: ${invalidBlock.join(", ")}`);
197
+ }
198
+ filteredToolNames = filteredToolNames.filter((t) => !validBlock.includes(t));
199
+ }
200
+ // Deduplicate and sort
201
+ const deduped = Array.from(new Set(filteredToolNames)).sort();
202
+ if ((!cliOptions.allowTools || cliOptions.allowTools.length === 0) &&
203
+ (!cliOptions.blockTools || cliOptions.blockTools.length === 0)) {
204
+ logger.info("No allow/block tool lists provided; all tools are enabled by default.");
205
+ }
206
+ return deduped;
207
+ }
208
+ /**
209
+ * Loads configuration from a properties file
210
+ * @param filePath - Path to the properties file
211
+ * @returns configuration object
212
+ */
213
+ export function parsePropertiesFile(filePath) {
214
+ const absPath = path.resolve(filePath);
215
+ if (!fs.existsSync(absPath)) {
216
+ throw new Error(`Properties file not found: ${absPath}`);
217
+ }
218
+ try {
219
+ const properties = getProperties(fs.readFileSync(absPath, "utf-8"));
220
+ return properties;
221
+ }
222
+ catch (err) {
223
+ throw new Error(`Failed to parse properties file: ${err instanceof Error ? err.message : String(err)}`);
51
224
  }
52
225
  }
53
226
  //# sourceMappingURL=cli.js.map
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC;AACtD,OAAO,KAAK,MAAM,MAAM,QAAQ,CAAC;AACjC,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AAOxB;;;GAGG;AACH,MAAM,UAAU,YAAY;IAC1B,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE;SAC1B,IAAI,CAAC,eAAe,CAAC;SACrB,WAAW,CACV,kFAAkF,CACnF;SACA,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,KAAK,CAAC;SACjD,MAAM,CAAC,uBAAuB,EAAE,sCAAsC,CAAC;SACvE,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE;QAClB,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YACpB,wBAAwB,CAAC,OAAO,CAAC,CAAC;QACpC,CAAC;IACH,CAAC,CAAC;SACD,oBAAoB,CAAC,KAAK,CAAC;SAC3B,YAAY,EAAE,CAAC;IAElB,IAAI,CAAC;QACH,0FAA0F;QAC1F,OAAO,OAAO,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,CAAC;IAChC,CAAC;IAAC,MAAM,CAAC;QACP,2DAA2D;QAC3D,qDAAqD;QACrD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,wBAAwB,CAAC,OAAmB;IAC1D,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;QACpB,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAE9C,uBAAuB;QACvB,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YAC5B,OAAO,CAAC,KAAK,CAAC,+BAA+B,OAAO,EAAE,CAAC,CAAC;YACxD,OAAO;QACT,CAAC;QAED,uCAAuC;QACvC,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;QAEhD,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;YACjB,OAAO,CAAC,KAAK,CACX,wCAAwC,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,CAC/D,CAAC;YACF,OAAO;QACT,CAAC;QAED,OAAO,CAAC,KAAK,CAAC,qCAAqC,OAAO,EAAE,CAAC,CAAC;IAChE,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,9 @@
1
1
  /**
2
2
  * @fileoverview Provides client management functionality for Kafka and Confluent Cloud services.
3
3
  */
4
- import { KafkaJS } from "@confluentinc/kafka-javascript";
4
+ import { GlobalConfig, KafkaJS } from "@confluentinc/kafka-javascript";
5
+ import { SchemaRegistryClient } from "@confluentinc/schemaregistry";
6
+ import { ConfluentAuth, ConfluentEndpoints } from "../confluent/middleware.js";
5
7
  import { paths } from "@src/confluent/openapi-schema.js";
6
8
  import { Client } from "openapi-fetch";
7
9
  /**
@@ -15,7 +17,7 @@ export interface KafkaClientManager {
15
17
  /** Gets a connected producer client for publishing messages */
16
18
  getProducer(): Promise<KafkaJS.Producer>;
17
19
  /** Gets a connected consumer client for subscribing to topics */
18
- getConsumer(): Promise<KafkaJS.Consumer>;
20
+ getConsumer(sessionId?: string): Promise<KafkaJS.Consumer>;
19
21
  /** Disconnects and cleans up all client connections */
20
22
  disconnect(): Promise<void>;
21
23
  }
@@ -36,17 +38,35 @@ export interface ConfluentCloudRestClientManager {
36
38
  setConfluentCloudSchemaRegistryEndpoint(endpoint: string): void;
37
39
  setConfluentCloudKafkaRestEndpoint(endpoint: string): void;
38
40
  }
39
- export interface ClientManager extends KafkaClientManager, ConfluentCloudRestClientManager {
41
+ /**
42
+ * Interface for managing Schema Registry client connections.
43
+ */
44
+ export interface SchemaRegistryClientHandler {
45
+ getSchemaRegistryClient(): SchemaRegistryClient;
46
+ }
47
+ export interface ClientManager extends KafkaClientManager, ConfluentCloudRestClientManager, SchemaRegistryClientHandler {
48
+ getSchemaRegistryClient(): SchemaRegistryClient;
49
+ }
50
+ export interface ClientManagerConfig {
51
+ kafka: GlobalConfig;
52
+ endpoints: ConfluentEndpoints;
53
+ auth: {
54
+ cloud: ConfluentAuth;
55
+ flink: ConfluentAuth;
56
+ schemaRegistry: ConfluentAuth;
57
+ kafka: ConfluentAuth;
58
+ };
40
59
  }
41
60
  /**
42
61
  * Default implementation of client management for Kafka and Confluent Cloud services.
43
62
  * Manages lifecycle and lazy initialization of various client connections.
44
63
  */
45
- export declare class DefaultClientManager implements ClientManager {
64
+ export declare class DefaultClientManager implements ClientManager, SchemaRegistryClientHandler {
46
65
  private confluentCloudBaseUrl;
47
66
  private confluentCloudFlinkBaseUrl;
48
67
  private confluentCloudSchemaRegistryBaseUrl;
49
68
  private confluentCloudKafkaRestBaseUrl;
69
+ private readonly kafkaConfig;
50
70
  private readonly kafkaClient;
51
71
  private readonly adminClient;
52
72
  private readonly producer;
@@ -54,15 +74,14 @@ export declare class DefaultClientManager implements ClientManager {
54
74
  private readonly confluentCloudRestClient;
55
75
  private readonly confluentCloudSchemaRegistryRestClient;
56
76
  private readonly confluentCloudKafkaRestClient;
77
+ private readonly schemaRegistryClient;
57
78
  /**
58
79
  * Creates a new DefaultClientManager instance.
59
- * @param config - Configuration options for KafkaJS client
60
- * @param confluentCloudBaseUrl - Base URL for Confluent Cloud REST API
61
- * @param confluentCloudFlinkBaseUrl - Base URL for Flink REST API
62
- * @param confluentCloudSchemaRegistryBaseUrl - Base URL for Schema Registry REST API
63
- * @param confluentCloudKafkaRestBaseUrl - Base URL for Kafka REST API
80
+ * @param config - Configuration for all clients
64
81
  */
65
- constructor(config: KafkaJS.CommonConstructorConfig, confluentCloudBaseUrl?: string, confluentCloudFlinkBaseUrl?: string, confluentCloudSchemaRegistryBaseUrl?: string, confluentCloudKafkaRestBaseUrl?: string);
82
+ constructor(config: ClientManagerConfig);
83
+ /** @inheritdoc */
84
+ getConsumer(sessionId?: string): Promise<KafkaJS.Consumer>;
66
85
  /**
67
86
  * a function that sets a new confluent cloud rest endpoint.
68
87
  * Closes the current client first.
@@ -72,7 +91,6 @@ export declare class DefaultClientManager implements ClientManager {
72
91
  setConfluentCloudFlinkEndpoint(endpoint: string): void;
73
92
  setConfluentCloudSchemaRegistryEndpoint(endpoint: string): void;
74
93
  setConfluentCloudKafkaRestEndpoint(endpoint: string): void;
75
- getConsumer(): Promise<KafkaJS.Consumer>;
76
94
  /** @inheritdoc */
77
95
  getKafkaClient(): KafkaJS.Kafka;
78
96
  /** @inheritdoc */
@@ -89,5 +107,7 @@ export declare class DefaultClientManager implements ClientManager {
89
107
  getProducer(): Promise<KafkaJS.Producer>;
90
108
  /** @inheritdoc */
91
109
  disconnect(): Promise<void>;
110
+ /** @inheritdoc */
111
+ getSchemaRegistryClient(): SchemaRegistryClient;
92
112
  }
93
113
  //# sourceMappingURL=client-manager.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"client-manager.d.ts","sourceRoot":"","sources":["../../src/confluent/client-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client-manager.d.ts","sourceRoot":"","sources":["../../src/confluent/client-manager.ts"],"names":[],"mappings":"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"}
@@ -2,8 +2,10 @@
2
2
  * @fileoverview Provides client management functionality for Kafka and Confluent Cloud services.
3
3
  */
4
4
  import { KafkaJS } from "@confluentinc/kafka-javascript";
5
- import { confluentCloudAuthMiddleware, confluentCloudFlinkAuthMiddleware, confluentCloudKafkaAuthMiddleware, confluentCloudSchemaRegistryAuthMiddleware, } from "../confluent/middleware.js";
5
+ import { SchemaRegistryClient } from "@confluentinc/schemaregistry";
6
+ import { createAuthMiddleware, } from "../confluent/middleware.js";
6
7
  import { AsyncLazy, Lazy } from "../lazy.js";
8
+ import { kafkaLogger, logger } from "../logger.js";
7
9
  import createClient from "openapi-fetch";
8
10
  /**
9
11
  * Default implementation of client management for Kafka and Confluent Cloud services.
@@ -14,6 +16,7 @@ export class DefaultClientManager {
14
16
  confluentCloudFlinkBaseUrl;
15
17
  confluentCloudSchemaRegistryBaseUrl;
16
18
  confluentCloudKafkaRestBaseUrl;
19
+ kafkaConfig;
17
20
  kafkaClient;
18
21
  adminClient;
19
22
  producer;
@@ -21,70 +24,110 @@ export class DefaultClientManager {
21
24
  confluentCloudRestClient;
22
25
  confluentCloudSchemaRegistryRestClient;
23
26
  confluentCloudKafkaRestClient;
27
+ schemaRegistryClient;
24
28
  /**
25
29
  * Creates a new DefaultClientManager instance.
26
- * @param config - Configuration options for KafkaJS client
27
- * @param confluentCloudBaseUrl - Base URL for Confluent Cloud REST API
28
- * @param confluentCloudFlinkBaseUrl - Base URL for Flink REST API
29
- * @param confluentCloudSchemaRegistryBaseUrl - Base URL for Schema Registry REST API
30
- * @param confluentCloudKafkaRestBaseUrl - Base URL for Kafka REST API
30
+ * @param config - Configuration for all clients
31
31
  */
32
- constructor(config, confluentCloudBaseUrl, confluentCloudFlinkBaseUrl, confluentCloudSchemaRegistryBaseUrl, confluentCloudKafkaRestBaseUrl) {
33
- this.confluentCloudBaseUrl = confluentCloudBaseUrl || "";
34
- this.confluentCloudFlinkBaseUrl = confluentCloudFlinkBaseUrl || "";
35
- this.confluentCloudSchemaRegistryBaseUrl =
36
- confluentCloudSchemaRegistryBaseUrl || "";
37
- this.confluentCloudKafkaRestBaseUrl = confluentCloudKafkaRestBaseUrl || "";
38
- this.kafkaClient = new Lazy(() => new KafkaJS.Kafka(config));
32
+ constructor(config) {
33
+ this.confluentCloudBaseUrl = config.endpoints.cloud;
34
+ this.confluentCloudFlinkBaseUrl = config.endpoints.flink;
35
+ this.confluentCloudSchemaRegistryBaseUrl = config.endpoints.schemaRegistry;
36
+ this.confluentCloudKafkaRestBaseUrl = config.endpoints.kafka;
37
+ this.kafkaConfig = config.kafka;
38
+ this.kafkaClient = new Lazy(() => new KafkaJS.Kafka({
39
+ ...this.kafkaConfig,
40
+ kafkaJS: {
41
+ logger: kafkaLogger,
42
+ // we need to do this since typescript will complain that we are missing configs like `brokers` even though we are passing them in kafkaConfig above
43
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
44
+ },
45
+ }));
39
46
  this.adminClient = new AsyncLazy(async () => {
40
- console.error("Connecting Kafka Admin");
47
+ logger.info("Connecting Kafka Admin");
41
48
  const admin = this.kafkaClient.get().admin();
42
49
  await admin.connect();
43
50
  return admin;
44
51
  }, (admin) => admin.disconnect());
45
52
  this.producer = new AsyncLazy(async () => {
46
- console.error("Connecting Kafka Producer");
47
- const producer = this.kafkaClient.get().producer({
48
- kafkaJS: {
49
- acks: 1,
50
- compression: KafkaJS.CompressionTypes.GZIP,
51
- },
52
- });
53
+ logger.info("Connecting Kafka Producer");
54
+ const producer = this.kafkaClient.get().producer();
53
55
  await producer.connect();
54
56
  return producer;
55
57
  }, (producer) => producer.disconnect());
56
58
  this.confluentCloudRestClient = new Lazy(() => {
57
- console.error(`Initializing Confluent Cloud REST client for base URL ${this.confluentCloudBaseUrl}`);
59
+ if (!this.confluentCloudBaseUrl) {
60
+ throw new Error("Confluent Cloud REST endpoint not configured");
61
+ }
62
+ logger.info(`Initializing Confluent Cloud REST client for base URL ${this.confluentCloudBaseUrl}`);
58
63
  const client = createClient({
59
64
  baseUrl: this.confluentCloudBaseUrl,
60
65
  });
61
- client.use(confluentCloudAuthMiddleware);
66
+ client.use(createAuthMiddleware(config.auth.cloud));
62
67
  return client;
63
68
  });
64
69
  this.confluentCloudFlinkRestClient = new Lazy(() => {
65
- console.error(`Initializing Confluent Cloud Flink REST client for base URL ${this.confluentCloudFlinkBaseUrl}`);
70
+ if (!this.confluentCloudFlinkBaseUrl) {
71
+ throw new Error("Confluent Cloud Flink REST endpoint not configured");
72
+ }
73
+ logger.info(`Initializing Confluent Cloud Flink REST client for base URL ${this.confluentCloudFlinkBaseUrl}`);
66
74
  const client = createClient({
67
75
  baseUrl: this.confluentCloudFlinkBaseUrl,
68
76
  });
69
- client.use(confluentCloudFlinkAuthMiddleware);
77
+ client.use(createAuthMiddleware(config.auth.flink));
70
78
  return client;
71
79
  });
72
80
  this.confluentCloudSchemaRegistryRestClient = new Lazy(() => {
73
- console.error(`Initializing Confluent Cloud Schema Registry REST client for base URL ${this.confluentCloudSchemaRegistryBaseUrl}`);
81
+ if (!this.confluentCloudSchemaRegistryBaseUrl) {
82
+ throw new Error("Confluent Cloud Schema Registry REST endpoint not configured");
83
+ }
84
+ logger.info(`Initializing Confluent Cloud Schema Registry REST client for base URL ${this.confluentCloudSchemaRegistryBaseUrl}`);
74
85
  const client = createClient({
75
86
  baseUrl: this.confluentCloudSchemaRegistryBaseUrl,
76
87
  });
77
- client.use(confluentCloudSchemaRegistryAuthMiddleware);
88
+ client.use(createAuthMiddleware(config.auth.schemaRegistry));
78
89
  return client;
79
90
  });
80
91
  this.confluentCloudKafkaRestClient = new Lazy(() => {
81
- console.error(`Initializing Confluent Cloud Kafka REST client for base URL ${this.confluentCloudKafkaRestBaseUrl}`);
92
+ if (!this.confluentCloudKafkaRestBaseUrl) {
93
+ throw new Error("Confluent Cloud Kafka REST endpoint not configured");
94
+ }
95
+ logger.info(`Initializing Confluent Cloud Kafka REST client for base URL ${this.confluentCloudKafkaRestBaseUrl}`);
82
96
  const client = createClient({
83
97
  baseUrl: this.confluentCloudKafkaRestBaseUrl,
84
98
  });
85
- client.use(confluentCloudKafkaAuthMiddleware);
99
+ client.use(createAuthMiddleware(config.auth.kafka));
86
100
  return client;
87
101
  });
102
+ this.schemaRegistryClient = new Lazy(() => {
103
+ if (!this.confluentCloudSchemaRegistryBaseUrl) {
104
+ throw new Error("Schema Registry endpoint not configured");
105
+ }
106
+ const { apiKey, apiSecret } = config.auth.schemaRegistry;
107
+ return new SchemaRegistryClient({
108
+ baseURLs: [this.confluentCloudSchemaRegistryBaseUrl],
109
+ basicAuthCredentials: {
110
+ credentialsSource: "USER_INFO",
111
+ userInfo: `${apiKey}:${apiSecret}`,
112
+ },
113
+ });
114
+ });
115
+ }
116
+ /** @inheritdoc */
117
+ async getConsumer(sessionId) {
118
+ // Build the config inline, merging with defaults
119
+ const baseGroupId = this.kafkaConfig["group.id"] || "mcp-confluent";
120
+ const groupId = sessionId ? `${baseGroupId}-${sessionId}` : baseGroupId;
121
+ const consumerConfig = {
122
+ // Spread all user-provided config
123
+ ...this.kafkaConfig,
124
+ // Override with our logic
125
+ "group.id": groupId,
126
+ "auto.offset.reset": this.kafkaConfig["auto.offset.reset"] || "earliest",
127
+ "allow.auto.create.topics": this.kafkaConfig["allow.auto.create.topics"] || false,
128
+ "enable.auto.commit": this.kafkaConfig["enable.auto.commit"] || false,
129
+ };
130
+ return this.kafkaClient.get().consumer(consumerConfig);
88
131
  }
89
132
  /**
90
133
  * a function that sets a new confluent cloud rest endpoint.
@@ -107,9 +150,6 @@ export class DefaultClientManager {
107
150
  this.confluentCloudKafkaRestClient.close();
108
151
  this.confluentCloudKafkaRestBaseUrl = endpoint;
109
152
  }
110
- getConsumer() {
111
- throw new Error("Method not implemented.");
112
- }
113
153
  /** @inheritdoc */
114
154
  getKafkaClient() {
115
155
  return this.kafkaClient.get();
@@ -144,5 +184,9 @@ export class DefaultClientManager {
144
184
  await this.producer.close();
145
185
  this.kafkaClient.close();
146
186
  }
187
+ /** @inheritdoc */
188
+ getSchemaRegistryClient() {
189
+ return this.schemaRegistryClient.get();
190
+ }
147
191
  }
148
192
  //# sourceMappingURL=client-manager.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"client-manager.js","sourceRoot":"","sources":["../../src/confluent/client-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client-manager.js","sourceRoot":"","sources":["../../src/confluent/client-manager.ts"],"names":[],"mappings":"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"}
@@ -4,8 +4,8 @@ import { Environment } from "../env.js";
4
4
  * @param envVarName - The name of the environment variable to check
5
5
  * @param errorMessage - The error message to throw if neither parameter nor environment variable exists
6
6
  * @param param - Optional parameter value to use instead of environment variable
7
- * @returns The parameter value or environment variable value
7
+ * @returns The parameter value or environment variable value with its original type
8
8
  * @throws {Error} When neither parameter nor environment variable exists
9
9
  */
10
- export declare const getEnsuredParam: (envVarName: keyof Environment, errorMessage: string, param?: string) => string;
10
+ export declare const getEnsuredParam: <T extends Environment[keyof Environment]>(envVarName: keyof Environment, errorMessage: string, param?: T) => T;
11
11
  //# sourceMappingURL=helpers.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../src/confluent/helpers.ts"],"names":[],"mappings":"AAAA,OAAY,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE/C;;;;;;;GAOG;AACH,eAAO,MAAM,eAAe,GAC1B,YAAY,MAAM,WAAW,EAC7B,cAAc,MAAM,EACpB,QAAQ,MAAM,WAOf,CAAC"}
1
+ {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../src/confluent/helpers.ts"],"names":[],"mappings":"AAAA,OAAY,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE/C;;;;;;;GAOG;AACH,eAAO,MAAM,eAAe,GAAI,CAAC,SAAS,WAAW,CAAC,MAAM,WAAW,CAAC,EACtE,YAAY,MAAM,WAAW,EAC7B,cAAc,MAAM,EACpB,QAAQ,CAAC,KACR,CAMF,CAAC"}
@@ -4,7 +4,7 @@ import env from "../env.js";
4
4
  * @param envVarName - The name of the environment variable to check
5
5
  * @param errorMessage - The error message to throw if neither parameter nor environment variable exists
6
6
  * @param param - Optional parameter value to use instead of environment variable
7
- * @returns The parameter value or environment variable value
7
+ * @returns The parameter value or environment variable value with its original type
8
8
  * @throws {Error} When neither parameter nor environment variable exists
9
9
  */
10
10
  export const getEnsuredParam = (envVarName, errorMessage, param) => {
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/confluent/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,GAAoB,MAAM,aAAa,CAAC;AAE/C;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAC7B,UAA6B,EAC7B,YAAoB,EACpB,KAAc,EACd,EAAE;IACF,MAAM,UAAU,GAAG,KAAK,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC;IAC5C,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,MAAM,IAAI,KAAK,CAAC,GAAG,YAAY,EAAE,CAAC,CAAC;IACrC,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC,CAAC"}
1
+ {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/confluent/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,GAAoB,MAAM,aAAa,CAAC;AAE/C;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAC7B,UAA6B,EAC7B,YAAoB,EACpB,KAAS,EACN,EAAE;IACL,MAAM,UAAU,GAAG,KAAK,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC;IAC5C,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,MAAM,IAAI,KAAK,CAAC,GAAG,YAAY,EAAE,CAAC,CAAC;IACrC,CAAC;IACD,OAAO,UAAe,CAAC;AACzB,CAAC,CAAC"}