XCaret is located on the Mexican mainland in Playa del Carmen. Most cruise ships dock at Cozemel, so you take a hydrofoil over for the 30-minute trip. Warning, the hydrofoil really moves through the waves at a high rate of speed so if you are prone to seasickness, take a seasick pill before you go!!
XCaret is one of the best places I have ever visited!! We had so much fun. There is so much to do and see that the 5.5 hours you are there on a shore excursion is only long enough to cram 2/3's of the stuiff in. They have a lovely palm tree-lined beach with free floats, an aviary and mini zoo with aquatic animals, horseback riding (fee) on the beach, snorkeling or floating the partially underground river, swimming with dolpins (fee) in two places, scuba (fee), restaurants, a lg. gift shop, Mayan ruins, nature trails, etc. One thing I really loved: they had little individual swimming pools blown into the beach front lava rocks! So beautiful with the ocean right in front of you (about 20' away, you are elevated a little from the breakers) and palm trees behind you.
Do not miss XCaret - it is well worth the money. The guy who developed XCaret spent around $250 million on developing it. It shows.