The deal includes an invitation to spring training, where the 32-year-old right-hander will get a chance to compete for a job in Cleveland's starting rotation. Marcum would receive a $1 million salary if he's added to the 40-man roster, and he can earn another $3 million in bonuses.
Marcum, who has a 58-46 career record in the majors, was limited to 14 games - 12 starts - this year for the New York Mets before he underwent season-ending shoulder surgery. He went 1-10 with a 5.29 ERA before having the operation in July.
Marcum has also pitched for Toronto (2005-10) and Milwaukee (2011-12). He was selected by the Blue Jays in the third round of the 2003 June draft. He pitched more than 150 innings in four of five seasons from 2007-11.