The New York Mets are going to need to replenish the offense they’re going to lose when Yoenis Cespedes and Daniel Murphy sign elsewhere.

There are internal options for Murphy with Wilmer Flores and Dilson Herrera capable of replacing the 1.7 Wins Above Replacement that Murphy averaged over the last four seasons.

Replacing Cespedes is going to be a tougher chore. There aren’t many players who can impact a game like he can when he’s going well. His ability to “homer on demand” rivaled that of Darryl Strawberry and Mike Piazza.

Trying to sign a player of that caliber is going to cost a lot (so it’s not as easy as saying “go get Justin Upton”). The Mets front office is going to have to be creative in its pursuit. And it’s probably going to take a trade.

There are two obvious good trade matches for the Mets -- the Chicago Cubs and the Boston Red Sox. Each could use another starting pitcher and has an abundance of young, controllable-contract talent. The Cubs are best equipped to trade a shortstop such as Addison Russell, Javier Baez or Starlin Castro, but if the Mets are going to give up an elite starter, they’re probably going to want to do better than that. We don’t see the Cubs wanting to trade Kris Bryant or Kyle Schwarber.

That is why the Red Sox make the most sense. They have surplus outfielders (including two true center fielders in Mookie Betts and Jackie Bradley Jr.) and they have a clear need for an ace starter. Their starting pitchers had the third-worst ERA in the American League last season.

The Red Sox could get that type of pitcher in free agency (David Price, Johnny Cueto), but the Mets offer some pitchers who are younger and have less wear on their arms.

The logical potential trade here is something along the lines of Matt Harvey for Betts.

Yes, the Mets could highly regret trading Harvey, but ...

• He has three years of team control left, at which point he’s almost surely gone.

• He’s likely going to be quite pricey in those last two years.

• His agent, Scott Boras, already has caused the Mets a lot of stress in the last 12 months.

Betts was a six-WAR player in 2015. He hit .291 with an .820 OPS, 18 home runs, 42 doubles and 21 stolen bases, while striking out only 82 times in 597 at-bats. He ranked seventh among center fielders with nine defensive runs saved. By comparison, Cespedes totaled 6.3 WAR between the Tigers and Mets in 2015, so their values were comparable.

There are likely to be quibbles with such a deal on both sides (Harvey is controllable for three years before free agency, Betts has five), but those can be worked out by adding secondary players to the deal.

The Mets rotation would take a hit, but they'd still go into Opening Day with Jacob deGrom, Noah Syndergaard and Steven Matz at the top, with Jonathon Niese slotted in at No. 4. When Zack Wheeler returns, he fills the No. 5 spot. The improvement to the offense would offset the pitching hit.

Betts is a considerably better player than Juan Lagares. He’s basically the kind of player the Mets want Lagares to be. Lagares still would have value to the Mets as a backup outfielder, and if his elbow heals, he could (in theory) play any of the three outfield spots.

You have to give up something to get something. In this case, what the Mets would be getting would be an almost perfect fit.