crystallography-mcp
Crystallography MCP server
Просмотр CIF, межплоскостные расстояния, порошковые дифрактограммы и идентификация полиморфов триацилглицеринов на основе pymatgen.
Создан 21 августа 2026 года для работы с лаурелатовым ореховым жиром, но применим в любой области.
Почему это, а не VESTA MCP
У VESTA нет скриптового интерфейса — ни документированных аргументов командной строки, ни пакетного режима, ни макросов, ни работы без графического интерфейса. MCP-обёртка над ним могла бы только запускать open -a VESTA file.cif и делать скриншоты окна. pymatgen предоставляет доступ к реальной науке, поэтому именно его оборачивает этот сервер.
Оставьте VESTA для визуального просмотра человеком. В этом он действительно хорош.
Related MCP server: mofstructure-mcp
Установка
Требуется Python ≥3.10 (текущая версия pymatgen требует именно его) и собственное виртуальное окружение:
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.
Инструменты
Инструмент | Что делает |
| Перечисляет структуры внутри CIF. Вызывайте первым на незнакомом файле. |
| Ячейка, объём, состав, плотность, пространственная группа spglib |
| d и 2θ для конкретных отражений |
| Полная расчётная дифрактерограмма с индексами hkl и относительными интенсивностями |
| Вердикт α / β′ / β по структурным коротким межплоскостным расстояниям |
| Вердикт α / β′ / β по экспериментальной дифрактерограмме (список или двухколоночный файл) |
| Сопоставление pymatgen |
Ловушка с несколькими датаблоками
Некоторые депонированные CIF-файлы содержат более одной структуры. vanlangevelde2000_CLC_MPM_bprime.cif
содержит обе структуры: CLC (a = 57.368 Å, шаблон β′, который важен)
и MPM (a = 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.cif→ BETA ✓
А также на синтетических дифрактерограммах, построенных из каждого набора эталонных линий → верный вердикт во всех трёх случаях.
Известные ограничения
Интенсивности не уровня Ритвельда. Табулированные форм-факторы, фактор Дебая–Уоллера опущен. Положения пиков точны; относительные интенсивности достаточны для ранжирования линий, но не для уточнения заселённостей.
Поиск пиков намеренно прост — локальные максимумы с фильтром значимости на плоском фоне. Для слабой или зашумлённой дифрактерограммы уменьшите
min_prominenceи просмотрите найденный список перед тем, как доверять вердикту.spglib может не совпадать с заявленной в CIF пространственной группой. Он заново выводит симметрию из координат, а в опубликованных структурах с длинными цепями часто есть разупорядоченные или расщеплённые концевые сайты. Ослабьте
symprecперед выводами.compare_structures, возвращающий False для разных длин цепей, — это ожидаемо, а не ошибка — шаблон C16 никогда не совпадёт с жиром C10/C12.
Примечание о происхождении
Этот сервер нашёл реальную ошибку в R&D/modeling/baynutfat/structure.py:
трансляция I-центрирования применялась дважды для β′-CLC (в CIF уже перечислены
все 8 центрированных операторов), что оставляло 4 дублированных атома углерода — 284 C вместо 280. Положения пиков не пострадали, структурные факторы были слегка искажены. Теперь это защищено приёмочным тестом T10 и modeling/tests/crosscheck_pymatgen.py.
Это аргумент в пользу наличия второй реализации.
Цитирование
Если результат этого сервера попадёт в публикацию, цитируйте 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.
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