The 32-year-old formally replaces club great David Neitz, the longest-serving captain in Melbourne’s history, who retired in May last year with a ruptured disc in his neck.
McDonald becomes the 40th player to be appointed to lead Melbourne as captain since 1897.
McDonald was announced as the new skipper by senior coach Dean Bailey at the Southern Star wheel at Docklands on Thursday afternoon. Cameron Bruce was named as vice-captain.
McDonald is one of a long list of players who have been products of the successful Melbourne rookie list system, after being lured to the club following a stint with the Old Xaverians in the Amateur League.
He has since achieved a range of honours, including being named best and fairest in 2006 and 2007, and All-Australian in 2006. McDonald has played 217 games for the club since making his debut against Collingwood in round 17 of the 1997 season.
McDonald said that receiving the captaincy was a great honour, and was something he would treasure.
"To be named captain of the oldest club in the land is a prestigious honour," he said. "To be able to follow on from names such as Smith, Barassi, Flower, Lyon and more recently Neitz will be a great challenge, which I am really looking forward to."
Melbourne senior coach Dean Bailey said the captaincy was a testament to McDonald's work ethic and dedication to the team cause.
"James is a very dedicated player, and is incredibly well respected. He is a player who leads by example, both on and off the field," Bailey said.
"James is a very thorough and intelligent person and, when he speaks, the players and the coaches stop to listen.
"With James as our captain, I have no doubt he will be leading from the front, and I’m sure he can’t wait for the season to start."
McDonald's on and off-field leadership was recognised when he shared the captaincy with Bruce in Neitz’s absence last year.
McDonald was appointed captain following a vote where each player awarded a 5-4-3-2-1 vote for the players who displayed the greatest leadership qualities.