Maclennan was MP for Caithness and Sutherland (later Caithness, Sutherland and Easter Ross) in Scotland from 1966 until 2001. He was first elected as a member of the Labour Party, and served as a junior minister in the Labour government of 1974-1979, but defected to become a founder member of the SDP in 1981. After 1988 he served as a front bench spokesman for the Liberal Democrats and as their president from 1994 until 1998. He is now the party's spokesman on Europe in the House of Lords.