@confluentinc/mcp-confluent 1.0.1

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 (219) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +302 -0
  3. package/dist/cli.d.ts +14 -0
  4. package/dist/cli.d.ts.map +1 -0
  5. package/dist/cli.js +53 -0
  6. package/dist/cli.js.map +1 -0
  7. package/dist/confluent/client-manager.d.ts +93 -0
  8. package/dist/confluent/client-manager.d.ts.map +1 -0
  9. package/dist/confluent/client-manager.js +148 -0
  10. package/dist/confluent/client-manager.js.map +1 -0
  11. package/dist/confluent/helpers.d.ts +11 -0
  12. package/dist/confluent/helpers.d.ts.map +1 -0
  13. package/dist/confluent/helpers.js +17 -0
  14. package/dist/confluent/helpers.js.map +1 -0
  15. package/dist/confluent/middleware.d.ts +15 -0
  16. package/dist/confluent/middleware.d.ts.map +1 -0
  17. package/dist/confluent/middleware.js +43 -0
  18. package/dist/confluent/middleware.js.map +1 -0
  19. package/dist/confluent/schema.d.ts +4 -0
  20. package/dist/confluent/schema.d.ts.map +1 -0
  21. package/dist/confluent/schema.js +4 -0
  22. package/dist/confluent/schema.js.map +1 -0
  23. package/dist/confluent/tools/base-tools.d.ts +19 -0
  24. package/dist/confluent/tools/base-tools.d.ts.map +1 -0
  25. package/dist/confluent/tools/base-tools.js +16 -0
  26. package/dist/confluent/tools/base-tools.js.map +1 -0
  27. package/dist/confluent/tools/handlers/catalog/add-tag-to-topic.d.ts +8 -0
  28. package/dist/confluent/tools/handlers/catalog/add-tag-to-topic.d.ts.map +1 -0
  29. package/dist/confluent/tools/handlers/catalog/add-tag-to-topic.js +47 -0
  30. package/dist/confluent/tools/handlers/catalog/add-tag-to-topic.js.map +1 -0
  31. package/dist/confluent/tools/handlers/catalog/add-tags-to-topic copy.d.ts +8 -0
  32. package/dist/confluent/tools/handlers/catalog/add-tags-to-topic copy.d.ts.map +1 -0
  33. package/dist/confluent/tools/handlers/catalog/add-tags-to-topic copy.js +47 -0
  34. package/dist/confluent/tools/handlers/catalog/add-tags-to-topic copy.js.map +1 -0
  35. package/dist/confluent/tools/handlers/catalog/add-tags-to-topic.d.ts +8 -0
  36. package/dist/confluent/tools/handlers/catalog/add-tags-to-topic.d.ts.map +1 -0
  37. package/dist/confluent/tools/handlers/catalog/add-tags-to-topic.js +47 -0
  38. package/dist/confluent/tools/handlers/catalog/add-tags-to-topic.js.map +1 -0
  39. package/dist/confluent/tools/handlers/catalog/create-topic-tags copy.d.ts +8 -0
  40. package/dist/confluent/tools/handlers/catalog/create-topic-tags copy.d.ts.map +1 -0
  41. package/dist/confluent/tools/handlers/catalog/create-topic-tags copy.js +52 -0
  42. package/dist/confluent/tools/handlers/catalog/create-topic-tags copy.js.map +1 -0
  43. package/dist/confluent/tools/handlers/catalog/create-topic-tags.d.ts +8 -0
  44. package/dist/confluent/tools/handlers/catalog/create-topic-tags.d.ts.map +1 -0
  45. package/dist/confluent/tools/handlers/catalog/create-topic-tags.js +52 -0
  46. package/dist/confluent/tools/handlers/catalog/create-topic-tags.js.map +1 -0
  47. package/dist/confluent/tools/handlers/catalog/delete-tag copy.d.ts +8 -0
  48. package/dist/confluent/tools/handlers/catalog/delete-tag copy.d.ts.map +1 -0
  49. package/dist/confluent/tools/handlers/catalog/delete-tag copy.js +42 -0
  50. package/dist/confluent/tools/handlers/catalog/delete-tag copy.js.map +1 -0
  51. package/dist/confluent/tools/handlers/catalog/delete-tag-for-entity.d.ts +8 -0
  52. package/dist/confluent/tools/handlers/catalog/delete-tag-for-entity.d.ts.map +1 -0
  53. package/dist/confluent/tools/handlers/catalog/delete-tag-for-entity.js +56 -0
  54. package/dist/confluent/tools/handlers/catalog/delete-tag-for-entity.js.map +1 -0
  55. package/dist/confluent/tools/handlers/catalog/delete-tag.d.ts +8 -0
  56. package/dist/confluent/tools/handlers/catalog/delete-tag.d.ts.map +1 -0
  57. package/dist/confluent/tools/handlers/catalog/delete-tag.js +42 -0
  58. package/dist/confluent/tools/handlers/catalog/delete-tag.js.map +1 -0
  59. package/dist/confluent/tools/handlers/catalog/list-.d.ts +8 -0
  60. package/dist/confluent/tools/handlers/catalog/list-.d.ts.map +1 -0
  61. package/dist/confluent/tools/handlers/catalog/list-.js +35 -0
  62. package/dist/confluent/tools/handlers/catalog/list-.js.map +1 -0
  63. package/dist/confluent/tools/handlers/catalog/list-tags.d.ts +8 -0
  64. package/dist/confluent/tools/handlers/catalog/list-tags.d.ts.map +1 -0
  65. package/dist/confluent/tools/handlers/catalog/list-tags.js +35 -0
  66. package/dist/confluent/tools/handlers/catalog/list-tags.js.map +1 -0
  67. package/dist/confluent/tools/handlers/catalog/remove-tag-from-entity.d.ts +8 -0
  68. package/dist/confluent/tools/handlers/catalog/remove-tag-from-entity.d.ts.map +1 -0
  69. package/dist/confluent/tools/handlers/catalog/remove-tag-from-entity.js +56 -0
  70. package/dist/confluent/tools/handlers/catalog/remove-tag-from-entity.js.map +1 -0
  71. package/dist/confluent/tools/handlers/clusters/list-clusters-handler.d.ts +182 -0
  72. package/dist/confluent/tools/handlers/clusters/list-clusters-handler.d.ts.map +1 -0
  73. package/dist/confluent/tools/handlers/clusters/list-clusters-handler.js +147 -0
  74. package/dist/confluent/tools/handlers/clusters/list-clusters-handler.js.map +1 -0
  75. package/dist/confluent/tools/handlers/connect/create-connector-handler copy.d.ts +8 -0
  76. package/dist/confluent/tools/handlers/connect/create-connector-handler copy.d.ts.map +1 -0
  77. package/dist/confluent/tools/handlers/connect/create-connector-handler copy.js +84 -0
  78. package/dist/confluent/tools/handlers/connect/create-connector-handler copy.js.map +1 -0
  79. package/dist/confluent/tools/handlers/connect/create-connector-handler.d.ts +8 -0
  80. package/dist/confluent/tools/handlers/connect/create-connector-handler.d.ts.map +1 -0
  81. package/dist/confluent/tools/handlers/connect/create-connector-handler.js +95 -0
  82. package/dist/confluent/tools/handlers/connect/create-connector-handler.js.map +1 -0
  83. package/dist/confluent/tools/handlers/connect/delete-connector-handler.d.ts +8 -0
  84. package/dist/confluent/tools/handlers/connect/delete-connector-handler.d.ts.map +1 -0
  85. package/dist/confluent/tools/handlers/connect/delete-connector-handler.js +59 -0
  86. package/dist/confluent/tools/handlers/connect/delete-connector-handler.js.map +1 -0
  87. package/dist/confluent/tools/handlers/connect/list-connectors-handler.d.ts +8 -0
  88. package/dist/confluent/tools/handlers/connect/list-connectors-handler.d.ts.map +1 -0
  89. package/dist/confluent/tools/handlers/connect/list-connectors-handler.js +56 -0
  90. package/dist/confluent/tools/handlers/connect/list-connectors-handler.js.map +1 -0
  91. package/dist/confluent/tools/handlers/connect/read-connectors-handler.d.ts +8 -0
  92. package/dist/confluent/tools/handlers/connect/read-connectors-handler.d.ts.map +1 -0
  93. package/dist/confluent/tools/handlers/connect/read-connectors-handler.js +62 -0
  94. package/dist/confluent/tools/handlers/connect/read-connectors-handler.js.map +1 -0
  95. package/dist/confluent/tools/handlers/entity/create-tags-for-topics.d.ts +8 -0
  96. package/dist/confluent/tools/handlers/entity/create-tags-for-topics.d.ts.map +1 -0
  97. package/dist/confluent/tools/handlers/entity/create-tags-for-topics.js +52 -0
  98. package/dist/confluent/tools/handlers/entity/create-tags-for-topics.js.map +1 -0
  99. package/dist/confluent/tools/handlers/entity/create-topic-tags.d.ts +8 -0
  100. package/dist/confluent/tools/handlers/entity/create-topic-tags.d.ts.map +1 -0
  101. package/dist/confluent/tools/handlers/entity/create-topic-tags.js +52 -0
  102. package/dist/confluent/tools/handlers/entity/create-topic-tags.js.map +1 -0
  103. package/dist/confluent/tools/handlers/entity/create-topicc-tags.d.ts +8 -0
  104. package/dist/confluent/tools/handlers/entity/create-topicc-tags.d.ts.map +1 -0
  105. package/dist/confluent/tools/handlers/entity/create-topicc-tags.js +52 -0
  106. package/dist/confluent/tools/handlers/entity/create-topicc-tags.js.map +1 -0
  107. package/dist/confluent/tools/handlers/entity/create-topics-tags.d.ts +8 -0
  108. package/dist/confluent/tools/handlers/entity/create-topics-tags.d.ts.map +1 -0
  109. package/dist/confluent/tools/handlers/entity/create-topics-tags.js +52 -0
  110. package/dist/confluent/tools/handlers/entity/create-topics-tags.js.map +1 -0
  111. package/dist/confluent/tools/handlers/entity/topics-with-tags-handler copy.d.ts +8 -0
  112. package/dist/confluent/tools/handlers/entity/topics-with-tags-handler copy.d.ts.map +1 -0
  113. package/dist/confluent/tools/handlers/entity/topics-with-tags-handler copy.js +39 -0
  114. package/dist/confluent/tools/handlers/entity/topics-with-tags-handler copy.js.map +1 -0
  115. package/dist/confluent/tools/handlers/entity/topics-with-tags-handler.d.ts +8 -0
  116. package/dist/confluent/tools/handlers/entity/topics-with-tags-handler.d.ts.map +1 -0
  117. package/dist/confluent/tools/handlers/entity/topics-with-tags-handler.js +39 -0
  118. package/dist/confluent/tools/handlers/entity/topics-with-tags-handler.js.map +1 -0
  119. package/dist/confluent/tools/handlers/environments/list-environments-handler.d.ts +213 -0
  120. package/dist/confluent/tools/handlers/environments/list-environments-handler.d.ts.map +1 -0
  121. package/dist/confluent/tools/handlers/environments/list-environments-handler.js +130 -0
  122. package/dist/confluent/tools/handlers/environments/list-environments-handler.js.map +1 -0
  123. package/dist/confluent/tools/handlers/environments/read-environment-handler.d.ts +8 -0
  124. package/dist/confluent/tools/handlers/environments/read-environment-handler.d.ts.map +1 -0
  125. package/dist/confluent/tools/handlers/environments/read-environment-handler.js +84 -0
  126. package/dist/confluent/tools/handlers/environments/read-environment-handler.js.map +1 -0
  127. package/dist/confluent/tools/handlers/flink/create-flink-statement-handler.d.ts +8 -0
  128. package/dist/confluent/tools/handlers/flink/create-flink-statement-handler.d.ts.map +1 -0
  129. package/dist/confluent/tools/handlers/flink/create-flink-statement-handler.js +100 -0
  130. package/dist/confluent/tools/handlers/flink/create-flink-statement-handler.js.map +1 -0
  131. package/dist/confluent/tools/handlers/flink/delete-flink-statement-handler.d.ts +8 -0
  132. package/dist/confluent/tools/handlers/flink/delete-flink-statement-handler.d.ts.map +1 -0
  133. package/dist/confluent/tools/handlers/flink/delete-flink-statement-handler.js +63 -0
  134. package/dist/confluent/tools/handlers/flink/delete-flink-statement-handler.js.map +1 -0
  135. package/dist/confluent/tools/handlers/flink/list-flink-statements-handler.d.ts +8 -0
  136. package/dist/confluent/tools/handlers/flink/list-flink-statements-handler.d.ts.map +1 -0
  137. package/dist/confluent/tools/handlers/flink/list-flink-statements-handler.js +80 -0
  138. package/dist/confluent/tools/handlers/flink/list-flink-statements-handler.js.map +1 -0
  139. package/dist/confluent/tools/handlers/flink/read-flink-statement-handler.d.ts +8 -0
  140. package/dist/confluent/tools/handlers/flink/read-flink-statement-handler.d.ts.map +1 -0
  141. package/dist/confluent/tools/handlers/flink/read-flink-statement-handler.js +83 -0
  142. package/dist/confluent/tools/handlers/flink/read-flink-statement-handler.js.map +1 -0
  143. package/dist/confluent/tools/handlers/kafka/alter-topic-config copy.d.ts +14 -0
  144. package/dist/confluent/tools/handlers/kafka/alter-topic-config copy.d.ts.map +1 -0
  145. package/dist/confluent/tools/handlers/kafka/alter-topic-config copy.js +61 -0
  146. package/dist/confluent/tools/handlers/kafka/alter-topic-config copy.js.map +1 -0
  147. package/dist/confluent/tools/handlers/kafka/alter-topic-config.d.ts +14 -0
  148. package/dist/confluent/tools/handlers/kafka/alter-topic-config.d.ts.map +1 -0
  149. package/dist/confluent/tools/handlers/kafka/alter-topic-config.js +61 -0
  150. package/dist/confluent/tools/handlers/kafka/alter-topic-config.js.map +1 -0
  151. package/dist/confluent/tools/handlers/kafka/create-topics-handler copy.d.ts +8 -0
  152. package/dist/confluent/tools/handlers/kafka/create-topics-handler copy.d.ts.map +1 -0
  153. package/dist/confluent/tools/handlers/kafka/create-topics-handler copy.js +28 -0
  154. package/dist/confluent/tools/handlers/kafka/create-topics-handler copy.js.map +1 -0
  155. package/dist/confluent/tools/handlers/kafka/create-topics-handler.d.ts +8 -0
  156. package/dist/confluent/tools/handlers/kafka/create-topics-handler.d.ts.map +1 -0
  157. package/dist/confluent/tools/handlers/kafka/create-topics-handler.js +28 -0
  158. package/dist/confluent/tools/handlers/kafka/create-topics-handler.js.map +1 -0
  159. package/dist/confluent/tools/handlers/kafka/delete-topics-handler.d.ts +8 -0
  160. package/dist/confluent/tools/handlers/kafka/delete-topics-handler.d.ts.map +1 -0
  161. package/dist/confluent/tools/handlers/kafka/delete-topics-handler.js +23 -0
  162. package/dist/confluent/tools/handlers/kafka/delete-topics-handler.js.map +1 -0
  163. package/dist/confluent/tools/handlers/kafka/list-topics-handler.d.ts +8 -0
  164. package/dist/confluent/tools/handlers/kafka/list-topics-handler.d.ts.map +1 -0
  165. package/dist/confluent/tools/handlers/kafka/list-topics-handler.js +22 -0
  166. package/dist/confluent/tools/handlers/kafka/list-topics-handler.js.map +1 -0
  167. package/dist/confluent/tools/handlers/kafka/produce-kafka-message-handler.d.ts +8 -0
  168. package/dist/confluent/tools/handlers/kafka/produce-kafka-message-handler.d.ts.map +1 -0
  169. package/dist/confluent/tools/handlers/kafka/produce-kafka-message-handler.js +37 -0
  170. package/dist/confluent/tools/handlers/kafka/produce-kafka-message-handler.js.map +1 -0
  171. package/dist/confluent/tools/handlers/schema/list-schemas-handler.d.ts +8 -0
  172. package/dist/confluent/tools/handlers/schema/list-schemas-handler.d.ts.map +1 -0
  173. package/dist/confluent/tools/handlers/schema/list-schemas-handler.js +52 -0
  174. package/dist/confluent/tools/handlers/schema/list-schemas-handler.js.map +1 -0
  175. package/dist/confluent/tools/handlers/search/search-topic-by-tag-handler copy.d.ts +8 -0
  176. package/dist/confluent/tools/handlers/search/search-topic-by-tag-handler copy.d.ts.map +1 -0
  177. package/dist/confluent/tools/handlers/search/search-topic-by-tag-handler copy.js +45 -0
  178. package/dist/confluent/tools/handlers/search/search-topic-by-tag-handler copy.js.map +1 -0
  179. package/dist/confluent/tools/handlers/search/search-topic-by-tag-handler.d.ts +8 -0
  180. package/dist/confluent/tools/handlers/search/search-topic-by-tag-handler.d.ts.map +1 -0
  181. package/dist/confluent/tools/handlers/search/search-topic-by-tag-handler.js +53 -0
  182. package/dist/confluent/tools/handlers/search/search-topic-by-tag-handler.js.map +1 -0
  183. package/dist/confluent/tools/handlers/search/search-topics-by-name-handler.d.ts +8 -0
  184. package/dist/confluent/tools/handlers/search/search-topics-by-name-handler.d.ts.map +1 -0
  185. package/dist/confluent/tools/handlers/search/search-topics-by-name-handler.js +45 -0
  186. package/dist/confluent/tools/handlers/search/search-topics-by-name-handler.js.map +1 -0
  187. package/dist/confluent/tools/handlers/search/topics-with-tags-handler.d.ts +8 -0
  188. package/dist/confluent/tools/handlers/search/topics-with-tags-handler.d.ts.map +1 -0
  189. package/dist/confluent/tools/handlers/search/topics-with-tags-handler.js +39 -0
  190. package/dist/confluent/tools/handlers/search/topics-with-tags-handler.js.map +1 -0
  191. package/dist/confluent/tools/tool-factory.d.ts +9 -0
  192. package/dist/confluent/tools/tool-factory.d.ts.map +1 -0
  193. package/dist/confluent/tools/tool-factory.js +70 -0
  194. package/dist/confluent/tools/tool-factory.js.map +1 -0
  195. package/dist/confluent/tools/tool-name.d.ts +27 -0
  196. package/dist/confluent/tools/tool-name.d.ts.map +1 -0
  197. package/dist/confluent/tools/tool-name.js +28 -0
  198. package/dist/confluent/tools/tool-name.js.map +1 -0
  199. package/dist/env-schema.d.ts +67 -0
  200. package/dist/env-schema.d.ts.map +1 -0
  201. package/dist/env-schema.js +111 -0
  202. package/dist/env-schema.js.map +1 -0
  203. package/dist/env.d.ts +36 -0
  204. package/dist/env.d.ts.map +1 -0
  205. package/dist/env.js +40 -0
  206. package/dist/env.js.map +1 -0
  207. package/dist/index.d.ts +3 -0
  208. package/dist/index.d.ts.map +1 -0
  209. package/dist/index.js +70 -0
  210. package/dist/index.js.map +1 -0
  211. package/dist/lazy.d.ts +65 -0
  212. package/dist/lazy.d.ts.map +1 -0
  213. package/dist/lazy.js +106 -0
  214. package/dist/lazy.js.map +1 -0
  215. package/dist/print-md-schema.d.ts +2 -0
  216. package/dist/print-md-schema.d.ts.map +1 -0
  217. package/dist/print-md-schema.js +96 -0
  218. package/dist/print-md-schema.js.map +1 -0
  219. package/package.json +68 -0
