The Republic of Ireland international becomes Stoke's fourth signing of the summer, following Peter Etebo, Benik Afobe and Adam Federici to the bet365 Stadium.
Stoke have paid an intial £5m fee for the 29-year-old, though that could rise to £6m with add-ons.
McClean has 59 caps for his country and has made over 150 Premier League appearances during spells with Sunderland, Wigan and West Brom.
Speaking to the club's official website, manager Gary Rowett said he was delighted to sign a player that he has been a fan of for some time.
"James is a player I've admired for a long time. He has real quality with his left foot and he's an old fashioned winger in so much that he retains width and gives teams balance," he explained.
"I've spoken to lads who have played with him before, the likes of Darren Fletcher, and they have all said that he's a great guy to have around the dressing room and he's really, really popular with his teammates."
Meanwhile, the club's Chief Executive Tony Scholes was similarly content.
"Gary indicated very early on in our discussions over transfers that James was a player he wanted to bring to the Club and we're pleased to have added a player of genuine quality to our squad,” he added.
22 July 2018