James McGarry speelde in de jeugd van Southern United, waar hij in 2014 vertrok om bij Wellington Phoenix FC te spelen. Hier speelde hij vooral in het tweede elftal in het New Zealand Football Championship. Hij debuteerde voor het eerste elftal in de A-League op 30 januari 2016, in de met 1-3 verloren thuiswedstrijd tegen Central Coast Mariners. Hij kwam in de 76e minuut in het veld voor Joel Stevens. In mei 2016 verbrak Wellington Phoenix het pas getekende contract van McGarry, zodat hij voor de amateurtak Wellington United kon uitkomen. Het seizoen erna tekende hij weer een contract bij Wellington Phoenix FC, waar hij weer vooral in het reserve-elftal speelde. In 2018 vertrok hij naar het Nederlandse Willem II, waar hij een contract voor twee jaar tekende. In oktober 2020 keerde hij terug bij Wellington Phoenix.