Server side execution of EPMAutomate commands are enabled with a recent update (21.08). A few EPM Automate commands can be run directly in EPM Cloud using Groovy. You do not need to install EPM Automate client to run commands using Groovy scripts. Note that server-side execution of commands is not the same as running Groovy scripts on a client computer to execute EPM Automate commands.
Following commands can be run through server-side Groovy scripts:

copyFileFromInstance
copyFromObjectStorage
copySnapshotFromInstance
copyToObjectStorage
encrypt
feedback
importSnapshot
login
logout
recreate
sendMail

While it is a bit dissappointing not to be able to run complete list of commands, it is still very good news. When I first looked at the list of commands, my initial impression was that they are very useful commands to address multiple potential business cases. I have tried copying snapshots between environments with success using epmautomate in groovy script. It is very positive that you dont need a client machine or a mechanism to backup your snapshots, you can directly copy them to another environment like Disaster Recovery.

First step to enable epmautomate commands in groovy is to run encrypt command to prepare password files for the source and target environments.

EpmAutomate automate = getEpmAutomate()
EpmAutomateStatus encryptstatus1 = automate.execute('encrypt', '*******','encryptionKey','sourcePassword.epw')
if(encryptstatus1.getStatus() != 0) throwVetoException(encryptstatus1.getOutput())
println(encryptstatus1.getOutput())
EpmAutomateStatus encryptstatus2 = automate.execute('encrypt', '******', 'encryptionKey' , 'targetPassword.epw')
if(encryptstatus2.getStatus() != 0) throwVetoException(encryptstatus2.getOutput())
println(encryptstatus2.getOutput())

Once executed, you should see this on your job console logs.

Second step would be to login to the target environment

EpmAutomateStatus loginstatus = automate.execute('login', 'username','targetPassword.epw' , 'Target URL')
if(loginstatus.getStatus() != 0) throwVetoException(loginstatus.getOutput())
println(loginstatus.getOutput())

Third step would be to run copy snapshot command itself

EpmAutomateStatus copystatus = automate.execute('copysnapshotfrominstance', 'Artifact Snapshot', 'username', 'sourcePassword.epw','Source URL')
if(copystatus.getStatus() != 0) throwVetoException(copystatus.getOutput())
println(copystatus.getOutput())

Last step is a simple logout

EpmAutomateStatus logoutstatus = automate.execute('logout')
if(logoutstatus.getStatus() != 0) throwVetoException(logoutstatus.getOutput())
println(logoutstatus.getOutput())

If all goes ok, you should see this from your job console logs.