McCarthy came from a cricket background and focused on becoming a footballer after being the last player chosen in the Western Australia under-18 team in 2013; this was due to his talents in both cricket and football. He chose the AFL pathway after some inspiration from a South Fremantle colts coach. He had previously played junior football for South Coogee.[4] He came to prominence with an impressive AFL Under-18 Championships, with the highlight being when he kicked the winning after-the-siren goal for Western Australia against Vic Country in Round 4 of the Championships before suffering a broken leg in the final round against South Australia.[5]
On 10 September 2015, news broke that McCarthy was requesting a trade to his home state of Western Australia;[7] the next day, Greater Western Sydney "categorically rejected" his trade request due to him being contracted until the end of the 2017 season.[8] Despite persistent efforts by Fremantle during the trade period,[9] he remained at Greater Western Sydney.[10] After the failed bid to move to Fremantle during the home period, McCarthy decided to return to Western Australia due to homesickness and did not play for the entirety of the 2016 AFL season.[citation needed] He was officially traded to Fremantle during the 2016 trade period.[citation needed]
In 2017, McCarthy kicked 25 goals from 19 games. He finished first in Fremantle's leading goalkicking. He was suspended for two weeks in round 15 for careless contact with St Kilda's Sam Gilbert. He was also surprisingly omitted from the Round 23 team who took on Essendon. His most notable performance came in Round 4, where he kicked a late goal with a toe-poke deep in the goal square, with two minutes remaining, to lead Fremantle to a two-point victory over Melbourne, in Melbourne. Another impressive performance was a four-goal haul, with 18 disposals, against Gold Coast in Round 20 at Domain Stadium.[11]
In 2019, ahead of the Round 1 clash with North Melbourne, McCarthy was called up to the senior team, seemingly as a replacement for new recruit Jesse Hogan, despite not playing in either pre-season match. He was arguably Fremantle's best player in the demolition of North Melbourne in a career-best performance, kicking five goals and collecting 20 disposals.[citation needed]
In August 2020, McCarthy was notified by the Fremantle Football Club that he would not be receiving a contract for the 2021 AFL season; McCarthy and Fremantle mutually parted ways.[12]
McCarthy returned to South Fremantle Football Club in the WAFL for two seasons, but he walked away from the sport after managing just 10 games in that time.[13]