"James made us aware this afternoon he would not be able to make the start tonight," said general manager Neal Huntington. "He came forward, and said he's been having some discomfort in his shoulder. He saw the doctor, there's been an evaluation, and we'll see tomorrow where we take it from here."
Catcher Russell Martin was also scratched, complaining of neck stiffness. Michael McKenry took his place behind the plate and in the five-hole against Seattle right-hander Aaron Harang.
McDonald's spot on the roster was taken by infielder Josh Harrison, who was recalled from Triple-A Indianapolis.
McDonald has struggled with inconsistency through his first six starts, alternating credible efforts with ineffective ones. He has an overall record of 2-2, with a 5.76 ERA.
Following particularly flat outings, McDonald has often been asked about his health. McDonald has insisted he was fine.
Harrison's tenure figures to be brief. The Pirates will need a roster spot for left-hander Francisco Liriano, who has already joined them following his Minor League rehab from a fractured right arm. He is scheduled to start against the Mets on Saturday in New York.
Regarding who'll start on Sunday (which would have been McDonald's turn in the rotation), Huntington said, "Jeanmar will have every opportunity to make that start. Otherwise, we have other options. But let me stop the speculation now -- it's not going to be Gerrit Cole. We're pleased with his progress [in Triple-A], but we still have some work to do with him."