McDonald was born in Winnie, Texas. He attended East Chambers High School in Winnie, and played for the East Chambers Buccaneers high school football team. He was a three-year letterman, earning all-district 24-2A honors as both a tight end and defensive end as a senior. East Chambers won district titles in both his junior and senior year. He also competed in basketball and was a standout athlete for the East Chambers High School track team. He was a member of the relay team. He also had personal bests of 6.28 meters in the long jump and 12.53 meters in the triple jump.
College career
McDonald attended Rice University, where he played for the Rice Owls football team from 2009 to 2012 under head coach David Bailiff. He earned Conference USA All-Freshman honors after catching 12 passes in his first season. As a sophomore, he posted a career-high eight touchdowns, to go along with 396 yards receiving on 28 receptions. In his final two seasons, he recorded 999 receiving yards on 80 receptions and seven touchdowns. He was a first-team All-C-USA selection at tight end as a senior. McDonald's position coach at Rice was former NFL Pro Bowl tight end David Sloan.
Collegiate statistics
Professional career
Pre-draft
Coming out of college, McDonald was projected by many analysts to be a second to third round selection. He was ranked the fourth best tight end out of the 97 available in the draft by NFLDraftScout.com. McDonald was invited to the NFL Combine and was able to complete all the required workouts and positional drills. At Rice's Pro Day, he stood on his combine numbers and only participated in positional drills.
2013 NFL Draft
The San Francisco 49ers selected McDonald in the second round of the 2013 NFL Draft. He was the fourth tight end to be selected that year.
San Francisco 49ers
2013 season: Rookie year
On May 24, 2013, the 49ers signed McDonald to a four-year, $3.59 million rookie contract with $1.92 million guaranteed and a signing bonus of $997,584. McDonald started the regular season as the second tight end on the depth chart, behind veteran Vernon Davis and ahead of Garrett Celek. In the 49ers' season opener, he caught a 25-yard pass from Colin Kaepernick for his first career reception during a 28–34 victory over the Green Bay Packers. On September 22, 2013, he earned his first career start against the Indianapolis Colts and finished the loss with one catch for six receiving yards. He had a total of eight receptions for 119 receiving yards while appearing in 15 games and starting four of them during his rookie season.
2014 season
On September 14, 2014, McDonald started his first game of the season during a loss to the Chicago Bears and made his first catch of the season and only one of the game for 9 yards. He made his only other catch of the season during a Week 6 victory over the St. Louis Rams and finished the game with one reception for 21 receiving yards. On December 9, 2014, he was placed on season-ending injured reserve with a back injury. McDonald finished his second season with two receptions for 30 yards and appeared in eight games with four starts.
2015 season
He started his first and only season under new head coach Jim Tomsula as the backup to Davis once again. He started the season-opener against the Minnesota Vikings and made one reception for 5 yards during the victory. On November 22, 2015, McDonald caught his first NFL touchdown, a 19-yard pass from Blaine Gabbert against the Seattle Seahawks. The next game, McDonald made a season-high six catches for 71 receiving yards and a touchdown during a 19–13 loss to the Arizona Cardinals. McDonald finished the 2015 season with 30 receptions, 326 receiving yards, and three touchdowns while appearing in 14 games and 11 starts.
2016 season
McDonald started his first season under head coach Chip Kelly as the starting tight end for the first time in his career, as Vernon Davis was traded midway through the previous season. In the 49ers' season-opening victory over the Los Angeles Rams, McDonald caught two passes, one for 14 yards and an 8 yard touchdown from Blaine Gabbert. The next game, he caught a career-long 75-yard touchdown from Gabbert, during a 46–27 loss to the Carolina Panthers. On November 6, 2016, McDonald caught three passes for 85 yards and scored a 65-yard touchdown during a 41–23 loss to the New Orleans Saints. In a Week 12 matchup against the Miami Dolphins, he made four receptions for 60 yards during the 31–24 loss. On December 9, 2016, the 49ers signed McDonald to a five-year, $35 million extension that included $16 million guaranteed and a signing bonus of $7 million. He was placed on injured reserve on December 12, 2016 after suffering a shoulder injury in Week 14 against the New York Jets.
Pittsburgh Steelers
2017 season
On August 29, 2017, the 49ers traded McDonald and their 2018 fifth-round pick to the Pittsburgh Steelers in exchange for the Steelers' 2018 fourth-round pick. McDonald began the regular season as the backup tight end behind Jesse James. On September 10, McDonald made his Steelers debut in a 21–18 victory over the Cleveland Browns. In his first season with the Steelers, he recorded 14 receptions for 188 receiving yards and a touchdown.
2018 season
During Monday Night Football against the Tampa Bay Buccaneers in Week 3, McDonald finished with a career-high 112 receiving yards, including a 75-yard touchdown, as the Steelers won 30-27. In Weeks 10–11, he recorded receiving touchdowns against both the Carolina Panthers and Jacksonville Jaguars. He received an overall grade of 70.2 from Pro Football Focus in 2018, which ranked as the 20th highest grade among all qualifying tight ends. Overall McDonald finished the year with 50 receptions for 610 yards and 4 touchdowns.
2019 season
In week 2 against the Seattle Seahawks, McDonald caught seven passes for 38 yards and two touchdowns as the Steelers narrowly lost 26-28.