He began his career in the Aberdeen academy in 2013. The Daily Record has called him “one of the most promising defenders in the country”.
McKenna made his professional debut for Aberdeen as a substitute against St Johnstone on 6 February 2016. His first start came against Heart of Midlothian on 16 May 2016. On 22 May 2016, he signed a new two-year deal with Aberdeen. In November 2016, McKenna moved on loan to Scottish Championship side Ayr United for 28 days, his second time on loan with the club. His loan was subsequently extended until the end of the season.
He captained the Scotland under-19s in a 2–2 draw with the Czech Republic in 2014. McKenna made his first appearance for the Scotland under-21s in September 2017.