 McGregor is located at (43.021903, -91.179811).According to the United States Census Bureau, the city has a total area of , all land.As of the census of 2010, there were 871 people, 410 households, and 225 families living in the city.