Skip to main content
Glama
rosettawang

crystallography-mcp

by rosettawang

Crystallography MCP server

CIF-Inspektion, d-Abstände, Pulverdiagramme und Triacylglycerin-Polymorph-Fingerprinting, unterstützt durch pymatgen.

Erstellt am 21. August 2026 für die Laurelate-Bay-Nuss-Fett-Arbeit, aber domänenübergreifend einsetzbar.

Warum dies und nicht ein VESTA-MCP

VESTA hat keine Skriptschnittstelle — keine dokumentierten Befehlszeilenargumente, keinen Batch-Modus, keine Makros, keinen Headless-Betrieb. Ein MCP darüber könnte nur open -a VESTA file.cif ausführen und einen Screenshot des Fensters machen. pymatgen legt die eigentliche Wissenschaft offen, und genau das wird hier gekapselt.

Behalte VESTA als menschlichen Viewer. Dafür ist es wirklich gut.

Related MCP server: mofstructure-mcp

Einrichtung

Benötigt Python ≥3.10 (die aktuelle pymatgen-Version verlangt es) und eine eigene venv:

python3 -m venv ~/.venvs/crystal
~/.venvs/crystal/bin/python -m pip install -r requirements.txt

Bei Claude Code auf Benutzerebene registrieren, damit es in jeder Sitzung geladen wird:

claude mcp add -s user crystallography -- \
  "$HOME/.venvs/crystal/bin/python" \
  "$HOME/Documents/crystallography-mcp/server.py"

Prüfen und entfernen:

claude mcp list
claude mcp remove -s user crystallography

Es funktioniert mit jedem MCP-Client, nicht nur mit Claude Code — es ist ein einfacher stdio-Server, also richte deinen Client auf <venv python> server.py aus.

Werkzeuge

Werkzeug

Was es tut

list_datablocks

Die Strukturen in einer CIF auflisten. Bei unbekannten Dateien zuerst aufrufen.

read_structure

Zelle, Volumen, Zusammensetzung, Dichte, spglib-Raumgruppe

d_spacings

d und 2θ für bestimmte [h,k,l]-Reflexe

powder_pattern

Vollständiges berechnetes Muster mit hkl-Indizes und relativen Intensitäten

fingerprint_structure

α / β′ / β-Urteil aus den Kurzabständen einer Struktur

fingerprint_pattern

α / β′ / β-Urteil aus einem experimentellen Scan (Liste oder zweispaltige Datei)

compare_structures

pymatgen-StructureMatcher-Fit + RMS-Verschiebung

Die Multi-Datablock-Falle

Einige hinterlegte CIFs enthalten mehr als eine Struktur. vanlangevelde2000_CLC_MPM_bprime.cif enthält sowohl CLC (a = 57,368 Å, die β′-Vorlage, die zählt) als auch MPM (a = 76,21 Å). Block 0 stillschweigend zu nehmen, ist der Weg, auf dem man am Ende die falsche Struktur analysiert. list_datablocks existiert, um das sichtbar zu machen.

Polymorph-Fingerabdrücke

Diagnostische Subzellen-Kurzabstände, Å:

Form

Linien

Signatur

α

4,15

einzelne breite Linie, hexagonale Subzelle

β′

4,34 / 4,11 + 3,85 / 3,80

Dublett, orthorhombisch senkrecht

β

4,60, 3,85, 3,70

starkes 4,6-Singulett, triklin parallel

Validierte gegen beide gelösten Vorlagen, die bekannte Antworten haben:

  • vanlangevelde2000_CLC_MPM_bprime.cif Block 0 → BETA_PRIME

  • vanlangevelde1999_PPP_beta.cifBETA

Und gegen synthetische Muster, die aus jedem Referenzliniensatz erstellt wurden → korrektes Urteil in allen drei Fällen.

Bekannte Grenzen

  • Intensitäten sind nicht Rietveld-tauglich. Tabellierte Formfaktoren, Debye–Waller weggelassen. Peak-Positionen sind exakt; relative Intensitäten reichen aus, um Linien zu ordnen, nicht um Besetzungen zu verfeinern.

  • Peak-Erkennung ist bewusst einfach — lokale Maxima mit einem Flachbasis-Prominenzfilter. Bei einem schwachen oder verrauschten Scan min_prominence senken und die erkannte Liste prüfen, bevor man dem Urteil vertraut.

  • spglib kann mit der deklarierten Raumgruppe der CIF uneins sein. Es leitet die Symmetrie aus Koordinaten neu ab, und veröffentlichte Langkettenstrukturen tragen oft fehlgeordnete oder gespaltene Kettenendpositionen. symprec lockern, bevor man Schlüsse zieht.

  • compare_structures mit False über verschiedene Kettenlängen hinweg ist erwartet, kein Fehler — eine C16-Vorlage wird nie zu einem C10/C12-Fett passen.

Herkunftshinweis

Dieser Server fand einen echten Fehler in R&D/modeling/baynutfat/structure.py: die I-Zentrierungs-Translation wurde für β′-CLC doppelt angewendet (die CIF listet bereits alle 8 zentrierten Operatoren), wodurch 4 Kohlenstoffe dupliziert wurden — 284 C, wo 280 sein sollten. Peak-Positionen waren nicht betroffen, Strukturfaktoren waren leicht daneben. Jetzt abgesichert durch Akzeptanztest T10 und modeling/tests/crosscheck_pymatgen.py.

Das ist das Argument dafür, eine zweite Implementierung verfügbar zu haben.

Zitieren

Wenn ein Ergebnis daraus in einer Publikation landet, zitiere pymatgen — es leistet die eigentliche Arbeit:

S.P. Ong et al., Comput. Mater. Sci. 68, 314–319 (2013).

Und wenn du etwas in VESTA daneben gerendert hast, bittet VESTA ebenfalls um Zitierung:

K. Momma and F. Izumi, J. Appl. Crystallogr. 44, 1272–1276 (2011).

Lizenz

MIT — siehe LICENSE.

A
license - permissive license
Not graded
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

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

  • F
    license
    Not graded
    quality
    D
    maintenance
    An 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
  • A
    license
    B
    quality
    B
    maintenance
    Headless 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.
    32
    MIT

View all related MCP servers

Related MCP Connectors

View all MCP Connectors

Latest Blog Posts

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