Well, what's the API to get the current list of MTs, and what's the API to figure out when said list changes?
Wasn't that hard to find the code in ora2 (oRA2\Participant\MainTank.lua:201) ... I think the list is broadcasted automatically and ora2 sends a "SET <num> <name>" for maintanks, just look in the code below. If you want to refresh the maintank list on your own, you could use the triggerevent "oRA_MainTankUpdate".
local num, name = select(3, msg:find("^SET (%d+) (.+)$"))
if not num or not name then return end
self.core.maintanktable[tonumber(num)] = name
self.core.db.profile.maintanktable = self.core.maintanktable