"I'm very pleased to be able to add a quarterback with Adrian's experience and skill set," Calgary head coach and general manager John Hufnagel said in a statement. "As we saw last season, depth at the quarterback position is vital and I believe Adrian provides excellent competition."
McPherson, 30, spent five seasons with the Montreal Alouettes (2008-'12), earning Grey Cup rings in '09 and 2010 with the club before being released to pursue other offers.
Instead of landing another CFL job, the six-foot-three, 220-pound native of Bradenton, Fla., spent last season with the Tampa Bay Storm of the Arena Football League. McPherson appeared in 13 games, completing 238-of-385 passes (61.8 per cent) for 3,151 yards and 59 touchdowns with five interceptions.
McPherson also added 415 yards rushing on 91 carries with 31 TDs, all team highs. In 2004, McPherson was the AFL's top rookie with the Indiana Firebirds.
In Montreal, McPherson served mostly as the backup behind Anthony Calvillo, completing 145-of-247 passes for 1,505 yards with 10 TDs and six interceptions during his time with the Alouettes.
He also rushed for 1,035 yards on 218 attempts, scoring 20 touchdowns.
"The Stampeders have been one of the top teams since I first came to the CFL and I'm excited to come to Calgary," McPherson said in a statement. "I look forward to meeting my new teammates and to working with coach Hufnagel and coach (Dave) Dickenson."