I would like to avoid VPN for permanent connection to a remote host, I would like to replace the static IP address with the MAC address, and using the MAC to find the IP.
You can't. The MAC is used for local routing, not global routing. A MAC on a remote network is hidden by a gateway on the remote side. You can't even tell which gateway is doing that. It's even possible that the IP address doesn't have a MAC address behind it. This was the case for instance with dial-up lines; there would be a phone number behind it.
This explains why there's no API for this.