Harris made his senior debut on May 5, 2018, for Sporting Kansas City's reserve side, Swope Park Rangers, in the USL Championship against OKC Energy. He came on as an 81st-minute substitute during 1–0 victory.[4] Harris scored his first professional goal on June 17 against Fresno FC, a consolation goal in the 86th minute of a 4–1 defeat.[5] He would go on to end his first season with Swope Park with 3 goals in 15 appearances.[6] On July 3, 2018, Harris signed a professional contract with Swope Park Rangers, opting out of playing with the Louisville Cardinals.[7]
The next season, Harris scored 12 goals from 25 games for Swope Park Rangers.[8] On May 17, 2019, Harris joined Swope Park's parent club, Sporting Kansas City, on a short-term loan due to injuries in the first team.[9] The next day, Harris appeared on the bench for Sporting Kansas City during a 1–1 draw against the Vancouver Whitecaps FC, but did not come on as a substitute.[10] On September 21, 2019, Harris scored a brace for Swope Park Rangers against the Charlotte Independence during a 3–0 victory.[11]
In 2020, Harris continued his scoring for the newly named Sporting Kansas City II, scoring 8 goals in 16 matches during a COVID-19 effected season.[12] At the end the season, Harris was named the USL Championship Young Player of the Year.[12]