Per ESPN's Adam Schefter, the Steelers will receive McDonald and a fifth-round draft pick from the 49ers in exchange for a fourth-round draft pick.
McDonald, 27, played in 11 games for the Niners in 2016, catching 24 passes for 391 yards and four touchdowns. On a team devoid of weapons last year, he finished first in touchdown receptions and third in receiving yards.
But once the Niners hired Kyle Shanahan as their head coach and John Lynch as general manager, the roster went under the microscope. The 49ers drafted tight end George Kittle out of Iowa in the fifth round of the 2017 NFL draft and have Logan Paulsen, Garrett Celek and Blake Bell on the roster, so depth at tight end isn't an issue.
While the final two years of McDonald's contract were club options, the Niners would have owed him base salaries of $3.7 million in 2018 and $4.2 million in 2019 after former general manager Trent Baalke signed him to the extension.
And in April, Matt Barrows of the Sacramento Bee speculated that McDonald "may not fit the tough-guy persona the 49ers are trying to instill this year." Add it up, and his departure isn't surprising.
The Steelers get a solid veteran tight end added to their already-dynamic offense that features playmakers such as Antonio Brown and Martavis Bryant at wide receiver and running back Le'Veon Bell. They didn't have to pay a steep price to make the deal happen.