Career
A full-back who joined Preston North End in 1965 aged sixteen, he made his first team debut on 6 October 1970 in a League Cup tie against West Bromwich Albion. In total he played 291 games for Preston (including 1 as substitute) between 1970 and 1979 and scored 6 goals. He played one game on loan at Chesterfield before moving to Crewe Alexandra in 1979.
McMahon spent eight years on the coaching staff of Tranmere Rovers, where he had two spells as caretaker manager, in the 2003-2004 season and at the end of the 2005-2006 season.
He moved to become first-team coach at Shrewsbury Town in June 2006, and was made assistant manager in September 2007. During this period he completed his Union of European Football Associations Pro Licence in coaching during 2006.
On 3 March 2008 he was appointed caretaker manager, after the departure of manager Gary Peters. The appointment of Paul Simpson on 12 March saw him resume the assistant role.
On 8 June 2009, John was appointed reserve team coach of Liverpool, replacing Gary Ablett.
He took charge of the reserve team for the first time on 18 July 2009, when the a Liverpool XI beat Aberystwyth Town 4-1 in a friendly. On 11 March 2011 it was announced that he would no longer be a coach at Liverpool. In June 2011 he rejoined the coaching staff at Tranmere as first team coach.
McMahon was appointed caretaker manager of Tranmere in February 2014, after the suspension of Ronnie Moore.
He left the club in August 2014.