kubeview-mcp 1.1.0 → 1.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +28 -1
- package/README.md +97 -43
- package/bin/kubeview-mcp-code-mode.js +60 -0
- package/bin/setup.js +8 -8
- package/dist/agent/bridge/MCPBridge.d.ts +41 -0
- package/dist/agent/bridge/MCPBridge.d.ts.map +1 -0
- package/dist/agent/bridge/MCPBridge.js +127 -0
- package/dist/agent/bridge/MCPBridge.js.map +1 -0
- package/dist/agent/codegen/CodegenManager.d.ts +26 -0
- package/dist/agent/codegen/CodegenManager.d.ts.map +1 -0
- package/dist/agent/codegen/CodegenManager.js +222 -0
- package/dist/agent/codegen/CodegenManager.js.map +1 -0
- package/dist/agent/codegen/SchemaToTypeScriptMapper.d.ts +13 -0
- package/dist/agent/codegen/SchemaToTypeScriptMapper.d.ts.map +1 -0
- package/dist/agent/codegen/SchemaToTypeScriptMapper.js +54 -0
- package/dist/agent/codegen/SchemaToTypeScriptMapper.js.map +1 -0
- package/dist/agent/codegen/ToolDescriptionBuilder.d.ts +67 -0
- package/dist/agent/codegen/ToolDescriptionBuilder.d.ts.map +1 -0
- package/dist/agent/codegen/ToolDescriptionBuilder.js +201 -0
- package/dist/agent/codegen/ToolDescriptionBuilder.js.map +1 -0
- package/dist/agent/codegen/ToolSchemaIntrospector.d.ts +10 -0
- package/dist/agent/codegen/ToolSchemaIntrospector.d.ts.map +1 -0
- package/dist/agent/codegen/ToolSchemaIntrospector.js +72 -0
- package/dist/agent/codegen/ToolSchemaIntrospector.js.map +1 -0
- package/dist/agent/codegen/types.d.ts +31 -0
- package/dist/agent/codegen/types.d.ts.map +1 -0
- package/dist/agent/codegen/types.js +2 -0
- package/dist/agent/codegen/types.js.map +1 -0
- package/dist/agent/config/CodeModeConfig.d.ts +70 -0
- package/dist/agent/config/CodeModeConfig.d.ts.map +1 -0
- package/dist/agent/config/CodeModeConfig.js +34 -0
- package/dist/agent/config/CodeModeConfig.js.map +1 -0
- package/dist/agent/runtime/code-executor/CodeExecutor.d.ts +25 -0
- package/dist/agent/runtime/code-executor/CodeExecutor.d.ts.map +1 -0
- package/dist/agent/runtime/code-executor/CodeExecutor.js +95 -0
- package/dist/agent/runtime/code-executor/CodeExecutor.js.map +1 -0
- package/dist/agent/runtime/code-executor/NodeVmCodeExecutor.d.ts +21 -0
- package/dist/agent/runtime/code-executor/NodeVmCodeExecutor.d.ts.map +1 -0
- package/dist/agent/runtime/code-executor/NodeVmCodeExecutor.js +89 -0
- package/dist/agent/runtime/code-executor/NodeVmCodeExecutor.js.map +1 -0
- package/dist/agent/runtime/createSandboxManager.d.ts +4 -0
- package/dist/agent/runtime/createSandboxManager.d.ts.map +1 -0
- package/dist/agent/runtime/createSandboxManager.js +28 -0
- package/dist/agent/runtime/createSandboxManager.js.map +1 -0
- package/dist/agent/runtime/ivm/IVMSandboxManager.d.ts +21 -0
- package/dist/agent/runtime/ivm/IVMSandboxManager.d.ts.map +1 -0
- package/dist/agent/runtime/ivm/IVMSandboxManager.js +189 -0
- package/dist/agent/runtime/ivm/IVMSandboxManager.js.map +1 -0
- package/dist/agent/runtime/types.d.ts +12 -0
- package/dist/agent/runtime/types.d.ts.map +1 -0
- package/dist/agent/runtime/types.js +2 -0
- package/dist/agent/runtime/types.js.map +1 -0
- package/dist/agent/runtime/vm/VmSandboxManager.d.ts +23 -0
- package/dist/agent/runtime/vm/VmSandboxManager.d.ts.map +1 -0
- package/dist/agent/runtime/vm/VmSandboxManager.js +168 -0
- package/dist/agent/runtime/vm/VmSandboxManager.js.map +1 -0
- package/dist/agent/security/PIITokenizer.d.ts +15 -0
- package/dist/agent/security/PIITokenizer.d.ts.map +1 -0
- package/dist/agent/security/PIITokenizer.js +54 -0
- package/dist/agent/security/PIITokenizer.js.map +1 -0
- package/dist/cli/cli.d.ts +3 -0
- package/dist/cli/cli.d.ts.map +1 -0
- package/dist/cli/cli.js +23 -0
- package/dist/cli/cli.js.map +1 -0
- package/dist/cli/code-mode.d.ts +3 -0
- package/dist/cli/code-mode.d.ts.map +1 -0
- package/dist/cli/code-mode.js +225 -0
- package/dist/cli/code-mode.js.map +1 -0
- package/dist/index.d.ts +14 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +125 -0
- package/dist/index.js.map +1 -0
- package/dist/kubernetes/BaseResourceOperations.d.ts +155 -0
- package/dist/kubernetes/BaseResourceOperations.d.ts.map +1 -0
- package/dist/kubernetes/BaseResourceOperations.js +136 -0
- package/dist/kubernetes/BaseResourceOperations.js.map +1 -0
- package/dist/kubernetes/CircuitBreaker.d.ts +182 -0
- package/dist/kubernetes/CircuitBreaker.d.ts.map +1 -0
- package/dist/kubernetes/CircuitBreaker.js +369 -0
- package/dist/kubernetes/CircuitBreaker.js.map +1 -0
- package/dist/kubernetes/ConnectionManager.d.ts +60 -0
- package/dist/kubernetes/ConnectionManager.d.ts.map +1 -0
- package/dist/kubernetes/ConnectionManager.js +77 -0
- package/dist/kubernetes/ConnectionManager.js.map +1 -0
- package/dist/kubernetes/ConnectionPool.d.ts +183 -0
- package/dist/kubernetes/ConnectionPool.d.ts.map +1 -0
- package/dist/kubernetes/ConnectionPool.js +437 -0
- package/dist/kubernetes/ConnectionPool.js.map +1 -0
- package/dist/kubernetes/ErrorHandler.d.ts +172 -0
- package/dist/kubernetes/ErrorHandler.d.ts.map +1 -0
- package/dist/kubernetes/ErrorHandler.js +328 -0
- package/dist/kubernetes/ErrorHandler.js.map +1 -0
- package/dist/kubernetes/ErrorHandling.d.ts +148 -0
- package/dist/kubernetes/ErrorHandling.d.ts.map +1 -0
- package/dist/kubernetes/ErrorHandling.js +304 -0
- package/dist/kubernetes/ErrorHandling.js.map +1 -0
- package/dist/kubernetes/KubernetesClient.d.ts +178 -0
- package/dist/kubernetes/KubernetesClient.d.ts.map +1 -0
- package/dist/kubernetes/KubernetesClient.js +524 -0
- package/dist/kubernetes/KubernetesClient.js.map +1 -0
- package/dist/kubernetes/ResourceOperations.d.ts +69 -0
- package/dist/kubernetes/ResourceOperations.d.ts.map +1 -0
- package/dist/kubernetes/ResourceOperations.js +99 -0
- package/dist/kubernetes/ResourceOperations.js.map +1 -0
- package/dist/kubernetes/RetryStrategy.d.ts +137 -0
- package/dist/kubernetes/RetryStrategy.d.ts.map +1 -0
- package/dist/kubernetes/RetryStrategy.js +282 -0
- package/dist/kubernetes/RetryStrategy.js.map +1 -0
- package/dist/kubernetes/RetryableOperation.d.ts +118 -0
- package/dist/kubernetes/RetryableOperation.d.ts.map +1 -0
- package/dist/kubernetes/RetryableOperation.js +233 -0
- package/dist/kubernetes/RetryableOperation.js.map +1 -0
- package/dist/kubernetes/index.d.ts +18 -0
- package/dist/kubernetes/index.d.ts.map +1 -0
- package/dist/kubernetes/index.js +28 -0
- package/dist/kubernetes/index.js.map +1 -0
- package/dist/kubernetes/resources/ConfigMapOperations.d.ts +60 -0
- package/dist/kubernetes/resources/ConfigMapOperations.d.ts.map +1 -0
- package/dist/kubernetes/resources/ConfigMapOperations.js +307 -0
- package/dist/kubernetes/resources/ConfigMapOperations.js.map +1 -0
- package/dist/kubernetes/resources/CustomResourceOperations.d.ts +55 -0
- package/dist/kubernetes/resources/CustomResourceOperations.d.ts.map +1 -0
- package/dist/kubernetes/resources/CustomResourceOperations.js +363 -0
- package/dist/kubernetes/resources/CustomResourceOperations.js.map +1 -0
- package/dist/kubernetes/resources/DeploymentOperations.d.ts +66 -0
- package/dist/kubernetes/resources/DeploymentOperations.d.ts.map +1 -0
- package/dist/kubernetes/resources/DeploymentOperations.js +234 -0
- package/dist/kubernetes/resources/DeploymentOperations.js.map +1 -0
- package/dist/kubernetes/resources/IngressOperations.d.ts +60 -0
- package/dist/kubernetes/resources/IngressOperations.d.ts.map +1 -0
- package/dist/kubernetes/resources/IngressOperations.js +224 -0
- package/dist/kubernetes/resources/IngressOperations.js.map +1 -0
- package/dist/kubernetes/resources/MetricOperations.d.ts +251 -0
- package/dist/kubernetes/resources/MetricOperations.d.ts.map +1 -0
- package/dist/kubernetes/resources/MetricOperations.js +1377 -0
- package/dist/kubernetes/resources/MetricOperations.js.map +1 -0
- package/dist/kubernetes/resources/NamespaceOperations.d.ts +38 -0
- package/dist/kubernetes/resources/NamespaceOperations.d.ts.map +1 -0
- package/dist/kubernetes/resources/NamespaceOperations.js +101 -0
- package/dist/kubernetes/resources/NamespaceOperations.js.map +1 -0
- package/dist/kubernetes/resources/PersistentVolumeClaimOperations.d.ts +109 -0
- package/dist/kubernetes/resources/PersistentVolumeClaimOperations.d.ts.map +1 -0
- package/dist/kubernetes/resources/PersistentVolumeClaimOperations.js +383 -0
- package/dist/kubernetes/resources/PersistentVolumeClaimOperations.js.map +1 -0
- package/dist/kubernetes/resources/PersistentVolumeOperations.d.ts +97 -0
- package/dist/kubernetes/resources/PersistentVolumeOperations.d.ts.map +1 -0
- package/dist/kubernetes/resources/PersistentVolumeOperations.js +321 -0
- package/dist/kubernetes/resources/PersistentVolumeOperations.js.map +1 -0
- package/dist/kubernetes/resources/PodOperations.d.ts +99 -0
- package/dist/kubernetes/resources/PodOperations.d.ts.map +1 -0
- package/dist/kubernetes/resources/PodOperations.js +333 -0
- package/dist/kubernetes/resources/PodOperations.js.map +1 -0
- package/dist/kubernetes/resources/SecretOperations.d.ts +71 -0
- package/dist/kubernetes/resources/SecretOperations.d.ts.map +1 -0
- package/dist/kubernetes/resources/SecretOperations.js +261 -0
- package/dist/kubernetes/resources/SecretOperations.js.map +1 -0
- package/dist/kubernetes/resources/ServiceOperations.d.ts +64 -0
- package/dist/kubernetes/resources/ServiceOperations.d.ts.map +1 -0
- package/dist/kubernetes/resources/ServiceOperations.js +232 -0
- package/dist/kubernetes/resources/ServiceOperations.js.map +1 -0
- package/dist/kubernetes/utils/ResourceUtils.d.ts +238 -0
- package/dist/kubernetes/utils/ResourceUtils.d.ts.map +1 -0
- package/dist/kubernetes/utils/ResourceUtils.js +439 -0
- package/dist/kubernetes/utils/ResourceUtils.js.map +1 -0
- package/dist/package.json +90 -0
- package/dist/plugins/ArgoCDToolsPlugin.d.ts +19 -0
- package/dist/plugins/ArgoCDToolsPlugin.d.ts.map +1 -0
- package/dist/plugins/ArgoCDToolsPlugin.js +74 -0
- package/dist/plugins/ArgoCDToolsPlugin.js.map +1 -0
- package/dist/plugins/ArgoToolsPlugin.d.ts +19 -0
- package/dist/plugins/ArgoToolsPlugin.d.ts.map +1 -0
- package/dist/plugins/ArgoToolsPlugin.js +73 -0
- package/dist/plugins/ArgoToolsPlugin.js.map +1 -0
- package/dist/plugins/BaseToolsPlugin.d.ts +37 -0
- package/dist/plugins/BaseToolsPlugin.d.ts.map +1 -0
- package/dist/plugins/BaseToolsPlugin.js +114 -0
- package/dist/plugins/BaseToolsPlugin.js.map +1 -0
- package/dist/plugins/HelmToolsPlugin.d.ts +19 -0
- package/dist/plugins/HelmToolsPlugin.d.ts.map +1 -0
- package/dist/plugins/HelmToolsPlugin.js +73 -0
- package/dist/plugins/HelmToolsPlugin.js.map +1 -0
- package/dist/plugins/KubernetesToolsPlugin.d.ts +54 -0
- package/dist/plugins/KubernetesToolsPlugin.d.ts.map +1 -0
- package/dist/plugins/KubernetesToolsPlugin.js +194 -0
- package/dist/plugins/KubernetesToolsPlugin.js.map +1 -0
- package/dist/plugins/SamplePlugin.d.ts +12 -0
- package/dist/plugins/SamplePlugin.d.ts.map +1 -0
- package/dist/plugins/SamplePlugin.js +51 -0
- package/dist/plugins/SamplePlugin.js.map +1 -0
- package/dist/plugins/index.d.ts +5 -0
- package/dist/plugins/index.d.ts.map +1 -0
- package/dist/plugins/index.js +5 -0
- package/dist/plugins/index.js.map +1 -0
- package/dist/server/MCPServer.d.ts +108 -0
- package/dist/server/MCPServer.d.ts.map +1 -0
- package/dist/server/MCPServer.js +496 -0
- package/dist/server/MCPServer.js.map +1 -0
- package/dist/src/agent/bridge/MCPBridge.d.ts +41 -0
- package/dist/src/agent/bridge/MCPBridge.d.ts.map +1 -0
- package/dist/src/agent/bridge/MCPBridge.js +127 -0
- package/dist/src/agent/bridge/MCPBridge.js.map +1 -0
- package/dist/src/agent/codegen/CodegenManager.d.ts +26 -0
- package/dist/src/agent/codegen/CodegenManager.d.ts.map +1 -0
- package/dist/src/agent/codegen/CodegenManager.js +222 -0
- package/dist/src/agent/codegen/CodegenManager.js.map +1 -0
- package/dist/src/agent/codegen/SchemaToTypeScriptMapper.d.ts +13 -0
- package/dist/src/agent/codegen/SchemaToTypeScriptMapper.d.ts.map +1 -0
- package/dist/src/agent/codegen/SchemaToTypeScriptMapper.js +54 -0
- package/dist/src/agent/codegen/SchemaToTypeScriptMapper.js.map +1 -0
- package/dist/src/agent/codegen/ToolDescriptionBuilder.d.ts +67 -0
- package/dist/src/agent/codegen/ToolDescriptionBuilder.d.ts.map +1 -0
- package/dist/src/agent/codegen/ToolDescriptionBuilder.js +201 -0
- package/dist/src/agent/codegen/ToolDescriptionBuilder.js.map +1 -0
- package/dist/src/agent/codegen/ToolSchemaIntrospector.d.ts +10 -0
- package/dist/src/agent/codegen/ToolSchemaIntrospector.d.ts.map +1 -0
- package/dist/src/agent/codegen/ToolSchemaIntrospector.js +72 -0
- package/dist/src/agent/codegen/ToolSchemaIntrospector.js.map +1 -0
- package/dist/src/agent/codegen/types.d.ts +31 -0
- package/dist/src/agent/codegen/types.d.ts.map +1 -0
- package/dist/src/agent/codegen/types.js +2 -0
- package/dist/src/agent/codegen/types.js.map +1 -0
- package/dist/src/agent/config/CodeModeConfig.d.ts +70 -0
- package/dist/src/agent/config/CodeModeConfig.d.ts.map +1 -0
- package/dist/src/agent/config/CodeModeConfig.js +34 -0
- package/dist/src/agent/config/CodeModeConfig.js.map +1 -0
- package/dist/src/agent/runtime/SandboxManager.d.ts +24 -0
- package/dist/src/agent/runtime/SandboxManager.d.ts.map +1 -0
- package/dist/src/agent/runtime/SandboxManager.js +181 -0
- package/dist/src/agent/runtime/SandboxManager.js.map +1 -0
- package/dist/src/agent/runtime/code-executor/CodeExecutor.d.ts +25 -0
- package/dist/src/agent/runtime/code-executor/CodeExecutor.d.ts.map +1 -0
- package/dist/src/agent/runtime/code-executor/CodeExecutor.js +95 -0
- package/dist/src/agent/runtime/code-executor/CodeExecutor.js.map +1 -0
- package/dist/src/agent/runtime/code-executor/NodeVmCodeExecutor.d.ts +21 -0
- package/dist/src/agent/runtime/code-executor/NodeVmCodeExecutor.d.ts.map +1 -0
- package/dist/src/agent/runtime/code-executor/NodeVmCodeExecutor.js +89 -0
- package/dist/src/agent/runtime/code-executor/NodeVmCodeExecutor.js.map +1 -0
- package/dist/src/agent/runtime/createSandboxManager.d.ts +4 -0
- package/dist/src/agent/runtime/createSandboxManager.d.ts.map +1 -0
- package/dist/src/agent/runtime/createSandboxManager.js +28 -0
- package/dist/src/agent/runtime/createSandboxManager.js.map +1 -0
- package/dist/src/agent/runtime/ivm/IVMSandboxManager.d.ts +21 -0
- package/dist/src/agent/runtime/ivm/IVMSandboxManager.d.ts.map +1 -0
- package/dist/src/agent/runtime/ivm/IVMSandboxManager.js +189 -0
- package/dist/src/agent/runtime/ivm/IVMSandboxManager.js.map +1 -0
- package/dist/src/agent/runtime/types.d.ts +12 -0
- package/dist/src/agent/runtime/types.d.ts.map +1 -0
- package/dist/src/agent/runtime/types.js +2 -0
- package/dist/src/agent/runtime/types.js.map +1 -0
- package/dist/src/agent/runtime/vm/VmSandboxManager.d.ts +23 -0
- package/dist/src/agent/runtime/vm/VmSandboxManager.d.ts.map +1 -0
- package/dist/src/agent/runtime/vm/VmSandboxManager.js +168 -0
- package/dist/src/agent/runtime/vm/VmSandboxManager.js.map +1 -0
- package/dist/src/agent/security/PIITokenizer.d.ts +15 -0
- package/dist/src/agent/security/PIITokenizer.d.ts.map +1 -0
- package/dist/src/agent/security/PIITokenizer.js +54 -0
- package/dist/src/agent/security/PIITokenizer.js.map +1 -0
- package/dist/src/cli/code-mode.d.ts +3 -0
- package/dist/src/cli/code-mode.d.ts.map +1 -0
- package/dist/src/cli/code-mode.js +225 -0
- package/dist/src/cli/code-mode.js.map +1 -0
- package/dist/src/cli/run-command.d.ts +3 -0
- package/dist/src/cli/run-command.d.ts.map +1 -0
- package/dist/src/cli/run-command.js +379 -0
- package/dist/src/cli/run-command.js.map +1 -0
- package/dist/src/index.d.ts +5 -0
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +102 -19
- package/dist/src/index.js.map +1 -1
- package/dist/src/kubernetes/resources/MetricOperations.js +3 -3
- package/dist/src/kubernetes/resources/MetricOperations.js.map +1 -1
- package/dist/src/plugins/ArgoCDToolsPlugin.d.ts +0 -1
- package/dist/src/plugins/ArgoCDToolsPlugin.d.ts.map +1 -1
- package/dist/src/plugins/ArgoCDToolsPlugin.js +6 -5
- package/dist/src/plugins/ArgoCDToolsPlugin.js.map +1 -1
- package/dist/src/plugins/ArgoToolsPlugin.d.ts +0 -1
- package/dist/src/plugins/ArgoToolsPlugin.d.ts.map +1 -1
- package/dist/src/plugins/ArgoToolsPlugin.js +5 -5
- package/dist/src/plugins/ArgoToolsPlugin.js.map +1 -1
- package/dist/src/plugins/BaseToolsPlugin.d.ts +0 -1
- package/dist/src/plugins/BaseToolsPlugin.d.ts.map +1 -1
- package/dist/src/plugins/BaseToolsPlugin.js +3 -1
- package/dist/src/plugins/BaseToolsPlugin.js.map +1 -1
- package/dist/src/plugins/HelmToolsPlugin.d.ts +0 -1
- package/dist/src/plugins/HelmToolsPlugin.d.ts.map +1 -1
- package/dist/src/plugins/HelmToolsPlugin.js +5 -5
- package/dist/src/plugins/HelmToolsPlugin.js.map +1 -1
- package/dist/src/plugins/KubernetesToolsPlugin.d.ts +0 -1
- package/dist/src/plugins/KubernetesToolsPlugin.d.ts.map +1 -1
- package/dist/src/plugins/KubernetesToolsPlugin.js +6 -7
- package/dist/src/plugins/KubernetesToolsPlugin.js.map +1 -1
- package/dist/src/plugins/SamplePlugin.d.ts +0 -1
- package/dist/src/plugins/SamplePlugin.d.ts.map +1 -1
- package/dist/src/plugins/SamplePlugin.js +1 -2
- package/dist/src/plugins/SamplePlugin.js.map +1 -1
- package/dist/src/server/MCPServer.d.ts +9 -1
- package/dist/src/server/MCPServer.d.ts.map +1 -1
- package/dist/src/server/MCPServer.js +93 -16
- package/dist/src/server/MCPServer.js.map +1 -1
- package/dist/src/tools/CodeModeTool.d.ts +18 -0
- package/dist/src/tools/CodeModeTool.d.ts.map +1 -0
- package/dist/src/tools/CodeModeTool.js +86 -0
- package/dist/src/tools/CodeModeTool.js.map +1 -0
- package/dist/src/tools/RunCodeTool.d.ts +68 -0
- package/dist/src/tools/RunCodeTool.d.ts.map +1 -0
- package/dist/src/tools/RunCodeTool.js +511 -0
- package/dist/src/tools/RunCodeTool.js.map +1 -0
- package/dist/src/tools/kubernetes/GetContainerLogsTool.d.ts.map +1 -1
- package/dist/src/tools/kubernetes/GetContainerLogsTool.js +11 -1
- package/dist/src/tools/kubernetes/GetContainerLogsTool.js.map +1 -1
- package/dist/src/tools/kubernetes/KubeLogTool.d.ts.map +1 -1
- package/dist/src/tools/kubernetes/KubeLogTool.js +142 -26
- package/dist/src/tools/kubernetes/KubeLogTool.js.map +1 -1
- package/dist/src/utils/CliUtils.js +3 -3
- package/dist/src/utils/CliUtils.js.map +1 -1
- package/dist/src/utils/CodeModeConfig.d.ts +68 -0
- package/dist/src/utils/CodeModeConfig.d.ts.map +1 -0
- package/dist/src/utils/CodeModeConfig.js +42 -0
- package/dist/src/utils/CodeModeConfig.js.map +1 -0
- package/dist/src/utils/SensitiveData.js +3 -3
- package/dist/src/utils/SensitiveData.js.map +1 -1
- package/dist/src/version.cjs +10 -0
- package/dist/src/version.cjs.map +1 -0
- package/dist/src/version.d.cts +2 -0
- package/dist/src/version.d.cts.map +1 -0
- package/dist/src/version.d.ts +2 -0
- package/dist/src/version.d.ts.map +1 -0
- package/dist/src/version.js +3 -0
- package/dist/src/version.js.map +1 -0
- package/dist/tests/agent/PIITokenizer.test.d.ts +2 -0
- package/dist/tests/agent/PIITokenizer.test.d.ts.map +1 -0
- package/dist/tests/agent/PIITokenizer.test.js +19 -0
- package/dist/tests/agent/PIITokenizer.test.js.map +1 -0
- package/dist/tests/agent/SchemaToTypeScriptMapper.test.d.ts +2 -0
- package/dist/tests/agent/SchemaToTypeScriptMapper.test.d.ts.map +1 -0
- package/dist/tests/agent/SchemaToTypeScriptMapper.test.js +27 -0
- package/dist/tests/agent/SchemaToTypeScriptMapper.test.js.map +1 -0
- package/dist/tests/agent/ToolDescriptionBuilder.test.d.ts +2 -0
- package/dist/tests/agent/ToolDescriptionBuilder.test.d.ts.map +1 -0
- package/dist/tests/agent/ToolDescriptionBuilder.test.js +142 -0
- package/dist/tests/agent/ToolDescriptionBuilder.test.js.map +1 -0
- package/dist/tests/helm/BaseTool.test.js +4 -4
- package/dist/tests/helm/BaseTool.test.js.map +1 -1
- package/dist/tests/kubernetes/KubernetesClient.test.js +10 -1
- package/dist/tests/kubernetes/KubernetesClient.test.js.map +1 -1
- package/dist/tests/server/MCPServer.integration.test.js +2 -2
- package/dist/tests/server/MCPServer.integration.test.js.map +1 -1
- package/dist/tests/server/MCPServer.test.js +1 -6
- package/dist/tests/server/MCPServer.test.js.map +1 -1
- package/dist/tests/tools/CodeModeTool.test.d.ts +2 -0
- package/dist/tests/tools/CodeModeTool.test.d.ts.map +1 -0
- package/dist/tests/tools/CodeModeTool.test.js +19 -0
- package/dist/tests/tools/CodeModeTool.test.js.map +1 -0
- package/dist/tests/tools/RunCodeTool.test.d.ts +2 -0
- package/dist/tests/tools/RunCodeTool.test.d.ts.map +1 -0
- package/dist/tests/tools/RunCodeTool.test.js +145 -0
- package/dist/tests/tools/RunCodeTool.test.js.map +1 -0
- package/dist/tools/RunCodeTool.d.ts +68 -0
- package/dist/tools/RunCodeTool.d.ts.map +1 -0
- package/dist/tools/RunCodeTool.js +511 -0
- package/dist/tools/RunCodeTool.js.map +1 -0
- package/dist/tools/argo/ArgoCronListTool.d.ts +10 -0
- package/dist/tools/argo/ArgoCronListTool.d.ts.map +1 -0
- package/dist/tools/argo/ArgoCronListTool.js +70 -0
- package/dist/tools/argo/ArgoCronListTool.js.map +1 -0
- package/dist/tools/argo/ArgoGetTool.d.ts +10 -0
- package/dist/tools/argo/ArgoGetTool.d.ts.map +1 -0
- package/dist/tools/argo/ArgoGetTool.js +80 -0
- package/dist/tools/argo/ArgoGetTool.js.map +1 -0
- package/dist/tools/argo/ArgoListTool.d.ts +10 -0
- package/dist/tools/argo/ArgoListTool.d.ts.map +1 -0
- package/dist/tools/argo/ArgoListTool.js +133 -0
- package/dist/tools/argo/ArgoListTool.js.map +1 -0
- package/dist/tools/argo/ArgoLogsTool.d.ts +10 -0
- package/dist/tools/argo/ArgoLogsTool.d.ts.map +1 -0
- package/dist/tools/argo/ArgoLogsTool.js +117 -0
- package/dist/tools/argo/ArgoLogsTool.js.map +1 -0
- package/dist/tools/argo/BaseTool.d.ts +60 -0
- package/dist/tools/argo/BaseTool.d.ts.map +1 -0
- package/dist/tools/argo/BaseTool.js +51 -0
- package/dist/tools/argo/BaseTool.js.map +1 -0
- package/dist/tools/argo/index.d.ts +6 -0
- package/dist/tools/argo/index.d.ts.map +1 -0
- package/dist/tools/argo/index.js +5 -0
- package/dist/tools/argo/index.js.map +1 -0
- package/dist/tools/argocd/ArgoCDAppGetTool.d.ts +10 -0
- package/dist/tools/argocd/ArgoCDAppGetTool.d.ts.map +1 -0
- package/dist/tools/argocd/ArgoCDAppGetTool.js +97 -0
- package/dist/tools/argocd/ArgoCDAppGetTool.js.map +1 -0
- package/dist/tools/argocd/ArgoCDAppHistoryTool.d.ts +10 -0
- package/dist/tools/argocd/ArgoCDAppHistoryTool.d.ts.map +1 -0
- package/dist/tools/argocd/ArgoCDAppHistoryTool.js +80 -0
- package/dist/tools/argocd/ArgoCDAppHistoryTool.js.map +1 -0
- package/dist/tools/argocd/ArgoCDAppListTool.d.ts +10 -0
- package/dist/tools/argocd/ArgoCDAppListTool.d.ts.map +1 -0
- package/dist/tools/argocd/ArgoCDAppListTool.js +128 -0
- package/dist/tools/argocd/ArgoCDAppListTool.js.map +1 -0
- package/dist/tools/argocd/ArgoCDAppLogsTool.d.ts +10 -0
- package/dist/tools/argocd/ArgoCDAppLogsTool.d.ts.map +1 -0
- package/dist/tools/argocd/ArgoCDAppLogsTool.js +143 -0
- package/dist/tools/argocd/ArgoCDAppLogsTool.js.map +1 -0
- package/dist/tools/argocd/ArgoCDAppResourcesTool.d.ts +10 -0
- package/dist/tools/argocd/ArgoCDAppResourcesTool.d.ts.map +1 -0
- package/dist/tools/argocd/ArgoCDAppResourcesTool.js +123 -0
- package/dist/tools/argocd/ArgoCDAppResourcesTool.js.map +1 -0
- package/dist/tools/argocd/ArgoCDAppTool.d.ts +10 -0
- package/dist/tools/argocd/ArgoCDAppTool.d.ts.map +1 -0
- package/dist/tools/argocd/ArgoCDAppTool.js +179 -0
- package/dist/tools/argocd/ArgoCDAppTool.js.map +1 -0
- package/dist/tools/argocd/BaseTool.d.ts +71 -0
- package/dist/tools/argocd/BaseTool.d.ts.map +1 -0
- package/dist/tools/argocd/BaseTool.js +62 -0
- package/dist/tools/argocd/BaseTool.js.map +1 -0
- package/dist/tools/argocd/index.d.ts +4 -0
- package/dist/tools/argocd/index.d.ts.map +1 -0
- package/dist/tools/argocd/index.js +3 -0
- package/dist/tools/argocd/index.js.map +1 -0
- package/dist/tools/helm/BaseTool.d.ts +51 -0
- package/dist/tools/helm/BaseTool.d.ts.map +1 -0
- package/dist/tools/helm/BaseTool.js +42 -0
- package/dist/tools/helm/BaseTool.js.map +1 -0
- package/dist/tools/helm/HelmGetHooksTool.d.ts +10 -0
- package/dist/tools/helm/HelmGetHooksTool.d.ts.map +1 -0
- package/dist/tools/helm/HelmGetHooksTool.js +38 -0
- package/dist/tools/helm/HelmGetHooksTool.js.map +1 -0
- package/dist/tools/helm/HelmGetManifestTool.d.ts +10 -0
- package/dist/tools/helm/HelmGetManifestTool.d.ts.map +1 -0
- package/dist/tools/helm/HelmGetManifestTool.js +38 -0
- package/dist/tools/helm/HelmGetManifestTool.js.map +1 -0
- package/dist/tools/helm/HelmGetNotesTool.d.ts +10 -0
- package/dist/tools/helm/HelmGetNotesTool.d.ts.map +1 -0
- package/dist/tools/helm/HelmGetNotesTool.js +38 -0
- package/dist/tools/helm/HelmGetNotesTool.js.map +1 -0
- package/dist/tools/helm/HelmGetResourcesTool.d.ts +13 -0
- package/dist/tools/helm/HelmGetResourcesTool.d.ts.map +1 -0
- package/dist/tools/helm/HelmGetResourcesTool.js +124 -0
- package/dist/tools/helm/HelmGetResourcesTool.js.map +1 -0
- package/dist/tools/helm/HelmGetTool.d.ts +11 -0
- package/dist/tools/helm/HelmGetTool.d.ts.map +1 -0
- package/dist/tools/helm/HelmGetTool.js +145 -0
- package/dist/tools/helm/HelmGetTool.js.map +1 -0
- package/dist/tools/helm/HelmGetValuesTool.d.ts +10 -0
- package/dist/tools/helm/HelmGetValuesTool.d.ts.map +1 -0
- package/dist/tools/helm/HelmGetValuesTool.js +62 -0
- package/dist/tools/helm/HelmGetValuesTool.js.map +1 -0
- package/dist/tools/helm/HelmHistoryTool.d.ts +10 -0
- package/dist/tools/helm/HelmHistoryTool.d.ts.map +1 -0
- package/dist/tools/helm/HelmHistoryTool.js +49 -0
- package/dist/tools/helm/HelmHistoryTool.js.map +1 -0
- package/dist/tools/helm/HelmListTool.d.ts +10 -0
- package/dist/tools/helm/HelmListTool.d.ts.map +1 -0
- package/dist/tools/helm/HelmListTool.js +107 -0
- package/dist/tools/helm/HelmListTool.js.map +1 -0
- package/dist/tools/helm/HelmListWithResourcesTool.d.ts +14 -0
- package/dist/tools/helm/HelmListWithResourcesTool.d.ts.map +1 -0
- package/dist/tools/helm/HelmListWithResourcesTool.js +175 -0
- package/dist/tools/helm/HelmListWithResourcesTool.js.map +1 -0
- package/dist/tools/helm/HelmStatusTool.d.ts +10 -0
- package/dist/tools/helm/HelmStatusTool.d.ts.map +1 -0
- package/dist/tools/helm/HelmStatusTool.js +54 -0
- package/dist/tools/helm/HelmStatusTool.js.map +1 -0
- package/dist/tools/helm/index.d.ts +5 -0
- package/dist/tools/helm/index.d.ts.map +1 -0
- package/dist/tools/helm/index.js +4 -0
- package/dist/tools/helm/index.js.map +1 -0
- package/dist/tools/kubernetes/BaseTool.d.ts +48 -0
- package/dist/tools/kubernetes/BaseTool.d.ts.map +1 -0
- package/dist/tools/kubernetes/BaseTool.js +55 -0
- package/dist/tools/kubernetes/BaseTool.js.map +1 -0
- package/dist/tools/kubernetes/ExecTool.d.ts +11 -0
- package/dist/tools/kubernetes/ExecTool.d.ts.map +1 -0
- package/dist/tools/kubernetes/ExecTool.js +275 -0
- package/dist/tools/kubernetes/ExecTool.js.map +1 -0
- package/dist/tools/kubernetes/GetConfigMapTool.d.ts +11 -0
- package/dist/tools/kubernetes/GetConfigMapTool.d.ts.map +1 -0
- package/dist/tools/kubernetes/GetConfigMapTool.js +28 -0
- package/dist/tools/kubernetes/GetConfigMapTool.js.map +1 -0
- package/dist/tools/kubernetes/GetContainerLogsTool.d.ts +15 -0
- package/dist/tools/kubernetes/GetContainerLogsTool.d.ts.map +1 -0
- package/dist/tools/kubernetes/GetContainerLogsTool.js +129 -0
- package/dist/tools/kubernetes/GetContainerLogsTool.js.map +1 -0
- package/dist/tools/kubernetes/GetCronJobsTool.d.ts +8 -0
- package/dist/tools/kubernetes/GetCronJobsTool.d.ts.map +1 -0
- package/dist/tools/kubernetes/GetCronJobsTool.js +45 -0
- package/dist/tools/kubernetes/GetCronJobsTool.js.map +1 -0
- package/dist/tools/kubernetes/GetDaemonSetsTool.d.ts +8 -0
- package/dist/tools/kubernetes/GetDaemonSetsTool.d.ts.map +1 -0
- package/dist/tools/kubernetes/GetDaemonSetsTool.js +53 -0
- package/dist/tools/kubernetes/GetDaemonSetsTool.js.map +1 -0
- package/dist/tools/kubernetes/GetDeploymentsTool.d.ts +11 -0
- package/dist/tools/kubernetes/GetDeploymentsTool.d.ts.map +1 -0
- package/dist/tools/kubernetes/GetDeploymentsTool.js +30 -0
- package/dist/tools/kubernetes/GetDeploymentsTool.js.map +1 -0
- package/dist/tools/kubernetes/GetEndpointSlicesTool.d.ts +8 -0
- package/dist/tools/kubernetes/GetEndpointSlicesTool.d.ts.map +1 -0
- package/dist/tools/kubernetes/GetEndpointSlicesTool.js +57 -0
- package/dist/tools/kubernetes/GetEndpointSlicesTool.js.map +1 -0
- package/dist/tools/kubernetes/GetEndpointsTool.d.ts +8 -0
- package/dist/tools/kubernetes/GetEndpointsTool.d.ts.map +1 -0
- package/dist/tools/kubernetes/GetEndpointsTool.js +53 -0
- package/dist/tools/kubernetes/GetEndpointsTool.js.map +1 -0
- package/dist/tools/kubernetes/GetEventsTool.d.ts +11 -0
- package/dist/tools/kubernetes/GetEventsTool.d.ts.map +1 -0
- package/dist/tools/kubernetes/GetEventsTool.js +123 -0
- package/dist/tools/kubernetes/GetEventsTool.js.map +1 -0
- package/dist/tools/kubernetes/GetHPATool.d.ts +8 -0
- package/dist/tools/kubernetes/GetHPATool.d.ts.map +1 -0
- package/dist/tools/kubernetes/GetHPATool.js +45 -0
- package/dist/tools/kubernetes/GetHPATool.js.map +1 -0
- package/dist/tools/kubernetes/GetIngressTool.d.ts +11 -0
- package/dist/tools/kubernetes/GetIngressTool.d.ts.map +1 -0
- package/dist/tools/kubernetes/GetIngressTool.js +35 -0
- package/dist/tools/kubernetes/GetIngressTool.js.map +1 -0
- package/dist/tools/kubernetes/GetJobsTool.d.ts +8 -0
- package/dist/tools/kubernetes/GetJobsTool.d.ts.map +1 -0
- package/dist/tools/kubernetes/GetJobsTool.js +52 -0
- package/dist/tools/kubernetes/GetJobsTool.js.map +1 -0
- package/dist/tools/kubernetes/GetLimitRangesTool.d.ts +8 -0
- package/dist/tools/kubernetes/GetLimitRangesTool.d.ts.map +1 -0
- package/dist/tools/kubernetes/GetLimitRangesTool.js +38 -0
- package/dist/tools/kubernetes/GetLimitRangesTool.js.map +1 -0
- package/dist/tools/kubernetes/GetMetricsTool.d.ts +11 -0
- package/dist/tools/kubernetes/GetMetricsTool.d.ts.map +1 -0
- package/dist/tools/kubernetes/GetMetricsTool.js +43 -0
- package/dist/tools/kubernetes/GetMetricsTool.js.map +1 -0
- package/dist/tools/kubernetes/GetNamespacesTool.d.ts +11 -0
- package/dist/tools/kubernetes/GetNamespacesTool.d.ts.map +1 -0
- package/dist/tools/kubernetes/GetNamespacesTool.js +33 -0
- package/dist/tools/kubernetes/GetNamespacesTool.js.map +1 -0
- package/dist/tools/kubernetes/GetNodesTool.d.ts +8 -0
- package/dist/tools/kubernetes/GetNodesTool.d.ts.map +1 -0
- package/dist/tools/kubernetes/GetNodesTool.js +53 -0
- package/dist/tools/kubernetes/GetNodesTool.js.map +1 -0
- package/dist/tools/kubernetes/GetPDBTool.d.ts +8 -0
- package/dist/tools/kubernetes/GetPDBTool.d.ts.map +1 -0
- package/dist/tools/kubernetes/GetPDBTool.js +46 -0
- package/dist/tools/kubernetes/GetPDBTool.js.map +1 -0
- package/dist/tools/kubernetes/GetPersistentVolumeClaimsTool.d.ts +11 -0
- package/dist/tools/kubernetes/GetPersistentVolumeClaimsTool.d.ts.map +1 -0
- package/dist/tools/kubernetes/GetPersistentVolumeClaimsTool.js +92 -0
- package/dist/tools/kubernetes/GetPersistentVolumeClaimsTool.js.map +1 -0
- package/dist/tools/kubernetes/GetPersistentVolumesTool.d.ts +11 -0
- package/dist/tools/kubernetes/GetPersistentVolumesTool.d.ts.map +1 -0
- package/dist/tools/kubernetes/GetPersistentVolumesTool.js +88 -0
- package/dist/tools/kubernetes/GetPersistentVolumesTool.js.map +1 -0
- package/dist/tools/kubernetes/GetPodMetricsTool.d.ts +11 -0
- package/dist/tools/kubernetes/GetPodMetricsTool.d.ts.map +1 -0
- package/dist/tools/kubernetes/GetPodMetricsTool.js +100 -0
- package/dist/tools/kubernetes/GetPodMetricsTool.js.map +1 -0
- package/dist/tools/kubernetes/GetPodsTool.d.ts +11 -0
- package/dist/tools/kubernetes/GetPodsTool.d.ts.map +1 -0
- package/dist/tools/kubernetes/GetPodsTool.js +35 -0
- package/dist/tools/kubernetes/GetPodsTool.js.map +1 -0
- package/dist/tools/kubernetes/GetReplicaSetsTool.d.ts +8 -0
- package/dist/tools/kubernetes/GetReplicaSetsTool.d.ts.map +1 -0
- package/dist/tools/kubernetes/GetReplicaSetsTool.js +49 -0
- package/dist/tools/kubernetes/GetReplicaSetsTool.js.map +1 -0
- package/dist/tools/kubernetes/GetResourceQuotaTool.d.ts +8 -0
- package/dist/tools/kubernetes/GetResourceQuotaTool.d.ts.map +1 -0
- package/dist/tools/kubernetes/GetResourceQuotaTool.js +53 -0
- package/dist/tools/kubernetes/GetResourceQuotaTool.js.map +1 -0
- package/dist/tools/kubernetes/GetResourceTool.d.ts +29 -0
- package/dist/tools/kubernetes/GetResourceTool.d.ts.map +1 -0
- package/dist/tools/kubernetes/GetResourceTool.js +1053 -0
- package/dist/tools/kubernetes/GetResourceTool.js.map +1 -0
- package/dist/tools/kubernetes/GetSecretsTool.d.ts +11 -0
- package/dist/tools/kubernetes/GetSecretsTool.d.ts.map +1 -0
- package/dist/tools/kubernetes/GetSecretsTool.js +49 -0
- package/dist/tools/kubernetes/GetSecretsTool.js.map +1 -0
- package/dist/tools/kubernetes/GetServicesTool.d.ts +11 -0
- package/dist/tools/kubernetes/GetServicesTool.d.ts.map +1 -0
- package/dist/tools/kubernetes/GetServicesTool.js +35 -0
- package/dist/tools/kubernetes/GetServicesTool.js.map +1 -0
- package/dist/tools/kubernetes/GetStatefulSetsTool.d.ts +8 -0
- package/dist/tools/kubernetes/GetStatefulSetsTool.d.ts.map +1 -0
- package/dist/tools/kubernetes/GetStatefulSetsTool.js +53 -0
- package/dist/tools/kubernetes/GetStatefulSetsTool.js.map +1 -0
- package/dist/tools/kubernetes/KubeListTool.d.ts +54 -0
- package/dist/tools/kubernetes/KubeListTool.d.ts.map +1 -0
- package/dist/tools/kubernetes/KubeListTool.js +1370 -0
- package/dist/tools/kubernetes/KubeListTool.js.map +1 -0
- package/dist/tools/kubernetes/KubeLogTool.d.ts +18 -0
- package/dist/tools/kubernetes/KubeLogTool.d.ts.map +1 -0
- package/dist/tools/kubernetes/KubeLogTool.js +920 -0
- package/dist/tools/kubernetes/KubeLogTool.js.map +1 -0
- package/dist/tools/kubernetes/KubeMetricsTool.d.ts +11 -0
- package/dist/tools/kubernetes/KubeMetricsTool.d.ts.map +1 -0
- package/dist/tools/kubernetes/KubeMetricsTool.js +174 -0
- package/dist/tools/kubernetes/KubeMetricsTool.js.map +1 -0
- package/dist/tools/kubernetes/KubeNetTool.d.ts +27 -0
- package/dist/tools/kubernetes/KubeNetTool.d.ts.map +1 -0
- package/dist/tools/kubernetes/KubeNetTool.js +420 -0
- package/dist/tools/kubernetes/KubeNetTool.js.map +1 -0
- package/dist/tools/kubernetes/PortForwardTool.d.ts +14 -0
- package/dist/tools/kubernetes/PortForwardTool.d.ts.map +1 -0
- package/dist/tools/kubernetes/PortForwardTool.js +278 -0
- package/dist/tools/kubernetes/PortForwardTool.js.map +1 -0
- package/dist/tools/kubernetes/index.d.ts +11 -0
- package/dist/tools/kubernetes/index.d.ts.map +1 -0
- package/dist/tools/kubernetes/index.js +10 -0
- package/dist/tools/kubernetes/index.js.map +1 -0
- package/dist/utils/CliUtils.d.ts +24 -0
- package/dist/utils/CliUtils.d.ts.map +1 -0
- package/dist/utils/CliUtils.js +164 -0
- package/dist/utils/CliUtils.js.map +1 -0
- package/dist/utils/CodeModeConfig.d.ts +68 -0
- package/dist/utils/CodeModeConfig.d.ts.map +1 -0
- package/dist/utils/CodeModeConfig.js +42 -0
- package/dist/utils/CodeModeConfig.js.map +1 -0
- package/dist/utils/SensitiveData.d.ts +31 -0
- package/dist/utils/SensitiveData.d.ts.map +1 -0
- package/dist/utils/SensitiveData.js +136 -0
- package/dist/utils/SensitiveData.js.map +1 -0
- package/dist/version.d.ts +2 -0
- package/dist/version.d.ts.map +1 -0
- package/dist/version.js +4 -0
- package/dist/version.js.map +1 -0
- package/kube-mcp.code-mode.example.json +17 -0
- package/kube-mcp.code-mode.json +17 -0
- package/package.json +13 -8
- package/src/agent/bridge/MCPBridge.ts +176 -0
- package/src/agent/codegen/CodegenManager.ts +334 -0
- package/src/agent/codegen/SchemaToTypeScriptMapper.ts +98 -0
- package/src/agent/codegen/ToolDescriptionBuilder.ts +257 -0
- package/src/agent/codegen/ToolSchemaIntrospector.ts +95 -0
- package/src/agent/codegen/types.ts +38 -0
- package/src/agent/config/CodeModeConfig.ts +41 -0
- package/src/agent/runtime/code-executor/CodeExecutor.ts +127 -0
- package/src/agent/runtime/code-executor/NodeVmCodeExecutor.ts +117 -0
- package/src/agent/runtime/createSandboxManager.ts +40 -0
- package/src/agent/runtime/ivm/IVMSandboxManager.ts +226 -0
- package/src/agent/runtime/types.ts +13 -0
- package/src/agent/runtime/vm/VmSandboxManager.ts +201 -0
- package/src/agent/security/PIITokenizer.ts +65 -0
- package/src/cli/code-mode.ts +266 -0
- package/src/index.ts +121 -22
- package/src/kubernetes/resources/MetricOperations.ts +3 -3
- package/src/plugins/ArgoCDToolsPlugin.ts +8 -5
- package/src/plugins/ArgoToolsPlugin.ts +9 -5
- package/src/plugins/BaseToolsPlugin.ts +3 -2
- package/src/plugins/HelmToolsPlugin.ts +9 -5
- package/src/plugins/KubernetesToolsPlugin.ts +6 -7
- package/src/plugins/SamplePlugin.ts +1 -2
- package/src/server/MCPServer.ts +105 -16
- package/src/tools/RunCodeTool.ts +601 -0
- package/src/tools/kubernetes/GetContainerLogsTool.ts +16 -1
- package/src/tools/kubernetes/KubeLogTool.ts +158 -30
- package/src/utils/CliUtils.ts +3 -3
- package/src/utils/CodeModeConfig.ts +48 -0
- package/src/utils/SensitiveData.ts +3 -3
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,33 @@ All notable changes to this project will be documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
## [1.3.0] - 2025-11-27
|
|
9
|
+
|
|
10
|
+
### Added
|
|
11
|
+
- **Code-Mode Execution**: Added sandboxed TypeScript code execution runtime following Anthropic's code execution with MCP approach
|
|
12
|
+
- **RunCodeTool**: Implemented `run_code` tool for executing TypeScript code in a sandboxed Node.js VM environment
|
|
13
|
+
- **Code-Mode CLI**: Added `kubeview-mcp-code-mode` binary and `npm run code-mode` script for standalone code execution
|
|
14
|
+
- **TypeScript Transpilation**: Integrated TypeScript compiler for runtime transpilation of agent code (ES2022 target)
|
|
15
|
+
- **Global Type Definitions**: Added `/sys/global.d.ts` resource providing TypeScript type definitions for all available tools
|
|
16
|
+
- **Tool Executor**: Implemented tool executor allowing sandboxed code to call MCP tools internally
|
|
17
|
+
- **Helper Functions**: Added `callMCPTool()`, `searchTools()`, and `getToolHelp()` helper functions for progressive tool discovery
|
|
18
|
+
- **Code-Mode Configuration**: Added `CodeModeConfig` with configurable sandbox limits (memory, timeout) and workspace settings
|
|
19
|
+
- **Dual Mode Support**: Added `NODE_MODE=code` environment variable to run server in code-mode (exposes only `run_code` tool)
|
|
20
|
+
|
|
21
|
+
### Changed
|
|
22
|
+
- **Plugin Architecture**: Removed version property from various tools plugins and MCPServer for simplified plugin management
|
|
23
|
+
- **Dependencies**: Added TypeScript as a runtime dependency (previously dev-only) for code-mode transpilation
|
|
24
|
+
- **Tool Manifest**: Enhanced tool manifest system to support dynamic tool generation for agent code execution
|
|
25
|
+
|
|
26
|
+
### Fixed
|
|
27
|
+
- **Type Definitions**: Fixed TypeScript typing for generated global DTS resources and resource registration
|
|
28
|
+
|
|
29
|
+
## [1.2.0] - 2025-08-19
|
|
30
|
+
|
|
31
|
+
### Changed
|
|
32
|
+
- **Changed variable naming**
|
|
33
|
+
- **Diabled logging by default**
|
|
34
|
+
|
|
8
35
|
## [1.1.0] - 2025-08-09
|
|
9
36
|
|
|
10
37
|
### Added
|
|
@@ -80,4 +107,4 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
80
107
|
- Integration guides for Cursor IDE
|
|
81
108
|
- API documentation for developers
|
|
82
109
|
|
|
83
|
-
[1.0.0]: https://github.com/mikhae1/kubeview-mcp/releases/tag/v1.0.0
|
|
110
|
+
[1.0.0]: https://github.com/mikhae1/kubeview-mcp/releases/tag/v1.0.0
|
package/README.md
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
[](https://nodejs.org/)
|
|
5
5
|
[](https://www.typescriptlang.org/)
|
|
6
6
|
|
|
7
|
-
KubeView MCP is a read-only Model Context Protocol (MCP) server that exposes AI-friendly tools for safe Kubernetes, Helm, Argo Workflows, and Argo CD introspection. It pairs with Cursor IDE, Claude Desktop, and other MCP clients to let you inspect, diagnose, and debug clusters via natural language
|
|
7
|
+
KubeView MCP is a read-only Model Context Protocol (MCP) server that exposes AI-friendly tools for safe Kubernetes, Helm, Argo Workflows, and Argo CD introspection. It pairs with Cursor IDE, Claude Code/Desktop, and other MCP clients to let you inspect, diagnose, and debug clusters via natural language and without any write operations.
|
|
8
8
|
|
|
9
9
|
---
|
|
10
10
|
|
|
@@ -22,13 +22,23 @@ KubeView MCP is a read-only Model Context Protocol (MCP) server that exposes AI-
|
|
|
22
22
|
|
|
23
23
|
## 🚀 Quick Start
|
|
24
24
|
|
|
25
|
-
|
|
25
|
+
Add to your MCP client config:
|
|
26
26
|
|
|
27
|
-
```
|
|
28
|
-
|
|
27
|
+
```json
|
|
28
|
+
{
|
|
29
|
+
"mcpServers": {
|
|
30
|
+
"kubeview-mcp": {
|
|
31
|
+
"command": "npx",
|
|
32
|
+
"args": ["-y", "https://github.com/mikhae1/kubeview-mcp"],
|
|
33
|
+
"env": {
|
|
34
|
+
"KUBECONFIG": "$HOME/.kube/config"
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
}
|
|
29
39
|
```
|
|
30
40
|
|
|
31
|
-
|
|
41
|
+
If you want to use code-mode only (heavy context tasks, like logs parsing, etc.):
|
|
32
42
|
|
|
33
43
|
```json
|
|
34
44
|
{
|
|
@@ -37,7 +47,8 @@ Add to your MCP client config (for Cursor, `~/.cursor/mcp.json`):
|
|
|
37
47
|
"command": "npx",
|
|
38
48
|
"args": ["-y", "https://github.com/mikhae1/kubeview-mcp"],
|
|
39
49
|
"env": {
|
|
40
|
-
"KUBECONFIG": "$HOME/.kube/config"
|
|
50
|
+
"KUBECONFIG": "$HOME/.kube/config",
|
|
51
|
+
"NODE_MODE": "code"
|
|
41
52
|
}
|
|
42
53
|
}
|
|
43
54
|
}
|
|
@@ -48,10 +59,18 @@ Add to your MCP client config (for Cursor, `~/.cursor/mcp.json`):
|
|
|
48
59
|
|
|
49
60
|
- Node.js ≥ 18
|
|
50
61
|
- Access to a Kubernetes cluster (kubeconfig)
|
|
51
|
-
- Optional CLIs on PATH
|
|
62
|
+
- Optional CLIs on PATH if you want to use those plugins: `helm`, `argo`, `argocd`
|
|
52
63
|
|
|
53
64
|
### Local install
|
|
54
65
|
|
|
66
|
+
#### npx
|
|
67
|
+
|
|
68
|
+
```bash
|
|
69
|
+
npx -y https://github.com/mikhae1/kubeview-mcp
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
#### git
|
|
73
|
+
|
|
55
74
|
```bash
|
|
56
75
|
git clone https://github.com/mikhae1/kubeview-mcp.git
|
|
57
76
|
cd kubeview-mcp
|
|
@@ -70,9 +89,66 @@ npm start
|
|
|
70
89
|
|
|
71
90
|
# Or use the bundled binary wrapper
|
|
72
91
|
kubeview-mcp serve
|
|
92
|
+
|
|
93
|
+
# Launch the code-mode runtime (see section below)
|
|
94
|
+
npm run code-mode
|
|
73
95
|
```
|
|
74
96
|
|
|
75
|
-
|
|
97
|
+
## 🧠 Code-Mode Execution
|
|
98
|
+
|
|
99
|
+
Inspired by [Code execution with MCP](https://www.anthropic.com/engineering/code-execution-with-mcp), KubeView now ships with a code-mode runtime that lets agents explore generated TypeScript API, search tools progressively, and run sandboxed workflows without piping giant schemas through the model context.
|
|
100
|
+
|
|
101
|
+
### What it provides
|
|
102
|
+
|
|
103
|
+
- **MCP bridge layer** – connects to MCP server tools.
|
|
104
|
+
- **Schema→TypeScript codegen** – converts every tool schema into `generated/servers/<server>/<tool>.ts` wrappers plus runtime helpers (`generated/runtime/*`), so agents can `import` strongly-typed helpers instead of copying JSON schemas.
|
|
105
|
+
- **Tool search utilities** – manifests + runtime helpers (`toolSearch.ts`, `search_tools` MCP tool) let agents progressively discover servers and tools without loading everything upfront.
|
|
106
|
+
- **Sandboxed execution** – `isolated-vm` powers a locked-down Node.js-like environment with controlled `console`, MCP tool access, and a scoped filesystem bridge.
|
|
107
|
+
- **Stateful workspace & skills** – the sandbox exposes a safe filesystem rooted at `./workspace`, including a `skills/` folder with a `SKILL.md` convention for reusable snippets.
|
|
108
|
+
|
|
109
|
+
### How to use
|
|
110
|
+
|
|
111
|
+
#### Exposing only the code-mode entry tool
|
|
112
|
+
|
|
113
|
+
To present a single `run_code` tool to your MCP client (and force all heavy work through the filesystem runtime), start the server with `NODE_MODE=code`, e.g.:
|
|
114
|
+
|
|
115
|
+
```bash
|
|
116
|
+
NODE_MODE=code npx -y https://github.com/mikhae1/kubeview-mcp
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
In this mode the server registers only the `run_code` tool, which accepts the following parameters:
|
|
120
|
+
|
|
121
|
+
```ts
|
|
122
|
+
{
|
|
123
|
+
code: string; // required – snippet you plan to execute in the sandbox
|
|
124
|
+
input?: string; // optional stdin payload
|
|
125
|
+
}
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
Calling `run_code` doesn’t execute anything inside the MCP process; instead it returns the generated filesystem tree (`generated/servers/...`, `generated/runtime/...`) plus instructions for launching `kubeview-mcp-code-mode` / `npm run code-mode`, keeping the MCP handshake tiny while the real work happens inside the sandbox.
|
|
129
|
+
|
|
130
|
+
### Manually setting up the sandbox
|
|
131
|
+
|
|
132
|
+
1. Copy the sample config and edit it for your environment:
|
|
133
|
+
```bash
|
|
134
|
+
cp kube-mcp.code-mode.example.json kube-mcp.code-mode.json
|
|
135
|
+
```
|
|
136
|
+
2. Build the project so the CLI wrapper can import the compiled entrypoint:
|
|
137
|
+
```bash
|
|
138
|
+
npm run build
|
|
139
|
+
```
|
|
140
|
+
3. Edit `workspace/main.ts` (auto-created on first run) to import generated helpers:
|
|
141
|
+
|
|
142
|
+
4. Run the runtime (or use the new `kubeview-mcp-code-mode` binary):
|
|
143
|
+
```bash
|
|
144
|
+
npm run code-mode
|
|
145
|
+
# or
|
|
146
|
+
kubeview-mcp-code-mode
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
Generated modules call back into real MCP servers via the sandbox bridge, so large responses stay in the execution environment and only summaries hit the model context.
|
|
150
|
+
|
|
151
|
+
The runtime writes everything under `generated/` and `workspace/`. Clean them up at any time to force regeneration.
|
|
76
152
|
|
|
77
153
|
## 📟 Tool Index (CLI)
|
|
78
154
|
|
|
@@ -135,12 +211,14 @@ npm run command -- <tool_name> [--param=value ...]
|
|
|
135
211
|
Provide env vars via your MCP client config or shell.
|
|
136
212
|
|
|
137
213
|
- **KUBECONFIG**: Path to kubeconfig (default: `$HOME/.kube/config`)
|
|
138
|
-
- **
|
|
139
|
-
- **
|
|
140
|
-
-
|
|
141
|
-
-
|
|
142
|
-
-
|
|
143
|
-
-
|
|
214
|
+
- **MCP_LOG_LEVEL**: `error|warn|info|debug`
|
|
215
|
+
- **MCP_LOG_ENABLE**: `true|1` to enable server file logging (default: disabled)
|
|
216
|
+
- **MCP_LOG_FILE**: Path to server log file (default when enabled: `kubeview-mcp.log`)
|
|
217
|
+
- **MCP_TIMEOUT**: Global per-tool timeout in ms (applies to all tools)
|
|
218
|
+
- CLI timeouts: **MCP_HELM_TIMEOUT**, **MCP_ARGO_TIMEOUT**, **MCP_ARGOCD_TIMEOUT** (ms)
|
|
219
|
+
- CLI executable overrides: **MCP_HELM_PATH**, **MCP_ARGO_PATH**, **MCP_ARGOCD_PATH**
|
|
220
|
+
- Plugin toggles: **MCP_DISABLE_KUBERNETES_PLUGIN**, **MCP_DISABLE_HELM_PLUGIN**, **MCP_DISABLE_ARGO_PLUGIN**, **MCP_DISABLE_ARGOCD_PLUGIN** (`true|1` to disable)
|
|
221
|
+
- Kubernetes options: **MCP_KUBE_CONTEXT**, **MCP_K8S_SKIP_TLS_VERIFY** (`true|1`)
|
|
144
222
|
|
|
145
223
|
Example (Cursor `mcp.json`):
|
|
146
224
|
|
|
@@ -152,9 +230,9 @@ Example (Cursor `mcp.json`):
|
|
|
152
230
|
"args": ["-y", "https://github.com/mikhae1/kubeview-mcp"],
|
|
153
231
|
"env": {
|
|
154
232
|
"KUBECONFIG": "$HOME/.kube/config",
|
|
155
|
-
"
|
|
156
|
-
"
|
|
157
|
-
"
|
|
233
|
+
"MCP_LOG_LEVEL": "info",
|
|
234
|
+
"MCP_HELM_TIMEOUT": "45000",
|
|
235
|
+
"MCP_DISABLE_ARGO_PLUGIN": "1"
|
|
158
236
|
}
|
|
159
237
|
}
|
|
160
238
|
}
|
|
@@ -167,8 +245,8 @@ Example (Cursor `mcp.json`):
|
|
|
167
245
|
|
|
168
246
|
Global masking prevents accidental disclosure of secrets (enabled when any of the flags below are set):
|
|
169
247
|
|
|
170
|
-
- Enable: `MCP_HIDE_SENSITIVE` or `
|
|
171
|
-
- Mask text override: `
|
|
248
|
+
- Enable: `MCP_HIDE_SENSITIVE` or `MCP_HIDE_SENSITIVE_DATA` or `MCP_MASK_SENSITIVE_DATA` → `true|1|yes|on`
|
|
249
|
+
- Mask text override: `MCP_SENSITIVE_MASK` (default: `*** FILTERED ***`)
|
|
172
250
|
|
|
173
251
|
Effects:
|
|
174
252
|
|
|
@@ -216,34 +294,10 @@ npm run command -- kube_net --sourcePod=api-0 --namespace=prod --targetService=d
|
|
|
216
294
|
|
|
217
295
|
# Helm release values (masked)
|
|
218
296
|
npm run command -- helm_get --what=values --releaseName=my-release --namespace=default --allValues=true
|
|
219
|
-
|
|
220
|
-
# Argo CD app resources
|
|
221
|
-
npm run command -- argocd_app --operation=resources --appName=my-app --outputFormat=json
|
|
222
297
|
```
|
|
223
298
|
|
|
224
299
|
---
|
|
225
300
|
|
|
226
|
-
## 🤝 Contributing
|
|
227
|
-
|
|
228
|
-
1. Fork the repo
|
|
229
|
-
2. Create a feature branch: `git checkout -b feat/my-awesome-feature`
|
|
230
|
-
3. Commit: `git commit -m "feat: add my awesome feature"`
|
|
231
|
-
4. Push: `git push origin feat/my-awesome-feature`
|
|
232
|
-
5. Open a Pull Request
|
|
233
|
-
|
|
234
|
-
Tip: run `npm run lint` and `npm run test` locally before submitting.
|
|
235
|
-
|
|
236
|
-
---
|
|
237
|
-
|
|
238
301
|
## 📄 License
|
|
239
302
|
|
|
240
303
|
MIT – see `LICENSE`.
|
|
241
|
-
|
|
242
|
-
---
|
|
243
|
-
|
|
244
|
-
## 🙏 Acknowledgments
|
|
245
|
-
|
|
246
|
-
- Model Context Protocol SDK
|
|
247
|
-
- Kubernetes JavaScript Client
|
|
248
|
-
- Winston
|
|
249
|
-
- TypeScript
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
import { fileURLToPath } from 'url';
|
|
4
|
+
import path from 'path';
|
|
5
|
+
import fs from 'fs';
|
|
6
|
+
import { spawn, execSync } from 'child_process';
|
|
7
|
+
|
|
8
|
+
const __filename = fileURLToPath(import.meta.url);
|
|
9
|
+
const __dirname = path.dirname(__filename);
|
|
10
|
+
const projectRoot = path.resolve(__dirname, '..');
|
|
11
|
+
|
|
12
|
+
function ensureBuild() {
|
|
13
|
+
const distDir = path.join(projectRoot, 'dist');
|
|
14
|
+
const cliPath = path.join(distDir, 'src', 'cli', 'code-mode.js');
|
|
15
|
+
if (fs.existsSync(cliPath)) {
|
|
16
|
+
return cliPath;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
console.error('[kubeview-mcp] Building project for code-mode CLI...');
|
|
20
|
+
try {
|
|
21
|
+
execSync('npm run build', { cwd: projectRoot, stdio: 'inherit' });
|
|
22
|
+
} catch (error) {
|
|
23
|
+
console.error('Failed to build project for code-mode CLI.');
|
|
24
|
+
console.error(error);
|
|
25
|
+
process.exit(1);
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
if (!fs.existsSync(cliPath)) {
|
|
29
|
+
console.error('code-mode CLI not found after build. Expected at:', cliPath);
|
|
30
|
+
process.exit(1);
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
return cliPath;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
function runCodeMode() {
|
|
37
|
+
const cliPath = ensureBuild();
|
|
38
|
+
// Pass all arguments to the CLI
|
|
39
|
+
const args = process.argv.slice(2);
|
|
40
|
+
|
|
41
|
+
const child = spawn('node', [cliPath, ...args], {
|
|
42
|
+
cwd: projectRoot,
|
|
43
|
+
stdio: 'inherit',
|
|
44
|
+
env: {
|
|
45
|
+
...process.env,
|
|
46
|
+
KUBE_MCP_FORCE_VM_SANDBOX: '1',
|
|
47
|
+
},
|
|
48
|
+
});
|
|
49
|
+
|
|
50
|
+
child.on('close', (code) => {
|
|
51
|
+
process.exit(code ?? 0);
|
|
52
|
+
});
|
|
53
|
+
|
|
54
|
+
child.on('error', (error) => {
|
|
55
|
+
console.error('Failed to start code-mode CLI:', error);
|
|
56
|
+
process.exit(1);
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
runCodeMode();
|
package/bin/setup.js
CHANGED
|
@@ -173,9 +173,9 @@ class SetupManager {
|
|
|
173
173
|
env: {
|
|
174
174
|
KUBECONFIG: process.env.KUBECONFIG || this.defaultKubeconfig,
|
|
175
175
|
// Disable optional plugins if their CLIs are not present to prevent startup failures in hosts like Claude
|
|
176
|
-
...(helmAvailable ? {} : {
|
|
177
|
-
...(argoAvailable ? {} : {
|
|
178
|
-
...(argocdAvailable ? {} : {
|
|
176
|
+
...(helmAvailable ? {} : { MCP_DISABLE_HELM_PLUGIN: '1' }),
|
|
177
|
+
...(argoAvailable ? {} : { MCP_DISABLE_ARGO_PLUGIN: '1' }),
|
|
178
|
+
...(argocdAvailable ? {} : { MCP_DISABLE_ARGOCD_PLUGIN: '1' }),
|
|
179
179
|
}
|
|
180
180
|
};
|
|
181
181
|
}
|
|
@@ -227,14 +227,14 @@ class SetupManager {
|
|
|
227
227
|
console.log(` Entry point: ${serverConfig.args[0]}`);
|
|
228
228
|
console.log(` Kubeconfig: ${serverConfig.env.KUBECONFIG}`);
|
|
229
229
|
|
|
230
|
-
if (serverConfig.env.
|
|
231
|
-
console.log(` Log level: ${serverConfig.env.
|
|
230
|
+
if (serverConfig.env.MCP_LOG_LEVEL) {
|
|
231
|
+
console.log(` Log level: ${serverConfig.env.MCP_LOG_LEVEL}`);
|
|
232
232
|
}
|
|
233
233
|
|
|
234
234
|
// Show optional plugin status
|
|
235
|
-
const helmDisabled = serverConfig.env.
|
|
236
|
-
const argoDisabled = serverConfig.env.
|
|
237
|
-
const argocdDisabled = serverConfig.env.
|
|
235
|
+
const helmDisabled = serverConfig.env.MCP_DISABLE_HELM_PLUGIN === '1' || serverConfig.env.MCP_DISABLE_HELM_PLUGIN === 'true';
|
|
236
|
+
const argoDisabled = serverConfig.env.MCP_DISABLE_ARGO_PLUGIN === '1' || serverConfig.env.MCP_DISABLE_ARGO_PLUGIN === 'true';
|
|
237
|
+
const argocdDisabled = serverConfig.env.MCP_DISABLE_ARGOCD_PLUGIN === '1' || serverConfig.env.MCP_DISABLE_ARGOCD_PLUGIN === 'true';
|
|
238
238
|
console.log(' Optional plugins:');
|
|
239
239
|
console.log(` Helm: ${helmDisabled ? 'disabled (helm CLI not found)' : 'enabled'}`);
|
|
240
240
|
console.log(` Argo: ${argoDisabled ? 'disabled (argo CLI not found)' : 'enabled'}`);
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import type { Tool } from '@modelcontextprotocol/sdk/types.js';
|
|
2
|
+
import type { Logger } from 'winston';
|
|
3
|
+
export interface MCPServerConfig {
|
|
4
|
+
name: string;
|
|
5
|
+
command: string;
|
|
6
|
+
args?: string[];
|
|
7
|
+
env?: Record<string, string>;
|
|
8
|
+
timeoutMs?: number;
|
|
9
|
+
}
|
|
10
|
+
export interface ToolRegistration {
|
|
11
|
+
qualifiedName: string;
|
|
12
|
+
server: string;
|
|
13
|
+
toolName: string;
|
|
14
|
+
tool: Tool;
|
|
15
|
+
}
|
|
16
|
+
export interface MCPBridgeOptions {
|
|
17
|
+
enablePII?: boolean;
|
|
18
|
+
logger?: Logger;
|
|
19
|
+
defaultTimeoutMs?: number;
|
|
20
|
+
}
|
|
21
|
+
export declare class MCPBridge {
|
|
22
|
+
private readonly configs;
|
|
23
|
+
private readonly options;
|
|
24
|
+
private clients;
|
|
25
|
+
private toolRegistry;
|
|
26
|
+
private piiTokenizer?;
|
|
27
|
+
private toolDiscoveryCache;
|
|
28
|
+
private configByServer;
|
|
29
|
+
constructor(configs: MCPServerConfig[], options?: MCPBridgeOptions);
|
|
30
|
+
initialize(): Promise<void>;
|
|
31
|
+
private initializeServer;
|
|
32
|
+
private cacheToolMetadata;
|
|
33
|
+
getRegisteredTools(): ToolRegistration[];
|
|
34
|
+
getToolMetadata(qualifiedName: string): ToolRegistration | undefined;
|
|
35
|
+
listServers(): string[];
|
|
36
|
+
listToolsForServer(serverName: string): Tool[];
|
|
37
|
+
callTool<T = any>(qualifiedName: string, args: any): Promise<T>;
|
|
38
|
+
close(): Promise<void>;
|
|
39
|
+
private withTimeout;
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=MCPBridge.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MCPBridge.d.ts","sourceRoot":"","sources":["../../../src/agent/bridge/MCPBridge.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAmB,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAChF,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAGtC,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,gBAAgB;IAC/B,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,IAAI,CAAC;CACZ;AAED,MAAM,WAAW,gBAAgB;IAC/B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,qBAAa,SAAS;IAQlB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAR1B,OAAO,CAAC,OAAO,CAAkC;IACjD,OAAO,CAAC,YAAY,CAA4C;IAChE,OAAO,CAAC,YAAY,CAAC,CAAe;IACpC,OAAO,CAAC,kBAAkB,CAAkC;IAC5D,OAAO,CAAC,cAAc,CAA2C;gBAG9C,OAAO,EAAE,eAAe,EAAE,EAC1B,OAAO,GAAE,gBAAqB;IAOpC,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;YAU1B,gBAAgB;IAmC9B,OAAO,CAAC,iBAAiB;IAclB,kBAAkB,IAAI,gBAAgB,EAAE;IAIxC,eAAe,CAAC,aAAa,EAAE,MAAM,GAAG,gBAAgB,GAAG,SAAS;IAIpE,WAAW,IAAI,MAAM,EAAE;IAIvB,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,EAAE;IAIxC,QAAQ,CAAC,CAAC,GAAG,GAAG,EAAE,aAAa,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC;IA+B/D,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;YASrB,WAAW;CAiB1B"}
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
import { Client } from '@modelcontextprotocol/sdk/client/index.js';
|
|
2
|
+
import { StdioClientTransport } from '@modelcontextprotocol/sdk/client/stdio.js';
|
|
3
|
+
import { PIITokenizer } from '../security/PIITokenizer.js';
|
|
4
|
+
export class MCPBridge {
|
|
5
|
+
configs;
|
|
6
|
+
options;
|
|
7
|
+
clients = new Map();
|
|
8
|
+
toolRegistry = new Map();
|
|
9
|
+
piiTokenizer;
|
|
10
|
+
toolDiscoveryCache = new Map();
|
|
11
|
+
configByServer = new Map();
|
|
12
|
+
constructor(configs, options = {}) {
|
|
13
|
+
this.configs = configs;
|
|
14
|
+
this.options = options;
|
|
15
|
+
if (options.enablePII) {
|
|
16
|
+
this.piiTokenizer = new PIITokenizer();
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
async initialize() {
|
|
20
|
+
for (const config of this.configs) {
|
|
21
|
+
if (this.configByServer.has(config.name)) {
|
|
22
|
+
throw new Error(`Duplicate MCP server name: ${config.name}`);
|
|
23
|
+
}
|
|
24
|
+
this.configByServer.set(config.name, config);
|
|
25
|
+
await this.initializeServer(config);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
async initializeServer(config) {
|
|
29
|
+
const envEntries = Object.entries({
|
|
30
|
+
...process.env,
|
|
31
|
+
...config.env,
|
|
32
|
+
}).filter((entry) => typeof entry[1] === 'string');
|
|
33
|
+
const mergedEnv = Object.fromEntries(envEntries);
|
|
34
|
+
const transport = new StdioClientTransport({
|
|
35
|
+
command: config.command,
|
|
36
|
+
args: config.args ?? [],
|
|
37
|
+
env: mergedEnv,
|
|
38
|
+
});
|
|
39
|
+
const client = new Client({
|
|
40
|
+
name: 'kube-mcp-code-mode-client',
|
|
41
|
+
version: '1.0.0',
|
|
42
|
+
}, {
|
|
43
|
+
capabilities: {},
|
|
44
|
+
});
|
|
45
|
+
if (this.options.logger) {
|
|
46
|
+
this.options.logger.info(`Connecting to MCP server '${config.name}'`);
|
|
47
|
+
}
|
|
48
|
+
await client.connect(transport);
|
|
49
|
+
this.clients.set(config.name, client);
|
|
50
|
+
const toolsResponse = await client.listTools();
|
|
51
|
+
this.cacheToolMetadata(config.name, toolsResponse);
|
|
52
|
+
}
|
|
53
|
+
cacheToolMetadata(serverName, toolsResponse) {
|
|
54
|
+
this.toolDiscoveryCache.set(serverName, toolsResponse.tools);
|
|
55
|
+
for (const tool of toolsResponse.tools) {
|
|
56
|
+
const qualifiedName = `${serverName}__${tool.name}`;
|
|
57
|
+
this.toolRegistry.set(qualifiedName, {
|
|
58
|
+
qualifiedName,
|
|
59
|
+
server: serverName,
|
|
60
|
+
toolName: tool.name,
|
|
61
|
+
tool,
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
getRegisteredTools() {
|
|
66
|
+
return Array.from(this.toolRegistry.values());
|
|
67
|
+
}
|
|
68
|
+
getToolMetadata(qualifiedName) {
|
|
69
|
+
return this.toolRegistry.get(qualifiedName);
|
|
70
|
+
}
|
|
71
|
+
listServers() {
|
|
72
|
+
return Array.from(this.clients.keys());
|
|
73
|
+
}
|
|
74
|
+
listToolsForServer(serverName) {
|
|
75
|
+
return this.toolDiscoveryCache.get(serverName) ?? [];
|
|
76
|
+
}
|
|
77
|
+
async callTool(qualifiedName, args) {
|
|
78
|
+
const registration = this.toolRegistry.get(qualifiedName);
|
|
79
|
+
if (!registration) {
|
|
80
|
+
throw new Error(`Tool ${qualifiedName} not found`);
|
|
81
|
+
}
|
|
82
|
+
const client = this.clients.get(registration.server);
|
|
83
|
+
if (!client) {
|
|
84
|
+
throw new Error(`Server ${registration.server} not connected`);
|
|
85
|
+
}
|
|
86
|
+
const sanitizedArgs = this.piiTokenizer ? this.piiTokenizer.tokenize(args) : args;
|
|
87
|
+
const timeoutMs = this.configByServer.get(registration.server)?.timeoutMs ?? this.options.defaultTimeoutMs;
|
|
88
|
+
const callPromise = client.callTool({
|
|
89
|
+
name: registration.toolName,
|
|
90
|
+
arguments: sanitizedArgs,
|
|
91
|
+
});
|
|
92
|
+
let result;
|
|
93
|
+
if (timeoutMs && timeoutMs > 0) {
|
|
94
|
+
result = await this.withTimeout(callPromise, timeoutMs, qualifiedName);
|
|
95
|
+
}
|
|
96
|
+
else {
|
|
97
|
+
result = await callPromise;
|
|
98
|
+
}
|
|
99
|
+
const detokenized = this.piiTokenizer ? this.piiTokenizer.detokenize(result) : result;
|
|
100
|
+
return detokenized;
|
|
101
|
+
}
|
|
102
|
+
async close() {
|
|
103
|
+
for (const client of this.clients.values()) {
|
|
104
|
+
await client.close();
|
|
105
|
+
}
|
|
106
|
+
this.clients.clear();
|
|
107
|
+
this.toolRegistry.clear();
|
|
108
|
+
this.toolDiscoveryCache.clear();
|
|
109
|
+
}
|
|
110
|
+
async withTimeout(promise, timeoutMs, label) {
|
|
111
|
+
return new Promise((resolve, reject) => {
|
|
112
|
+
const timer = setTimeout(() => {
|
|
113
|
+
reject(new Error(`${label} timed out after ${timeoutMs}ms`));
|
|
114
|
+
}, timeoutMs);
|
|
115
|
+
promise
|
|
116
|
+
.then((value) => {
|
|
117
|
+
clearTimeout(timer);
|
|
118
|
+
resolve(value);
|
|
119
|
+
})
|
|
120
|
+
.catch((err) => {
|
|
121
|
+
clearTimeout(timer);
|
|
122
|
+
reject(err);
|
|
123
|
+
});
|
|
124
|
+
});
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
//# sourceMappingURL=MCPBridge.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MCPBridge.js","sourceRoot":"","sources":["../../../src/agent/bridge/MCPBridge.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { ToolSchemaIntrospector } from './ToolSchemaIntrospector.js';
|
|
2
|
+
export interface CodegenManagerOptions {
|
|
3
|
+
outputDir: string;
|
|
4
|
+
runtimeImportPath?: string;
|
|
5
|
+
manifestPath?: string;
|
|
6
|
+
}
|
|
7
|
+
export declare class CodegenManager {
|
|
8
|
+
private readonly introspector;
|
|
9
|
+
private readonly mapper;
|
|
10
|
+
private readonly printer;
|
|
11
|
+
private readonly options;
|
|
12
|
+
constructor(introspector: ToolSchemaIntrospector, options?: Partial<CodegenManagerOptions>);
|
|
13
|
+
generate(): Promise<void>;
|
|
14
|
+
private groupByServer;
|
|
15
|
+
private writeToolFile;
|
|
16
|
+
private createRuntimeImport;
|
|
17
|
+
private createToolFunction;
|
|
18
|
+
private writeServerIndex;
|
|
19
|
+
private writeRootIndex;
|
|
20
|
+
private writeManifest;
|
|
21
|
+
private ensureRuntimeHelpers;
|
|
22
|
+
private printStatements;
|
|
23
|
+
private toPascalCase;
|
|
24
|
+
private toCamelCase;
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=CodegenManager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CodegenManager.d.ts","sourceRoot":"","sources":["../../../src/agent/codegen/CodegenManager.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAIrE,MAAM,WAAW,qBAAqB;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAQD,qBAAa,cAAc;IAMvB,OAAO,CAAC,QAAQ,CAAC,YAAY;IAL/B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAkC;IACzD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA0D;IAClF,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAwB;gBAG7B,YAAY,EAAE,sBAAsB,EACrD,OAAO,CAAC,EAAE,OAAO,CAAC,qBAAqB,CAAC;IAK7B,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAsBtC,OAAO,CAAC,aAAa;YAWP,aAAa;IAsB3B,OAAO,CAAC,mBAAmB;IAoB3B,OAAO,CAAC,kBAAkB;YAwDZ,gBAAgB;YAqBhB,cAAc;YAcd,aAAa;YAeb,oBAAoB;IAiGlC,OAAO,CAAC,eAAe;IAavB,OAAO,CAAC,YAAY;IAOpB,OAAO,CAAC,WAAW;CAIpB"}
|