To put it is perspective, I traded for
Ralph Ramsey in Season 13 and gave up
Hoss Serafini,
Mark Shibata, and
Lawrence Stankiewicz.
Ramsey is a bit better, but still comparable. Ramsey is (well... maybe "was" as he is starting to hit his decline and is losing his power) the top offensive player in the league and in fact won 2 straight MVPs after I traded for him. As you can see, I gave up a lot. Serafini was nothing special but was valuable because he was pre-arb when I traded him, so a starting-caliber player for cheap is somewhat valuable. Shibata was borderline-SS defensively with an .800 OPS and was an expiring Type A contract who the owner resigned. Stankiwicz was a weak defensive CF who couldn't play 2B (because he throws y) but has been good for .900+ OPS in the big leagues.
You won't get the same haul for McMahon because he only has 2 years on his deal (as opposed to 3 when I traded for Ramsey) and he's not quite as good. Just looking at his awards he has 2 Silver Sluggers and 1 All-Star, whereas Ramsey in an 8-time MVP, so I think even a top-20 prospect is unrealistic. He's probably not one of the 10 best current players in the league, so you aren't going to get the same return in prospects. If I'm giving up a top-20 prospect, I want a top-10 current player, because the current player is going to cost me 6M+ (or whatever his figure is) and I'll only have control for 2 or 3 years, whereas a prospect can be under your control for 10 years and 5 of them will be for cheap.
With that said, I would not be in a rush to trade that guy. Now that he's out of Petco, he should be good for .950+ OPS per season for the next 4-5. Look at his ratings, even when his power drops to 80-85, he's still going to be good for .900 OPS or so. He's not a 2B where he will become much less valuable when his range starts to go. DH's with good contact/eye and splits can hang around forever because those ratings slip slowly.