Tatis, who hit .297 with 11 homers and 47 RBIs in 92 games, made $550,000 this season. He had been eligible for free agency.
"Fernando got so many key hits for us last year," general manager Omar Minaya said in a statement. "Not having him the last few weeks of the season certainly hurt. His versatility certainly makes us a better team."
Out of baseball from 2004-05, the 33-year-old Tatis gave the Mets a surprising boost after he was called up from the minors May 13. Filling in regularly for injured outfielders Moises Alou and Ryan Church, Tatis had a string of clutch homers and hits.
He separated his right shoulder in a 1-0 loss to the Washington Nationals on Sept. 16, sidelining him for the rest of the year.
"I feel fine now," Tatis said in a statement. "I didn't need surgery and I will be ready to go in the spring."