mcp-molecules 是面向人工智能的化学工具集,强调可信、离线、确定性计算,并由权威数据源(如 NIST 原子量与同位素组成数据库)支撑。它作为 MCP 服务器运行,让语言模型在回答化学问题时不必依赖记忆,而是通过实际计算获得可信答案。
主要能力
molecular_weight_calculator(分子量计算器):根据化学式计算分子量(摩尔质量)。参数包括:formula(元素符号、整数倍率、任意嵌套括号以及同位素标签 D 和 T,例如 H2O、C6H12O6、Ca(OH)2、Fe2(SO4)3、((CH3)2CH)2、D2O、Tc);unit(单位,默认 g/mol,可选 kg/mol、Da、u、kDa);uncertainty(按 NIST 各元素标准不确定度进行平方和传播,报告 value ± sigma);monoisotopic(使用每种元素最丰同位素,得到质谱单同位素质量,而非标准原子量);composition(返回各元素的质量百分比组成)。
isotope_distribution(同位素分布):计算某化学式的天然同位素分布模式,即质谱仪会看到的峰,给出每个峰的质量、m/z 和相对强度,以及单同位素质量和平均质量。参数包括:formula(语法同分子量计算器);charge(默认 0 表示中性质量,非零 n 报告 [M+nH] / [M-nH] 离子的 m/z);threshold(丢弃低于基峰该百分比的峰,默认 0.1);limit(最多返回的峰数,按强度从高到低,默认 10);grouping(unit 默认折叠为整数标称质量;exact 保留每个解析出的同位素体)。
find_chemical_compound(查找化合物):按名称或分子式查找化合物。先搜索内置离线数据库(PubChem 子集)和可写用户缓存,然后(除非禁用)使用在线回退(PubChem、Wikidata,以及在设置了 API key 时使用 EPA CompTox),并缓存获取结果。参数包括:query(名称如 aspirin、acetylsalicylic acid,或分子式如 H2O、C9H8O4;分子式按 Hill 系统匹配);by(默认 auto,猜测名称或分子式,未命中时回退到另一方向;name 或 formula 可固定方向);limit(按分子式查找时返回的最大化合物数,同分异构体共享同一分子式,首选名称在前)。在线回退默认开启;将 MCP_MOLECULES_ONLINE 设为假值(0 / false / no / off)可完全离线查询。EPA CompTox 数据源还需要在 MCP_MOLECULES_EPA_API_KEY 中提供免费的 CCTE API key,否则跳过该来源。
info:服务器可用性 / 版本 / 环境健康检查。
可查询的示例问题包括:一摩尔葡萄糖有多重(解析名称到 C6H12O6 并计算摩尔质量);Fe2(SO4)3 中铁占质量的比例(各元素百分比组成);咖啡因的摩尔质量及其不确定度(传播 NIST 标准不确定度);氯仿的质谱是什么样(天然氯同位素模式,M、M+2、M+4 等峰);咖啡因的 [M+H]⁺ m/z(质子化离子质量);哪个化合物分子式为 C9H8O4(分子式到名称,其异构体中的阿司匹林);C2H6O 的异构体有哪些(一个分子式对应多个名称,如乙醇和二甲醚)。
使用方式与配置
元素质量来自 NIST 原子量与同位素组成数据库(https://physics.nist.gov/cgi-bin/Compositions/stand_alone.pl),属公有领域,数据以 mcp_molecules/data/nist_atomic_weights.json 捆绑在包中。可通过 Claude Code 注册。仓库 .githooks/ 中的 pre-commit 钩子会自动格式化和检查暂存的 Python 文件,需在每个克隆中启用一次。项目采用 GPL-3.0-or-later 许可证,捆绑的 NIST 数据为公有领域。
适用场景与限制
适用于需要可信化学计算的 AI 场景,如分子量、不确定度、同位素分布和化合物名称/分子式查询。其优势在于离线、确定性计算并基于权威数据。限制方面,更多面向分子的工具仍在计划中;在线回退默认开启,若需完全离线需显式禁用;EPA CompTox 来源需要额外 API key。项目鼓励赞助以维持发展。