kubeview-mcp 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (454) hide show
  1. package/.prettierrc.json +11 -0
  2. package/CHANGELOG.md +55 -0
  3. package/LICENSE +21 -0
  4. package/README.md +251 -0
  5. package/RELEASE.md +154 -0
  6. package/TODO.md +0 -0
  7. package/bin/kubeview-mcp.js +274 -0
  8. package/bin/setup.js +368 -0
  9. package/dist/src/cli/cli.d.ts +3 -0
  10. package/dist/src/cli/cli.d.ts.map +1 -0
  11. package/dist/src/cli/cli.js +23 -0
  12. package/dist/src/cli/cli.js.map +1 -0
  13. package/dist/src/index.d.ts +8 -0
  14. package/dist/src/index.d.ts.map +1 -0
  15. package/dist/src/index.js +45 -0
  16. package/dist/src/index.js.map +1 -0
  17. package/dist/src/kubernetes/BaseResourceOperations.d.ts +155 -0
  18. package/dist/src/kubernetes/BaseResourceOperations.d.ts.map +1 -0
  19. package/dist/src/kubernetes/BaseResourceOperations.js +136 -0
  20. package/dist/src/kubernetes/BaseResourceOperations.js.map +1 -0
  21. package/dist/src/kubernetes/CircuitBreaker.d.ts +182 -0
  22. package/dist/src/kubernetes/CircuitBreaker.d.ts.map +1 -0
  23. package/dist/src/kubernetes/CircuitBreaker.js +369 -0
  24. package/dist/src/kubernetes/CircuitBreaker.js.map +1 -0
  25. package/dist/src/kubernetes/ConnectionManager.d.ts +60 -0
  26. package/dist/src/kubernetes/ConnectionManager.d.ts.map +1 -0
  27. package/dist/src/kubernetes/ConnectionManager.js +77 -0
  28. package/dist/src/kubernetes/ConnectionManager.js.map +1 -0
  29. package/dist/src/kubernetes/ConnectionPool.d.ts +183 -0
  30. package/dist/src/kubernetes/ConnectionPool.d.ts.map +1 -0
  31. package/dist/src/kubernetes/ConnectionPool.js +437 -0
  32. package/dist/src/kubernetes/ConnectionPool.js.map +1 -0
  33. package/dist/src/kubernetes/ErrorHandler.d.ts +172 -0
  34. package/dist/src/kubernetes/ErrorHandler.d.ts.map +1 -0
  35. package/dist/src/kubernetes/ErrorHandler.js +328 -0
  36. package/dist/src/kubernetes/ErrorHandler.js.map +1 -0
  37. package/dist/src/kubernetes/ErrorHandling.d.ts +148 -0
  38. package/dist/src/kubernetes/ErrorHandling.d.ts.map +1 -0
  39. package/dist/src/kubernetes/ErrorHandling.js +304 -0
  40. package/dist/src/kubernetes/ErrorHandling.js.map +1 -0
  41. package/dist/src/kubernetes/KubernetesClient.d.ts +162 -0
  42. package/dist/src/kubernetes/KubernetesClient.d.ts.map +1 -0
  43. package/dist/src/kubernetes/KubernetesClient.js +382 -0
  44. package/dist/src/kubernetes/KubernetesClient.js.map +1 -0
  45. package/dist/src/kubernetes/ResourceOperations.d.ts +69 -0
  46. package/dist/src/kubernetes/ResourceOperations.d.ts.map +1 -0
  47. package/dist/src/kubernetes/ResourceOperations.js +99 -0
  48. package/dist/src/kubernetes/ResourceOperations.js.map +1 -0
  49. package/dist/src/kubernetes/RetryStrategy.d.ts +137 -0
  50. package/dist/src/kubernetes/RetryStrategy.d.ts.map +1 -0
  51. package/dist/src/kubernetes/RetryStrategy.js +277 -0
  52. package/dist/src/kubernetes/RetryStrategy.js.map +1 -0
  53. package/dist/src/kubernetes/RetryableOperation.d.ts +118 -0
  54. package/dist/src/kubernetes/RetryableOperation.d.ts.map +1 -0
  55. package/dist/src/kubernetes/RetryableOperation.js +233 -0
  56. package/dist/src/kubernetes/RetryableOperation.js.map +1 -0
  57. package/dist/src/kubernetes/index.d.ts +18 -0
  58. package/dist/src/kubernetes/index.d.ts.map +1 -0
  59. package/dist/src/kubernetes/index.js +28 -0
  60. package/dist/src/kubernetes/index.js.map +1 -0
  61. package/dist/src/kubernetes/resources/ConfigMapOperations.d.ts +60 -0
  62. package/dist/src/kubernetes/resources/ConfigMapOperations.d.ts.map +1 -0
  63. package/dist/src/kubernetes/resources/ConfigMapOperations.js +306 -0
  64. package/dist/src/kubernetes/resources/ConfigMapOperations.js.map +1 -0
  65. package/dist/src/kubernetes/resources/CustomResourceOperations.d.ts +55 -0
  66. package/dist/src/kubernetes/resources/CustomResourceOperations.d.ts.map +1 -0
  67. package/dist/src/kubernetes/resources/CustomResourceOperations.js +363 -0
  68. package/dist/src/kubernetes/resources/CustomResourceOperations.js.map +1 -0
  69. package/dist/src/kubernetes/resources/DeploymentOperations.d.ts +66 -0
  70. package/dist/src/kubernetes/resources/DeploymentOperations.d.ts.map +1 -0
  71. package/dist/src/kubernetes/resources/DeploymentOperations.js +234 -0
  72. package/dist/src/kubernetes/resources/DeploymentOperations.js.map +1 -0
  73. package/dist/src/kubernetes/resources/IngressOperations.d.ts +60 -0
  74. package/dist/src/kubernetes/resources/IngressOperations.d.ts.map +1 -0
  75. package/dist/src/kubernetes/resources/IngressOperations.js +224 -0
  76. package/dist/src/kubernetes/resources/IngressOperations.js.map +1 -0
  77. package/dist/src/kubernetes/resources/MetricOperations.d.ts +218 -0
  78. package/dist/src/kubernetes/resources/MetricOperations.d.ts.map +1 -0
  79. package/dist/src/kubernetes/resources/MetricOperations.js +893 -0
  80. package/dist/src/kubernetes/resources/MetricOperations.js.map +1 -0
  81. package/dist/src/kubernetes/resources/NamespaceOperations.d.ts +38 -0
  82. package/dist/src/kubernetes/resources/NamespaceOperations.d.ts.map +1 -0
  83. package/dist/src/kubernetes/resources/NamespaceOperations.js +101 -0
  84. package/dist/src/kubernetes/resources/NamespaceOperations.js.map +1 -0
  85. package/dist/src/kubernetes/resources/PersistentVolumeClaimOperations.d.ts +109 -0
  86. package/dist/src/kubernetes/resources/PersistentVolumeClaimOperations.d.ts.map +1 -0
  87. package/dist/src/kubernetes/resources/PersistentVolumeClaimOperations.js +383 -0
  88. package/dist/src/kubernetes/resources/PersistentVolumeClaimOperations.js.map +1 -0
  89. package/dist/src/kubernetes/resources/PersistentVolumeOperations.d.ts +97 -0
  90. package/dist/src/kubernetes/resources/PersistentVolumeOperations.d.ts.map +1 -0
  91. package/dist/src/kubernetes/resources/PersistentVolumeOperations.js +321 -0
  92. package/dist/src/kubernetes/resources/PersistentVolumeOperations.js.map +1 -0
  93. package/dist/src/kubernetes/resources/PodOperations.d.ts +99 -0
  94. package/dist/src/kubernetes/resources/PodOperations.d.ts.map +1 -0
  95. package/dist/src/kubernetes/resources/PodOperations.js +333 -0
  96. package/dist/src/kubernetes/resources/PodOperations.js.map +1 -0
  97. package/dist/src/kubernetes/resources/SecretOperations.d.ts +71 -0
  98. package/dist/src/kubernetes/resources/SecretOperations.d.ts.map +1 -0
  99. package/dist/src/kubernetes/resources/SecretOperations.js +254 -0
  100. package/dist/src/kubernetes/resources/SecretOperations.js.map +1 -0
  101. package/dist/src/kubernetes/resources/ServiceOperations.d.ts +64 -0
  102. package/dist/src/kubernetes/resources/ServiceOperations.d.ts.map +1 -0
  103. package/dist/src/kubernetes/resources/ServiceOperations.js +232 -0
  104. package/dist/src/kubernetes/resources/ServiceOperations.js.map +1 -0
  105. package/dist/src/kubernetes/utils/ResourceUtils.d.ts +238 -0
  106. package/dist/src/kubernetes/utils/ResourceUtils.d.ts.map +1 -0
  107. package/dist/src/kubernetes/utils/ResourceUtils.js +439 -0
  108. package/dist/src/kubernetes/utils/ResourceUtils.js.map +1 -0
  109. package/dist/src/plugins/ArgoCDToolsPlugin.d.ts +45 -0
  110. package/dist/src/plugins/ArgoCDToolsPlugin.d.ts.map +1 -0
  111. package/dist/src/plugins/ArgoCDToolsPlugin.js +155 -0
  112. package/dist/src/plugins/ArgoCDToolsPlugin.js.map +1 -0
  113. package/dist/src/plugins/ArgoToolsPlugin.d.ts +45 -0
  114. package/dist/src/plugins/ArgoToolsPlugin.d.ts.map +1 -0
  115. package/dist/src/plugins/ArgoToolsPlugin.js +149 -0
  116. package/dist/src/plugins/ArgoToolsPlugin.js.map +1 -0
  117. package/dist/src/plugins/HelmToolsPlugin.d.ts +41 -0
  118. package/dist/src/plugins/HelmToolsPlugin.d.ts.map +1 -0
  119. package/dist/src/plugins/HelmToolsPlugin.js +146 -0
  120. package/dist/src/plugins/HelmToolsPlugin.js.map +1 -0
  121. package/dist/src/plugins/KubernetesToolsPlugin.d.ts +44 -0
  122. package/dist/src/plugins/KubernetesToolsPlugin.d.ts.map +1 -0
  123. package/dist/src/plugins/KubernetesToolsPlugin.js +159 -0
  124. package/dist/src/plugins/KubernetesToolsPlugin.js.map +1 -0
  125. package/dist/src/plugins/SamplePlugin.d.ts +12 -0
  126. package/dist/src/plugins/SamplePlugin.d.ts.map +1 -0
  127. package/dist/src/plugins/SamplePlugin.js +51 -0
  128. package/dist/src/plugins/SamplePlugin.js.map +1 -0
  129. package/dist/src/plugins/index.d.ts +5 -0
  130. package/dist/src/plugins/index.d.ts.map +1 -0
  131. package/dist/src/plugins/index.js +5 -0
  132. package/dist/src/plugins/index.js.map +1 -0
  133. package/dist/src/server/MCPServer.d.ts +93 -0
  134. package/dist/src/server/MCPServer.d.ts.map +1 -0
  135. package/dist/src/server/MCPServer.js +398 -0
  136. package/dist/src/server/MCPServer.js.map +1 -0
  137. package/dist/src/tools/argo/ArgoCronListTool.d.ts +10 -0
  138. package/dist/src/tools/argo/ArgoCronListTool.d.ts.map +1 -0
  139. package/dist/src/tools/argo/ArgoCronListTool.js +70 -0
  140. package/dist/src/tools/argo/ArgoCronListTool.js.map +1 -0
  141. package/dist/src/tools/argo/ArgoGetTool.d.ts +10 -0
  142. package/dist/src/tools/argo/ArgoGetTool.d.ts.map +1 -0
  143. package/dist/src/tools/argo/ArgoGetTool.js +80 -0
  144. package/dist/src/tools/argo/ArgoGetTool.js.map +1 -0
  145. package/dist/src/tools/argo/ArgoListTool.d.ts +10 -0
  146. package/dist/src/tools/argo/ArgoListTool.d.ts.map +1 -0
  147. package/dist/src/tools/argo/ArgoListTool.js +133 -0
  148. package/dist/src/tools/argo/ArgoListTool.js.map +1 -0
  149. package/dist/src/tools/argo/ArgoLogsTool.d.ts +10 -0
  150. package/dist/src/tools/argo/ArgoLogsTool.d.ts.map +1 -0
  151. package/dist/src/tools/argo/ArgoLogsTool.js +117 -0
  152. package/dist/src/tools/argo/ArgoLogsTool.js.map +1 -0
  153. package/dist/src/tools/argo/BaseTool.d.ts +60 -0
  154. package/dist/src/tools/argo/BaseTool.d.ts.map +1 -0
  155. package/dist/src/tools/argo/BaseTool.js +51 -0
  156. package/dist/src/tools/argo/BaseTool.js.map +1 -0
  157. package/dist/src/tools/argo/index.d.ts +7 -0
  158. package/dist/src/tools/argo/index.d.ts.map +1 -0
  159. package/dist/src/tools/argo/index.js +6 -0
  160. package/dist/src/tools/argo/index.js.map +1 -0
  161. package/dist/src/tools/argocd/ArgoCDAppGetTool.d.ts +10 -0
  162. package/dist/src/tools/argocd/ArgoCDAppGetTool.d.ts.map +1 -0
  163. package/dist/src/tools/argocd/ArgoCDAppGetTool.js +97 -0
  164. package/dist/src/tools/argocd/ArgoCDAppGetTool.js.map +1 -0
  165. package/dist/src/tools/argocd/ArgoCDAppHistoryTool.d.ts +10 -0
  166. package/dist/src/tools/argocd/ArgoCDAppHistoryTool.d.ts.map +1 -0
  167. package/dist/src/tools/argocd/ArgoCDAppHistoryTool.js +80 -0
  168. package/dist/src/tools/argocd/ArgoCDAppHistoryTool.js.map +1 -0
  169. package/dist/src/tools/argocd/ArgoCDAppListTool.d.ts +10 -0
  170. package/dist/src/tools/argocd/ArgoCDAppListTool.d.ts.map +1 -0
  171. package/dist/src/tools/argocd/ArgoCDAppListTool.js +128 -0
  172. package/dist/src/tools/argocd/ArgoCDAppListTool.js.map +1 -0
  173. package/dist/src/tools/argocd/ArgoCDAppLogsTool.d.ts +10 -0
  174. package/dist/src/tools/argocd/ArgoCDAppLogsTool.d.ts.map +1 -0
  175. package/dist/src/tools/argocd/ArgoCDAppLogsTool.js +143 -0
  176. package/dist/src/tools/argocd/ArgoCDAppLogsTool.js.map +1 -0
  177. package/dist/src/tools/argocd/ArgoCDAppResourcesTool.d.ts +10 -0
  178. package/dist/src/tools/argocd/ArgoCDAppResourcesTool.d.ts.map +1 -0
  179. package/dist/src/tools/argocd/ArgoCDAppResourcesTool.js +123 -0
  180. package/dist/src/tools/argocd/ArgoCDAppResourcesTool.js.map +1 -0
  181. package/dist/src/tools/argocd/BaseTool.d.ts +71 -0
  182. package/dist/src/tools/argocd/BaseTool.d.ts.map +1 -0
  183. package/dist/src/tools/argocd/BaseTool.js +62 -0
  184. package/dist/src/tools/argocd/BaseTool.js.map +1 -0
  185. package/dist/src/tools/argocd/index.d.ts +8 -0
  186. package/dist/src/tools/argocd/index.d.ts.map +1 -0
  187. package/dist/src/tools/argocd/index.js +7 -0
  188. package/dist/src/tools/argocd/index.js.map +1 -0
  189. package/dist/src/tools/helm/BaseTool.d.ts +51 -0
  190. package/dist/src/tools/helm/BaseTool.d.ts.map +1 -0
  191. package/dist/src/tools/helm/BaseTool.js +42 -0
  192. package/dist/src/tools/helm/BaseTool.js.map +1 -0
  193. package/dist/src/tools/helm/HelmGetHooksTool.d.ts +10 -0
  194. package/dist/src/tools/helm/HelmGetHooksTool.d.ts.map +1 -0
  195. package/dist/src/tools/helm/HelmGetHooksTool.js +38 -0
  196. package/dist/src/tools/helm/HelmGetHooksTool.js.map +1 -0
  197. package/dist/src/tools/helm/HelmGetManifestTool.d.ts +10 -0
  198. package/dist/src/tools/helm/HelmGetManifestTool.d.ts.map +1 -0
  199. package/dist/src/tools/helm/HelmGetManifestTool.js +38 -0
  200. package/dist/src/tools/helm/HelmGetManifestTool.js.map +1 -0
  201. package/dist/src/tools/helm/HelmGetNotesTool.d.ts +10 -0
  202. package/dist/src/tools/helm/HelmGetNotesTool.d.ts.map +1 -0
  203. package/dist/src/tools/helm/HelmGetNotesTool.js +38 -0
  204. package/dist/src/tools/helm/HelmGetNotesTool.js.map +1 -0
  205. package/dist/src/tools/helm/HelmGetResourcesTool.d.ts +13 -0
  206. package/dist/src/tools/helm/HelmGetResourcesTool.d.ts.map +1 -0
  207. package/dist/src/tools/helm/HelmGetResourcesTool.js +124 -0
  208. package/dist/src/tools/helm/HelmGetResourcesTool.js.map +1 -0
  209. package/dist/src/tools/helm/HelmGetValuesTool.d.ts +10 -0
  210. package/dist/src/tools/helm/HelmGetValuesTool.d.ts.map +1 -0
  211. package/dist/src/tools/helm/HelmGetValuesTool.js +54 -0
  212. package/dist/src/tools/helm/HelmGetValuesTool.js.map +1 -0
  213. package/dist/src/tools/helm/HelmHistoryTool.d.ts +10 -0
  214. package/dist/src/tools/helm/HelmHistoryTool.d.ts.map +1 -0
  215. package/dist/src/tools/helm/HelmHistoryTool.js +49 -0
  216. package/dist/src/tools/helm/HelmHistoryTool.js.map +1 -0
  217. package/dist/src/tools/helm/HelmListTool.d.ts +10 -0
  218. package/dist/src/tools/helm/HelmListTool.d.ts.map +1 -0
  219. package/dist/src/tools/helm/HelmListTool.js +107 -0
  220. package/dist/src/tools/helm/HelmListTool.js.map +1 -0
  221. package/dist/src/tools/helm/HelmListWithResourcesTool.d.ts +14 -0
  222. package/dist/src/tools/helm/HelmListWithResourcesTool.d.ts.map +1 -0
  223. package/dist/src/tools/helm/HelmListWithResourcesTool.js +175 -0
  224. package/dist/src/tools/helm/HelmListWithResourcesTool.js.map +1 -0
  225. package/dist/src/tools/helm/HelmStatusTool.d.ts +10 -0
  226. package/dist/src/tools/helm/HelmStatusTool.d.ts.map +1 -0
  227. package/dist/src/tools/helm/HelmStatusTool.js +54 -0
  228. package/dist/src/tools/helm/HelmStatusTool.js.map +1 -0
  229. package/dist/src/tools/helm/index.d.ts +12 -0
  230. package/dist/src/tools/helm/index.d.ts.map +1 -0
  231. package/dist/src/tools/helm/index.js +11 -0
  232. package/dist/src/tools/helm/index.js.map +1 -0
  233. package/dist/src/tools/kubernetes/BaseTool.d.ts +48 -0
  234. package/dist/src/tools/kubernetes/BaseTool.d.ts.map +1 -0
  235. package/dist/src/tools/kubernetes/BaseTool.js +55 -0
  236. package/dist/src/tools/kubernetes/BaseTool.js.map +1 -0
  237. package/dist/src/tools/kubernetes/GetConfigMapTool.d.ts +11 -0
  238. package/dist/src/tools/kubernetes/GetConfigMapTool.d.ts.map +1 -0
  239. package/dist/src/tools/kubernetes/GetConfigMapTool.js +28 -0
  240. package/dist/src/tools/kubernetes/GetConfigMapTool.js.map +1 -0
  241. package/dist/src/tools/kubernetes/GetContainerLogsTool.d.ts +15 -0
  242. package/dist/src/tools/kubernetes/GetContainerLogsTool.d.ts.map +1 -0
  243. package/dist/src/tools/kubernetes/GetContainerLogsTool.js +119 -0
  244. package/dist/src/tools/kubernetes/GetContainerLogsTool.js.map +1 -0
  245. package/dist/src/tools/kubernetes/GetDeploymentsTool.d.ts +11 -0
  246. package/dist/src/tools/kubernetes/GetDeploymentsTool.d.ts.map +1 -0
  247. package/dist/src/tools/kubernetes/GetDeploymentsTool.js +30 -0
  248. package/dist/src/tools/kubernetes/GetDeploymentsTool.js.map +1 -0
  249. package/dist/src/tools/kubernetes/GetEventsTool.d.ts +11 -0
  250. package/dist/src/tools/kubernetes/GetEventsTool.d.ts.map +1 -0
  251. package/dist/src/tools/kubernetes/GetEventsTool.js +123 -0
  252. package/dist/src/tools/kubernetes/GetEventsTool.js.map +1 -0
  253. package/dist/src/tools/kubernetes/GetIngressTool.d.ts +11 -0
  254. package/dist/src/tools/kubernetes/GetIngressTool.d.ts.map +1 -0
  255. package/dist/src/tools/kubernetes/GetIngressTool.js +35 -0
  256. package/dist/src/tools/kubernetes/GetIngressTool.js.map +1 -0
  257. package/dist/src/tools/kubernetes/GetMetricsTool.d.ts +11 -0
  258. package/dist/src/tools/kubernetes/GetMetricsTool.d.ts.map +1 -0
  259. package/dist/src/tools/kubernetes/GetMetricsTool.js +40 -0
  260. package/dist/src/tools/kubernetes/GetMetricsTool.js.map +1 -0
  261. package/dist/src/tools/kubernetes/GetNamespacesTool.d.ts +11 -0
  262. package/dist/src/tools/kubernetes/GetNamespacesTool.d.ts.map +1 -0
  263. package/dist/src/tools/kubernetes/GetNamespacesTool.js +33 -0
  264. package/dist/src/tools/kubernetes/GetNamespacesTool.js.map +1 -0
  265. package/dist/src/tools/kubernetes/GetPersistentVolumeClaimsTool.d.ts +11 -0
  266. package/dist/src/tools/kubernetes/GetPersistentVolumeClaimsTool.d.ts.map +1 -0
  267. package/dist/src/tools/kubernetes/GetPersistentVolumeClaimsTool.js +92 -0
  268. package/dist/src/tools/kubernetes/GetPersistentVolumeClaimsTool.js.map +1 -0
  269. package/dist/src/tools/kubernetes/GetPersistentVolumesTool.d.ts +11 -0
  270. package/dist/src/tools/kubernetes/GetPersistentVolumesTool.d.ts.map +1 -0
  271. package/dist/src/tools/kubernetes/GetPersistentVolumesTool.js +88 -0
  272. package/dist/src/tools/kubernetes/GetPersistentVolumesTool.js.map +1 -0
  273. package/dist/src/tools/kubernetes/GetPodMetricsTool.d.ts +11 -0
  274. package/dist/src/tools/kubernetes/GetPodMetricsTool.d.ts.map +1 -0
  275. package/dist/src/tools/kubernetes/GetPodMetricsTool.js +100 -0
  276. package/dist/src/tools/kubernetes/GetPodMetricsTool.js.map +1 -0
  277. package/dist/src/tools/kubernetes/GetPodsTool.d.ts +11 -0
  278. package/dist/src/tools/kubernetes/GetPodsTool.d.ts.map +1 -0
  279. package/dist/src/tools/kubernetes/GetPodsTool.js +35 -0
  280. package/dist/src/tools/kubernetes/GetPodsTool.js.map +1 -0
  281. package/dist/src/tools/kubernetes/GetResourceTool.d.ts +12 -0
  282. package/dist/src/tools/kubernetes/GetResourceTool.d.ts.map +1 -0
  283. package/dist/src/tools/kubernetes/GetResourceTool.js +79 -0
  284. package/dist/src/tools/kubernetes/GetResourceTool.js.map +1 -0
  285. package/dist/src/tools/kubernetes/GetSecretsTool.d.ts +11 -0
  286. package/dist/src/tools/kubernetes/GetSecretsTool.d.ts.map +1 -0
  287. package/dist/src/tools/kubernetes/GetSecretsTool.js +49 -0
  288. package/dist/src/tools/kubernetes/GetSecretsTool.js.map +1 -0
  289. package/dist/src/tools/kubernetes/GetServicesTool.d.ts +11 -0
  290. package/dist/src/tools/kubernetes/GetServicesTool.d.ts.map +1 -0
  291. package/dist/src/tools/kubernetes/GetServicesTool.js +35 -0
  292. package/dist/src/tools/kubernetes/GetServicesTool.js.map +1 -0
  293. package/dist/src/tools/kubernetes/index.d.ts +17 -0
  294. package/dist/src/tools/kubernetes/index.d.ts.map +1 -0
  295. package/dist/src/tools/kubernetes/index.js +16 -0
  296. package/dist/src/tools/kubernetes/index.js.map +1 -0
  297. package/dist/src/utils/CliUtils.d.ts +24 -0
  298. package/dist/src/utils/CliUtils.d.ts.map +1 -0
  299. package/dist/src/utils/CliUtils.js +159 -0
  300. package/dist/src/utils/CliUtils.js.map +1 -0
  301. package/dist/tests/__mocks__/@kubernetes/client-node.d.ts +34 -0
  302. package/dist/tests/__mocks__/@kubernetes/client-node.d.ts.map +1 -0
  303. package/dist/tests/__mocks__/@kubernetes/client-node.js +20 -0
  304. package/dist/tests/__mocks__/@kubernetes/client-node.js.map +1 -0
  305. package/dist/tests/argo/ArgoGetTool.test.d.ts +2 -0
  306. package/dist/tests/argo/ArgoGetTool.test.d.ts.map +1 -0
  307. package/dist/tests/argo/ArgoGetTool.test.js +141 -0
  308. package/dist/tests/argo/ArgoGetTool.test.js.map +1 -0
  309. package/dist/tests/helm/BaseTool.test.d.ts +2 -0
  310. package/dist/tests/helm/BaseTool.test.d.ts.map +1 -0
  311. package/dist/tests/helm/BaseTool.test.js +241 -0
  312. package/dist/tests/helm/BaseTool.test.js.map +1 -0
  313. package/dist/tests/index.test.d.ts +2 -0
  314. package/dist/tests/index.test.d.ts.map +1 -0
  315. package/dist/tests/index.test.js +7 -0
  316. package/dist/tests/index.test.js.map +1 -0
  317. package/dist/tests/kubernetes/ConfigMapOperations.test.d.ts +2 -0
  318. package/dist/tests/kubernetes/ConfigMapOperations.test.d.ts.map +1 -0
  319. package/dist/tests/kubernetes/ConfigMapOperations.test.js +460 -0
  320. package/dist/tests/kubernetes/ConfigMapOperations.test.js.map +1 -0
  321. package/dist/tests/kubernetes/ConnectionManager.test.d.ts +2 -0
  322. package/dist/tests/kubernetes/ConnectionManager.test.d.ts.map +1 -0
  323. package/dist/tests/kubernetes/ConnectionManager.test.js +97 -0
  324. package/dist/tests/kubernetes/ConnectionManager.test.js.map +1 -0
  325. package/dist/tests/kubernetes/ConnectionPool.test.d.ts +2 -0
  326. package/dist/tests/kubernetes/ConnectionPool.test.d.ts.map +1 -0
  327. package/dist/tests/kubernetes/ConnectionPool.test.js +328 -0
  328. package/dist/tests/kubernetes/ConnectionPool.test.js.map +1 -0
  329. package/dist/tests/kubernetes/DeploymentOperations.test.d.ts +2 -0
  330. package/dist/tests/kubernetes/DeploymentOperations.test.d.ts.map +1 -0
  331. package/dist/tests/kubernetes/DeploymentOperations.test.js +196 -0
  332. package/dist/tests/kubernetes/DeploymentOperations.test.js.map +1 -0
  333. package/dist/tests/kubernetes/ErrorHandling.test.d.ts +2 -0
  334. package/dist/tests/kubernetes/ErrorHandling.test.d.ts.map +1 -0
  335. package/dist/tests/kubernetes/ErrorHandling.test.js +329 -0
  336. package/dist/tests/kubernetes/ErrorHandling.test.js.map +1 -0
  337. package/dist/tests/kubernetes/GetPodMetricsTool.test.d.ts +2 -0
  338. package/dist/tests/kubernetes/GetPodMetricsTool.test.d.ts.map +1 -0
  339. package/dist/tests/kubernetes/GetPodMetricsTool.test.js +150 -0
  340. package/dist/tests/kubernetes/GetPodMetricsTool.test.js.map +1 -0
  341. package/dist/tests/kubernetes/KubernetesClient.test.d.ts +2 -0
  342. package/dist/tests/kubernetes/KubernetesClient.test.d.ts.map +1 -0
  343. package/dist/tests/kubernetes/KubernetesClient.test.js +371 -0
  344. package/dist/tests/kubernetes/KubernetesClient.test.js.map +1 -0
  345. package/dist/tests/kubernetes/MetricOperations.parsing.test.d.ts +2 -0
  346. package/dist/tests/kubernetes/MetricOperations.parsing.test.d.ts.map +1 -0
  347. package/dist/tests/kubernetes/MetricOperations.parsing.test.js +49 -0
  348. package/dist/tests/kubernetes/MetricOperations.parsing.test.js.map +1 -0
  349. package/dist/tests/kubernetes/NamespaceOperations.test.d.ts +2 -0
  350. package/dist/tests/kubernetes/NamespaceOperations.test.d.ts.map +1 -0
  351. package/dist/tests/kubernetes/NamespaceOperations.test.js +115 -0
  352. package/dist/tests/kubernetes/NamespaceOperations.test.js.map +1 -0
  353. package/dist/tests/kubernetes/PodOperations.test.d.ts +2 -0
  354. package/dist/tests/kubernetes/PodOperations.test.d.ts.map +1 -0
  355. package/dist/tests/kubernetes/PodOperations.test.js +209 -0
  356. package/dist/tests/kubernetes/PodOperations.test.js.map +1 -0
  357. package/dist/tests/kubernetes/RetryStrategy.test.d.ts +2 -0
  358. package/dist/tests/kubernetes/RetryStrategy.test.d.ts.map +1 -0
  359. package/dist/tests/kubernetes/RetryStrategy.test.js +419 -0
  360. package/dist/tests/kubernetes/RetryStrategy.test.js.map +1 -0
  361. package/dist/tests/kubernetes/ServiceOperations.test.d.ts +2 -0
  362. package/dist/tests/kubernetes/ServiceOperations.test.d.ts.map +1 -0
  363. package/dist/tests/kubernetes/ServiceOperations.test.js +159 -0
  364. package/dist/tests/kubernetes/ServiceOperations.test.js.map +1 -0
  365. package/dist/tests/plugins/KubernetesToolsPlugin.test.d.ts +2 -0
  366. package/dist/tests/plugins/KubernetesToolsPlugin.test.d.ts.map +1 -0
  367. package/dist/tests/plugins/KubernetesToolsPlugin.test.js +153 -0
  368. package/dist/tests/plugins/KubernetesToolsPlugin.test.js.map +1 -0
  369. package/dist/tests/server/MCPServer.integration.test.d.ts +2 -0
  370. package/dist/tests/server/MCPServer.integration.test.d.ts.map +1 -0
  371. package/dist/tests/server/MCPServer.integration.test.js +244 -0
  372. package/dist/tests/server/MCPServer.integration.test.js.map +1 -0
  373. package/dist/tests/server/MCPServer.test.d.ts +2 -0
  374. package/dist/tests/server/MCPServer.test.d.ts.map +1 -0
  375. package/dist/tests/server/MCPServer.test.js +257 -0
  376. package/dist/tests/server/MCPServer.test.js.map +1 -0
  377. package/package.json +85 -0
  378. package/src/cli/cli.ts +25 -0
  379. package/src/cli/run-command.js +391 -0
  380. package/src/index.ts +46 -0
  381. package/src/kubernetes/BaseResourceOperations.ts +286 -0
  382. package/src/kubernetes/CircuitBreaker.ts +485 -0
  383. package/src/kubernetes/ConnectionManager.ts +114 -0
  384. package/src/kubernetes/ConnectionPool.ts +551 -0
  385. package/src/kubernetes/ErrorHandler.ts +436 -0
  386. package/src/kubernetes/ErrorHandling.ts +401 -0
  387. package/src/kubernetes/KubernetesClient.ts +500 -0
  388. package/src/kubernetes/README.md +349 -0
  389. package/src/kubernetes/ResourceOperations.ts +116 -0
  390. package/src/kubernetes/RetryStrategy.ts +365 -0
  391. package/src/kubernetes/RetryableOperation.ts +313 -0
  392. package/src/kubernetes/docs/ResourceOperations.md +606 -0
  393. package/src/kubernetes/index.ts +116 -0
  394. package/src/kubernetes/resources/ConfigMapOperations.ts +367 -0
  395. package/src/kubernetes/resources/CustomResourceOperations.ts +392 -0
  396. package/src/kubernetes/resources/DeploymentOperations.ts +294 -0
  397. package/src/kubernetes/resources/IngressOperations.ts +277 -0
  398. package/src/kubernetes/resources/MetricOperations.ts +1159 -0
  399. package/src/kubernetes/resources/NamespaceOperations.ts +129 -0
  400. package/src/kubernetes/resources/PersistentVolumeClaimOperations.ts +516 -0
  401. package/src/kubernetes/resources/PersistentVolumeOperations.ts +438 -0
  402. package/src/kubernetes/resources/PodOperations.ts +417 -0
  403. package/src/kubernetes/resources/SecretOperations.ts +304 -0
  404. package/src/kubernetes/resources/ServiceOperations.ts +283 -0
  405. package/src/kubernetes/utils/ResourceUtils.ts +553 -0
  406. package/src/plugins/ArgoCDToolsPlugin.ts +189 -0
  407. package/src/plugins/ArgoToolsPlugin.ts +180 -0
  408. package/src/plugins/HelmToolsPlugin.ts +180 -0
  409. package/src/plugins/KubernetesToolsPlugin.ts +198 -0
  410. package/src/plugins/SamplePlugin.ts +60 -0
  411. package/src/plugins/index.ts +4 -0
  412. package/src/server/MCPServer.ts +500 -0
  413. package/src/tools/argo/ArgoCronListTool.ts +78 -0
  414. package/src/tools/argo/ArgoGetTool.ts +91 -0
  415. package/src/tools/argo/ArgoListTool.ts +143 -0
  416. package/src/tools/argo/ArgoLogsTool.ts +131 -0
  417. package/src/tools/argo/BaseTool.ts +69 -0
  418. package/src/tools/argo/index.ts +6 -0
  419. package/src/tools/argocd/ArgoCDAppGetTool.ts +109 -0
  420. package/src/tools/argocd/ArgoCDAppHistoryTool.ts +91 -0
  421. package/src/tools/argocd/ArgoCDAppListTool.ts +144 -0
  422. package/src/tools/argocd/ArgoCDAppLogsTool.ts +162 -0
  423. package/src/tools/argocd/ArgoCDAppResourcesTool.ts +139 -0
  424. package/src/tools/argocd/BaseTool.ts +83 -0
  425. package/src/tools/argocd/index.ts +7 -0
  426. package/src/tools/helm/BaseTool.ts +60 -0
  427. package/src/tools/helm/HelmGetHooksTool.ts +44 -0
  428. package/src/tools/helm/HelmGetManifestTool.ts +44 -0
  429. package/src/tools/helm/HelmGetNotesTool.ts +44 -0
  430. package/src/tools/helm/HelmGetResourcesTool.ts +140 -0
  431. package/src/tools/helm/HelmGetValuesTool.ts +62 -0
  432. package/src/tools/helm/HelmHistoryTool.ts +56 -0
  433. package/src/tools/helm/HelmListTool.ts +107 -0
  434. package/src/tools/helm/HelmListWithResourcesTool.ts +194 -0
  435. package/src/tools/helm/HelmStatusTool.ts +62 -0
  436. package/src/tools/helm/index.ts +11 -0
  437. package/src/tools/kubernetes/BaseTool.ts +76 -0
  438. package/src/tools/kubernetes/GetConfigMapTool.ts +33 -0
  439. package/src/tools/kubernetes/GetContainerLogsTool.ts +140 -0
  440. package/src/tools/kubernetes/GetDeploymentsTool.ts +33 -0
  441. package/src/tools/kubernetes/GetEventsTool.ts +133 -0
  442. package/src/tools/kubernetes/GetIngressTool.ts +39 -0
  443. package/src/tools/kubernetes/GetMetricsTool.ts +53 -0
  444. package/src/tools/kubernetes/GetNamespacesTool.ts +36 -0
  445. package/src/tools/kubernetes/GetPersistentVolumeClaimsTool.ts +113 -0
  446. package/src/tools/kubernetes/GetPersistentVolumesTool.ts +107 -0
  447. package/src/tools/kubernetes/GetPodMetricsTool.ts +113 -0
  448. package/src/tools/kubernetes/GetPodsTool.ts +39 -0
  449. package/src/tools/kubernetes/GetResourceTool.ts +90 -0
  450. package/src/tools/kubernetes/GetSecretsTool.ts +55 -0
  451. package/src/tools/kubernetes/GetServicesTool.ts +39 -0
  452. package/src/tools/kubernetes/index.ts +16 -0
  453. package/src/utils/CliUtils.ts +207 -0
  454. package/tsconfig.json +36 -0
