First baseman Eduardo Perez and catcher Rick Wilkins also agreed to deals. All four were invited to spring training, which starts Feb. 17 at Jupiter, Fla.
Dunston, 36, spent most of his career as a shortstop for the Chicago Cubs. He started last year with St. Louis, then was dealt to the New York Mets for Craig Paquette on July 31. Dunston, who has played some outfield in recent seasons, hit a combined .321 with five home runs and 41 RBIs last year.
In a 14-year career, Dunston has a .271 average with 128 home runs. He played for the Cubs from 1985-95, and has also been with San Francisco, Pittsburgh and Cleveland.
McRae, 32, played for the Mets, Colorado Rockies and Toronto Blue Jays last year, hitting a combined .218 with 12 homers and 48 RBIs. His career average is .261 in 10 seasons that also includes stints with the Cubs and Kansas City.
Perez, the 30-year-old son of newly elected Hall of Famer Tony Perez, hit .320 with 18 homers and 82 RBIs for the Cardinals' Triple-A Memphis affiliate in 1999. In 21 games as the backup first baseman behind Mark McGwire in September, he hit .344. He has played in seven major league seasons with California and Cincinnati Reds.
Wilkins, 32, hit .253 with eight homers in 92 games for the Los Angeles Dodgers' Triple-A Albuquerque farm team last season and appeared in three games with the Dodgers. He has a .244 career average in nine major league seasons with the Cubs, San Francisco, Seattle, the Mets and Dodgers.
©2000 The Associated Press. All Rights Reserved. This material may not be published, broadcast, rewritten, or redistributed