McKenzie was a free agent after the Bills relinquished their rights by not issuing him a qualifying offer this offseason. He returns for a second full year in Buffalo after being cut by Denver and being claimed off waivers midway through the 2018 season.
The Bills announced the agreement a few hours after the deal was posted in a tweet by McKenzie's agent, SportsTrust Advisors.
The Bills have taken advantage of McKenzie's speed and shiftiness by using him as a receiver, running back and on special teams. Nicknamed the "Human Joystick," he had 27 catches for 254 yards and a touchdown, and added 49 yards rushing on eight carries in 15 games last season.
McKenzie, 24, will compete for a backup job on a team that has three established receivers after Buffalo acquired Stefon Diggs in a trade with Minnesota this month. Diggs joins a group of receivers headed by returning starters John Brown and Cole Beasley.