Adding a proxy to an already existing material

Title says it all. I’m trying to create some sort of cloak with a material proxy, but how would I be able to add said proxy to a material? Is it even possible or do I have to create a copy of the material?

Yeah, actually i’m copying the material as <mat>_invisible and then i assign it

One more question. Is there an actual way to copy it or do you just get the value of stuff like $basetexture then create a new material with the exact same values and the proxy?