MCP and the Materials Project: a doorway for AI to materials data
What the Model Context Protocol is, why it matters for materials science, the Materials Project MCP servers that already exist, and how to build one yourself.
Large language models can explain the band gap of silicon, but they cannot look it up. Ask one for a specific material’s formation energy and it will often produce a confident, plausible, wrong number. The real knowledge lives in databases like the Materials Project, and until recently every AI tool had to be wired to that database by hand, one custom integration at a time.
The Model Context Protocol fixes that. Here is what it is, why it matters for materials, what already exists, and how to build one yourself.
What MCP is, in plain terms
The Model Context Protocol (MCP) is a standard way to give an AI model tools and data. Think of it as a USB-C port for AI: instead of a different cable for every device, one standard connector. You write a small program, an MCP server, that exposes a few tools. Any MCP-aware client, a chat app, an IDE, an agent, can then discover and call those tools the same way. Write the integration once, and many AI apps can use it.
Why this matters for materials
The Materials Project holds computed properties for hundreds of thousands of materials: band gaps, formation energies, crystal structures, stability, and much more. That is exactly the trustworthy, structured data an AI needs in order to stop guessing. MCP is the doorway. (If you would rather query it directly in Python, I have a separate Materials Project API tutorial and a guide to the common errors people hit.)
With a Materials Project MCP server, you can ask an assistant something like “find me stable semiconductors with a band gap between 1 and 2 eV, and show me the structure of the most stable one,” and it will actually query the database, chain the tools together, and answer from real data instead of memory. Because MCP tools are explicit and permissioned, you stay in control: the model can only do what the tools allow, and every call is visible.
The landscape: what already exists
This space moved fast. A quick tour of what is out there:
- The official one. The Materials Project now ships its own MCP server inside the
mp_apiclient (v0.46 and up), with around 23 tools. For real work, this is what you would reach for. - benedictdebrah/materials-project-mcp by Benedict Debrah and Peniel Fiawornu: a community server with 21+ tools, Docker-deployable, wired into Claude Desktop and VS Code.
- janhq/material-project-mcp: a focused server for battery-material validation, checking whether a proposed cathode is novel and real.
- pathintegral-institute/mcp.science: a whole collection of science MCP servers, including a Materials Project one and even a GPAW server for running DFT calculations.
- Multi-database access through the OPTIMADE MCP server, which reaches Materials Project, OQMD, COD and more from a single endpoint.
- A clear teaching writeup by Xiangyu Yin on building an MP server from two simple tools.
You will also find these cataloged on aggregators like mcpmarket, lobehub, and mcpservers. The takeaway: connecting AI to materials data is now a well-populated, solved problem.
Building one from scratch, and why
Even with the official server available, I built a small one from scratch, because the fastest way to understand a thing is to make it. The whole exercise fits in three moves:
- A bare Materials Project API call, no MCP, just to see the underlying data.
- The same call wrapped as an MCP tool, using FastMCP and an
@mcp.tool()decorator. - An agent that discovers the tools and chains them on its own.
The moment it clicked was seeing the tool schema that FastMCP generates automatically from a plain Python function’s type hints and docstring. That schema is all a model needs to know how to call your function. A tool is just a typed function, MCP is the standard envelope, and the model does the choosing.
The annotated, teach-along notebook and a standalone server, four real tools (search a chemical system, get a material summary, find semiconductors in a band-gap window, get a structure), are here: github.com/ibtisamkhan96/materials-project-mcp-from-scratch.
The part that is still open
Here is the honest frontier. All of these servers, mine included, solve access: they fetch data. None of them solve trust. They will happily hand you a band gap without mentioning that the Materials Project and OQMD disagree about it, or that a formation energy depends on which elemental references and corrections were used. In materials science, the data underneath is often less certain than the models built on top assume.
That gap, auditing the data rather than just serving it, is where the interesting work is, and it is what I am building toward. An MCP server that answers “can I trust this number?” instead of only “what is this number?” would be genuinely new.
Where to start
If you work in materials and have not looked at MCP yet, it is worth an afternoon. It is the cleanest way I have found to let an AI actually use the data we already have.
Found a mistake? Good, tell me. This publication flags its own suspect values. Reach me on LinkedIn.