Install
$ agentstack add mcp-jurimaxam-dotcom-chemdraw-mcp ✓ scanned · ✓ verified — works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
About
chemdraw-mcp
[](https://github.com/jurimaxam-dotcom/chemdraw-mcp/actions/workflows/ci.yml) [](https://github.com/jurimaxam-dotcom/chemdraw-mcp/releases) [](LICENSE)
Chat → chemical structure. An MCP server for Claude Desktop that turns molecule names or SMILES into publication-style 2D structure drawings — "draw aspirin" produces a print-ready PNG/SVG, rendered fully offline with RDKit. No ChemDraw required; ChemDraw CDXML is available as an optional extra format for users who want to keep editing there.
Built for pharmacy/chemistry students who spend too much time clicking hexagons: structures, full reaction schemes, step-by-step mechanisms, substance data sheets and Ph.Eur. assay calculations — straight from the chat, with an interactive preview panel rendered inline.
Example output
"Draw caffeine" — print-ready PNG, generated by generate_molecule:
"Show the Fischer esterification of ethanol with acetic acid" — generate_reaction renders the scheme with conditions above the arrow, live in the chat panel:
"Show the Fischer esterification mechanism step by step" — generate_mechanism renders curved electron-flow arrows in the interactive panel:
"Sketch the IR spectrum of ethyl acetate" — generate_spectrum (draws the peaks it is given, with per-type axis conventions):
"Show caffeine in 3D" — generate_3d embeds the molecule (ETKDG + force field) and opens a drag-to-rotate ball-and-stick viewer in the chat panel:
"What distinguishes ibuprofen from naproxen and ketoprofen?" — compare_molecules keeps the shared scaffold (MCS) neutral and highlights everything that differs:
"Titration curve of phosphoric acid with NaOH, phenolphthalein as indicator" — generate_titration_curve computes pH from the exact charge balance, with equivalence points, buffer points (pH = pKa) and the indicator band; its sibling generate_species_distribution shows which protonation species dominates at every pH:
"Create an Anki deck with important molecules and open it in Anki" — export_anki_deck / export_curated_deck build a ready-to-import .apkg with rendered structures embedded; with the optional AnkiConnect add-on the cards land straight in the running Anki, no clicks:
Features
generate_molecule— name/SMILES → 2D structure as PNG + SVG
(optionally CDXML), with properties, functional-group detection and a Lipinski rule-of-five check
generate_reaction— educts + products + conditions → reaction schemebatch_generate— a whole list of structures in one callgenerate_mechanism— curved-arrow mechanisms (SN1, SN2, Fischer
esterification) step by step
generate_spectrum— schematic spectra from peak lists (IR, NIR,
Raman, UV/Vis, fluorescence, ORD, CD, ¹H/¹³C NMR, MS) with per-type axis conventions — draws given peaks, does not predict spectra
export_anki_deck— exam-prep flashcards as a ready-to-import
Anki .apkg: structure↔name drills (optionally reversed: one note, both directions), cloze/fill-in-the-blank cards, identity/detection reactions, spectrum band assignment — with rendered images embedded, per-card tags, Parent::Child subdecks; re-exporting a deck updates cards instead of duplicating them. Optional delivery straight into the running Anki via the AnkiConnect add-on
export_curated_deck— small, formula-verified starter decks
(classic analgesics, Ph.Eur. identity reactions)
generate_titration_curve— pH vs. titrant volume from the exact
charge balance, with equivalence points, buffer points (pH = pKa) and indicator transition band
generate_species_distribution— protonation species fractions
over pH (Henderson-Hasselbalch) with pKa crossovers marked
compare_molecules— 2-4 structures side by side, differences
highlighted, shared scaffold (MCS) neutral
generate_3d— rotatable 3D ball-and-stick conformer in the chat
panel (ETKDG + force field) plus SDF export; stereo descriptors (R/S, E/Z) available on 2D drawings via annotate_stereo
lookup_*— substance data from PubChem, ChEBI, KEGG and UniProt
(properties, GHS safety, pathways)
calculate_validation— Ph.Eur.-style content determination with full
calculation steps, t-test/F-test statistics
- Interactive in-chat UI (MCP App): hover atoms, inspect functional
groups, export PNG with one click
- macOS ChemDraw bridge (optional): open any generated structure directly
in ChemDraw via open_chemdraw_file
Installation
Option 1 — straight from PyPI (needs uv): add this to your Claude Desktop config (claude_desktop_config.json → mcpServers):
"chemdraw": {
"command": "uvx",
"args": ["chemdraw-mcp"]
}
Option 2 — one-command installer (clones the repo and registers the server in Claude Desktop automatically):
git clone https://github.com/jurimaxam-dotcom/chemdraw-mcp.git
cd chemdraw-mcp && ./install.sh
Both are idempotent and leave existing MCP servers untouched. Restart Claude Desktop, then ask: "draw caffeine".
Optional: with a Java runtime installed (e.g. brew install openjdk), systematic IUPAC names — including ones no database indexes — are parsed offline via OPSIN. Without Java the server falls back to the PubChem/NCI online lookup.
How it works
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)
Development
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
~400 tests, written test-first. The e2e test rasters a real RDKit SVG in headless Chromium and compares it against an exact pixel snapshot.
License
Apache-2.0 — see [LICENSE](LICENSE). Copyright 2026 jurimaxam-dotcom.
> Disclaimer: This is an unofficial, independent project, not affiliated > with or endorsed by Revvity. ChemDraw is a trademark of Revvity Signals > Software, Inc. This tool does not include or require ChemDraw; it can > optionally export files in the open CDXML format.
Source & license
This open-source MCP server is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: jurimaxam-dotcom
- Source: jurimaxam-dotcom/chemdraw-mcp
- License: Apache-2.0
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet — be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.