The village is located in the Mendrisio district, on the floor of the Muggio valle. It consists of the village of Muggio and the hamlets of Scudellate and Roncapiano. Muggio is around 15 km (9.3 mi) southeast of Lugano, and is around 2 km (1.2 mi) from the Italian border.