Can Groov Rio be used as a ModBus server?

I’ve re-read this thread a few times just now and I’m still a bit hazy on exactly what your end goal is here.
I wonder if it’s worth drawing a block diagram out and posting a picture of it here so we can see where you are headed.

One thing that is odd to me is to use Node-RED running on the RIO to read the RIO I/O and write it to an MMP address.
That’s sort of like saying “Lets read the modbus register and write it to a modbus register so we can read the value of the modbus register”.
Since every RIO / EPIC / SNAP I/O point has a Modbus register address, it is unnecessary to move it anywhere before you read it.

Most other Modbus devices have, say, a few dozen registers, so they can use just one device ID, and that’s all you need: the IP address, device ID, and the actual register address…
Opto devices can be loaded up (RIO not quite as much - on the I/O side), so we quickly ran out of register address space.
The way we got around that was to break up the Modbus address register space into different device IDs.
Some Modbus software cannot handle this. They have only ONE device ID allowed per IP address. In this case, you often have to put in the groov IP address a few times, each with a different device ID to read all the data you need, but in the case of the RIO I/O, you should be fine with just the one IP and device ID setting in the other software you mentioned.

This forum post might help show the different device IDs in play:

It seemed like your first post wanted to read a remote ModbusTCP device from Node-RED running on the RIO, but your last post seems to suggest that you want to do that but also expose that data to a third-party software application?