I recommend Hiarcs Chess Explorer Pro and Shredder. Both Graphical User Interfaces (GUIs) support UCI_LimitStrength, which enables you to calibrate chess engines to your playing strength. You may adjust playing strength manually by entering an Elo rating. Or you may configure the GUI to adjust playing strength automatically. If you configure the GUI to automatically match your playing strength, it will set the engine’s Elo rating based on your win / draw / loss record against it.
Hiarcs Chess Explorer Pro
In addition to supporting UCI_LimitStrength, the Shredder GUI includes many features for running engine matches and tournaments.
Because Fritz is a popular GUI, I will pass along a word of warning to those intending to use it to play against MadChess at reduced strength: Fritz provides many methods to play against a weakened chess engine (Rated Game, Sparring, Friend Mode, and Handicap and Fun), none of which are enabled for UCI engines like MadChess. All of these methods use a proprietary, non-UCI Fritz engine, no matter which engine is loaded in the GUI.
Due to this- in my opinion- bug, it is not possible to play against MadChess at reduced strength in the Fritz GUI.
A few programmers have written graphical interfaces for playing chess and have generously provided them free of charge. Below is a list of the most popular free chess GUIs. In my opinion, Cute Chess is the best. It has a simple interface yet provides many features for playing against engines, running engine tournaments, and saving games in a database.