Skip to main content
Glama
rosettawang

crystallography-mcp

by rosettawang

結晶学MCPサーバー

CIF検査、d間隔、粉末パターン、トリアシルグリセロール多形フィンガープリント。 pymatgen をバックエンドに使用。

2026年8月21日、Laurelateベイナッツ脂肪の研究用に構築。ただし、ドメイン汎用。

なぜVESTA MCPではなくこれなのか

VESTAにはスクリプトインターフェースがない — 文書化されたコマンドライン引数も、バッチモードも、ヘッドレス操作もない。VESTAをMCPで操作するとなると、open -a VESTA file.cif を実行してウィンドウをスクリーンショットする程度しかできない。pymatgenは実際の科学計算を公開しているので、こちらをラップしている。

VESTAは人間向けのビューアとして使うのが良い。それは本当に得意である。

Related MCP server: mofstructure-mcp

セットアップ

Python 3.10以上が必要(現在のpymatgenの要件)で、専用のvenvを使用:

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

Claude Codeにユーザースコープで登録すると、すべてのセッションで読み込まれる:

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

確認と削除:

claude mcp list
claude mcp remove -s user crystallography

MCPクライアントならどれでも動作する。Claude Code専用ではない — プレーンなstdioサーバーなので、 クライアントは <venv python> server.py を指定すればよい。

ツール

ツール

機能

list_datablocks

CIF内の構造を列挙する。未知のファイルでは最初にこれを呼ぶこと。

read_structure

セル、体積、組成、密度、spglib空間群

d_spacings

特定の [h,k,l] 反射に対するd値と2θ

powder_pattern

hkl指数と相対強度を含む完全な計算パターン

fingerprint_structure

構造の短い間隔からのα / β′ / β判定

fingerprint_pattern

実験スキャン(リストまたは2列ファイル)からのα / β′ / β判定

compare_structures

pymatgen StructureMatcher フィット + RMS変位

マルチデータブロックの罠

一部のCIFには複数の構造が含まれている。vanlangevelde2000_CLC_MPM_bprime.cif には CLCa = 57.368 Å、重要なβ′テンプレート)とMPMa = 76.21 Å)の両方が含まれている。 ブロック0を黙って使うと、間違った構造を解析することになる。 list_datablocks を使えば、それが可視化される。

多形フィンガープリント

診断用サブセルの短い間隔、Å:

フォーム

ライン

シグネチャ

α

4.15

単一のブロードなライン、六方サブセル

β′

4.34 / 4.11 + 3.85 / 3.80

ダブレット、直方晶、垂直

β

4.60, 3.85, 3.70

強い4.6シングレット、三斜晶、平行

両方の既知の解答を持つ解決済みテンプレートに対して検証済み:

  • vanlangevelde2000_CLC_MPM_bprime.cif ブロック0 → BETA_PRIME

  • vanlangevelde1999_PPP_beta.cifBETA

さらに、各参照ラインセットから合成したパターンに対しても検証済み → 3つのケースすべてで 正しい判定。

既知の制限

  • 強度はリートベルト解析の品質ではない。 表形式の原子散乱因子、デバイ–ワラー因子は 省略。ピーク位置は正確だが、相対強度はラインの順位付けには十分でも、 占有率の精密化には不十分。

  • ピークピッキングは意図的にシンプル — フラットなベースラインに対する極大値検出。 弱いまたはノイズの多いスキャンでは、min_prominence を下げて、判定を信頼する前に ピックされたリストを目視確認すること。

  • spglibはCIFの宣言された空間群と異なる場合がある。 対称性は座標から再導出される。 公開されている長鎖構造には、しばしば無秩序または分割された鎖末端サイトが含まれる。 結論を出す前に symprec を緩めること。

  • compare_structures が異なる鎖長でFalseを返すのは仕様であり、バグではない — C16テンプレートがC10/C12脂肪と一致することは決してない。

由来メモ

このサーバーは、R&D/modeling/baynutfat/structure.py の実際のバグを発見した: β′-CLCに対してI格子センタリングの並進が2回適用されていた(CIFにはすでに 8つのセンタリング演算子がすべてリストされている)。その結果、4つの炭素が重複していた — 284個のCがあるべきところが280個になっていた。ピーク位置は影響を受けなかったが、 構造因子はわずかにずれていた。現在は受け入れテストT10と modeling/tests/crosscheck_pymatgen.py によって保護されている。

これが、第二の実装を持つことの意義である。

引用

この結果を出版物で使用する場合は、pymatgenを引用すること — 実際の 計算はpymatgenが行っている:

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

また、VESTAでレンダリングした画像を使用する場合は、VESTAも引用すること:

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

ライセンス

MIT — 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