mcpField
T
tooluniverse-inorganic-physical-chemistry

tooluniverse-inorganic-physical-chemistry

github.com/mims-harvard其他1.8k257 次安装3 天前更新
代码仓库

关于 tooluniverse-inorganic-physical-chemistry

面向化学研究与问答的 ToolUniverse 无机和物理化学技能,结合数据库查询与定量计算。内容涵盖晶体结构验证和检索、平衡计算及多类化学问题的推理指南。

主要功能

  1. 01晶胞计算与结构验证
  2. 02COD 实验结构检索
  3. 03溶解度与平衡求解
  4. 04成键和对称性分析指南
  5. 05光谱与热力学计算方法

适用场景

  1. 01验证给定的晶胞和密度数据
  2. 02查找已收录结构及文献信息
  3. 03计算含同离子或络合物的溶解度
  4. 04分析分子对称性与光学活性

MCP 相关

列出 CrystalStructure_validate 和 EquilibriumSolver_calculate 等 MCP/SDK 工具,并说明可用于检索晶体结构和化学数据。

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/mims-harvard/tooluniverse --skill tooluniverse-inorganic-physical-chemistry

安装后在 Claude Code 中输入/tooluniverse-inorganic-physical-chemistry确认已加载。

附带文件scripts/equilibrium_solver.py

详细介绍

无机与物理化学

推理策略

1. 晶体结构问题

给定晶体结构数据时,务必进行计算,不要猜测:

  1. 计算晶系对应的晶胞体积:

    • 立方:V = a^3
    • 四方:V = a^2 * c
    • 正交:V = a * b * c
    • 单斜:V = a * b * c * sin(beta)
    • 三斜:V = abc * sqrt(1 - cos^2(alpha) - cos^2(beta) - cos^2(gamma) + 2*cos(alpha)*cos(beta)*cos(gamma))
    • 六方:V = a^2 * c * sqrt(3)/2
  2. 验证密度:d = (Z * M) / (V * Na * 1e-24),其中 V 的单位为 ų,M 的单位为 g/mol,Na = 6.022e23

  3. 首选:使用 CrystalStructure_validate 工具(通过 MCP/SDK)。备用方案:python3 skills/tooluniverse-organic-chemistry/scripts/crystal_validator.py --a X --b Y --c Z --alpha A --beta B --gamma G --Z N --MW M --density D

  4. 批量比较时(找出错误的数据集):将数据集保存为 JSON 数组,并使用 --datasets path/to/datasets.json

  5. 需要真实的实验晶体数据时(而非验证用户提供的数字),使用 Crystallography Open Database(COD)工具——见下文。CrystalStructure_validate 用于检查已有数字的内部一致性;COD 用于查询实际存档的结构。

查询真实晶体结构(COD)

COD_search_structures 和 COD_get_structure 可查询 Crystallography Open Database(包含 500,000 多种通过实验测定的结构——无机、有机、矿物和金属有机结构)。当给出化合物/矿物名称、化学式、元素或空间群,并且需要真实的晶胞参数、空间群和出版信息,而非根据给定数字进行计算时,请使用这些工具。

COD_search_structures({"el1":"Cu","el2":"O","nel":"2","sgNumber":"225","results":5})   # binary Cu-O compounds, FCC space group
COD_search_structures({"mineral":"calcite","results":5})
COD_search_structures({"text":"aspirin","results":5})   # free-text also matches organic/pharmaceutical crystals, not just inorganic
COD_get_structure({"id":"1011240"})   # full detail (a,b,c,alpha,beta,gamma,vol,Z,sg,sgNumber,doi,...) for one COD entry

已在线验证:COD_search_structures({"el1":"Si","el2":"O","nel":"2","results":10}) 会返回真实的 SiO2 多晶型条目(例如 COD ID 1000007,a=9.7397,b=8.9174,c=5.2503 Å);COD_get_structure({"id":"1515581"}) 会返回真实的阿司匹林晶体数据(P 1 21/c 1,sgNumber 14,晶胞体积 825.44 ų,温度 123 K)。工作流程:先搜索(按化学式/元素/矿物/文本)以查找候选 COD ID,然后对特定 ID 调用 COD_get_structure,获取包含 DOI/期刊/作者信息的完整记录。query/text、spacegroup/sg 和 max_results/results 均为别名对,可任选其一。

注意:某些搜索条件组合确实会返回零条结果(已在线验证)——若返回空的 data: [] 且 count: 0,表示 COD 中没有匹配的结构,并非查询出错;在断定该化合物不在 COD 中之前,请尝试放宽筛选条件(移除 sgNumber、扩大 nel 范围)。

2. 成键与共价性问题

关键推理模式:

  • 共价性 = 金属与配体之间的轨道混合。重叠越大,共价性越强。
  • 镧系/锕系:Ce(IV) 的 4f 轨道通常比 Ce(III) 表现出更强的共价混合——较高氧化态下更收缩的 4f 轨道会增强其与配体轨道的重叠
  • 但是:共价性增强并不总意味着键更强——这取决于具体的轨道相互作用
  • d 区与 f 区:d 轨道的径向延展性更强,因此比 f 轨道形成更强的共价键
  • 霞石效应:配合物中的电子间排斥减弱,表明存在共价性。效应越大,共价性越强。
