OQMD (Open Quantum Materials Database) MCP. Keyless DFT-computed thermodynamic and structural properties for ~1M inorganic materials: formation energy, stability (energy above the convex hull), band gap, space group, prototype, cell volume, and ICSD provenance. Backed by oqmd.org/oqmdapi.
Three well-named, read-only tools with clear descriptions (avg 180 chars, within baseline 194). All tools have complete input schemas with typed properties and descriptions. search_materials and stable_phases lack 'required' arrays (should declare composition/element_set and elements as required). Output schemas are not documented, LLMs cannot predict response structure for chaining. Error handling is minimal (generic catch-all). No tool annotations (readOnlyHint, idempotentHint). Parameter descriptions are good (avg 85 chars) but lack format constraints (e.g., 'dash- or comma-separated' for elements should be an enum or pattern). Overall solid foundation with gaps in output documentation and validation guidance.
Fetch a single OQMD material by its entry_id (e.g. 16525 = the Pbcn polymorph of Fe2O3). Returns formation energy (eV/atom), stability above hull, band gap, space group, prototype, cell volume, atom/element counts, ICSD id, and generic composition. Keyless.
Search the Open Quantum Materials Database for DFT-computed inorganic materials by composition and/or constituent elements, with optional band-gap and thermodynamic-stability filters. Returns formation energy (eV/atom), energy above the convex hull (stability), band gap, space group, and prototype. Keyless. Provide at least `composition` or `element_set`.
List the ground-state (on-hull) phases of a chemical system — the thermodynamically stable compounds in OQMD for a given set of elements. e.g. "Fe-O" returns FeO, Fe2O3, Fe3O4. Restricts to materials made ONLY of the given elements with stability <= ~0 (on the convex hull). Keyless.
Output schemas not documented. LLMs cannot predict response structure (fields, types, nested objects) for downstream chaining or data extraction. search_materials and stable_phases return arrays; get_material returns a single object, but no schema is visible in code or comments.
search_materials and stable_phases lack 'required' array in inputSchema. search_materials requires 'composition OR element_set'; stable_phases requires 'elements'. Without explicit required declarations, LLMs may omit critical parameters, causing API errors.
No tool annotations (readOnlyHint, idempotentHint, destructiveHint). All three tools are read-only and idempotent, annotating them helps agents reason about safety and retry logic.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 62 | 2026-07-28+ | v2 |
Parameter format constraints are prose-only. 'element_set' description mentions OQMD syntax '(Al-O)' and '(Fe-O),Ni' but no enum or pattern constraint. 'elements' says 'dash- or comma-separated' but no regex. LLMs may hallucinate invalid formats.
Error handling is generic. callTool() catches all errors and returns {error: message}. No categorization (retryable vs fatal), no recovery guidance, no invalid-value details. LLMs cannot self-correct or decide whether to retry.