The 24-year-old former Airdrie, Celtic and Hearts forward joins Colchester United's Drey Wright at McDiarmid Park for season 2018/19.
Saints boss Tommy Wright told the club website: “Tony is a player I know a lot about and we actually enquired about him last January, as well as when he was at Charlton Athletic. He's the kind of striker that can score you a goal out of nothing and he's hungry to get going.”