Skip to main content
Glama

chemdraw-mcp

CI Release License: Apache-2.0

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üfung

  • batch_generate — eine ganze Liste von Strukturen in einem Aufruf

  • generate_reaction — Edukte + Produkte + Bedingungen → Reaktionsschema mit den Bedingungen über dem Pfeil

  • generate_mechanism — Mechanismen mit gebogenen Pfeilen (SN1, SN2, Fischer-Veresterung) Schritt für Schritt

  • generate_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 fatal

  • compare_molecules — 2–4 Strukturen nebeneinander, Unterschiede hervorgehoben, gemeinsames Grundgerüst (MCS) neutral

  • generate_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 voraus

  • generate_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 verlangt

  • generate_titration_curve — pH-Wert vs. Titrantvolumen aus der exakten Ladungsbilanz, mit Äquivalenzpunkten, Pufferpunkten (pH = pKa) und Indikator-Umschlagsbande

  • generate_species_distribution — Anteile der Protonierungsspezies über den pH-Wert (Henderson–Hasselbalch) mit markierten pKa-Übergängen

  • generate_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 wie CuSO₄·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 Schritt

  • calculate_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 weitere methods

  • calculate_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, ein topic pro 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 inklusive

  • predict_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 Sie curated_deck_id statt 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ür generate_molecule, generate_reaction und batch_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 bei generate_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.sh

Option 2 — von PyPI, ohne Klon (benötigt uv):

uv tool install chemdraw-mcp
chemdraw-install

chemdraw-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, den which uvx auf deiner Maschine ausgibt, in command ein. 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 anything

Das 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_spectrum zeichnet 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_3d bettet 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.

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.
    -