@@ -0,0 +1,39 @@
1
+ import { BaseToolHandler, } from "../../../../confluent/tools/base-tools.js";
2
+ import { ToolName } from "../../../../confluent/tools/tool-name.js";
3
+ import env from "../../../../env.js";
4
+ import { wrapAsPathBasedClient } from "openapi-fetch";
5
+ import { z } from "zod";
6
+ const topicTagArgs = z.object({
7
+ baseUrl: z
8
+ .string()
9
+ .describe("The base URL of the Schema Registry REST API.")
10
+ .url()
11
+ .default(env.SCHEMA_REGISTRY_ENDPOINT ?? "")
12
+ .optional(),
13
+ topicTag: z.string().optional().describe("Name of the kafka topic tag"),
14
+ });
15
+ export class TopicsWithTagsHandler extends BaseToolHandler {
16
+ async handle(clientManager, toolArguments) {
17
+ const { topicTag, baseUrl } = topicTagArgs.parse(toolArguments);
18
+ if (baseUrl !== undefined && baseUrl !== "") {
19
+ clientManager.setConfluentCloudSchemaRegistryEndpoint(baseUrl);
20
+ }
21
+ const pathBasedClient = wrapAsPathBasedClient(clientManager.getConfluentCloudSchemaRegistryRestClient());
22
+ const topics = await pathBasedClient["/catalog/v1/search/basic?types=kafka_topic&tag={topicTag}"].GET({
23
+ params: {
24
+ path: {
25
+ topicTag: topicTag,
26
+ },
27
+ },
28
+ });
29
+ return this.createResponse(`Kafka topics:, ${JSON.stringify(topics?.data)}`);
30
+ }
31
+ getToolConfig() {
32
+ return {
33
+ name: ToolName.LIST_TOPICS_WITH_A_SPECIFIED_TAG,
34
+ description: "List all topics in the Kafka cluster with the specified tag.",
35
+ inputSchema: topicTagArgs.shape,
36
+ };
37
+ }
38
+ }
39
+ //# sourceMappingURL=topics-with-tags-handler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"topics-with-tags-handler.js","sourceRoot":"","sources":["../../../../../src/confluent/tools/handlers/search/topics-with-tags-handler.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,eAAe,GAEhB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,mCAAmC,CAAC;AAC7D,OAAO,GAAG,MAAM,aAAa,CAAC;AAC9B,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5B,OAAO,EAAE,CAAC;SACP,MAAM,EAAE;SACR,QAAQ,CAAC,+CAA+C,CAAC;SACzD,GAAG,EAAE;SACL,OAAO,CAAC,GAAG,CAAC,wBAAwB,IAAI,EAAE,CAAC;SAC3C,QAAQ,EAAE;IACb,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,6BAA6B,CAAC;CACxE,CAAC,CAAC;AAEH,MAAM,OAAO,qBAAsB,SAAQ,eAAe;IACxD,KAAK,CAAC,MAAM,CACV,aAA4B,EAC5B,aAAsC;QAEtC,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,YAAY,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QAChE,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,KAAK,EAAE,EAAE,CAAC;YAC5C,aAAa,CAAC,uCAAuC,CAAC,OAAO,CAAC,CAAC;QACjE,CAAC;QACD,MAAM,eAAe,GAAG,qBAAqB,CAC3C,aAAa,CAAC,yCAAyC,EAAE,CAC1D,CAAC;QACF,MAAM,MAAM,GAAG,MAAM,eAAe,CAClC,2DAA2D,CAC5D,CAAC,GAAG,CAAC;YACJ,MAAM,EAAE;gBACN,IAAI,EAAE;oBACJ,QAAQ,EAAE,QAAQ;iBACnB;aACF;SACF,CAAC,CAAC;QACH,OAAO,IAAI,CAAC,cAAc,CACxB,kBAAkB,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,CACjD,CAAC;IACJ,CAAC;IAED,aAAa;QACX,OAAO;YACL,IAAI,EAAE,QAAQ,CAAC,gCAAgC;YAC/C,WAAW,EACT,8DAA8D;YAChE,WAAW,EAAE,YAAY,CAAC,KAAK;SAChC,CAAC;IACJ,CAAC;CACF"}
@@ -0,0 +1,9 @@
1
+ import { ToolConfig, ToolHandler } from "../../confluent/tools/base-tools.js";
2
+ import { ToolName } from "../../confluent/tools/tool-name.js";
3
+ export declare class ToolFactory {
4
+ private static handlers;
5
+ static createToolHandler(toolName: ToolName): ToolHandler;
6
+ static getToolConfigs(): ToolConfig[];
7
+ static getToolConfig(toolName: ToolName): ToolConfig;
8
+ }
9
+ //# sourceMappingURL=tool-factory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-factory.d.ts","sourceRoot":"","sources":["../../../src/confluent/tools/tool-factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,oCAAoC,CAAC;AAqB7E,OAAO,EAAE,QAAQ,EAAE,MAAM,mCAAmC,CAAC;AAM7D,qBAAa,WAAW;IACtB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAyBpB;IAEH,MAAM,CAAC,iBAAiB,CAAC,QAAQ,EAAE,QAAQ,GAAG,WAAW;IAOzD,MAAM,CAAC,cAAc,IAAI,UAAU,EAAE;IAOrC,MAAM,CAAC,aAAa,CAAC,QAAQ,EAAE,QAAQ,GAAG,UAAU;CAMrD"}
@@ -0,0 +1,70 @@
1
+ import { AddTagToTopicHandler } from "../../confluent/tools/handlers/catalog/add-tags-to-topic.js";
2
+ import { CreateTopicTagsHandler } from "../../confluent/tools/handlers/catalog/create-topic-tags.js";
3
+ import { DeleteTagHandler } from "../../confluent/tools/handlers/catalog/delete-tag.js";
4
+ import { ListTagsHandler } from "../../confluent/tools/handlers/catalog/list-tags.js";
5
+ import { RemoveTagFromEntityHandler } from "../../confluent/tools/handlers/catalog/remove-tag-from-entity.js";
6
+ import { CreateConnectorHandler } from "../../confluent/tools/handlers/connect/create-connector-handler.js";
7
+ import { ListConnectorsHandler } from "../../confluent/tools/handlers/connect/list-connectors-handler.js";
8
+ import { ReadConnectorHandler } from "../../confluent/tools/handlers/connect/read-connectors-handler.js";
9
+ import { ListEnvironmentsHandler } from "../../confluent/tools/handlers/environments/list-environments-handler.js";
10
+ import { ReadEnvironmentHandler } from "../../confluent/tools/handlers/environments/read-environment-handler.js";
11
+ import { CreateFlinkStatementHandler } from "../../confluent/tools/handlers/flink/create-flink-statement-handler.js";
12
+ import { DeleteFlinkStatementHandler } from "../../confluent/tools/handlers/flink/delete-flink-statement-handler.js";
13
+ import { ListFlinkStatementsHandler } from "../../confluent/tools/handlers/flink/list-flink-statements-handler.js";
14
+ import { ReadFlinkStatementHandler } from "../../confluent/tools/handlers/flink/read-flink-statement-handler.js";
15
+ import { AlterTopicConfigHandler } from "../../confluent/tools/handlers/kafka/alter-topic-config.js";
16
+ import { CreateTopicsHandler } from "../../confluent/tools/handlers/kafka/create-topics-handler.js";
17
+ import { DeleteTopicsHandler } from "../../confluent/tools/handlers/kafka/delete-topics-handler.js";
18
+ import { ListTopicsHandler } from "../../confluent/tools/handlers/kafka/list-topics-handler.js";
19
+ import { ProduceKafkaMessageHandler } from "../../confluent/tools/handlers/kafka/produce-kafka-message-handler.js";
20
+ import { SearchTopicsByTagHandler } from "../../confluent/tools/handlers/search/search-topic-by-tag-handler.js";
21
+ import { ToolName } from "../../confluent/tools/tool-name.js";
22
+ import { DeleteConnectorHandler } from "../../confluent/tools/handlers/connect/delete-connector-handler.js";
23
+ import { SearchTopicsByNameHandler } from "../../confluent/tools/handlers/search/search-topics-by-name-handler.js";
24
+ import { ListClustersHandler } from "../../confluent/tools/handlers/clusters/list-clusters-handler.js";
25
+ import { ListSchemasHandler } from "../../confluent/tools/handlers/schema/list-schemas-handler.js";
26
+ export class ToolFactory {
27
+ static handlers = new Map([
28
+ [ToolName.LIST_TOPICS, new ListTopicsHandler()],
29
+ [ToolName.CREATE_TOPICS, new CreateTopicsHandler()],
30
+ [ToolName.DELETE_TOPICS, new DeleteTopicsHandler()],
31
+ [ToolName.PRODUCE_MESSAGE, new ProduceKafkaMessageHandler()],
32
+ [ToolName.LIST_FLINK_STATEMENTS, new ListFlinkStatementsHandler()],
33
+ [ToolName.CREATE_FLINK_STATEMENT, new CreateFlinkStatementHandler()],
34
+ [ToolName.READ_FLINK_STATEMENT, new ReadFlinkStatementHandler()],
35
+ [ToolName.DELETE_FLINK_STATEMENTS, new DeleteFlinkStatementHandler()],
36
+ [ToolName.LIST_CONNECTORS, new ListConnectorsHandler()],
37
+ [ToolName.READ_CONNECTOR, new ReadConnectorHandler()],
38
+ [ToolName.CREATE_CONNECTOR, new CreateConnectorHandler()],
39
+ [ToolName.SEARCH_TOPICS_BY_TAG, new SearchTopicsByTagHandler()],
40
+ [ToolName.CREATE_TOPIC_TAGS, new CreateTopicTagsHandler()],
41
+ [ToolName.DELETE_TAG, new DeleteTagHandler()],
42
+ [ToolName.REMOVE_TAG_FROM_ENTITY, new RemoveTagFromEntityHandler()],
43
+ [ToolName.ADD_TAGS_TO_TOPIC, new AddTagToTopicHandler()],
44
+ [ToolName.LIST_TAGS, new ListTagsHandler()],
45
+ [ToolName.ALTER_TOPIC_CONFIG, new AlterTopicConfigHandler()],
46
+ [ToolName.DELETE_CONNECTOR, new DeleteConnectorHandler()],
47
+ [ToolName.SEARCH_TOPICS_BY_NAME, new SearchTopicsByNameHandler()],
48
+ [ToolName.LIST_CLUSTERS, new ListClustersHandler()],
49
+ [ToolName.LIST_ENVIRONMENTS, new ListEnvironmentsHandler()],
50
+ [ToolName.READ_ENVIRONMENT, new ReadEnvironmentHandler()],
51
+ [ToolName.LIST_SCHEMAS, new ListSchemasHandler()],
52
+ ]);
53
+ static createToolHandler(toolName) {
54
+ if (!this.handlers.has(toolName)) {
55
+ throw new Error(`Unknown tool name: ${toolName}`);
56
+ }
57
+ return this.handlers.get(toolName);
58
+ }
59
+ static getToolConfigs() {
60
+ // iterate through all the handlers and collect their configurations
61
+ return Array.from(this.handlers.values()).map((handler) => handler.getToolConfig());
62
+ }
63
+ static getToolConfig(toolName) {
64
+ if (!this.handlers.has(toolName)) {
65
+ throw new Error(`Unknown tool name: ${toolName}`);
66
+ }
67
+ return this.handlers.get(toolName).getToolConfig();
68
+ }
69
+ }
70
+ //# sourceMappingURL=tool-factory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-factory.js","sourceRoot":"","sources":["../../../src/confluent/tools/tool-factory.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ export declare enum ToolName {
2
+ LIST_TOPICS = "list-topics",
3
+ CREATE_TOPICS = "create-topics",
4
+ DELETE_TOPICS = "delete-topics",
5
+ PRODUCE_MESSAGE = "produce-message",
6
+ LIST_FLINK_STATEMENTS = "list-flink-statements",
7
+ CREATE_FLINK_STATEMENT = "create-flink-statement",
8
+ READ_FLINK_STATEMENT = "read-flink-statement",
9
+ DELETE_FLINK_STATEMENTS = "delete-flink-statements",
10
+ LIST_CONNECTORS = "list-connectors",
11
+ READ_CONNECTOR = "read-connector",
12
+ CREATE_CONNECTOR = "create-connector",
13
+ DELETE_CONNECTOR = "delete-connector",
14
+ SEARCH_TOPICS_BY_TAG = "search-topics-by-tag",
15
+ SEARCH_TOPICS_BY_NAME = "search-topics-by-name",
16
+ CREATE_TOPIC_TAGS = "create-topic-tags",
17
+ DELETE_TAG = "delete-tag",
18
+ REMOVE_TAG_FROM_ENTITY = "remove-tag-from-entity",
19
+ ADD_TAGS_TO_TOPIC = "add-tags-to-topic",
20
+ LIST_TAGS = "list-tags",
21
+ ALTER_TOPIC_CONFIG = "alter-topic-config",
22
+ LIST_CLUSTERS = "list-clusters",
23
+ LIST_ENVIRONMENTS = "list-environments",
24
+ READ_ENVIRONMENT = "read-environment",
25
+ LIST_SCHEMAS = "list-schemas"
26
+ }
27
+ //# sourceMappingURL=tool-name.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-name.d.ts","sourceRoot":"","sources":["../../../src/confluent/tools/tool-name.ts"],"names":[],"mappings":"AAAA,oBAAY,QAAQ;IAClB,WAAW,gBAAgB;IAC3B,aAAa,kBAAkB;IAC/B,aAAa,kBAAkB;IAC/B,eAAe,oBAAoB;IACnC,qBAAqB,0BAA0B;IAC/C,sBAAsB,2BAA2B;IACjD,oBAAoB,yBAAyB;IAC7C,uBAAuB,4BAA4B;IACnD,eAAe,oBAAoB;IACnC,cAAc,mBAAmB;IACjC,gBAAgB,qBAAqB;IACrC,gBAAgB,qBAAqB;IACrC,oBAAoB,yBAAyB;IAC7C,qBAAqB,0BAA0B;IAC/C,iBAAiB,sBAAsB;IACvC,UAAU,eAAe;IACzB,sBAAsB,2BAA2B;IACjD,iBAAiB,sBAAsB;IACvC,SAAS,cAAc;IACvB,kBAAkB,uBAAuB;IACzC,aAAa,kBAAkB;IAC/B,iBAAiB,sBAAsB;IACvC,gBAAgB,qBAAqB;IACrC,YAAY,iBAAiB;CAC9B"}
@@ -0,0 +1,28 @@
1
+ export var ToolName;
2
+ (function (ToolName) {
3
+ ToolName["LIST_TOPICS"] = "list-topics";
4
+ ToolName["CREATE_TOPICS"] = "create-topics";
5
+ ToolName["DELETE_TOPICS"] = "delete-topics";
6
+ ToolName["PRODUCE_MESSAGE"] = "produce-message";
7
+ ToolName["LIST_FLINK_STATEMENTS"] = "list-flink-statements";
8
+ ToolName["CREATE_FLINK_STATEMENT"] = "create-flink-statement";
9
+ ToolName["READ_FLINK_STATEMENT"] = "read-flink-statement";
10
+ ToolName["DELETE_FLINK_STATEMENTS"] = "delete-flink-statements";
11
+ ToolName["LIST_CONNECTORS"] = "list-connectors";
12
+ ToolName["READ_CONNECTOR"] = "read-connector";
13
+ ToolName["CREATE_CONNECTOR"] = "create-connector";
14
+ ToolName["DELETE_CONNECTOR"] = "delete-connector";
15
+ ToolName["SEARCH_TOPICS_BY_TAG"] = "search-topics-by-tag";
16
+ ToolName["SEARCH_TOPICS_BY_NAME"] = "search-topics-by-name";
17
+ ToolName["CREATE_TOPIC_TAGS"] = "create-topic-tags";
18
+ ToolName["DELETE_TAG"] = "delete-tag";
19
+ ToolName["REMOVE_TAG_FROM_ENTITY"] = "remove-tag-from-entity";
20
+ ToolName["ADD_TAGS_TO_TOPIC"] = "add-tags-to-topic";
21
+ ToolName["LIST_TAGS"] = "list-tags";
22
+ ToolName["ALTER_TOPIC_CONFIG"] = "alter-topic-config";
23
+ ToolName["LIST_CLUSTERS"] = "list-clusters";
24
+ ToolName["LIST_ENVIRONMENTS"] = "list-environments";
25
+ ToolName["READ_ENVIRONMENT"] = "read-environment";
26
+ ToolName["LIST_SCHEMAS"] = "list-schemas";
27
+ })(ToolName || (ToolName = {}));
28
+ //# sourceMappingURL=tool-name.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-name.js","sourceRoot":"","sources":["../../../src/confluent/tools/tool-name.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,QAyBX;AAzBD,WAAY,QAAQ;IAClB,uCAA2B,CAAA;IAC3B,2CAA+B,CAAA;IAC/B,2CAA+B,CAAA;IAC/B,+CAAmC,CAAA;IACnC,2DAA+C,CAAA;IAC/C,6DAAiD,CAAA;IACjD,yDAA6C,CAAA;IAC7C,+DAAmD,CAAA;IACnD,+CAAmC,CAAA;IACnC,6CAAiC,CAAA;IACjC,iDAAqC,CAAA;IACrC,iDAAqC,CAAA;IACrC,yDAA6C,CAAA;IAC7C,2DAA+C,CAAA;IAC/C,mDAAuC,CAAA;IACvC,qCAAyB,CAAA;IACzB,6DAAiD,CAAA;IACjD,mDAAuC,CAAA;IACvC,mCAAuB,CAAA;IACvB,qDAAyC,CAAA;IACzC,2CAA+B,CAAA;IAC/B,mDAAuC,CAAA;IACvC,iDAAqC,CAAA;IACrC,yCAA6B,CAAA;AAC/B,CAAC,EAzBW,QAAQ,KAAR,QAAQ,QAyBnB"}
@@ -0,0 +1,67 @@
1
+ import { z } from "zod";
2
+ export declare const combinedSchema: z.ZodObject<z.objectUtil.extendShape<{
3
+ BOOTSTRAP_SERVERS: z.ZodString;
4
+ KAFKA_API_KEY: z.ZodString;
5
+ KAFKA_API_SECRET: z.ZodString;
6
+ FLINK_API_KEY: z.ZodString;
7
+ FLINK_API_SECRET: z.ZodString;
8
+ CONFLUENT_CLOUD_API_KEY: z.ZodString;
9
+ CONFLUENT_CLOUD_API_SECRET: z.ZodString;
10
+ SCHEMA_REGISTRY_API_KEY: z.ZodString;
11
+ SCHEMA_REGISTRY_API_SECRET: z.ZodString;
12
+ }, {
13
+ FLINK_ENV_ID: z.ZodOptional<z.ZodString>;
14
+ FLINK_ORG_ID: z.ZodOptional<z.ZodString>;
15
+ FLINK_REST_ENDPOINT: z.ZodOptional<z.ZodString>;
16
+ FLINK_COMPUTE_POOL_ID: z.ZodOptional<z.ZodString>;
17
+ FLINK_ENV_NAME: z.ZodOptional<z.ZodString>;
18
+ FLINK_DATABASE_NAME: z.ZodOptional<z.ZodString>;
19
+ KAFKA_CLUSTER_ID: z.ZodOptional<z.ZodString>;
20
+ KAFKA_ENV_ID: z.ZodOptional<z.ZodString>;
21
+ CONFLUENT_CLOUD_REST_ENDPOINT: z.ZodOptional<z.ZodDefault<z.ZodString>>;
22
+ SCHEMA_REGISTRY_ENDPOINT: z.ZodOptional<z.ZodString>;
23
+ KAFKA_REST_ENDPOINT: z.ZodOptional<z.ZodString>;
24
+ }>, "strip", z.ZodTypeAny, {
25
+ BOOTSTRAP_SERVERS: string;
26
+ KAFKA_API_KEY: string;
27
+ KAFKA_API_SECRET: string;
28
+ FLINK_API_KEY: string;
29
+ FLINK_API_SECRET: string;
30
+ CONFLUENT_CLOUD_API_KEY: string;
31
+ CONFLUENT_CLOUD_API_SECRET: string;
32
+ SCHEMA_REGISTRY_API_KEY: string;
33
+ SCHEMA_REGISTRY_API_SECRET: string;
34
+ FLINK_ENV_ID?: string | undefined;
35
+ FLINK_ORG_ID?: string | undefined;
36
+ FLINK_REST_ENDPOINT?: string | undefined;
37
+ FLINK_COMPUTE_POOL_ID?: string | undefined;
38
+ FLINK_ENV_NAME?: string | undefined;
39
+ FLINK_DATABASE_NAME?: string | undefined;
40
+ KAFKA_CLUSTER_ID?: string | undefined;
41
+ KAFKA_ENV_ID?: string | undefined;
42
+ CONFLUENT_CLOUD_REST_ENDPOINT?: string | undefined;
43
+ SCHEMA_REGISTRY_ENDPOINT?: string | undefined;
44
+ KAFKA_REST_ENDPOINT?: string | undefined;
45
+ }, {
46
+ BOOTSTRAP_SERVERS: string;
47
+ KAFKA_API_KEY: string;
48
+ KAFKA_API_SECRET: string;
49
+ FLINK_API_KEY: string;
50
+ FLINK_API_SECRET: string;
51
+ CONFLUENT_CLOUD_API_KEY: string;
52
+ CONFLUENT_CLOUD_API_SECRET: string;
53
+ SCHEMA_REGISTRY_API_KEY: string;
54
+ SCHEMA_REGISTRY_API_SECRET: string;
55
+ FLINK_ENV_ID?: string | undefined;
56
+ FLINK_ORG_ID?: string | undefined;
57
+ FLINK_REST_ENDPOINT?: string | undefined;
58
+ FLINK_COMPUTE_POOL_ID?: string | undefined;
59
+ FLINK_ENV_NAME?: string | undefined;
60
+ FLINK_DATABASE_NAME?: string | undefined;
61
+ KAFKA_CLUSTER_ID?: string | undefined;
62
+ KAFKA_ENV_ID?: string | undefined;
63
+ CONFLUENT_CLOUD_REST_ENDPOINT?: string | undefined;
64
+ SCHEMA_REGISTRY_ENDPOINT?: string | undefined;
65
+ KAFKA_REST_ENDPOINT?: string | undefined;
66
+ }>;
67
+ //# sourceMappingURL=env-schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"env-schema.d.ts","sourceRoot":"","sources":["../src/env-schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAsJxB,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAAgC,CAAC"}
@@ -0,0 +1,111 @@
1
+ import { z } from "zod";
2
+ // Schema for required environment variables
3
+ const envSchema = z.object({
4
+ BOOTSTRAP_SERVERS: z
5
+ .string()
6
+ .describe("List of Kafka broker addresses in the format host1:port1,host2:port2 used to establish initial connection to the Kafka cluster")
7
+ .trim(),
8
+ KAFKA_API_KEY: z
9
+ .string()
10
+ .describe("Authentication credential (username) required to establish secure connection with the Kafka cluster")
11
+ .trim()
12
+ .min(1),
13
+ KAFKA_API_SECRET: z
14
+ .string()
15
+ .describe("Authentication credential (password) paired with KAFKA_API_KEY for secure Kafka cluster access")
16
+ .trim()
17
+ .min(1),
18
+ FLINK_API_KEY: z
19
+ .string()
20
+ .describe("Authentication key for accessing Confluent Cloud's Flink services, including compute pools and SQL statement management")
21
+ .trim()
22
+ .min(1),
23
+ FLINK_API_SECRET: z
24
+ .string()
25
+ .describe("Secret token paired with FLINK_API_KEY for authenticated access to Confluent Cloud's Flink services")
26
+ .trim()
27
+ .min(1),
28
+ CONFLUENT_CLOUD_API_KEY: z
29
+ .string()
30
+ .describe("Master API key for Confluent Cloud platform administration, enabling management of resources across your organization")
31
+ .trim()
32
+ .min(1),
33
+ CONFLUENT_CLOUD_API_SECRET: z
34
+ .string()
35
+ .describe("Master API secret paired with CONFLUENT_CLOUD_API_KEY for comprehensive Confluent Cloud platform administration")
36
+ .trim()
37
+ .min(1),
38
+ SCHEMA_REGISTRY_API_KEY: z
39
+ .string()
40
+ .describe("Authentication key for accessing Schema Registry services to manage and validate data schemas")
41
+ .trim()
42
+ .min(1),
43
+ SCHEMA_REGISTRY_API_SECRET: z
44
+ .string()
45
+ .describe("Authentication secret paired with SCHEMA_REGISTRY_API_KEY for secure Schema Registry access")
46
+ .trim()
47
+ .min(1),
48
+ });
49
+ // Schema for optional configuration from file
50
+ const configSchema = z
51
+ .object({
52
+ FLINK_ENV_ID: z
53
+ .string()
54
+ .describe("Unique identifier for the Flink environment, must start with 'env-' prefix")
55
+ .trim()
56
+ .startsWith("env-"),
57
+ FLINK_ORG_ID: z
58
+ .string()
59
+ .describe("Organization identifier within Confluent Cloud for Flink resource management")
60
+ .trim()
61
+ .min(1),
62
+ FLINK_REST_ENDPOINT: z
63
+ .string()
64
+ .describe("Base URL for Confluent Cloud's Flink REST API endpoints used for SQL statement and compute pool management")
65
+ .trim()
66
+ .url(),
67
+ FLINK_COMPUTE_POOL_ID: z
68
+ .string()
69
+ .describe("Unique identifier for the Flink compute pool, must start with 'lfcp-' prefix")
70
+ .trim()
71
+ .startsWith("lfcp-"),
72
+ FLINK_ENV_NAME: z
73
+ .string()
74
+ .describe("Human-readable name for the Flink environment used for identification and display purposes")
75
+ .trim()
76
+ .min(1),
77
+ FLINK_DATABASE_NAME: z
78
+ .string()
79
+ .describe("Name of the associated Kafka cluster used as a database reference in Flink SQL operations")
80
+ .trim()
81
+ .min(1),
82
+ KAFKA_CLUSTER_ID: z
83
+ .string()
84
+ .describe("Unique identifier for the Kafka cluster within Confluent Cloud ecosystem")
85
+ .trim()
86
+ .min(1),
87
+ KAFKA_ENV_ID: z
88
+ .string()
89
+ .describe("Environment identifier for Kafka cluster, must start with 'env-' prefix")
90
+ .trim()
91
+ .startsWith("env-"),
92
+ CONFLUENT_CLOUD_REST_ENDPOINT: z
93
+ .string()
94
+ .describe("Base URL for Confluent Cloud's REST API services")
95
+ .trim()
96
+ .url()
97
+ .default("https://api.confluent.cloud"),
98
+ SCHEMA_REGISTRY_ENDPOINT: z
99
+ .string()
100
+ .describe("URL endpoint for accessing Schema Registry services to manage data schemas")
101
+ .trim()
102
+ .url(),
103
+ KAFKA_REST_ENDPOINT: z
104
+ .string()
105
+ .describe("REST API endpoint for Kafka cluster management and administration")
106
+ .trim()
107
+ .url(),
108
+ })
109
+ .partial(); // Makes all fields optional
110
+ export const combinedSchema = envSchema.merge(configSchema);
111
+ //# sourceMappingURL=env-schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"env-schema.js","sourceRoot":"","sources":["../src/env-schema.ts"],"names":[],"mappings":"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"}
package/dist/env.d.ts ADDED
@@ -0,0 +1,36 @@
1
+ import { combinedSchema } from "./env-schema.js";
2
+ import { z } from "zod";
3
+ export type Environment = z.infer<typeof combinedSchema>;
4
+ /**
5
+ * Loads and validates environment variables
6
+ * @returns Validated environment object
7
+ */
8
+ export declare function loadEnv(): Promise<Environment>;
9
+ /**
10
+ * Initialize environment and save the values
11
+ */
12
+ export declare function initEnv(): Promise<Environment>;
13
+ declare const env: {
14
+ BOOTSTRAP_SERVERS: string;
15
+ KAFKA_API_KEY: string;
16
+ KAFKA_API_SECRET: string;
17
+ FLINK_API_KEY: string;
18
+ FLINK_API_SECRET: string;
19
+ CONFLUENT_CLOUD_API_KEY: string;
20
+ CONFLUENT_CLOUD_API_SECRET: string;
21
+ SCHEMA_REGISTRY_API_KEY: string;
22
+ SCHEMA_REGISTRY_API_SECRET: string;
23
+ FLINK_ENV_ID?: string | undefined;
24
+ FLINK_ORG_ID?: string | undefined;
25
+ FLINK_REST_ENDPOINT?: string | undefined;
26
+ FLINK_COMPUTE_POOL_ID?: string | undefined;
27
+ FLINK_ENV_NAME?: string | undefined;
28
+ FLINK_DATABASE_NAME?: string | undefined;
29
+ KAFKA_CLUSTER_ID?: string | undefined;
30
+ KAFKA_ENV_ID?: string | undefined;
31
+ CONFLUENT_CLOUD_REST_ENDPOINT?: string | undefined;
32
+ SCHEMA_REGISTRY_ENDPOINT?: string | undefined;
33
+ KAFKA_REST_ENDPOINT?: string | undefined;
34
+ };
35
+ export default env;
36
+ //# sourceMappingURL=env.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../src/env.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAKzD;;;GAGG;AACH,wBAAsB,OAAO,IAAI,OAAO,CAAC,WAAW,CAAC,CASpD;AAED;;GAEG;AACH,wBAAsB,OAAO,IAAI,OAAO,CAAC,WAAW,CAAC,CAMpD;AAGD,QAAA,MAAM,GAAG;;;;;;;;;;;;;;;;;;;;;CAOP,CAAC;AAEH,eAAe,GAAG,CAAC"}
package/dist/env.js ADDED
@@ -0,0 +1,40 @@
1
+ import { combinedSchema } from "./env-schema.js";
2
+ // Track if environment is initialized
3
+ let isInitialized = false;
4
+ let envValues = {};
5
+ /**
6
+ * Loads and validates environment variables
7
+ * @returns Validated environment object
8
+ */
9
+ export async function loadEnv() {
10
+ try {
11
+ // Load and validate environment variables
12
+ const envVars = combinedSchema.parse(process.env);
13
+ return envVars;
14
+ }
15
+ catch (error) {
16
+ console.error("Environment validation error:", error);
17
+ process.exit(1);
18
+ }
19
+ }
20
+ /**
21
+ * Initialize environment and save the values
22
+ */
23
+ export async function initEnv() {
24
+ if (!isInitialized) {
25
+ envValues = await loadEnv();
26
+ isInitialized = true;
27
+ }
28
+ return envValues;
29
+ }
30
+ // Create a module to provide access to environment variables
31
+ const env = new Proxy({}, {
32
+ get: (_, property) => {
33
+ if (isInitialized) {
34
+ return envValues[property];
35
+ }
36
+ return undefined;
37
+ },
38
+ });
39
+ export default env;
40
+ //# sourceMappingURL=env.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"env.js","sourceRoot":"","sources":["../src/env.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAKpD,sCAAsC;AACtC,IAAI,aAAa,GAAG,KAAK,CAAC;AAC1B,IAAI,SAAS,GAAgB,EAAiB,CAAC;AAC/C;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,OAAO;IAC3B,IAAI,CAAC;QACH,0CAA0C;QAC1C,MAAM,OAAO,GAAG,cAAc,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAClD,OAAO,OAAO,CAAC;IACjB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,+BAA+B,EAAE,KAAK,CAAC,CAAC;QACtD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,OAAO;IAC3B,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,SAAS,GAAG,MAAM,OAAO,EAAE,CAAC;QAC5B,aAAa,GAAG,IAAI,CAAC;IACvB,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,6DAA6D;AAC7D,MAAM,GAAG,GAAG,IAAI,KAAK,CAAC,EAAiB,EAAE;IACvC,GAAG,EAAE,CAAC,CAAC,EAAE,QAAgB,EAAE,EAAE;QAC3B,IAAI,aAAa,EAAE,CAAC;YAClB,OAAO,SAAS,CAAC,QAA6B,CAAC,CAAC;QAClD,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;CACF,CAAC,CAAC;AAEH,eAAe,GAAG,CAAC"}
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":""}
package/dist/index.js ADDED
@@ -0,0 +1,70 @@
1
+ #!/usr/bin/env node
2
+ import { KafkaJS } from "@confluentinc/kafka-javascript";
3
+ import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
4
+ import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
5
+ import { parseCliArgs } from "./cli.js";
6
+ import { DefaultClientManager } from "./confluent/client-manager.js";
7
+ import { ToolFactory } from "./confluent/tools/tool-factory.js";
8
+ import { ToolName } from "./confluent/tools/tool-name.js";
9
+ import { initEnv } from "./env.js";
10
+ // Parse command line arguments and load environment variables if --env-file is specified
11
+ parseCliArgs();
12
+ async function main() {
13
+ try {
14
+ // Initialize environment after CLI args are processed
15
+ const env = await initEnv();
16
+ const kafkaClientConfig = {
17
+ kafkaJS: {
18
+ brokers: env.BOOTSTRAP_SERVERS?.split(",") ?? [],
19
+ clientId: "mcp-client",
20
+ ssl: true,
21
+ sasl: {
22
+ mechanism: "plain",
23
+ username: env.KAFKA_API_KEY,
24
+ password: env.KAFKA_API_SECRET,
25
+ },
26
+ logLevel: KafkaJS.logLevel.ERROR,
27
+ },
28
+ };
29
+ const clientManager = new DefaultClientManager(kafkaClientConfig, env.CONFLUENT_CLOUD_REST_ENDPOINT, env.FLINK_REST_ENDPOINT, env.SCHEMA_REGISTRY_ENDPOINT, env.KAFKA_REST_ENDPOINT);
30
+ const toolHandlers = new Map();
31
+ // TODO: Should we have the enabled tools come from configuration?
32
+ const enabledTools = new Set(Object.values(ToolName));
33
+ enabledTools.forEach((toolName) => {
34
+ toolHandlers.set(toolName, ToolFactory.createToolHandler(toolName));
35
+ });
36
+ const server = new McpServer({
37
+ name: "confluent",
38
+ version: process.env.npm_package_version ?? "dev",
39
+ });
40
+ toolHandlers.forEach((handler, name) => {
41
+ const config = handler.getToolConfig();
42
+ server.tool(name, config.description, config.inputSchema, async (args) => {
43
+ return await handler.handle(clientManager, args);
44
+ });
45
+ });
46
+ // Set up cleanup handlers
47
+ const performCleanup = async () => {
48
+ console.error("Shutting down...");
49
+ await clientManager.disconnect();
50
+ await server.close();
51
+ process.exit(0);
52
+ };
53
+ process.on("SIGINT", performCleanup);
54
+ process.on("SIGTERM", performCleanup);
55
+ process.on("SIGQUIT", performCleanup);
56
+ process.on("SIGUSR2", performCleanup);
57
+ const transport = new StdioServerTransport();
58
+ await server.connect(transport);
59
+ console.error("Confluent MCP Server running on stdio");
60
+ }
61
+ catch (error) {
62
+ console.error("Error starting server:", error);
63
+ process.exit(1);
64
+ }
65
+ }
66
+ main().catch((error) => {
67
+ console.error("Error starting server:", error);
68
+ process.exit(1);
69
+ });
70
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/lazy.d.ts ADDED
@@ -0,0 +1,65 @@
1
+ /**
2
+ * A class that implements lazy loading for synchronous values.
3
+ * It defers the initialization of a value until it's first requested.
4
+ * @template T The type of value to be lazily loaded
5
+ */
6
+ export declare class Lazy<T> {
7
+ /** The cached instance of the lazily loaded value */
8
+ private instance;
9
+ /** A function that produces the value to be lazily loaded */
10
+ private readonly supplier;
11
+ /** Optional handler to clean up the instance when closed */
12
+ private readonly closeHandler?;
13
+ /**
14
+ * Creates a new Lazy instance
15
+ * @param supplier A function that creates the lazy-loaded value
16
+ * @param closeHandler Optional function to clean up the instance when closed
17
+ */
18
+ constructor(supplier: () => T, closeHandler?: (instance: T) => void);
19
+ /**
20
+ * Retrieves the lazy-loaded value, initializing it if necessary
21
+ * @returns The lazy-loaded value
22
+ * @throws If the supplier function fails to initialize the value
23
+ */
24
+ get(): T;
25
+ /**
26
+ * Closes and cleans up the lazy-loaded instance if it exists.
27
+ * If a closeHandler was provided, it will be called with the instance.
28
+ * The instance is set to undefined after cleanup.
29
+ */
30
+ close(): void;
31
+ }
32
+ /**
33
+ * A class that implements lazy loading for asynchronous values.
34
+ * It defers the initialization of a value until it's first requested.
35
+ * @template T The type of value to be lazily loaded
36
+ */
37
+ export declare class AsyncLazy<T> {
38
+ /** The cached instance of the lazily loaded value */
39
+ private instance;
40
+ /** A function that produces the value to be lazily loaded */
41
+ private readonly supplier;
42
+ /** Optional handler to clean up the instance when closed */
43
+ private readonly closeHandler?;
44
+ /** Tracks the ongoing initialization promise to prevent multiple simultaneous initializations */
45
+ private initializationPromise;
46
+ /**
47
+ * Creates a new AsyncLazy instance
48
+ * @param supplier An async function that creates the lazy-loaded value
49
+ * @param closeHandler Optional async function to clean up the instance when closed
50
+ */
51
+ constructor(supplier: () => Promise<T>, closeHandler?: (instance: T) => Promise<void>);
52
+ /**
53
+ * Retrieves the lazy-loaded value, initializing it if necessary
54
+ * @returns A promise that resolves to the lazy-loaded value
55
+ * @throws If the supplier function fails to initialize the value
56
+ */
57
+ get(): Promise<T>;
58
+ /**
59
+ * Closes and cleans up the lazy-loaded instance if it exists
60
+ * If a closeHandler was provided, it will be called with the instance
61
+ * @returns A promise that resolves when the cleanup is complete
62
+ */
63
+ close(): Promise<void>;
64
+ }
65
+ //# sourceMappingURL=lazy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lazy.d.ts","sourceRoot":"","sources":["../src/lazy.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,qBAAa,IAAI,CAAC,CAAC;IACjB,qDAAqD;IACrD,OAAO,CAAC,QAAQ,CAAgB;IAEhC,6DAA6D;IAC7D,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAU;IAEnC,4DAA4D;IAC5D,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAwB;IAEtD;;;;OAIG;gBACS,QAAQ,EAAE,MAAM,CAAC,EAAE,YAAY,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,KAAK,IAAI;IAKnE;;;;OAIG;IACH,GAAG,IAAI,CAAC;IAYR;;;;OAIG;IACH,KAAK,IAAI,IAAI;CAYd;AAED;;;;GAIG;AACH,qBAAa,SAAS,CAAC,CAAC;IACtB,qDAAqD;IACrD,OAAO,CAAC,QAAQ,CAAgB;IAEhC,6DAA6D;IAC7D,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAmB;IAE5C,4DAA4D;IAC5D,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAiC;IAE/D,iGAAiG;IACjG,OAAO,CAAC,qBAAqB,CAA2B;IAExD;;;;OAIG;gBAED,QAAQ,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EAC1B,YAAY,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC;IAM/C;;;;OAIG;IACG,GAAG,IAAI,OAAO,CAAC,CAAC,CAAC;IAavB;;;;OAIG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAW7B"}