chemdraw-mcp
chemdraw-mcp
Chat → chemische Struktur. Ein MCP-Server für Claude Desktop: Sie beschreiben ein Molekül, eine Reaktion oder ein Laborergebnis in einfachen Worten, und er zeichnet die Abbildung — ein druckfertiges PNG/SVG, lokal mit RDKit gerendert, plus eine interaktive Vorschau im Chat. „Zeichne Aspirin" ist bereits ein vollständiger Befehl.
Gebaut für Pharmazie- und Chemiestudierende, die zu viel Zeit damit verbringen, auf Hexagone zu klicken. 20 Tools decken ab, was ein Bericht oder eine Folie tatsächlich braucht: Strukturen, Reaktionsschemata, schrittweise Mechanismen, Substratbreiten-Abbildungen, DC-Platten, Titrationskurven, schematische Spektren, Substanzdatenblätter, Ph.-Eur.-Gehaltsbestimmungen und Anki-Decks.
Was es Sie kostet: ein Installationsbefehl. Apache-2.0, kein API-Schlüssel, keine Anmeldung für den Server, keine ChemDraw-Lizenz — Sie brauchen Claude Desktop und uv, alles andere wird einmalig geholt. Das Rendering läuft vollständig auf Ihrem Rechner; nur die Namensauflösung und die Datenbankabfragen erreichen das Internet. ChemDraw-CDXML ist ein optionales Zusatzformat für Leute, die dort weiterbearbeiten möchten, niemals eine Voraussetzung.
Beispielausgabe
„Zeichne Koffein" — druckfertiges PNG, erzeugt von generate_molecule:
„Zeige die Fischer-Veresterung von Ethanol mit Essigsäure" —
generate_reaction rendert das Schema mit den Bedingungen über dem Pfeil,
live im Chat-Panel:
„Zeige den Mechanismus der Fischer-Veresterung Schritt für Schritt" —
generate_mechanism rendert gebogene Elektronenfluss-Pfeile im interaktiven
Panel:
„Erstelle eine Substratbreiten-Abbildung meiner Suzuki-Kupplungen: 3a 92 %, 3b 88 % nach 12 h,
3c 64 % mit ee 94 % und dr 10:1, 3d 71 %" — generate_scope_table setzt die
allgemeine Gleichung mit ihren Bedingungen oben und die Produkte darunter, auf
einer gemeinsamen Bindungslänge und einer gemeinsamen Beschriftungs-Baseline:
„Skizziere das IR-Spektrum von Ethylacetat" — generate_spectrum (zeichnet die
Peaks, die ihm übergeben werden, mit achsen-Konventionen pro Typ):
„DC meiner Veresterung: Edukt bei 0,30, Produkt bei 0,65, der Co-Spot zeigt
beides, etwas Edukt ist übrig" — generate_tlc zeichnet die Platte, die der
Laborbericht verlangt, mit Fließmittel und Detektion als Beschriftung:
„Zeige Koffein in 3D" — generate_3d bettet das Molekül ein (ETKDG + Kraftfeld)
und öffnet einen per Ziehen drehbaren Kugel-Stab-Viewer im Chat-Panel:
„Was unterscheidet Ibuprofen von Naproxen und Ketoprofen?" —
compare_molecules hält das gemeinsame Grundgerüst (MCS) neutral und hebt
alles hervor, was sich unterscheidet:
„Titrationskurve von Phosphorsäure mit NaOH, Phenolphthalein als
Indikator" — generate_titration_curve berechnet den pH-Wert aus der exakten
Ladungsbilanz, mit Äquivalenzpunkten, Pufferpunkten (pH = pKa) und der
Indikatorbande; sein Geschwister generate_species_distribution zeigt, welche
Protonierungsspezies bei jedem pH-Wert dominiert:
„Erstelle ein Anki-Deck mit wichtigen Molekülen und öffne es in Anki" —
export_anki_deck baut ein importfertiges .apkg
mit eingebetteten gerenderten Strukturen; mit dem optionalen AnkiConnect-Add-on
landen die Karten direkt im laufenden Anki, ohne Klicks:
Related MCP server: ChemCP
Funktionen
Alle 20 Tools, die der Server bereitstellt. Dateien werden nach ~/ChemDraw-Output/
geschrieben; jedes Zeichen-Tool liefert außerdem eine Live-Vorschau für das
In-Chat-Panel.
Strukturen und Schemata
generate_molecule— Name/SMILES → 2D-Struktur als PNG + SVG (optional CDXML), mit Eigenschaften, funktionelle-Gruppen-Erkennung und Lipinski-Regel-der-Fünf-Prüfungbatch_generate— eine ganze Liste von Strukturen in einem Aufrufgenerate_reaction— Edukte + Produkte + Bedingungen → Reaktionsschema mit den Bedingungen über dem Pfeilgenerate_mechanism— Mechanismen mit gebogenen Pfeilen (SN1, SN2, Fischer-Veresterung) Schritt für Schrittgenerate_scope_table— die Substratbreiten-Abbildung der Methodenliteratur: die allgemeine Gleichung mit ihren Bedingungen oben, darunter ein Raster von Produkten, jedes mit Kennung („1a") und Ausbeute („78 %") plus optional ee/dr/Zeit. Alle Strukturen teilen eine Bindungslänge, alle Beschriftungen eine Baseline; ein Eintrag, der nicht aufgelöst werden kann, wird gemeldet, nicht fatalcompare_molecules— 2–4 Strukturen nebeneinander, Unterschiede hervorgehoben, gemeinsames Grundgerüst (MCS) neutralgenerate_3d— drehbares 3D-Kugel-Stab-Konformer im Chat-Panel (ETKDGv3 + Kraftfeld) plus SDF-Export
Laborergebnisse und Analytik
generate_spectrum— schematische Spektren aus Peaklisten (IR, NIR, Raman, UV/Vis, Fluoreszenz, ORD, CD, ¹H/¹³C-NMR, MS) mit achsen-Konventionen pro Typ — zeichnet vorgegebene Peaks, sagt keine Spektren vorausgenerate_tlc— DC-Platten-Skizze aus Rf-Werten: Startlinie unten, Lösungsmittelfront oben, eine beschriftete Bahn pro Auftragungspunkt (Edukt / Reaktion / Co-Spot), Rf an jedem Fleck annotiert, Fließmittel und Detektion als Beschriftung gedruckt — die Skizze, die ein Laborbericht verlangtgenerate_titration_curve— pH-Wert vs. Titrantvolumen aus der exakten Ladungsbilanz, mit Äquivalenzpunkten, Pufferpunkten (pH = pKa) und Indikator-Umschlagsbandegenerate_species_distribution— Anteile der Protonierungsspezies über den pH-Wert (Henderson–Hasselbalch) mit markierten pKa-Übergängengenerate_calibration_curve— Ausgleichsgerade durch Ihre Standards, und die Unbekannten werden davon abgelesen, so wie Sie es mit einem Lineal tun würden. Eine Probe außerhalb des kalibrierten Bereichs wird als extrapoliert gekennzeichnet, statt stillschweigend berichtet zu werden; Nachweis- und Bestimmungsgrenzen (DIN 32645) kommen für die Validierungsfrage mit
Bänkerrechnen (die Zahl und der Rechenweg — ein Laborbericht verlangt beides)
calculate_solution— was man einwiegt (m = c · V · M), was man tatsächlich erhalten hat, Verdünnungen (C₁V₁ = C₂V₂ mit ausgeschriebenem Lösungsmittelvolumen), das Mischungskreuz und molare Massen einschließlich Hydraten wieCuSO₄·5H₂O. Warnt, wenn die berechnete Einwaage unter das fällt, was eine Analysenwaage auflöst — dann ist das Verdünnen einer größeren Einwaage der richtige Schrittcalculate_content— eine Gehaltsbestimmung, wie das Protokoll sie will: ein Gehalt pro Messung → Grubbs-Ausreißertest → Mittelwert, s, RSD → t-Test gegen den deklarierten Gehalt. Titration (mit Titerbestimmung aus Referenztitrationen) und Photometrie, plus die Fettkennzahlen (Säure-, Verseifungs-, Ester- und Iodzahl) und der Karl-Fischer-Wassergehalt als weiteremethodscalculate_ph— schwache und starke Säuren und Basen, Puffer und Pufferrezepturen bis hin zu einwiegbaren Massen. Gelöst über die exakte Ladungsbilanz mit der Lehrbuch-Näherung daneben gedruckt: Wo die beiden abweichen, hat die Näherung ihre Annahmen verloren und sagt das auch. 10⁻⁸ M HCl ergibt pH 6,98, nicht 8
Substanzdaten (Online-Abfragen)
lookup— die Fakten als Text, eintopicpro Frage:properties(Summenformel, Masse, CAS, InChIKey — die Voreinstellung),safety(GHS-Gefahrenhinweise, Piktogramme, Signalwort),physical(Schmelz-/Siedepunkt, Löslichkeit, Dichte),biochem(ChEBI-Klassifikation plus zugehörige UniProt-Einträge),pathway(Stoffwechselwege aus KEGG)lookup_molecule_data— PubChem + GHS kombiniert zu einem Datenblatt für das In-Chat-Panel, Struktur inklusivepredict_spectrum— welche IR-Banden eine Struktur zeigen sollte (mit Intensität und Bandenform), wozu eine gemessene Wellenzahl gehören könnte, und wie viele ¹H-Signale mit welchem Integralverhältnis zu erwarten sind. Deterministisch, also sagt es, was es nicht kann: keine chemischen Verschiebungen in ppm, und diastereotope Protonen werden als ein Signal gezählt
Prüfungsvorbereitung
export_anki_deck— Karteikarten als importfertiges Anki-.apkg: Struktur↔Name-Übungen (optional umgekehrt: eine Notiz, beide Richtungen), Lückentext-Karten, Identitäts-/Nachweisreaktionen, Spektrum-Bandenzuordnung — mit eingebetteten gerenderten Bildern, Tags pro Karte,Parent::Child-Unterdecks; der erneute Export eines Decks aktualisiert Karten, statt sie zu duplizieren. Optionale Zustellung direkt ins laufende Anki über das AnkiConnect-Add-on. Übergeben Siecurated_deck_idstatt eigener Karten für ein kleines, formelverifiziertes Starter-Deck (klassische Analgetika, Ph.-Eur.-Identitätsreaktionen)
Jedes Tool gehört zu einem von fünf Bereichen — zeichnen, Laborgrafik,
nachschlagen, rechnen, Anki — und jedes sagt, wofür es nicht gedacht ist, in
beide Richtungen, sodass „Zeichne Aspirin" nicht in einem
Substratbreiten-Raster landen kann und „Welchen pH-Wert hat mein Puffer?"
nicht in einem Plot-Tool. Ein Tool steht außerhalb: save_png ist die
Serverhälfte des Export-Buttons des Panels, wird aufgerufen, wenn Sie ihn
klicken, niemals allein.
Zwei optionale Vault-Tools (search_vault, read_vault_entry) erscheinen nur,
wenn CHEMDRAW_VAULT_PATH gesetzt ist; ohne es stellt der Server genau die
20 Tools oben bereit.
Optionen der Zeichen-Tools
formats— standardmäßig["png","svg"]; zusätzlich"cdxml"fürgenerate_molecule,generate_reactionundbatch_generate. Die Abbildungs-Werkzeuge (generate_scope_table,generate_tlc,generate_spectrum) lehnen CDXML mit einer klaren Fehlermeldung ab, statt etwas Bedeutungsloses zu schreiben.abbreviate_groups=True— zeichnet häufige Substituenten als die Beschriftungen, die Chemiker tatsächlich schreiben: Ph, Bn, OMe, OAc, tBu, CO₂H, Boc, Ts, TBS. Lohnt sich immer dann, wenn Zellen klein werden — eine Scope-Abbildung bleibt lesbar, weil nur das ausgeschrieben wird, was sich zwischen den Substraten unterscheidet. Verfügbar beigenerate_molecule,generate_reaction,generate_scope_table,batch_generate.render_style— ein benannter Look statt eines Haufens von Render-Parametern, bei denselben vier Werkzeugen."compact"(dünne Bindungen, begrenzte Beschriftungsgröße, enge Ränder) für eine kleine Abbildung in einem zweispaltigen Layout,"presentation"(doppelte Bindungsbreite, minimale Schriftgröße, mehr Innenabstand) für eine Vorlesungsfolie,"grayscale"für den Schwarzweißdruck, wo Rot und Blau sonst zu zwei ununterscheidbaren Grautönen würden. Leer bedeutet den Standard-Look, unverändert.annotate_stereo=True— druckt CIP-Deskriptoren (R/S, E/Z) auf die 2D-Zeichnung (generate_molecule,batch_generate).
Installation
Drei Wege hinein; wähle einen. Option 1 und 2 gehen idempotent in die Konfiguration ein — sichere sie zuerst und lasse jeden anderen MCP-Server, den du konfiguriert hast, unangetastet. Starte danach Claude Desktop neu und frage: „Koffein zeichnen".
Option 1 — Repository klonen (empfohlen, wenn du den Code lesen oder ändern willst; installiert uv, falls fehlend, synchronisiert Abhängigkeiten, registriert den Server):
git clone https://github.com/jurimaxam-dotcom/chemdraw-mcp.git
cd chemdraw-mcp && ./install.shOption 2 — von PyPI, ohne Klon (benötigt uv):
uv tool install chemdraw-mcp
chemdraw-installchemdraw-install schreibt den Claude-Desktop-Eintrag für dich, unter
Verwendung des absoluten Pfads des installierten Launchers, und gibt den
Startbefehl aus, den es registriert hat.
Option 3 — Konfiguration von Hand bearbeiten. Füge dies zu
claude_desktop_config.json unter mcpServers hinzu (macOS:
~/Library/Application Support/Claude/claude_desktop_config.json):
"chemdraw-tool": {
"command": "/opt/homebrew/bin/uvx",
"args": ["chemdraw-mcp"]
}Die eine Falle, die jede manuelle Installation scheitern lässt: Claude Desktop startet MCP-Server nicht aus einer Login-Shell — es verwendet den minimalen GUI-PATH. Ein nacktes
"uvx"oder"uv"kann dort nicht aufgelöst werden, und der Server startet nicht, ohne dies zu sagen. Setze immer den absoluten Pfad, denwhich uvxauf deiner Maschine ausgibt, incommandein. Option 1 und 2 erledigen das für dich.
Optionale Extras
Eine Java-Laufzeit (z. B.
brew install openjdk) ermöglicht es OPSIN, systematische IUPAC-Namen offline zu parsen — auch solche, die keine Datenbank indexiert. Ohne Java fährt der Resolver einfach mit der Online-Suche über PubChem/NCI fort.Das AnkiConnect-Add-on ermöglicht es
export_anki_deck, Karten direkt in ein laufendes Anki zu schieben. Ohne es bekommst du die.apkg-Datei und importierst sie selbst.ChemDraw (macOS) ist nie erforderlich: Fordere
formats=["cdxml"]an und öffne die Datei selbst, wenn du dort weiterbearbeiten willst.
Etwas funktioniert nicht? Führe den Doctor aus
chemdraw-doctor # after "uv tool install chemdraw-mcp"
uv run chemdraw-doctor # in the cloned repo
uvx --from chemdraw-mcp chemdraw-doctor # without installing anythingDas ist das Erste, was man versuchen sollte — es verwandelt „der Server tut
nichts" in eine benannte Ursache. Er prüft die sechs Dinge, die den Server
im Chat tot aussehen lassen (RDKit-Rendering, die Java/OPSIN-Laufzeit, den
uv-Pfad, den Claude-Desktop-Eintrag, die Namensdatenbanken, das
Ausgabeverzeichnis) und druckt für jedes Problem den genauen Befehl, der es
behebt. Drei Stufen werden unterschieden: [OK], [LIMITED] (funktioniert,
aber eingeschränkt) und [FAIL] (defekt); [NOTE] markiert Prüfungen, die
einfach nicht zutreffen, etwa wenn Claude Desktop nicht installiert ist. Der
Exit-Code bleibt 0, solange der Server nutzbar ist, sodass er in Skripten
laufen kann. (Bei einer PyPI-Installation melden die uv- und
Claude-Desktop-Prüfungen [NOTE] — sie betreffen den
Repository-Installer.)
Einschränkungen
Vorab genannt, damit dich in einem Bericht nichts überrascht:
Java ist optional, und das hat seinen Preis. Ohne JRE wird OPSIN übersprungen und Namen werden online über PubChem/NCI aufgelöst — die Namenssuche benötigt also eine Internetverbindung und funktioniert nur für Namen, die diese Datenbanken indexieren. SMILES-Eingabe berührt das Netzwerk nie.
Spektren sind schematisch.
generate_spectrumzeichnet die Peaks, die ihm übergeben werden, mit den richtigen Achsenkonventionen für den Spektrentyp. Es misst nichts und sagt nichts voraus — wenn die Peak-Werte aus dem Chat stammen und nicht von deinem Instrument, verifiziere sie, bevor sie in einen Bericht gelangen.TLC-Intensität ist ein Zeichenhinweis. Die optionale
intensity(0…1) macht einen Fleck auf der Skizze blasser. Sie ist keine Densitometrie und hat keine quantitative Bedeutung.CDXML ist ein Nebenpfad. Es wird aus dem RDKit-Molekül geschrieben und im Round-Trip validiert, aber PNG/SVG sind die primären Ausgaben und diejenigen, die die Pixeltests abdecken. CDXML ist standardmäßig deaktiviert und auf Strukturen und Reaktionsschemata beschränkt — TLC-Platten, Scope-Abbildungen und Spektren lehnen es ab.
3D ist ein Konformer.
generate_3dbettet mit ETKDGv3 ein und optimiert mit MMFF (UFF als Fallback). Das ist eine plausible Geometrie zum Anschauen, keine Konformationssuche und keine Energieaussage.Die ChemDraw-Brücke ist nur für macOS und benötigt ein lokal installiertes ChemDraw. Alles andere funktioniert ohne es.
So funktioniert es
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)Entwicklung
Python 3.11+, Paketmanager 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Über 600 Tests, test-first geschrieben. Der E2E-Test rastet ein echtes RDKit-SVG in headless Chromium ein und vergleicht es mit einem exakten Pixel-Schnappschuss — der Exportpfad und die Vorschau im Chat werden an denselben Zeichenkonstanten gemessen.
Lizenz
Apache-2.0 — siehe LICENSE. Copyright 2026 jurimaxam-dotcom.
Haftungsausschluss: Dies ist ein inoffizielles, unabhängiges Projekt, das weder mit Revvity verbunden ist noch von Revvity unterstützt wird. ChemDraw ist eine Marke von Revvity Signals Software, Inc. Dieses Tool enthält ChemDraw nicht und benötigt es nicht; es kann optional Dateien im offenen CDXML-Format exportieren.
This server cannot be installed
Maintenance
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
Convert handwriting into text, LaTeX math, chemistry, or molecular structures.
- mcpOAuthio.scispot
Turn any LLM into your lab assistant: search samples, track experiments, analyze data with AI.
Free: turn your AI chats into spaced-repetition vocabulary. 13 tools, reads and writes.
Renders interactive Chart.js charts and dashboards inline in AI conversations.
Related MCP Servers
- AlicenseCqualityBmaintenanceEnables chemical reaction predictions (retrosynthesis, product, reagents), molecule validation, and property calculation through the Model Context Protocol, integrating with AI assistants.5MIT
- AlicenseAqualityDmaintenanceRenders interactive 2D molecular structure diagrams from SMILES notation and computes molecular properties like molecular weight, LogP, and TPSA, directly in the chat.1551ISC
- AlicenseNot gradedqualityBmaintenanceProvides an MCP interface for publication-quality chemical structure and reaction rendering from SMILES/InChI/molblock, with validation and name parsing. Enables AI agents to draw molecules and reactions as images.MIT
- FlicenseNot gradedqualityCmaintenanceProvides in-process RDKit cheminformatics operations — descriptors, fingerprints, similarity and substructure search, reaction enumeration, standardization, and 3D conformer generation — for AI agents.-