Etymology
Today it means: An archetypal ugly or frumpy old woman. Full definition →
See hag, haggis, Mc-, and bag (“an old woman”).
Etymology from Wiktionary, CC BY-SA 4.0.