3. 稀有气体化学
  • Xe 化合物:XeF2(线形)、XeF4(平面正方形)、XeF6(畸变八面体)
  • XeF4 的合成:需要在较高温度(400°C)和压力下使 Xe 与 F2 反应。使用特定方法(紫外光解、电放电)也可在较低温度下制得
  • 关键:温度阈值会影响合成效率。务必查阅,不要猜测——检索文献中的具体合成条件。
4. 对称性与点群
  1. 确定分子形状
  2. 找出对称元素:C_n 轴、镜面(σ_h、σ_v、σ_d)、反演中心(i)、非正规旋转(S_n)
  3. 使用 python3 skills/tooluniverse-organic-chemistry/scripts/chemistry_facts.py point_groups 查询点群
  4. 光学活性:要求不存在非正规旋转轴(S_n,包括 σ = S_1 和 i = S_2)。手性点群:C_1、C_n、D_n、T、O、I
  5. 具有光学活性的晶类:缺少镜面和反演中心的压电非中心对称晶类
5. 热力学与动力学

计算,不要估算——编写 Python 代码计算:

  • 吉布斯自由能:ΔG = ΔH - TΔS
  • 平衡常数:K = exp(-ΔG/RT)
  • 阿伦尼乌斯方程:k = A * exp(-Ea/RT)
  • 能斯特方程:E = E° - (RT/nF) * ln(Q)
  • 克劳修斯-克拉佩龙方程:ln(P2/P1) = -ΔH_vap/R * (1/T2 - 1/T1)
6. 溶解度与平衡计算

首选:使用 EquilibriumSolver_calculate 工具(通过 MCP/SDK),并提供 type、ksp、stoich 等参数。备用方案:直接运行 equilibrium_solver.py。

# Simple Ksp: MaXb(s) <-> aM + bX
python3 skills/tooluniverse-inorganic-physical-chemistry/scripts/equilibrium_solver.py \
  --type ksp_simple --ksp 5.3e-27 --stoich 1:3

# Ksp + complex formation (e.g., Al(OH)3 in water with Al(OH)4- complex)
python3 skills/tooluniverse-inorganic-physical-chemistry/scripts/equilibrium_solver.py \
  --type ksp_kf --ksp 5.3e-27 --kf 1.1e33 --stoich 1:3

# Common ion effect (e.g., AgCl in 0.1M NaCl)
python3 skills/tooluniverse-inorganic-physical-chemistry/scripts/equilibrium_solver.py \
  --type common_ion --ksp 1.77e-10 --stoich 1:1 --common-ion 0.1

要点:

  • ksp_kf 模式使用数值方法(牛顿法)求解完整的电荷平衡系统——同时考虑游离阳离子、络合阴离子和 OH-/H+
  • 对于 MX_b + X- <-> MX_(b+1)-,K_overall = Ksp * Kf
  • common_ion 模式使用二分法,结合额外离子浓度求解精确的 Ksp 表达式
  • 始终指定与盐化学式相符的 --stoich a:b(例如,Al(OH)3 用 1:3,CaF2 用 1:2,AgCl 用 1:1)
7. 光谱解析
  • 紫外-可见光谱:d-d 跃迁(较弱,Laporte 禁阻)、LMCT/MLCT(较强)、π→π*(有机物)
  • 红外光谱:官能团区(4000-1500 cm⁻¹)、指纹区(1500-400 cm⁻¹)
  • NMR:化学位移反映电子环境。计算峰数时,找出对称等价的质子。
  • 计算峰数:绘制结构,找出所有对称操作,将等价的 H 原子分组。使用 python3 skills/tooluniverse-organic-chemistry/scripts/chemistry_facts.py 查询参考数据。

可用工具

工具用途
PubChem_get_CID_by_compound_name根据名称获取化合物 CID
PubChem_get_compound_properties_by_CID根据 CID 获取详细化合物数据
ChEMBL_search_molecules查询生物活性化合物
PubMed_search_articles查询合成条件和性质相关文献
CrystalStructure_validate 工具(或备用方案 crystal_validator.py)验证晶体结构数据的一致性
EquilibriumSolver_calculate 工具(或备用方案 equilibrium_solver.py)计算 Ksp、络合形成和同离子溶解度
COD_search_structures / COD_get_structure从 Crystallography Open Database 查询实际存档的晶体结构(晶胞、空间群、DOI)

查询,不要猜测

  • 稀有气体化合物的合成条件因方法而异——回答前先查阅文献
  • 晶体结构参数必须通过计算得出,不能估算
  • 成键描述(共价或离子)需要考虑具体的轨道因素——不要将一个体系的结论泛化到其他体系

评论

支持 Markdown