Cabrera, who turns 32 this month, has played the past two seasons in New York, seeing time at second base, third base and shortstop. The switch-hitter batted .280 this past season, with 14 home runs and 59 RBIs.
Cabrera would have received a $2 million buyout if the option was not picked up.
"Asdrúbal can help us all around the infield," Mets general manager Sandy Alderson said in a statement. "The season didn't end the way we wanted but that didn't stop him from playing hard right to the very last out of the season. Asdrúbal is a great tutor to our younger players and a leader in the clubhouse. We're happy to have him back."
Added Cabrera: "This is where I wanted to be. I experienced the postseason with the Mets in 2016 and that's where I want to get back to this year. I'm open to playing anywhere. I just want to help."
The Mets also picked up the option on lefty reliever Jerry Blevins.