The 32-year-old would get a one-year contract paying $800,000 in the major leagues if he is added to the 40-man roster. If he is not added to the 40-man roster by March 20, he may request his release within the next day.
Flaherty hit .217 with two homers and 13 RBIs in 182 plate appearances last year for Atlanta. He played for Baltimore from 2012 to 2017.
Cleveland also agreed Thursday to a minor league contract with 34-year-old catcher Dioner Navarro, who has not played in the major leagues since 2016 with Toronto.