The MPcules database is constructed using the emmet Python packages. emmet-core defines "data models" or "documents" (using the pydantic data validation framework) that represent everything from the output of a DFT calculation to a molecule or a specific property; emmet-builders describes how raw calculation outputs can be converted into molecule and molecule property documents (defined in emmet-core) and how these documents should be inserted as entries in a database (MPcules, like most of the Materials Project, uses a MongoDB NoSQL architecture). Lastly, emmet-api defines how MPcules can be queried to obtain the data that has been built. Here, we elaborate on the structure of MPcules and how the database is constructed.