The 26-year-old former Celtic player has agreed a one-year deal with the Buddies after leaving Premiership rivals Ross County.
Manager Jim Goodwin told the club website: "Marcus fits perfectly with the profile of players we have brought to the club. He's another one with great experience and played over 140 games in the Premiership with Ross County over the last few years."