McKinnie averaged 4.7 points and 3.4 rebounds in 72 games with the Warriors last season. Golden State released him last week. He went undrafted in the 2015 NBA Draft.
McKinnie spent time playing professionally overseas and in the G-League, before signing with Toronto in 2017.
He earned an opening night roster spot on the Warriors last season, playing in 72 regular season games and 22 playoff contests.
The 27-year-old will give John Beilein another option at small forward, which comes at a good time with Dylan Windler out with a left leg injury.
McKinnie shot 48.7 percent from the field last season and 35.6 percent from 3-point range.
The move brings the Cavaliers’ roster to 14, which means they still could add another player before Wednesday’s opener in Orlando.