Molecule names or SMILES to 2D structures, reactions, mechanisms, spectra - offline via RDKit.
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent β or use 1-click editor setup below.
π‘ Paste the JSON block into your client's configuration file under mcpServers, then restart the application.
Chat β chemical structure. An MCP server for Claude Desktop: you describe a molecule, a reaction or a lab result in plain words, and it draws the figure β a print-ready PNG/SVG rendered locally with RDKit, plus an interactive preview inside the chat. "Draw aspirin" is already a complete command.
Built for pharmacy and chemistry students who spend too much time clicking hexagons. 20 tools cover what a report or a slide actually needs: structures, reaction schemes, step-by-step mechanisms, substrate-scope figures, TLC plates, titration curves, schematic spectra, substance data sheets, Ph.Eur. assay calculations and Anki decks.
What it costs you: one install command. Apache-2.0, no API key, no sign-up for the server, no ChemDraw licence β you need Claude Desktop and uv, everything else is fetched once. Rendering runs entirely on your machine; only name resolution and the database lookups reach the internet. ChemDraw CDXML is an optional extra format for people who want to keep editing there, never a requirement.

"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:

"Make a scope figure of my Suzuki couplings: 3a 92%, 3b 88% after 12 h,
3c 64% with ee 94% and dr 10:1, 3d 71%" β generate_scope_table sets the
general equation with its conditions on top and the products below it, on a
shared bond length and a shared caption baseline:

"Sketch the IR spectrum of ethyl acetate" β generate_spectrum (draws the
peaks it is given, with per-type axis conventions):

"TLC of my esterification: educt at 0.30, product at 0.65, the co-spot shows
both, some educt left" β generate_tlc draws the plate the lab report asks
for, with mobile phase and detection as its caption:

"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 builds 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:

All 20 tools the server exposes. Files are written to ~/ChemDraw-Output/;
every drawing tool also returns a live preview for the in-chat panel.
Structures and schemes
generate_molecule β name/SMILES β 2D structure as PNG + SVG
(optionally CDXML), with properties, functional-group detection and a
Lipinski rule-of-five checkbatch_generate β a whole list of structures in one callgenerate_reaction β educts + products + conditions β reaction scheme
with the conditions set above the arrowgenerate_mechanism β curved-arrow mechanisms (SN1, SN2, Fischer
esterification) step by stepgenerate_scope_table β the substrate-scope figure of the methodology
literature: the general equation with its conditions on top, below it a
grid of products, each with identifier ("1a") and yield ("78%") plus
optional ee/dr/time. All structures share one bond length, all captions one
baseline; an entry that cannot be resolved is reported, not fatalcompare_molecules β 2β4 structures side by side, differences
highlighted, shared scaffold (MCS) neutralgenerate_3d β rotatable 3D ball-and-stick conformer in the chat
panel (ETKDGv3 + force field) plus SDF exportLab results and analysis
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 spectragenerate_tlc β TLC plate sketch from Rf values: start line at the
bottom, solvent front at the top, one captioned lane per application
point (educt / reaction / co-spot), Rf annotated at every spot, mobile
phase and detection printed as a caption β the sketch a lab report asks forgenerate_titration_curve β pH vs. titrant volume from the exact
charge balance, with equivalence points, buffer points (pH = pKa) and
indicator transition bandgenerate_species_distribution β protonation species fractions
over pH (HendersonβHasselbalch) with pKa crossovers markedgenerate_calibration_curve β least-squares line through your
standards, and the unknowns read back off it the way you would with a
ruler. A sample outside the calibrated range is labelled as extrapolated
rather than quietly reported; limits of detection and quantitation
(DIN 32645) come along for the validation questionBench maths (the number and the working β a lab report asks for both)
calculate_solution β what to weigh (m = c Β· V Β· M), what you
actually got, dilutions (CβVβ = CβVβ with the solvent volume spelled out),
the mixing cross, and molar masses including hydrates like CuSOβΒ·5HβO.
Warns when the calculated portion falls below what an analytical balance
resolves β then diluting a larger portion is the right movecalculate_content β a content determination the way the protocol
wants it: one content per measurement β Grubbs outlier test β mean, s, RSD
β t-test against the declared content. Titration (with titer determination
from reference titrations) and photometry, plus the fat characteristics
(acid, saponification, ester and iodine value) and Karl Fischer water
content as further methodscalculate_ph β weak and strong acids and bases, buffers, and buffer
recipes down to weighable masses. Solved through the exact charge balance
with the textbook approximation printed beside it: where the two disagree,
the approximation has lost its assumptions and says so. 10β»βΈ M HCl comes
out at pH 6.98, not 8Substance data (online lookups)
No reviews yet β be the first to share how this listing worked for you.
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/chemdraw-mcp-unofficial)<a href="https://allmcps.com/mcp/chemdraw-mcp-unofficial"><img src="https://allmcps.com/api/badge/chemdraw-mcp-unofficial?style=directory" alt="ChemDraw MCP (unofficial) on AllMCPs" /></a>