关于 ChemDraw MCP
ChemDraw MCP 是实验性的原生桥接工具,可让 MCP 客户端或终端在 Apple Silicon Mac 上使用已授权的 ChemDraw。它支持创建和检查可编辑化学图形,并提供原生渲染与导出工作流。
主要功能
- 01创建和检查原生 ChemDraw 图形
- 02构建对齐的分子表格与反应
- 03读取并操作已打开的文档
- 04按一致化学比例导出
- 05可选绘图与验证工作流
适用场景
- 01在现有 ChemDraw 文档中创建结构
- 02排列化合物范围或明确指定的反应行
- 03将图形导出为 PDF、SVG 或 PNG
MCP 相关
该服务向 MCP 客户端提供原生 ChemDraw 文档、绘图、反应和导出工具。Core、drawing 和 full 配置提供不同工具集;自然语言解释由连接的客户端完成。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
macOS 版 ChemDraw MCP
通过助手或终端创建原生、可编辑的化学结构图。 读取未保存的 ChemDraw 编辑内容,在同一文档中创建对齐的分子表格, 并以统一的化学比例导出图形。
下载 Mac 版(Apple Silicon) · 发行说明 · 终端安装 · 示例和自定义 · 架构

一次安装
| 方式 | 从这里开始 |
|---|---|
| Mac 图形化安装程序 | 下载 Apple Silicon DMG,打开 ChemDraw MCP,然后选择已安装的 ChemDraw 应用和本地助手。应用旁的 Start Here.html 会通过带编号的截图展示 macOS 初次打开的步骤。已包含 Python 和依赖项。 |
| 终端 / Git | 克隆此仓库并运行 ./install.sh。安装程序会安装锁定版本的依赖项,并自动启动带动画的终端设置流程。需要 Git 和 uv。命令 |
| MCP bundle | .mcpb 适用于导入 MCP bundle 的客户端。请在此选项和 DMG 之间二选一,不要同时安装。 |
所有方式都使用相同的原生桥接。无需为每个模型单独安装。 其他本地 stdio MCP 客户端也可以使用该服务可执行文件; 但仍需测试每个客户端的权限和工具行为。图形化辅助工具提供 Claude Desktop 和 Codex 本地客户端配置。 它不会将远程连接器安装到网页版 ChatGPT。
终端快速开始
git clone https://github.com/glebo309/chemdraw-mcp-macos.git
cd chemdraw-mcp-macos
./install.sh
安装依赖项后会自动开始设置。若要连接助手,
请改用 ./install.sh --client claude --client codex。仅克隆 Git 仓库不会
执行任何操作。检出仓库时使用 uv run;不会假定你有全局 shell 命令或
已修改 PATH。如需在设置后进行首次绘图:
uv run --locked --extra chemistry chemdraw-mac first-run
不想使用终端?下载 Mac DMG, 打开后再打开 ChemDraw MCP。图形化辅助工具已包含 Python 和 依赖项,会指导你完成 ChemDraw 插件步骤,并连接选定的本地客户端。 它不会安装 ChemDraw,也不会为 ChemDraw 授权。
图形化安装也包含终端访问功能。完成后,打开一个新的
macOS zsh 终端窗口,并运行 chemdraw-mac --help 或 chemdraw-mac first-run。
无需再次下载,也无需安装 Python 或 uv。添加 PATH 条目之前,
设置流程会保留并备份现有 shell 设置。
要更新?无需卸载。 保存工作后,退出已连接的助手和 ChemDraw, 运行新版 DMG 的设置程序,进行测试并完成。现有插件会就地刷新。 设置流程会自动在 Mac 上保存诊断信息。 更新说明。
实验候选版本:0.10.0rc22。 需要你自行拥有 ChemDraw 授权,并登录 Mac 桌面。 原生测试已在 Apple Silicon、macOS 15.6 和 ChemDraw 23.0.1.11 上运行。Mac 应用采用临时签名,未使用 Developer ID 签名,也未经过 公证。独立 Mac 验收仍在进行中。原生连接一次只能由一个助手占用。 兼容性 · 图形化设置 · 更新
告诉助手你想要的结果
在我当前的 ChemDraw 文档中绘制咖啡因。 已审核的捆绑名称(目前为 caffeine/caffein)可在本地解析,不依赖 PubChem 是否可用。通过
chemdraw_draw提供的其他名称/CAS 会在无需再次确认的情况下查询 PubChem。 说“离线”或“无网络”即可禁用提供方查询; 此时助手必须传入allow_network=false。仅会发送提供的查询内容, 不会发送绘图。显式 SMILES/InChI 输入仍在本地处理。
读取我编辑后的母体结构。创建一个包含 8 个成员的范围,排列对齐共同 骨架,将结构和说明文字居中,并在需要时为本文档添加页面。不要编造产率。
将本文档导出为 PDF 和透明背景的 600-DPI PNG,并保留分子比例。
绘图测试框架会检查显式图结构、原生输出、布局和源内容保留情况。共用表格使用测得的墨迹中心和统一的说明文字基线;完整批次可以增加实际页面,而不缩小分子。一个隐藏的原生副本会在最终插入前测量表格。实际尺寸的 SVG/PNG 导出会保持键的大小一致,而不是将每个分子都缩放到相同的图像宽度。原生 PDF 保留纸张页面。普通的共用绘图或实际尺寸导出不需要 HTML 预览。
版本 rc18 为普通的显式反应新增原生圈注单位电荷,并提供保存后的归属和键/标签间距检查。版本 rc17 会批处理完整的显式反应,测量其原生墨迹,并选择 A4 或 A3 纸张,而不缩小分子或移除反应物。反应导出包括实际尺寸的 SVG、600-DPI 透明背景 PNG 和白底预览。反应工作流和限制。
版本 rc16 引入了更轻量的原生预览、可选的仅画布交付、分阶段计时,以及经过验证的名称查询复用。新建的规则六元环会按轴对齐;如果存在实时骨架参考,则优先使用该参考。 交付选项 · 性能测量
通过终端或 MCP 连接的助手控制桌面版 ChemDraw。创建原生结构和显式反应行,导入本地样式,设计映射芳香族范围,检查标识符,在明确选择联网后解析名称,美化图形,添加受支持的电子/电荷符号和曲线,或批量导出完成的绘图。检查原生导出结果,并保留可编辑输出和化学审计记录。
原生 ChemDraw 渲染。 桌面 JavaScript API 可读取并追加受支持的分子批次;其他原生命令和导出由受限的 AppleScript 处理。RDKit 通过 ChemDraw CDXML 编写器提供经过验证的图结构和坐标,而非图像。ChemDraw 会渲染 SVG;离线 resvg 会将其未更改的图稿栅格化为透明背景 PNG。普通显式反应使用整份文档批处理;高级旧版工作流保留原生导入/清理流程。自然语言解析由你的 MCP 客户端完成,不使用内嵌的大模型。
独立的开源实验项目,采用 MIT 许可。原生工作流需要你自行安装并持有许可的 ChemDraw;标识符检查、样式提取和范围提案均可离线完成。MCP 名称绘图默认会使用提供的查询内容查询 PubChem,并提供明确的离线选项。独立解析和 CLI 查询仍保留各自的显式启用选项。此处仅对 ChemDraw 23.0.1 进行了实时测试;各项功能的验证证据彼此独立。兼容性和限制 **实验性功能,尚非稳定版本:**原生支持仅限于经过测试的 ChemDraw 构建版本和受支持的绘图子集。跨进程协调和可选的圈示电荷功能均有回归测试;如果电荷位置过于拥挤,系统会明确报错,而不是冒险更改分子图。具体检查项和等待在另一台 Mac 上验收的内容,请参阅当前开发状态。
两层功能,一个原生 MCP
**核心 MCP 已可独立运行。**可使用它导入、创建、检查、清理、设置样式并导出原生 ChemDraw 文档。可选的工作流层则提供可复用的绘图、布局和验证操作。已连接的 AI 客户端会理解自然语言并选择工具;此服务内部不包含大模型。
| 模式 | 启动命令 | 适用场景 |
|---|---|---|
| 核心 | chemdraw-mcp-macos --profile core | 直接使用原生文档工具;无需 RDKit |
| 绘图 | chemdraw-mcp-macos --profile drawing | 专用绘图、诊断和物理导出工具 |
| 完整(默认) | chemdraw-mcp-macos --profile full | 核心功能,以及绘图、反应、范围和验证工作流 |
两种模式使用相同的原生桥接。完整工作流接受结构和配方,而非固定的分子目录。实验性的金属配合物功能是额外能力,用户无需等待该功能即可使用核心 MCP。请参阅架构、安装和设计原则以及客户端配置。
现有文档或后台导出
对于受支持的分子和说明文字,chemdraw_draw 和 chemdraw_draw_structures 在 auto 模式下会复用可见的工作文档。未命名文档无需预先保存。若同时打开多个文档,请指定 presentation="shared", document_id=ID。原生 API 会在同一文档中使用规划好的坐标进行插入并检查内容是否保留,无需使用剪贴板或移动键盘。共享交付要求和限制。
使用 live-read 和 live-action 可检查已在 ChemDraw 中打开的文档,并对其运行受支持的原生命令,无需另开工作窗口或预览。新快照会在执行前检测内容是否发生变化。visibility 可显示或隐藏单个文档。render --input drawing.cdxml --output /absolute/new-folder 会在隐藏窗口中导出提供的 CDXML,并在成功后关闭该工具打开的文档。两种 MCP 配置均提供相应工具。
这是按需同步,而非持续协同编辑。任意原子编辑仍需使用单独的副本工作流。后台渲染要求 Mac 桌面已登录且拥有许可;它不是无显示器的服务模式。 命令、证据和限制
致谢
特别感谢 Marco DeCorti 展示如何让化学绘图清晰且美观、提供参考示例,并认真检查生成的输出。他的意见帮助确立了项目的分子绘图风格和视觉质量标准。
原生绘图前后对比
下方两幅图均为桌面版 ChemDraw 的导出结果,并非替代渲染器的产物。为便于在浅色和深色主题中阅读,GitHub 预览采用纯白背景;原始导出仍为透明背景。可使用下方提供的示例和配方重现这些图。
| 之前 | 之后 |
|---|---|
完整作业与可复用的实验室设置
v0.9 工作流层将各个工具连接成可调用的作业:
- 完整范围:
scope-job根据明确映射的母体提出方案,要求接受候选项,绘制并对齐所选化合物,并以标题、点状分隔线和阴影边框排布实际类别带。配方 · 指南 - 明确的反应系列:
reaction-series可组合最多三行提供的反应,包括受支持的水/卤化物、离子盐和系数。它不会预测产物,也不会认证反应是否配平。指南与限制 - 所有权移动与路径:
build-ownership/move-owned会让明确指定的说明文字、符号和内部曲线随其分子一起移动。suggest-routes/apply-route会提出并绘制经过所选障碍检查的三次路径。系统会拒绝反应方案中的垂直移动和跨所有者的单侧曲线移动;不涵盖手动拖动。指南 - 共享样式:
make-lab-style/styled-job使用带版本号并经哈希处理的数值设置,并拒绝相互冲突的配方覆盖。每个输出都保留其确切的样式包。起始包 · 指南
原生工作流都有对应的 MCP 工作流,并会保留可编辑的 CDXML 和审计记录;图像则根据请求的交付模式提供。请从可复现的演示教程开始。实验性软件包可在 GitHub Releases 中获取;独立 Mac 验收仍在发布检查清单中进行。
一条命令完成首次绘图
完成终端设置后,打开一个空白的 ChemDraw 文档:
chemdraw-mac first-run
这会在当前文档中绘制咖啡因和阿司匹林,并验证原生导出功能。这是可选的绘图测试,不是软件包安装程序。交互式引导会循环展示原生分子剪影,并点缀粉色/薰衣草色/金色。进度条会跟踪工作流阶段,只有通过原生检查后才会完成。它不会声称提供安装时间估算。ChemDraw 不会由此为你安装或授权。
已经检出项目?改用 uv run --locked --extra chemistry chemdraw-mac first-run,以使用已提交的依赖锁定文件。输出会保存到一个新建且名称唯一的文件夹中,最终绘图在 ChemDraw 中仍可编辑,并且会保留已有文档。脚本中使用 --json,或在安静终端中使用 --no-open --no-animation。首次运行行为与故障排除
桌面应用也适用: 将同一个本地 MCP 服务连接到 Claude Desktop 或 Codex 桌面客户端,然后让它运行 chemdraw_first_run。MCP 不会发送终端动画,也不会自动启动浏览器。桌面客户端设置
试用润饰工作流
在项目目录中,确保已安装 uv,且 ChemDraw 正在运行并已激活:
uv sync --locked --extra chemistry
uv run --extra chemistry chemdraw-mac doctor
uv run --extra chemistry chemdraw-mac polish \
--input examples/messy-oxidation.cdxml \
--recipe examples/oxidation-recipe.json \
--output /absolute/existing/parent/oxidation-review
将输出路径替换为其父目录已存在的新绝对目录。输出目录不得已存在。此示例展示的是用 [O] 表示的乙醇氧化为乙醛示意图,并非实验方案。
打开返回的 review.html。输出包含:
before.cdxml、before.svg、before.pngfigure.cdxml、figure.svg、figure.pngrecipe.json、audit.json、review.html
源文件不会被修改;最终工作文档仍会在 ChemDraw 中保持打开状态。checks_passed 表示已通过实现的保留性和布局检查。它不表示源化学内容正确,也不表示有人已批准该图。仍需进行视觉审查。
制作类似物
示例将现有的氯原子替换为溴原子,并更新说明文字,不会重建或旋转骨架:
| 原图 | 类似物副本 |
|---|---|
uv run --extra chemistry chemdraw-mac edit \
--input examples/chlorobenzoic-acid.cdxml \
--recipe examples/bromo-analogue-recipe.json \
--output /absolute/existing/parent/bromo-analogue-review
编辑器会修改复制的 CDXML 图,在桌面版 ChemDraw 中打开,并检查原生保存结果。它不是直接设置原子的原生 API。RDKit 用于验证化学结构,但不会渲染图形。审计会报告请求的原子/键更改、检测到的氢原子变化以及原生原子坐标的保留情况。这个功能有限的编辑器支持单个分子和明确指定的说明文字,不支持任意反应转换。编辑配方和支持的操作
CDXML 化学标签会与图结构分开检查。这两项检查都不能证明所有导出的 SVG/PNG 字形均正确。已解决的输入标签方向问题记录在已知问题中;使用前请检查实际预览。
排列范围网格
保留现有分子方向,统一键长比例,并按选定顺序排列明确指定的化合物。每行中的名称和化合物/产率标签共用基线。单元格尺寸和页面适配会根据原生测量的墨迹边界确定,其中也包括说明文字。
| 排列前 | 四列网格 |
|---|---|
uv run --extra chemistry chemdraw-mac grid \
--input examples/scope-input.cdxml \
--recipe examples/scope-recipe.json \
--output /absolute/existing/parent/scope-review
此示例中的所有百分比均为虚构的软件测试值,并非实验产率。 零值显示为 0%;不会凭空添加缺失的产率。配方会明确指定所有分子片段和现有说明文字。多个片段(例如一种盐)可以属于同一化合物,并在规范化后一起平移。省略 columns 可自动选择列数,也可以指定列数;网格无法适配时会直接拒绝,而不是缩小分子。网格配方、令牌和限制
批量导出完成的图形
导出明确清单中的受支持 CDXML 文件,不更改其样式或布局:
uv run --extra chemistry chemdraw-mac batch \
--manifest /absolute/path/figures.json \
--output /absolute/existing/parent/manuscript-figures
每个稳定的图形键都会生成原生 CDXML/SVG、由原生 SVG 栅格化的 PNG、可选的 PDF/CDX、审计记录和保留的快照。批次 review.html 是一张带链接和各项状态的联系表。源文件会以私有副本形式打开;成功后会关闭工作副本。系统会检查源文件哈希、精确的打开文档清单,以及预先存在的未保存文档内容。原生操作出错时会停止批次,不会重试该操作,也不会关闭状态不确定的文档。不支持的输入会逐项报告;混合失败的运行会以非零状态退出。清单、输出布局和限制
批处理还支持受支持的注释子集:现有的全箭头头部或左右鱼钩三次曲线,以及明确关联的带圈电荷符号。它会在常规分子/反应检查之外,复用注释保留验证器。未知曲线/符号类型仍会安全失败。导出机理图不会为箭头指定路径、修复碰撞或验证其化学正确性。
添加电子流箭头
在完整的 MCP 配置中,助手可使用 chemdraw_inspect_annotations 和
chemdraw_annotate_document,以及符号和反应路线工具。精简的核心配置和绘图配置不提供这些标注工作流。仅有反应系列图并不构成完整的电子推动机理。报告箭头不可用之前,请先检查客户端实际的工具列表。标注会创建一个新副本,并且需要明确的化学意图,而非自动推断机理。
现在,SN2 参考示例提供了可复现的标注工作流。添加原生可编辑的双电子实心箭头曲线,或表示单电子流动的左/右鱼钩箭头,端点可明确指定为原子/键,或显示的供体符号来源:
uv run --extra chemistry chemdraw-mac annotate \
--input examples/sn2-annotation-input.cdxml \
--recipe examples/sn2-annotation-recipe.json \
--output /absolute/existing/parent/sn2-review
该工作流会将曲线添加到复制的 CDXML 中,并由桌面版 ChemDraw 保存和渲染结果。现有受支持的分子、方向和符号都会保留。配方提供端点和两个三次曲线控制点;这不是自动路由,也不会推断机理。明确指定的符号来源会为完整箭头标出已有的负电荷/孤对电子,为鱼钩箭头标出电子点。箭尾从可见边缘开始,该边缘依据 ChemDraw 23.0.1 原生导出校准,确保选中的是实际电子点,而非孤对电子之间的空隙。这些符号来源箭头案例已在开发用 Mac 上通过原生集成检查。整条反应路线的碰撞仍需目视检查,且不保证化学编辑或原生移动锚点行为。标注配方与限制
使用单独的 inspect-symbols / symbols 工作流,在新副本中为已有的 +1/-1 原子电荷添加原生孤对电子符号、图形电子点或带圈符号。电子点有意使用原生实心圆形图形:否则,ChemDraw 的 Electron Symbol 会改变相邻原子的自由基状态。请求需标明每个符号所属的原子;有界放置使用经过校准的字形几何信息和测量所得的标签。负电荷创建以及电荷/孤对电子/电子来源箭头工作流的四个原生集成案例均已通过测试。这不涵盖完整的渲染键线碰撞检查,也不保证跨版本适用;请检查每个原生导出文件。符号配方、电子流约定
可选的范围框定
使用 decorate-scope 或 MCP chemdraw_decorate_scope,为现有网格添加圆角阴影框、真正的点状组分隔线和可选标题。组是明确指定的:该工具会保留你的分子、说明文字和位置,不会在不告知的情况下进行分类或重新排序。框和分隔线可独立启用。配方与原生对象约定
从显式结构到原生图形
对于受支持的离子,在绘图清单中添加 "charge_style": "circled",即可在同一任务中创建原生圈电荷符号。试用离子示例。默认值仍为 "plain"。改进后的搜索支持符合本项目样式的硝基苯示例,无需缩小符号或放宽归属检查。目前四甲基铵离子图形等拥挤排列仍没有安全候选,因此会被拒绝;仍可绘制普通电荷。返回的 artifacts 指向实际的最终 CDXML/SVG/PNG,包括可选的电荷处理步骤。
draw 接受由显式 {compound_id, label, smiles} 记录组成的清单。它会在 MOL 种子生成、原生导入和原生 Clean Up Structure 的过程中保留提供的化学身份,然后将测量后的原生结构交给网格工作流:
uv run --extra chemistry chemdraw-mac draw \
--manifest /absolute/path/structures.json \
--output /absolute/existing/parent/structures-review
标签由调用方提供,不会被验证为化学名称。首个接口接受 1 到 24 个相连、受支持的非自由基结构,每个结构含 2 到 150 个原子。它会生成可编辑的 CDXML、SVG、PNG、保留的种子文件和审计记录。可选的清单字段 scaffold_smiles 可指定一个显式公共核心,以仅通过旋转和平移与第一个结构对齐,不进行镜像或缩放对齐。若未提供该字段,原生清理可能会为每个分子选择不同的方向。不会进行名称查询、产率生成或自动核心推断。清单与保留限制
附带的乙酰苯范围清单包含 14 个显式候选项,使用简短的相对标签、显式的乙酰苯骨架,且不含产率。将其作为 --manifest 用于三列示例。这只是一个示意性提案,并非实验范围数据。在开发用 Mac 上,启用对齐的 14 结构运行通过了原生检查和视觉检查:原生 SVG 图形。有关运行证据和环境限制,请参阅项目进度。
提出初步底物范围
提供实际的母体结构,并标记连接到其现有反应位点的苯环碳。例如:
uv run --extra chemistry chemdraw-mac propose-scope \
--parent 'O=C[c:1]1ccccc1' --handle-map 1
有界标准配置文件会提出 14 个不同的候选项:母体参照物;邻位/间位/对位甲基;对位甲氧基、三氟甲基、氰基、硝基和 F/Cl/Br;邻位异丙基/叔丁基;以及 2,6-二甲基。电子效应和位阻类别间的重复候选项会合并。所有产率均保持为 null。输出包含相对标签、带映射/不带映射的 SMILES、基于稳定图结构生成的 ID,以及考虑各候选项的理由。
这是针对孤立单取代苯环的离线提案,不是反应预测,也不是通用的范围建议。请先审核并选择候选项,再将显式记录传递给 draw。不会猜测母体结构、反应位点、化学兼容性或实验结果。范围提案规范
对于预取代环和孤立的五元/六元杂芳环,请明确标记带氢的碳位点,并从十个精选组中选择自定义列表:
uv run --extra chemistry chemdraw-mac scan-scope --manifest examples/scope-custom.json
该示例使用 Me 和 Cl 扫描两个带映射的吡啶位点,得到 5 个不同候选项,其中包括母体结构。每种产物只添加一个取代基;对称性导致的重复项会保留其请求的位点变体。去重前,请求组合上限为 100 个,包括可选的母体结构。扩展范围规范
构建反应或使用本地样式
uv run --extra chemistry chemdraw-mac reaction \
--manifest examples/reaction-build.json \
--output /absolute/existing/parent/reaction-review
uv run chemdraw-mac import-style --input /absolute/path/my-style.cds
反应示例明确提供了乙醇、乙醛和标签 oxidation;未提供实验条件或产率。构建器接受反应物和生成物各一到三种,绘制原生箭头、加号和关联标签,然后检查实测间距和页面适配情况。构建器本身不会预测或配平反应;chemdraw_propose_products 根据命名反应模板提供可供审核的生成物建议,你需要明确传入选定的生成物。反应约定
样式检查会从本地 .cds、.cdx 或 .cdxml 文件中提取受支持的字体排版和键设置,报告默认值及未应用的属性,并且不会修改源文件。将 --style /absolute/path/my-style.cds 添加到 draw 或 reaction,即可覆盖清单中的预设。所需的标签/说明文字字体系列会在渲染用的 Mac 上进行检查。模板图稿、页面几何、调色板和字体文件不会被导入或再分发。样式约定
离线检查标识符
uv run --extra chemistry chemdraw-mac identify --value 'CCO' --format smiles
返回规范异构 SMILES、分子式、电荷、组分/同位素/立体化学摘要,以及可用时的标准 InChI/InChIKey。InChI 规范化警告和图结构往返差异会明确显示。不会联系名称/CAS 服务或原生应用。严格的输入和输出语义
单独的解析器支持明确输入名称或 CAS:
uv run --extra chemistry chemdraw-mac resolve --query caffeine --kind name --allow-network
--allow-network 授权将此查询发送到 PubChem。响应会保留最多 20 个候选项的来源、歧义、截断和化学验证结果。即使只有一个匹配项,也不会自动选择候选项。CAS 语法/校验和检查不能证明 CAS Registry 所有权。绘制前请审核明确指定的候选项。解析器约定
具备图像能力且已连接的助手可以解读照片或手绘草图,但必须先消除原子、键和立体化学方面的歧义,再提交明确的图结构。此服务中没有图像识别器或 OCR 服务,标识符验证也不能证明图结构与源图像相符。
连接助手
有关特定应用的 Claude Desktop JSON 和 Codex TOML 配置,请参阅桌面客户端说明。这是一个本地 stdio 服务,而非远程 Web 连接器。
基础桥接无需 RDKit。使用 uv sync --locked 安装后,仅可使用原生导入、清理、样式处理和导出功能。对于标识符解析、范围提案和经过验证的原生图形工作流,请保留上文提到的可选化学扩展。identify、propose-scope、scan-scope、import-style 和 resolve 无需运行中的 ChemDraw 应用;只有 resolve 需要明确选择启用网络。直接从 MCP 客户端启动已安装的可执行文件:
{
"mcpServers": {
"chemdraw_native": {
"command": "/absolute/path/chemdraw-mcp-macos/.venv/bin/chemdraw-mcp-macos"
}
}
}
将此条目合并到客户端现有配置中;不要替换无关条目。chemdraw-mac serve 会启动相同的 stdio 服务。终端静默等待客户端连接属于正常情况。API 绘图会按需启动一个私有的、经过身份验证的环回监听器;选择启用的解析器会发起出站 HTTPS 请求。
请求示例:
检查我打开的 ChemDraw 文档,并报告其当前文档 ID。
分析此文档,识别其分子说明文字和箭头条件,然后在新的输出文件夹中创建一份符合本项目样式的行布局副本。向我展示原生的前后对比审核和审计结果。
将这份修订后的工作文档导出为 SVG 和透明 PNG。保留我打开的原文件。
分析这个单一分子,识别其氯原子,然后在新文档中制作一个溴代类似物。保留骨架并替换说明文字。向我展示化学差异以及原生的前后导出结果。
将这些产物排列为四列,同时保持其方向。使用我提供的化合物 ID 和产率,在下方保留其名称,并显示原生页面适配审计和预览。
按照我提供的图形键导出这些已完成的 CDXML 文件,添加 PDF 副本,并提供一张联系表。不要重新设置绘图样式,也不要改动我打开的原文件。
检查此反应机理的原子/键 ID,然后在新副本中添加指定的电子流曲线。保留结构和圈出的电荷,并展示原生的前后对比审核。
对于这个明确给出的映射母体,提出标准芳香族化合物范围并解释各类别。产率留空。等我选定化合物后,使用我提供的标签创建原生绘图。
在不联系数据库的情况下检查此 SMILES。报告未指定的立体化学或 InChI 规范化差异。
当发现路径不明确时,将 CHEMDRAW_APP 设为 .app 的绝对路径。CHEMDRAW_MCP_WORKSPACE 用于更改默认的 ~/ChemDraw-MCP-Output 临时/备份位置。如果 macOS 请求自动化权限,请允许启动应用控制 ChemDraw。目前尚无无人值守安装程序或自动权限更改工具。
可用工具
完整配置文件中提供以下工具;完整任务工具已在上文介绍。较小的核心配置文件仅提供架构中列出的直接原生工具。标识符、样式提取和范围提案均可离线完成;只有明确调用解析器时才会使用 PubChem:
| 工具 | 行为 |
|---|---|
chemdraw_doctor | 报告安装状态、实时连接状态和可选验证器是否可用 |
chemdraw_first_run | 检查设置,绘制固定的原生示例,并返回可编辑文件和 JSON 检查结果,不包含 HTML |
chemdraw_draw_complex | 实验性显式配位绘图:提供 XYZ、螯合键的前后关系、默认黑色标签和角落电荷标注;原生保存后进行检查,不预测几何结构。二茂铁仍作为拒绝处理的回归测试样例。 |
chemdraw_list_documents | 原生文档 ID、名称、路径、修改标记和分子数量 |
chemdraw_inspect_document | 原生分子索引/边界和文档设置 |
chemdraw_inspect_targets、chemdraw_prepare_selection、chemdraw_edit_targets | 基于快照的原子/H/电荷和键级编辑、提供片段的连接、支链移除、楔形键、环和原生子集对齐;在新副本中进行有界放置搜索和原生间距检查。操作方案和限制 |
chemdraw_native_action | 在自有工作副本上直接执行 ChemDraw 清理、对齐、分布和标签命令;选择和可用性限制 |
chemdraw_draw_name | 使用 ChemDraw 自带的 Name to Structure,并明确征得网络访问许可,导出原生审核文件;不使用 RDKit 种子或渲染器 |
chemdraw_analyze_document | 导出快照并报告受支持对象的几何信息及顶层源令牌;可编辑的单分子还会获得原子/键 ID |
chemdraw_polish_document | 创建规范化副本,可选择显式行布局,并导出原生审核文件、操作方案和审计记录 |
chemdraw_edit_document | 根据显式原子/H 和键级编辑创建类似物副本;检查预期源令牌、映射后的产物化学结构、坐标和 CDXML 标签 |
chemdraw_grid_document | 创建范围网格副本,明确指定化合物/说明文字的归属,可选收率,并检查原生测量间距和保存页面的适配情况 |
chemdraw_decorate_scope | 添加可选的可编辑圆角阴影边框、点状分隔线和显式分组标题,同时保留现有范围内容 |
chemdraw_batch_export | 按顺序以稳定键导出明确指定的 CDXML 文件,并为每项生成审计记录、保留快照和生成联系表;原生操作不确定时停止 |
chemdraw_inspect_annotations | 对受支持的注释绘图创建快照,并报告原子/键 ID、原生原子标签边界、现有曲线几何信息和源令牌 |
chemdraw_annotate_document | 向新副本添加明确指定的完整或鱼钩式三次曲线;检查原生曲线几何、受支持的现有电荷符号关联和源保留情况 |
chemdraw_identify | 严格离线检查 SMILES/Standard InChI,提供图摘要、转换可用性和规范化警告 |
chemdraw_resolve | 经明确选择启用的 PubChem 名称/CAS 候选项查询,并提供来源信息和验证结果;不自动选择 |
chemdraw_list_reactions | 离线列出 162 个经过审核的具名反应模板,并提供底物/反应伙伴提示和典型条件 |
chemdraw_propose_products | 根据显式 SMILES 离线提出一个具名反应的产物;列出每种不同产物及分子式/质量变化,绝不绘图或选择产物 |
chemdraw_lookup_reagent | 离线查询约 190 种精选试剂、碱、配体、催化剂和溶剂:显示标签、作用、SMILES、别名 |
chemdraw_read_reaction | 将现有 CDXML 反应方案(文本或路径)读取为反应物、试剂、产物、反应 SMILES 和条件文本;基于启发式规则判定角色,供审核 |
chemdraw_import_style | 只读提取本地样式,提供经过验证的预设、源哈希、默认值和未应用属性报告 |
chemdraw_scan_scope | 使用精选基团,对受支持的预取代和杂芳香族母体进行显式位点映射扫描 |
chemdraw_build_reaction | 根据明确指定的反应物/产物和提供的条件创建原生单步反应行,并检查测得的归属和布局 |
chemdraw_inspect_symbols | 对受支持的原子/符号清单、几何信息和当前源令牌创建快照 |
chemdraw_add_symbols | 通过有界放置,在新副本中添加明确指定的图形圆点或现有形式电荷符号 |
chemdraw_propose_scope | 离线提出以映射为锚点的标准芳香族候选项,提供相对标签、理由和空收率;不绘图或预测反应 |
chemdraw_draw_structures | 根据显式 SMILES/标签记录,使用 MOL 种子、原生导入/清理、可选的显式骨架刚性对齐和测量网格创建原生绘图;不查询名称或自动推断核心结构 |
chemdraw_import_file | 打开本地 CDXML、CDX、MOL 或 SDF 文件的私有副本 |
chemdraw_create_document | 在新的工作文件中打开调用方提供的 CDXML |
chemdraw_clean | 对单个分子或整个文档执行原生清理,并创建恢复备份;会编辑目标 |
chemdraw_apply_style | 创建采用 house 或 acs-1996 样式的副本;不重新缩放坐标 |
chemdraw_export | 原生 CDXML、CDX、SVG 和 PDF;PNG 由原生 SVG 生成 |
chemdraw_close_working_document | 备份并关闭仅由此服务会话打开的文档 |
chemdraw_list_styles | 返回预设的数值设置 |
| CLI 和 MCP 调用相同的工作流实现。用法和配方参考 |
范围与安全
- Polish 支持保守的扁平单页分子绘图子集。对于基团、嵌套缩写、查询、聚合物和增强立体化学,不会猜测处理,而是直接拒绝。
- 正向统一缩放会将每个分子的键长中位数归一化,并保留现有方向。它不会让分子的宽度相同,也不会修正所有键角。
- 行布局要求明确指定标题和条件的归属。普通的未分配文本会被拒绝;不会猜测标签归属。
- Polish 不会自动运行原生的 Clean Up Structure。清理是单独的操作,因为它可能改变方向和绘图。
- 类似物编辑不会插入或删除原子、改变立体中心、创建或移除潜在立体化学,也不会改变带电或同位素目标原子。它不会推断新名称,也不会修复冲突。
- 范围网格要求使用一页物理页面,并且只包含受支持的片段和归属明确的标题。不支持反应、任意文本、嵌套基团和原生符号图形。支持原子的普通形式电荷属性;不支持一般的电荷符号定位。
- 批量导出接受受支持的扁平 CDXML 和有限的注释子集,不会更改样式或布局。支持并验证完整或半箭头的三次曲线,以及明确关联的带圈电荷。未知图形仍不受支持;ChemDraw 推断出的任何反应方案均未经化学验证。
- 注释支持另一个有限子集,其中包括现有的带圈电荷图形和单条三次电子流曲线。显式引用属于配方,不保证原生移动关联。独立的符号工作流会添加受支持的图形点和电荷,不会修改化学结构或自由基状态。不会自动推断反应机理。
- 离线范围建议器只会将经过整理的基团附加到受支持的映射父结构上。这不会允许在现有 ChemDraw 文档中任意插入或删除原子,也不会认证反应兼容性。
draw根据显式图创建新结构,使用原生清理,并保留首次原生导入的页面设置。正向缩放归一化和无重叠的统一暂存单元格会在原生合成前完成,随后进行经过测量的网格适配验证;该工具不会创建自定义纸张尺寸。其可选的带圈电荷收尾步骤使用独立的符号验证器。底层网格仍不支持一般分子图形。- 原生导出后会检查化学结构。字形冲突、电荷定位、源内容正确性和不受支持的化学结构仍需人工审核。
- 如果输出路径已存在,则会拒绝操作。Draw 会创建新的私有结构;导入、polish、类似物编辑、网格、注释和批量导出均使用工作副本。显式的底层清理操作会在备份后编辑目标。
- 备份保留在本地,并包含化学数据。只有在允许联网时显式调用
resolve才会向 PubChem 发送查询;其他工作流均在本地运行。已连接的 AI 客户端有各自独立的隐私政策。 - 更新后的 CLI/MCP 客户端共享每用户进程锁,包括原生工作副本工作流。竞争调用最多等待两秒,之后会返回忙碌状态,且不会分派其原生操作。手动 GUI 编辑、旧版客户端和其他自动化软件不会遵守此锁。协调约定
- AppleEvent 超时的结果不确定,且不会自动重试。重试前请检查 ChemDraw。
- 不提供原始 AppleScript、任意菜单、剪贴板或退出工具。原生命令采用允许列表;未实现不受限制的分子编辑。
开发与来源
uv sync --locked --extra chemistry
uv run --extra chemistry pytest
CHEMDRAW_LIVE_TEST=1 uv run --extra chemistry pytest tests/test_live.py tests/test_scope_live.py tests/test_batch_live.py tests/test_annotations_live.py tests/test_draw_live.py -vs
原生测试默认不启用,且需要可用的授权应用。贡献与验证
几何层改编自 Michael Leitch 采用 MIT 许可证的 live-chemdraw-mcp 中的 Box、find_overlaps 和 grid_positions,而非其 Windows COM 桥接。请参阅第三方声明、固定版本的上游源代码、研究和路线图。
离线标识符记录在标识符约定中;单独选择启用的 PubChem 接口记录在解析器语义中。原生名称转结构使用 ChemDraw 的查询功能,而非 PubChem 解析器。布局与工作流研究记录了范围网格的设计动机和进一步改进。接口说明请参阅本 README 和使用参考;实际验证证据请参阅项目进展。
许可证与协作
原始项目代码采用 MIT 许可证,并附有版权与免责声明。允许商业和非商业使用;复制时请保留版权和许可声明。这并不自动授权用户的绘图或研究,也不涵盖通过 MCP 连接的所有独立客户端。
欢迎贡献:测试其他 Mac/ChemDraw 版本、报告可复现的绘图问题、分享可再分发的示例,或提交针对性明确的拉取请求。请从 CONTRIBUTING.md 开始。请勿上传机密结构或专有资源。Marco DeCorti 提供的视觉指导和上游作者的贡献仍将予以致谢。
保留的上游许可证仍适用于各自的代码。ChemDraw 是专有软件,也是其各自所有者的商标;本项目与其供应商无关,也未获得其背书。开源可用并不代表项目已稳定发布,也不代表兼容性超出文档所述测试范围。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。