Den 33-åriga tidigare Skottland Under-21-kapitlen, som anlände från Yeovil Town 2012, har undertecknat fram till maj 2017 med ytterligare ett års option.
MacLean har gjort 11 mål i 23 matcher för Premiership outfit den här säsongen.
Han började med Ranges och även trollformler med Scunthorpe United, Sheffield onsdag, Cardiff City, Plymouth Argyle, Aberdeen, Oxford United och Cheltenham Town.
Samtidigt har St Johnstone skickat två unga spelare på lån för resten av säsongen, med försvarare Neil Martyniuk gå Montrose i League Two och strejker Greg Kerr tillbringa tid med Whitehill Welfare i Lowland League.
St Johnstone har säkrat anfallaren Steven MacLean på ett kontraktsförlängning.