Skip to main content
Glama

chemdraw-mcp

CI Release License: Apache-2.0

聊天 → 化学结构。 一个用于 Claude Desktop 的 MCP 服务器:你用自然语言描述一个分子、一个反应或一个实验结果,它就会绘制出图形——用 RDKit 在本地渲染的、可直接打印的 PNG/SVG,外加聊天内的交互式预览。"画阿司匹林" 已经是一个完整的命令。

专为那些花太多时间点击六边形的药学与化学学生而建。20 个工具覆盖了报告或幻灯片真正需要的内容:结构、反应方案、逐步机理、底物范围图、TLC 板、滴定曲线、示意光谱、物质数据表、Ph.Eur. 含量测定计算和 Anki 牌组。

你需要付出的成本:一条安装命令。Apache-2.0,无需 API 密钥,服务器无需注册,无需 ChemDraw 许可证——你只需要 Claude Desktop 和 uv,其他一切只需获取一次。渲染完全在你的机器上运行;只有名称解析和数据库查询会访问互联网。ChemDraw CDXML 是一个可选的额外格式,供希望在那里继续编辑的人使用,绝不是必需项。

示例输出

"画咖啡因" — 可直接打印的 PNG,由 generate_molecule 生成:

"展示乙醇与乙酸发生费歇尔酯化反应"generate_reaction 渲染反应方案,条件位于箭头上方,实时显示在聊天面板中:

"逐步展示费歇尔酯化反应机理"generate_mechanism 在交互式面板中渲染弯曲的电子流动箭头:

"制作我的 Suzuki 偶联的底物范围图:3a 92%,3b 88%(12 小时后),3c 64%(ee 94%,dr 10:1),3d 71%"generate_scope_table 将通式及其条件置于顶部,产物置于其下,共享相同的键长和相同的标题基线:

"绘制乙酸乙酯的 IR 光谱"generate_spectrum(绘制给定的峰,并遵循各类型的轴约定):

"我的酯化反应的 TLC:原料在 0.30,产物在 0.65,共点样显示两者,还有一些原料剩余"generate_tlc 绘制实验报告所需的板,以流动相和检测方式作为标题:

"以 3D 形式展示咖啡因"generate_3d 嵌入分子(ETKDG + 力场),并在聊天面板中打开一个可拖拽旋转的球棍模型查看器:

"布洛芬、萘普生和酮洛芬有什么区别?"compare_molecules 保持共享骨架(MCS)中性,并突出显示所有不同之处:

"磷酸与 NaOH 的滴定曲线,以酚酞为指示剂"generate_titration_curve 根据精确电荷平衡计算 pH,包含等当点、缓冲点(pH = pKa)和指示剂变色范围;其姊妹工具 generate_species_distribution 显示在每个 pH 下哪种质子化物种占主导:

"创建一个包含重要分子的 Anki 牌组并在 Anki 中打开"export_anki_deck 构建一个可直接导入的 .apkg 文件,其中嵌入了渲染的结构;借助可选的 AnkiConnect 插件,卡片会直接进入正在运行的 Anki,无需点击:

Related MCP server: ChemCP

功能

服务器暴露的全部 20 个工具。文件写入 ~/ChemDraw-Output/;每个绘图工具还会返回一个实时预览,用于聊天内面板。

结构与方案

  • generate_molecule — 名称/SMILES → 2D 结构,输出 PNG + SVG(可选 CDXML),包含性质、官能团检测和 Lipinski 五规则检查

  • batch_generate — 一次调用生成整个结构列表

  • generate_reaction — 反应物 + 产物 + 条件 → 反应方案,条件置于箭头上方

  • generate_mechanism — 逐步的弯曲箭头机理(SN1、SN2、费歇尔酯化)

  • generate_scope_table — 方法学文献中的底物范围图:通式及其条件位于顶部,其下是产物网格,每个产物带有标识符("1a")和产率("78%"),以及可选的 ee/dr/时间。所有结构共享一个键长,所有标题共享一条基线;无法解析的条目会被报告,而不是致命错误

  • compare_molecules — 2–4 个结构并排比较,突出差异,共享骨架(MCS)保持中性

  • generate_3d — 聊天面板中可旋转的 3D 球棍模型构象(ETKDGv3 + 力场),并支持 SDF 导出

