The tools follow how the database is actually organised: search first, then pull the specific property set you need by material id — a band structure, elastic constants, an absorption spectrum. get_suggested_substrates and get_insertion_electrodes are the applied ones most people do not know are there.
A server over the Materials Project database that exposes search and per-material property lookups through the project's own API client.
- search_materials by elements, band-gap range and stability
- get_structure_by_id for crystal structures and lattice parameters
- Electronic structure — get_electronic_bandstructure and get_electronic_dos_by_id
- Phonons — get_phonon_bandstructure and get_phonon_dos_by_id
- Thermodynamics and energies — get_thermo_stability, get_cohesive_energy, get_atom_reference_data and get_ion_reference_data_for_chemsys
- get_magnetic_data_by_id, get_charge_density_by_id and get_dielectric_data_by_id for magnetic, charge-density and dielectric properties
- Spectra and diffraction — get_diffraction_patterns and get_xRay_absorption_spectra
- Mechanical and surface properties — get_elastic_constants, get_surface_properties and get_grain_boundaries
- Applied data — get_insertion_electrodes for battery materials, get_suggested_substrates for thin films and get_oxidation_states
A free Materials Project account and its API key, handed to the server at launch. Runs as a Docker container with Docker Desktop running, or directly under Python with uv.
One command plus a key — docker pull benedict2002/materials-project-mcp, then supply credentials