@@ -0,0 +1,143 @@
1
+ import { Tool } from '@modelcontextprotocol/sdk/types.js';
2
+ import { ArgoBaseTool, ArgoCommonSchemas, executeArgoCommand } from './BaseTool.js';
3
+
4
+ /**
5
+ * List Argo workflows
6
+ */
7
+ export class ArgoListTool implements ArgoBaseTool {
8
+ tool: Tool = {
9
+ name: 'argo_list',
10
+ description: 'List Argo workflows in the cluster (similar to `argo list`)',
11
+ inputSchema: {
12
+ type: 'object',
13
+ properties: {
14
+ namespace: ArgoCommonSchemas.namespace,
15
+ allNamespaces: ArgoCommonSchemas.allNamespaces,
16
+ outputFormat: {
17
+ type: 'string',
18
+ description: 'Output format for workflows. Supports: wide, name, json, yaml',
19
+ enum: ['wide', 'name', 'json', 'yaml'],
20
+ optional: true,
21
+ default: 'json',
22
+ },
23
+ selector: ArgoCommonSchemas.selector,
24
+ maxWorkflows: {
25
+ type: 'number',
26
+ description: 'Maximum number of workflows to return',
27
+ optional: true,
28
+ },
29
+ running: {
30
+ type: 'boolean',
31
+ description: 'Show running workflows only',
32
+ optional: true,
33
+ },
34
+ succeeded: {
35
+ type: 'boolean',
36
+ description: 'Show succeeded workflows only',
37
+ optional: true,
38
+ },
39
+ failed: {
40
+ type: 'boolean',
41
+ description: 'Show failed workflows only',
42
+ optional: true,
43
+ },
44
+ pending: {
45
+ type: 'boolean',
46
+ description: 'Show pending workflows only',
47
+ optional: true,
48
+ },
49
+ status: {
50
+ type: 'string',
51
+ description: 'Filter by workflow status (Running, Succeeded, Failed, Error, Pending)',
52
+ enum: ['Running', 'Succeeded', 'Failed', 'Error', 'Pending'],
53
+ optional: true,
54
+ },
55
+ completed: {
56
+ type: 'boolean',
57
+ description: 'Show completed workflows only',
58
+ optional: true,
59
+ },
60
+ since: {
61
+ type: 'string',
62
+ description: 'Show workflows newer than this duration (e.g., 1h, 30m)',
63
+ optional: true,
64
+ },
65
+ chunked: {
66
+ type: 'boolean',
67
+ description: 'Return large lists in chunks',
68
+ optional: true,
69
+ },
70
+ },
71
+ required: [],
72
+ },
73
+ };
74
+
75
+ async execute(params: any): Promise<any> {
76
+ const args = ['list'];
77
+
78
+ // Add namespace specification
79
+ if (params.allNamespaces) {
80
+ args.push('--all-namespaces');
81
+ } else if (params.namespace) {
82
+ args.push('-n', params.namespace);
83
+ }
84
+
85
+ // Add output format
86
+ if (params.outputFormat) {
87
+ args.push('-o', params.outputFormat);
88
+ } else {
89
+ args.push('-o', 'json');
90
+ }
91
+
92
+ // Add selector
93
+ if (params.selector) {
94
+ args.push('-l', params.selector);
95
+ }
96
+
97
+ // Add status filters
98
+ if (params.running) {
99
+ args.push('--running');
100
+ }
101
+ if (params.succeeded) {
102
+ args.push('--succeeded');
103
+ }
104
+ if (params.failed) {
105
+ args.push('--failed');
106
+ }
107
+ if (params.pending) {
108
+ args.push('--pending');
109
+ }
110
+ if (params.completed) {
111
+ args.push('--completed');
112
+ }
113
+
114
+ // Add status filter
115
+ if (params.status) {
116
+ args.push('--status', params.status);
117
+ }
118
+
119
+ // Add since filter
120
+ if (params.since) {
121
+ args.push('--since', params.since);
122
+ }
123
+
124
+ // Add chunked option
125
+ if (params.chunked) {
126
+ args.push('--chunk-size', '500');
127
+ }
128
+
129
+ // Add max workflows limit
130
+ if (params.maxWorkflows) {
131
+ args.push('--limit', params.maxWorkflows.toString());
132
+ }
133
+
134
+ try {
135
+ const result = await executeArgoCommand(args);
136
+ return result;
137
+ } catch (error) {
138
+ throw new Error(
139
+ `Failed to list Argo workflows: ${error instanceof Error ? error.message : String(error)}`,
140
+ );
141
+ }
142
+ }
143
+ }
@@ -0,0 +1,131 @@
1
+ import { Tool } from '@modelcontextprotocol/sdk/types.js';
2
+ import { ArgoBaseTool, ArgoCommonSchemas, executeArgoCommand } from './BaseTool.js';
3
+
4
+ /**
5
+ * Get logs from Argo workflows
6
+ */
7
+ export class ArgoLogsTool implements ArgoBaseTool {
8
+ tool: Tool = {
9
+ name: 'argo_logs',
10
+ description: 'Get logs from Argo workflow pods (similar to `argo logs`)',
11
+ inputSchema: {
12
+ type: 'object',
13
+ properties: {
14
+ workflowName: {
15
+ ...ArgoCommonSchemas.workflowName,
16
+ description: 'Name of the workflow to get logs from',
17
+ },
18
+ namespace: ArgoCommonSchemas.namespace,
19
+ container: {
20
+ type: 'string',
21
+ description: 'Container name to get logs from',
22
+ optional: true,
23
+ },
24
+ follow: {
25
+ type: 'boolean',
26
+ description: 'Follow the logs stream (note: this may timeout in MCP context)',
27
+ optional: true,
28
+ },
29
+ previous: {
30
+ type: 'boolean',
31
+ description: 'Get logs from previous container instance',
32
+ optional: true,
33
+ },
34
+ since: {
35
+ type: 'string',
36
+ description: 'Show logs newer than this duration (e.g., 1h, 30m)',
37
+ optional: true,
38
+ },
39
+ sinceTime: {
40
+ type: 'string',
41
+ description: 'Show logs after this timestamp (RFC3339)',
42
+ optional: true,
43
+ },
44
+ tail: {
45
+ type: 'number',
46
+ description: 'Number of lines to show from the end of the logs',
47
+ optional: true,
48
+ },
49
+ timestamps: {
50
+ type: 'boolean',
51
+ description: 'Include timestamps in the log output',
52
+ optional: true,
53
+ },
54
+ grep: {
55
+ type: 'string',
56
+ description: 'Regular expression to filter log lines',
57
+ optional: true,
58
+ },
59
+ noColor: {
60
+ type: 'boolean',
61
+ description: 'Disable colored output',
62
+ optional: true,
63
+ },
64
+ },
65
+ required: ['workflowName'],
66
+ },
67
+ };
68
+
69
+ async execute(params: any): Promise<any> {
70
+ const args = ['logs', params.workflowName];
71
+
72
+ // Add namespace
73
+ if (params.namespace) {
74
+ args.push('-n', params.namespace);
75
+ }
76
+
77
+ // Add container specification
78
+ if (params.container) {
79
+ args.push('-c', params.container);
80
+ }
81
+
82
+ // Add follow option (with warning)
83
+ if (params.follow) {
84
+ args.push('-f');
85
+ }
86
+
87
+ // Add previous logs option
88
+ if (params.previous) {
89
+ args.push('--previous');
90
+ }
91
+
92
+ // Add since duration
93
+ if (params.since) {
94
+ args.push('--since', params.since);
95
+ }
96
+
97
+ // Add since time
98
+ if (params.sinceTime) {
99
+ args.push('--since-time', params.sinceTime);
100
+ }
101
+
102
+ // Add tail lines
103
+ if (params.tail) {
104
+ args.push('--tail', params.tail.toString());
105
+ }
106
+
107
+ // Add timestamps
108
+ if (params.timestamps) {
109
+ args.push('--timestamps');
110
+ }
111
+
112
+ // Add grep filter
113
+ if (params.grep) {
114
+ args.push('--grep', params.grep);
115
+ }
116
+
117
+ // Add no color option
118
+ if (params.noColor) {
119
+ args.push('--no-color');
120
+ }
121
+
122
+ try {
123
+ const result = await executeArgoCommand(args);
124
+ return result;
125
+ } catch (error) {
126
+ throw new Error(
127
+ `Failed to get Argo workflow logs: ${error instanceof Error ? error.message : String(error)}`,
128
+ );
129
+ }
130
+ }
131
+ }
@@ -0,0 +1,69 @@
1
+ import { Tool } from '@modelcontextprotocol/sdk/types.js';
2
+ import { executeCliCommand, validateCli } from '../../utils/CliUtils.js';
3
+
4
+ /**
5
+ * Base interface for all Argo MCP tool commands
6
+ */
7
+ export interface ArgoBaseTool {
8
+ /**
9
+ * The tool definition for MCP registration
10
+ */
11
+ tool: Tool;
12
+
13
+ /**
14
+ * Execute the command with given parameters
15
+ */
16
+ execute(params: any): Promise<any>;
17
+ }
18
+
19
+ /**
20
+ * Common parameter schemas used across multiple Argo commands
21
+ */
22
+ export const ArgoCommonSchemas = {
23
+ namespace: {
24
+ type: 'string',
25
+ description: 'Kubernetes namespace (defaults to argo namespace if not specified)',
26
+ optional: true,
27
+ },
28
+ workflowName: {
29
+ type: 'string',
30
+ description: 'Name of the Argo workflow',
31
+ },
32
+ cronWorkflowName: {
33
+ type: 'string',
34
+ description: 'Name of the Argo cron workflow',
35
+ },
36
+ outputFormat: {
37
+ type: 'string',
38
+ description: 'Output format (json, yaml, name, wide)',
39
+ enum: ['json', 'yaml', 'name', 'wide'],
40
+ optional: true,
41
+ },
42
+ selector: {
43
+ type: 'string',
44
+ description: 'Selector (label query) to filter on',
45
+ optional: true,
46
+ },
47
+ allNamespaces: {
48
+ type: 'boolean',
49
+ description: 'List workflows across all namespaces',
50
+ optional: true,
51
+ },
52
+ };
53
+
54
+ /**
55
+ * Executes an argo command using the argo CLI
56
+ * @param args Array of command arguments
57
+ * @param argoExecutable Optional argo executable path (for fallback scenarios)
58
+ * @returns Promise with the command output
59
+ */
60
+ export async function executeArgoCommand(args: string[], argoExecutable = 'argo'): Promise<any> {
61
+ return executeCliCommand('argo', args, argoExecutable, 'ARGO_TIMEOUT');
62
+ }
63
+
64
+ /**
65
+ * Validates that argo CLI is available with fallback detection
66
+ */
67
+ export async function validateArgoCLI(): Promise<void> {
68
+ return validateCli('argo', ['version'], 'ARGO_TIMEOUT');
69
+ }
@@ -0,0 +1,6 @@
1
+ export type { ArgoBaseTool } from './BaseTool.js';
2
+ export { ArgoCommonSchemas, executeArgoCommand, validateArgoCLI } from './BaseTool.js';
3
+ export { ArgoListTool } from './ArgoListTool.js';
4
+ export { ArgoLogsTool } from './ArgoLogsTool.js';
5
+ export { ArgoCronListTool } from './ArgoCronListTool.js';
6
+ export { ArgoGetTool } from './ArgoGetTool.js';
@@ -0,0 +1,109 @@
1
+ import { Tool } from '@modelcontextprotocol/sdk/types.js';
2
+ import { ArgoCDBaseTool, ArgoCDCommonSchemas, executeArgoCDCommand } from './BaseTool.js';
3
+
4
+ /**
5
+ * Get details of an ArgoCD application
6
+ */
7
+ export class ArgoCDAppGetTool implements ArgoCDBaseTool {
8
+ tool: Tool = {
9
+ name: 'argocd_app_get',
10
+ description: 'Get details of an ArgoCD application (similar to `argocd app get <app-name>`)',
11
+ inputSchema: {
12
+ type: 'object',
13
+ properties: {
14
+ appName: {
15
+ ...ArgoCDCommonSchemas.appName,
16
+ optional: false,
17
+ },
18
+ outputFormat: {
19
+ type: 'string',
20
+ description: 'Output format for application details. Supports: json, yaml, wide',
21
+ enum: ['json', 'yaml', 'wide'],
22
+ optional: true,
23
+ default: 'json',
24
+ },
25
+ showOperation: {
26
+ type: 'boolean',
27
+ description: 'Show application operation',
28
+ optional: true,
29
+ },
30
+ showParams: {
31
+ type: 'boolean',
32
+ description: 'Show application parameters and overrides',
33
+ optional: true,
34
+ },
35
+ server: ArgoCDCommonSchemas.server,
36
+ grpcWeb: ArgoCDCommonSchemas.grpcWeb,
37
+ plaintext: ArgoCDCommonSchemas.plaintext,
38
+ insecure: ArgoCDCommonSchemas.insecure,
39
+ refresh: {
40
+ type: 'boolean',
41
+ description: 'Refresh application data when retrieving',
42
+ optional: true,
43
+ },
44
+ hardRefresh: {
45
+ type: 'boolean',
46
+ description: 'Refresh application data and ignore cache',
47
+ optional: true,
48
+ },
49
+ },
50
+ required: ['appName'],
51
+ },
52
+ };
53
+
54
+ async execute(params: any): Promise<any> {
55
+ const args = ['app', 'get', params.appName];
56
+
57
+ // Add output format
58
+ if (params.outputFormat) {
59
+ args.push('-o', params.outputFormat);
60
+ } else {
61
+ args.push('-o', 'json');
62
+ }
63
+
64
+ // Add show operation option
65
+ if (params.showOperation) {
66
+ args.push('--show-operation');
67
+ }
68
+
69
+ // Add show params option
70
+ if (params.showParams) {
71
+ args.push('--show-params');
72
+ }
73
+
74
+ // Add server configuration
75
+ if (params.server) {
76
+ args.push('--server', params.server);
77
+ }
78
+
79
+ if (params.grpcWeb) {
80
+ args.push('--grpc-web');
81
+ }
82
+
83
+ if (params.plaintext) {
84
+ args.push('--plaintext');
85
+ }
86
+
87
+ if (params.insecure) {
88
+ args.push('--insecure');
89
+ }
90
+
91
+ // Add refresh options
92
+ if (params.refresh) {
93
+ args.push('--refresh');
94
+ }
95
+
96
+ if (params.hardRefresh) {
97
+ args.push('--hard-refresh');
98
+ }
99
+
100
+ try {
101
+ const result = await executeArgoCDCommand(args);
102
+ return result;
103
+ } catch (error) {
104
+ throw new Error(
105
+ `Failed to get ArgoCD application "${params.appName}": ${error instanceof Error ? error.message : String(error)}`,
106
+ );
107
+ }
108
+ }
109
+ }
@@ -0,0 +1,91 @@
1
+ import { Tool } from '@modelcontextprotocol/sdk/types.js';
2
+ import { ArgoCDBaseTool, ArgoCDCommonSchemas, executeArgoCDCommand } from './BaseTool.js';
3
+
4
+ /**
5
+ * Get history/revisions of an ArgoCD application
6
+ */
7
+ export class ArgoCDAppHistoryTool implements ArgoCDBaseTool {
8
+ tool: Tool = {
9
+ name: 'argocd_app_history',
10
+ description:
11
+ 'Get deployment history/revisions of an ArgoCD application (similar to `argocd app history <app-name>`)',
12
+ inputSchema: {
13
+ type: 'object',
14
+ properties: {
15
+ appName: {
16
+ ...ArgoCDCommonSchemas.appName,
17
+ optional: false,
18
+ },
19
+ outputFormat: {
20
+ type: 'string',
21
+ description: 'Output format for application history. Supports: json, yaml, wide, id',
22
+ enum: ['json', 'yaml', 'wide', 'id'],
23
+ optional: true,
24
+ default: 'json',
25
+ },
26
+ revision: {
27
+ type: 'string',
28
+ description: 'Show details for a specific revision',
29
+ optional: true,
30
+ },
31
+ maxHistory: {
32
+ type: 'number',
33
+ description: 'Maximum number of history entries to return',
34
+ optional: true,
35
+ },
36
+ server: ArgoCDCommonSchemas.server,
37
+ grpcWeb: ArgoCDCommonSchemas.grpcWeb,
38
+ plaintext: ArgoCDCommonSchemas.plaintext,
39
+ insecure: ArgoCDCommonSchemas.insecure,
40
+ },
41
+ required: ['appName'],
42
+ },
43
+ };
44
+
45
+ async execute(params: any): Promise<any> {
46
+ const args = ['app', 'history', params.appName];
47
+
48
+ // Add output format
49
+ if (params.outputFormat) {
50
+ args.push('-o', params.outputFormat);
51
+ } else {
52
+ args.push('-o', 'json');
53
+ }
54
+
55
+ // Add specific revision
56
+ if (params.revision) {
57
+ args.push('--revision', params.revision);
58
+ }
59
+
60
+ // Add max history limit
61
+ if (params.maxHistory) {
62
+ args.push('--limit', params.maxHistory.toString());
63
+ }
64
+
65
+ // Add server configuration
66
+ if (params.server) {
67
+ args.push('--server', params.server);
68
+ }
69
+
70
+ if (params.grpcWeb) {
71
+ args.push('--grpc-web');
72
+ }
73
+
74
+ if (params.plaintext) {
75
+ args.push('--plaintext');
76
+ }
77
+
78
+ if (params.insecure) {
79
+ args.push('--insecure');
80
+ }
81
+
82
+ try {
83
+ const result = await executeArgoCDCommand(args);
84
+ return result;
85
+ } catch (error) {
86
+ throw new Error(
87
+ `Failed to get ArgoCD application history for "${params.appName}": ${error instanceof Error ? error.message : String(error)}`,
88
+ );
89
+ }
90
+ }
91
+ }
@@ -0,0 +1,144 @@
1
+ import { Tool } from '@modelcontextprotocol/sdk/types.js';
2
+ import { ArgoCDBaseTool, ArgoCDCommonSchemas, executeArgoCDCommand } from './BaseTool.js';
3
+
4
+ /**
5
+ * List ArgoCD applications
6
+ */
7
+ export class ArgoCDAppListTool implements ArgoCDBaseTool {
8
+ tool: Tool = {
9
+ name: 'argocd_app_list',
10
+ description: 'List ArgoCD applications in the cluster (similar to `argocd app list`)',
11
+ inputSchema: {
12
+ type: 'object',
13
+ properties: {
14
+ outputFormat: {
15
+ type: 'string',
16
+ description: 'Output format for applications. Supports: wide, name, json, yaml',
17
+ enum: ['wide', 'name', 'json', 'yaml'],
18
+ optional: true,
19
+ default: 'json',
20
+ },
21
+ selector: ArgoCDCommonSchemas.selector,
22
+ project: {
23
+ type: 'string',
24
+ description: 'Filter by project name',
25
+ optional: true,
26
+ },
27
+ cluster: {
28
+ type: 'string',
29
+ description: 'Filter by cluster name',
30
+ optional: true,
31
+ },
32
+ namespace: {
33
+ type: 'string',
34
+ description: 'Filter by target namespace',
35
+ optional: true,
36
+ },
37
+ repo: {
38
+ type: 'string',
39
+ description: 'Filter by repository URL',
40
+ optional: true,
41
+ },
42
+ health: {
43
+ type: 'string',
44
+ description: 'Filter by health status',
45
+ enum: ['Healthy', 'Progressing', 'Degraded', 'Suspended', 'Missing', 'Unknown'],
46
+ optional: true,
47
+ },
48
+ sync: {
49
+ type: 'string',
50
+ description: 'Filter by sync status',
51
+ enum: ['Synced', 'OutOfSync', 'Unknown'],
52
+ optional: true,
53
+ },
54
+ server: ArgoCDCommonSchemas.server,
55
+ grpcWeb: ArgoCDCommonSchemas.grpcWeb,
56
+ plaintext: ArgoCDCommonSchemas.plaintext,
57
+ insecure: ArgoCDCommonSchemas.insecure,
58
+ refresh: {
59
+ type: 'boolean',
60
+ description: 'Refresh application data when retrieving',
61
+ optional: true,
62
+ },
63
+ },
64
+ required: [],
65
+ },
66
+ };
67
+
68
+ async execute(params: any): Promise<any> {
69
+ const args = ['app', 'list'];
70
+
71
+ // Add output format
72
+ if (params.outputFormat) {
73
+ args.push('-o', params.outputFormat);
74
+ } else {
75
+ args.push('-o', 'json');
76
+ }
77
+
78
+ // Add selector
79
+ if (params.selector) {
80
+ args.push('-l', params.selector);
81
+ }
82
+
83
+ // Add project filter
84
+ if (params.project) {
85
+ args.push('--project', params.project);
86
+ }
87
+
88
+ // Add cluster filter
89
+ if (params.cluster) {
90
+ args.push('--cluster', params.cluster);
91
+ }
92
+
93
+ // Add namespace filter
94
+ if (params.namespace) {
95
+ args.push('--namespace', params.namespace);
96
+ }
97
+
98
+ // Add repository filter
99
+ if (params.repo) {
100
+ args.push('--repo', params.repo);
101
+ }
102
+
103
+ // Add health status filter
104
+ if (params.health) {
105
+ args.push('--health', params.health);
106
+ }
107
+
108
+ // Add sync status filter
109
+ if (params.sync) {
110
+ args.push('--sync', params.sync);
111
+ }
112
+
113
+ // Add server configuration
114
+ if (params.server) {
115
+ args.push('--server', params.server);
116
+ }
117
+
118
+ if (params.grpcWeb) {
119
+ args.push('--grpc-web');
120
+ }
121
+
122
+ if (params.plaintext) {
123
+ args.push('--plaintext');
124
+ }
125
+
126
+ if (params.insecure) {
127
+ args.push('--insecure');
128
+ }
129
+
130
+ // Add refresh option
131
+ if (params.refresh) {
132
+ args.push('--refresh');
133
+ }
134
+
135
+ try {
136
+ const result = await executeArgoCDCommand(args);
137
+ return result;
138
+ } catch (error) {
139
+ throw new Error(
140
+ `Failed to list ArgoCD applications: ${error instanceof Error ? error.message : String(error)}`,
141
+ );
142
+ }
143
+ }
144
+ }