diff --git a/internal/modules/controller.go b/internal/modules/controller.go index 789f2d7..00f5498 100644 --- a/internal/modules/controller.go +++ b/internal/modules/controller.go @@ -28,6 +28,7 @@ func (m *ModuleController) RegisterModuleTools(mcp *server.MCPServer) { mcp.AddTool(m.listModulesTool(), m.listModules) mcp.AddTool(m.createModuleTool(), m.createModule) mcp.AddTool(m.updateModuleTool(), m.updateModule) + mcp.AddTool(m.deleteModuleByNameTool(), m.deleteModule) mcp.AddTool(m.createModuleManifestTool(), m.createModuleManifestModule) } diff --git a/internal/modules/delete.go b/internal/modules/delete.go new file mode 100644 index 0000000..cb350d8 --- /dev/null +++ b/internal/modules/delete.go @@ -0,0 +1,29 @@ +package modules + +import ( + "context" + "fmt" + + "github.com/mark3labs/mcp-go/mcp" +) + +func (m *ModuleController) deleteModuleByNameTool() mcp.Tool { + return mcp.NewTool("delete_module", + mcp.WithDescription("Delete Module from cluster"), + mcp.WithString("module_name", + mcp.Required(), + mcp.Description("Name of the Module to delete"), + ), + ) +} + +func (m *ModuleController) deleteModule(_ context.Context, request mcp.CallToolRequest) (*mcp.CallToolResult, error) { + moduleName := request.Params.Arguments["module_name"].(string) + + err := m.k8sClient.DeleteModule(moduleName) + if err != nil { + return nil, err + } + + return mcp.NewToolResultText(fmt.Sprintf("Module %s deleted successfully", moduleName)), nil +}