crystallography-mcp
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@crystallography-mcpIdentify the polymorph in this CIF file"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Crystallography MCP server
CIF inspection, d-spacings, powder patterns, and triacylglycerol polymorph fingerprinting, backed by pymatgen.
Built 21 August 2026 for the Laurelate bay-nut-fat work, but domain-general.
Why this and not a VESTA MCP
VESTA has no scripting interface — no documented command-line arguments, no
batch mode, no macros, no headless operation. An MCP over it could only run
open -a VESTA file.cif and screenshot the window. pymatgen exposes the actual
science, so that is what this wraps.
Keep VESTA as a human viewer. It is genuinely good at that.
Related MCP server: mofstructure-mcp
Setup
Needs Python ≥3.10 (current pymatgen requires it) and its own venv:
python3 -m venv ~/.venvs/crystal
~/.venvs/crystal/bin/python -m pip install -r requirements.txtRegister with Claude Code at user scope, so it loads in every session:
claude mcp add -s user crystallography -- \
"$HOME/.venvs/crystal/bin/python" \
"$HOME/Documents/crystallography-mcp/server.py"Check and remove:
claude mcp list
claude mcp remove -s user crystallographyIt works with any MCP client, not just Claude Code — it is a plain stdio server,
so point your client at <venv python> server.py.
Tools
Tool | What it does |
| Enumerate the structures inside a CIF. Call this first on an unfamiliar file. |
| Cell, volume, composition, density, spglib space group |
| d and 2θ for specific |
| Full calculated pattern with hkl indices and relative intensities |
| α / β′ / β verdict from a structure's short spacings |
| α / β′ / β verdict from an experimental scan (list or two-column file) |
| pymatgen |
The multi-datablock trap
Some deposited CIFs hold more than one structure. vanlangevelde2000_CLC_MPM_bprime.cif
contains both CLC (a = 57.368 Å, the β′ template that matters) and MPM
(a = 76.21 Å). Taking block 0 silently is how you end up analysing the wrong
structure. list_datablocks exists to make that visible.
Polymorph fingerprints
Diagnostic subcell short spacings, Å:
Form | Lines | Signature |
α | 4.15 | single broad line, hexagonal subcell |
β′ | 4.34 / 4.11 + 3.85 / 3.80 | doublet, orthorhombic perpendicular |
β | 4.60, 3.85, 3.70 | strong 4.6 singlet, triclinic parallel |
Validated against both solved templates, which have known answers:
vanlangevelde2000_CLC_MPM_bprime.cifblock 0 → BETA_PRIME ✓vanlangevelde1999_PPP_beta.cif→ BETA ✓
And against synthetic patterns built from each reference line set → correct verdict in all three cases.
Known limits
Intensities are not Rietveld-grade. Tabulated form factors, Debye–Waller omitted. Peak positions are exact; relative intensities are good enough to rank lines, not to refine occupancies.
Peak picking is deliberately simple — local maxima with a flat-baseline prominence filter. For a weak or noisy scan, lower
min_prominenceand eyeball the picked list before trusting the verdict.spglib may disagree with the CIF's declared space group. It re-derives symmetry from coordinates, and published long-chain structures often carry disordered or split chain-end sites. Loosen
symprecbefore concluding anything.compare_structuresreturning False across different chain lengths is expected, not a bug — a C16 template will never match a C10/C12 fat.
Provenance note
This server found a real bug in R&D/modeling/baynutfat/structure.py: the
I-centring translation was being applied twice for β′-CLC (the CIF already lists
all 8 centred operators), leaving 4 duplicated carbons — 284 C where there
should be 280. Peak positions were unaffected, structure factors were slightly
off. Guarded now by acceptance test T10 and modeling/tests/crosscheck_pymatgen.py.
That is the argument for having a second implementation available.
Citing
If a result from this ends up in a publication, cite pymatgen — it does the real work:
S.P. Ong et al., Comput. Mater. Sci. 68, 314–319 (2013).
And if you rendered anything in VESTA alongside it, VESTA asks to be cited too:
K. Momma and F. Izumi, J. Appl. Crystallogr. 44, 1272–1276 (2011).
License
MIT — see LICENSE.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceEnables molecular visualization and analysis from SMILES strings using multiple rendering approaches (RDKit, NetworkX, Plotly, matplotlib), providing detailed molecular properties, validation, and batch processing capabilities for chemical structures.
- FlicenseNot gradedqualityDmaintenanceAn MCP server for deconstructing and analyzing Metal-Organic Framework (MOF) structures, including SBU and ligand identification, guest removal, and COF stacking analysis. It enables AI agents to perform automated chemical informatics and structural characterization on crystal structures via CIF files.1
- FlicenseNot gradedqualityBmaintenanceEnables querying and retrieving materials data from the Materials Project via MCP tools, supporting search, lookup, comparison, and export.1
- AlicenseBqualityBmaintenanceHeadless PyMOL for molecular visualization, GROMACS/LAMMPS MD trajectories, and clathrate-hydrate cage analysis: H-bond networks, F3/F4 order parameters, and TRACE cage perception + occupancy.32MIT
Related MCP Connectors
Materials MCP — computed (DFT) materials structures & thermodynamic properties.
Production-grade cryptography toolkit with 31 MCP tools for classical, PQC, and KMS workflows.
Crystallography Open Database (COD) MCP.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/rosettawang/crystallography-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server