[1] MacPherson started out in the youth system of St Mirren, prior to appearing for the first-team.
[2] He made his career debut on 21 January 2017 during a Scottish Cup fixture with Dundee, while his Championship bow arrived ten months later against Falkirk on 21 October.
[1][4] He returned to his parent club in August 2018, before netting his first goal for them in December against Aberdeen at St Mirren Park.
[1] In October 2019, MacPherson signed a two-year contract extension with Saints, keeping him at the club until 2022.
[7] MacPherson joined St Johnstone permanently for an undisclosed fee on 24 January.