实验结果与分析

  • generate_spectrum — 根据峰列表绘制示意光谱(IR、NIR、Raman、UV/Vis、荧光、ORD、CD、¹H/¹³C NMR、MS),遵循各类型的轴约定——绘制给定的峰,不预测光谱

  • generate_tlc — 根据 Rf 值绘制 TLC 板草图:底部为起始线,顶部为溶剂前沿,每个点样点(原料 / 反应 / 共点样)对应一条带标题的泳道,每个斑点标注 Rf 值,流动相和检测方式作为标题打印——实验报告所需的草图

  • generate_titration_curve — 根据精确电荷平衡计算 pH 与滴定剂体积的关系,包含等当点、缓冲点(pH = pKa)和指示剂变色范围

  • generate_species_distribution — 质子化物种分数随 pH 的变化(Henderson–Hasselbalch),并标记 pKa 交叉点

  • generate_calibration_curve — 通过你的标准品拟合最小二乘直线,并像用尺子一样从线上读出未知物。超出校准范围的样品会被标记为外推,而不是静默报告;检测限和定量限(DIN 32645)也一并提供,用于验证问题

实验台数学(数字 计算过程——实验报告两者都需要)

  • calculate_solution — 需要称量多少(m = c · V · M)、实际得到了什么、稀释(C₁V₁ = C₂V₂,并明确溶剂体积)、交叉混合法,以及包含水合物(如 CuSO₄·5H₂O)的摩尔质量。当计算出的称样量低于分析天平的分辨率时发出警告——此时稀释更大称样量才是正确做法

  • calculate_content — 按方案要求的含量测定:每次测量一个含量 → Grubbs 离群值检验 → 平均值、s、RSD → 与标示含量的 t 检验。滴定法(包括从参比滴定确定滴定度)和光度法,以及脂肪特性(酸值、皂化值、酯值和碘值)和卡尔·费休水分含量作为更多 method 选项

  • calculate_ph — 弱酸和强酸、弱碱和强碱、缓冲液,以及可称量质量的缓冲液配方。通过精确电荷平衡求解,并附上教科书近似值:当两者不一致时,近似值已失去其假设条件并会明确说明。10⁻⁸ M HCl 的 pH 为 6.98,而不是 8

物质数据(在线查询)

  • lookup — 以文本形式提供事实,每个问题一个 topicproperties(分子式、质量、CAS、InChIKey——默认)、safety(GHS 危险说明、象形图、信号词)、physical(熔点/沸点、溶解度、密度)、biochem(ChEBI 分类及相关的 UniProt 条目)、pathway(来自 KEGG 的代谢途径)

  • lookup_molecule_data — 将 PubChem + GHS 合并为一张数据表,用于聊天内面板,包含结构

  • predict_spectrum — 结构应显示哪些 IR 谱带(含强度和峰形)、测得的波数可能属于什么,以及预期有多少个 ¹H 信号及其积分比。确定性方法,因此它会说明自己不能做什么:不提供 ppm 化学位移,非对映异构质子计为一个信号

考试准备

  • export_anki_deck — 将闪卡制作为可直接导入的 Anki .apkg:结构↔名称练习(可选反向:一张笔记,两个方向)、填空/完形卡片、鉴别/检测反应、光谱谱带归属——嵌入渲染图像、每张卡片标签、Parent::Child 子牌组;重新导出牌组会更新卡片而不是重复。可选通过 AnkiConnect 插件直接送入正在运行的 Anki。传入 curated_deck_id 而不是你自己的卡片,可获得一个小型、经公式验证的入门牌组(经典镇痛药、Ph.Eur. 鉴别反应)

