The trade continues the Bucs' overhaul of the offensive line. Johnson, an undrafted player in 2012, started the regular-season finale at right guard last year for the Chiefs.
Johnson should have a chance to win the starting gig on the Bucs' feeble line.
Meanwhile the Chiefs needed depth at the safety position after veteran Steve Gregory retired earlier this month and Sanders Commingsbroke his ankle in July. McCray appeared in 15 games between the Bucs and Miami Dolphins in 2013. With Eric Berry battling tendinitis in his heel, the Chiefs needed another body.