St Clair joined Chelsea as an 8-year-old,[1] and played for their under-18 team when he was 15.[2] After 12 years at the club, he turned down a new contract and instead signed for four years at Serie B side Venezia in June 2018.[2][3]
On 23 August 2018, St Clair made his senior debut for Venezia in the Coppa Italia, starting in the 1–0 home loss to Serie C side Südtirol.[4] After injury ruled him out of the opening weeks of the season,[3] St Clair made his Serie B debut on 30 October as an 88th-minute substitute for Francesco Di Mariano in a 1–0 away win over Cremonese.[5] He made his first Serie B start on 30 March 2019 in a 1–1 draw away to Salernitana.[6]
On 2 September 2019, St Clair signed for Scottish Premiership club Kilmarnock on a season-long loan.[7] He made his debut twenty days later in a 3–1 loss at holders Celtic, as a 72nd-minute substitute for Liam Millar.[8]
On 31 January 2022, St Clair joined Triestina on loan.[9]
On 27 January 2023, St Clair moved to Vis Pesaro in Serie C and signed a contract until the end of the season.[10]
On 1 September 2023, he left Venezia by mutual consent.[11]
Born and raised in London, St Clair qualified for Scotland through his mother, Heather, coming from Edinburgh. He made his debut for the under-17 team in their European qualifier against the Faroe Islands. This was at Eamonn Deacy Park in Galway, Ireland on 22 September 2014 and scored in a 4–0 win before a crowd of 25 people in a 'tornado'.[13] In March 2018, he was first called up to the under-21 team.[13] In June that year at the 2018 Toulon Tournament the Scots came fourth, with St Clair winning a penalty in the third-place match against Turkey, which was saved by Altay Bayındır.[14]