每个工具都属于五个领域之一——绘图、实验图形、查询、计算、Anki——并且每个工具都双向说明它 用于什么,因此"画阿司匹林"不会进入底物范围网格,"我的缓冲液 pH 是多少?"不会进入绘图工具。有一个工具位于它们之外:save_png 是面板导出按钮的服务器端,在你点击时被调用,绝不会单独调用。

两个可选的保险库工具(search_vaultread_vault_entry)仅在设置了 CHEMDRAW_VAULT_PATH 时出现;没有它,服务器恰好暴露上述 20 个工具。

绘图工具上的选项

  • formats — 默认为 ["png","svg"];对于 generate_moleculegenerate_reactionbatch_generate,在此基础上增加 "cdxml"。图形工具(generate_scope_tablegenerate_tlcgenerate_spectrum)会以明确的错误信息拒绝 CDXML,而不是写出无意义的内容。

  • abbreviate_groups=True — 将常见取代基绘制为化学家实际书写的标签:Ph、Bn、OMe、OAc、tBu、CO₂H、Boc、Ts、TBS。当单元格变小时非常值得使用——底物范围图保持可读,因为只有底物之间的差异部分才会被完整拼写出来。适用于 generate_moleculegenerate_reactiongenerate_scope_tablebatch_generate

  • render_style — 用命名外观取代一堆渲染参数,同样适用于上述四个工具。"compact"(细键、限制标签大小、紧凑边距)用于双栏布局中的小图;"presentation"(双倍键宽、最小字号、更多留白)用于讲座幻灯片;"grayscale" 用于黑白打印,否则红色和蓝色会变成两种无法区分的灰色。空值表示默认外观,不做任何改动。

  • annotate_stereo=True — 在 2D 绘图中标注 CIP 描述符(R/S、E/Z)(generate_moleculebatch_generate)。

安装

有三种安装方式,任选其一。方式 1 和 2 会以幂等方式合并到配置中,请先备份配置,并且不会改动你已配置的其他任何 MCP 服务器。完成后重启 Claude Desktop 并询问:"draw caffeine"

方式 1 — 克隆仓库(如果你想阅读或修改代码,推荐此方式;如缺少 uv 会自动安装,同步依赖,注册服务器):

git clone https://github.com/jurimaxam-dotcom/chemdraw-mcp.git
cd chemdraw-mcp && ./install.sh

方式 2 — 从 PyPI 安装,无需克隆(需要 uv):

uv tool install chemdraw-mcp
chemdraw-install

chemdraw-install 会为你写入 Claude Desktop 配置项,使用已安装启动器的绝对路径,并打印它注册的启动命令。

方式 3 — 手动编辑配置。 将以下内容添加到 claude_desktop_config.jsonmcpServers 下(macOS:~/Library/Application Support/Claude/claude_desktop_config.json):

"chemdraw-tool": {
  "command": "/opt/homebrew/bin/uvx",
  "args": ["chemdraw-mcp"]
}

导致所有手动安装失败的一个陷阱: Claude Desktop 不会从登录 shell 启动 MCP 服务器——它使用最小的 GUI PATH。裸写的 "uvx""uv" 在那里无法被解析,服务器会静默启动失败。务必把 which uvx你的机器上打印出的绝对路径填入 command。方式 1 和 2 会自动完成这一步。

可选附加组件

  • Java 运行时(例如 brew install openjdk)可让 OPSIN 离线解析系统 IUPAC 名称——包括那些任何数据库都未收录的名称。没有 Java 时,解析器会直接继续使用 PubChem/NCI 在线查询。

  • AnkiConnect 插件可让 export_anki_deck 将卡片直接推送到正在运行的 Anki 中。没有它,你会得到 .apkg 文件并自行导入。

  • ChemDraw(macOS)从来不是必需的:请求 formats=["cdxml"] 并自行打开文件,如果你想在那里继续编辑的话。

有问题?运行诊断工具

chemdraw-doctor                            # after "uv tool install chemdraw-mcp"
uv run chemdraw-doctor                     # in the cloned repo
uvx --from chemdraw-mcp chemdraw-doctor    # without installing anything

