MIT Photonic Bands (MPB) is a free program to compute the band structures (dispersion relations) and electromagnetic modes of periodic dielectric structures, and is applicable to photonic crystals (photonic band-gap materials), optical waveguides, and a wide range of other optical problems. Its features include: fully-vectorial 3D computations, a flexible user interface based upon the GNU Guile scripting language, output in HDF format, and iterative, targeted eigensolver methods to address very large problems by solving for only a few states near a specified frequency. It runs on both serial machines and parallel machines with MPI.