这是首先应该尝试的方法——它能把"服务器毫无反应"变成具体的病因。它检查六项会让服务器在聊天中看起来"死掉"的内容(RDKit 渲染、Java/OPSIN 运行时、uv 路径、Claude Desktop 配置项、名称数据库、输出目录),并为每个问题打印出确切的修复命令。区分三个级别:[OK][LIMITED](可用但受限)和 [FAIL](已损坏);[NOTE] 标记不适用的情况,例如未安装 Claude Desktop。只要服务器可用,退出码就保持为 0,因此可以在脚本中运行。(从 PyPI 安装时,uv 和 Claude Desktop 检查会报告 [NOTE]——它们与仓库安装器相关。)

局限性

事先说明,以免报告中出现意外:

  • Java 是可选的,但这有代价。 没有 JRE 时,OPSIN 会被跳过,名称通过 PubChem/NCI 在线解析——因此名称查询需要互联网连接,且仅适用于这些数据库收录的名称。SMILES 输入从不接触网络。

  • 谱图是示意性的。 generate_spectrum 绘制交给它的峰,并采用与谱图类型匹配的正确坐标轴约定。它不测量任何东西,也不预测任何东西——如果峰值的来源是聊天对话而非你的仪器,在写入报告之前请先验证。

  • TLC 强度只是绘图提示。 可选的 intensity(0…1)使点在草图上变得更淡。它不是光密度测定,不携带任何定量含义。

  • CDXML 是旁路。 它从 RDKit 分子写出并通过往返验证,但 PNG/SVG 是主要输出,也是像素测试覆盖的对象。CDXML 默认关闭,且仅限于结构和反应方案——TLC 板、底物范围图和谱图会拒绝它。

  • 3D 只是一个构象。 generate_3d 使用 ETKDGv3 嵌入,并用 MMFF 优化(UFF 作为回退)。这是用于观察的合理几何结构,不是构象搜索,也不是能量声明。

  • ChemDraw 桥接仅限 macOS,且需要本地安装 ChemDraw。其他一切功能都不依赖它。

工作原理

name / SMILES
   │
   ▼
resolver ──► OPSIN (systematic IUPAC names, offline) ──► PubChem / NCI (names)  ·  direct parse (SMILES)
   │
   ▼
RDKit 2D coordinates ──► validation (sanity, round-trip)
   │
   ├──► image_export   → PNG + SVG files          (primary, offline)
   ├──► svg_renderer   → interactive chat preview (MCP App resource)
   └──► cdxml_writer   → ChemDraw CDXML           (optional, on request)

开发

Python 3.11+,包管理器 uv

uv sync                      # backend deps
cd chemdraw_tool/ui && npm install && npx playwright install chromium  # frontend, once
./test.sh                    # the gate: pytest + JS unit + headless-Chromium e2e

600+ 个测试,采用测试先行编写。端到端测试在无头 Chromium 中栅格化真实的 RDKit SVG,并与精确的像素快照进行比较——导出路径和聊天内预览遵循相同的绘图常量。

许可证

Apache-2.0 — 参见 LICENSE。版权所有 2026 jurimaxam-dotcom。

免责声明: 这是一个非官方的独立项目,与 Revvity 无关联,也未获得其认可。ChemDraw 是 Revvity Signals Software, Inc. 的商标。本工具不包含也不要求 ChemDraw;它可以可选地导出开放 CDXML 格式的文件。

Maintenance

ActivityMaintained
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    C
    quality
    B
    maintenance
    Enables chemical reaction predictions (retrosynthesis, product, reagents), molecule validation, and property calculation through the Model Context Protocol, integrating with AI assistants.
    5
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    Renders interactive 2D molecular structure diagrams from SMILES notation and computes molecular properties like molecular weight, LogP, and TPSA, directly in the chat.
    1
    55
    1
    ISC
  • F
    license
    Not graded
    quality
    C
    maintenance
    Provides in-process RDKit cheminformatics operations — descriptors, fingerprints, similarity and substructure search, reaction enumeration, standardization, and 3D conformer generation — for AI agents.
    -