chemdraw-mcp
chemdraw-mcp
Чат → химическая структура. MCP-сервер для Claude Desktop: вы описываете молекулу, реакцию или результат лабораторной работы простыми словами, а он рисует изображение — готовый к печати PNG/SVG, отрисованный локально с помощью RDKit, плюс интерактивный предпросмотр прямо в чате. «Нарисуй аспирин» — уже полноценная команда.
Создан для студентов фармацевтических и химических специальностей, которые тратят слишком много времени на клики по шестиугольникам. 20 инструментов покрывают то, что реально нужно для отчёта или слайда: структуры, схемы реакций, пошаговые механизмы, рисунки субстратного охвата, пластины ТСХ, кривые титрования, схематические спектры, листы данных о веществах, расчёты по методикам Ph.Eur. и колоды Anki.
Что это вам стоит: одна команда установки. Apache-2.0, без API-ключа, без регистрации для сервера, без лицензии ChemDraw — вам нужны Claude Desktop и uv, всё остальное загружается один раз. Отрисовка полностью выполняется на вашей машине; только разрешение имён и обращения к базам данных выходят в интернет. ChemDraw CDXML — это дополнительный формат для тех, кто хочет продолжать редактирование там, но он никогда не является обязательным.
Пример вывода
«Нарисуй кофеин» — готовый к печати PNG, созданный generate_molecule:
«Покажи этерификацию Фишера этанола с уксусной кислотой» —
generate_reaction отображает схему с условиями над стрелкой,
прямо в панели чата:
«Покажи механизм этерификации Фишера по шагам» —
generate_mechanism отображает изогнутые стрелки движения электронов в
интерактивной панели:
«Сделай рисунок субстратного охвата моих реакций Сузуки: 3a 92%, 3b 88% после 12 ч,
3c 64% с ee 94% и dr 10:1, 3d 71%» — generate_scope_table задаёт
общее уравнение с условиями сверху и продукты под ним, на
общей длине связи и общей базовой линии подписей:
«Нарисуй ИК-спектр этилацетата» — generate_spectrum (рисует
заданные пики, с осевыми соглашениями для каждого типа):
«ТСХ моей этерификации: исходное вещество на 0.30, продукт на 0.65, совместная точка показывает
оба, немного исходного осталось» — generate_tlc рисует пластину, которую требует
лабораторный отчёт, с подвижной фазой и детектированием в подписи:
«Покажи кофеин в 3D» — generate_3d встраивает молекулу (ETKDG + силовое
поле) и открывает в панели чата просмотрщик «шарики и палочки» с вращением
перетаскиванием:
«Чем ибупрофен отличается от напроксена и кетопрофена?» —
compare_molecules сохраняет общий каркас (MCS) нейтральным и выделяет
всё, что отличается:
«Кривая титрования фосфорной кислоты NaOH, фенолфталеин в качестве
индикатора» — generate_titration_curve вычисляет pH из точного
зарядового баланса, с точками эквивалентности, буферными точками (pH = pKa) и
полосой индикатора; его родственный инструмент generate_species_distribution показывает,
какая протонированная форма доминирует при каждом pH:
«Создай колоду Anki с важными молекулами и открой её в Anki» —
export_anki_deck создаёт готовый к импорту .apkg
со встроенными отрисованными структурами; с дополнительным аддоном AnkiConnect
карточки попадают прямо в запущенный Anki, без кликов:
Related MCP server: ChemCP
Возможности
Все 20 инструментов, которые предоставляет сервер. Файлы записываются в ~/ChemDraw-Output/;
каждый инструмент рисования также возвращает живой предпросмотр для панели в чате.
Структуры и схемы
generate_molecule— имя/SMILES → 2D-структура в формате PNG + SVG (опционально CDXML), со свойствами, определением функциональных групп и проверкой правила Липинскиbatch_generate— целый список структур одним вызовомgenerate_reaction— реагенты + продукты + условия → схема реакции с условиями над стрелкойgenerate_mechanism— механизмы с изогнутыми стрелками (SN1, SN2, этерификация Фишера) по шагамgenerate_scope_table— рисунок субстратного охвата из литературы по методологии: общее уравнение с условиями сверху, под ним сетка продуктов, каждый с идентификатором («1a») и выходом («78%»), плюс опционально ee/dr/время. Все структуры используют одну длину связи, все подписи — одну базовую линию; запись, которую не удалось разрешить, сообщается, но не является фатальнойcompare_molecules— 2–4 структуры рядом, различия выделены, общий каркас (MCS) нейтраленgenerate_3d— вращаемый 3D-конформер «шарики и палочки» в панели чата (ETKDGv3 + силовое поле) плюс экспорт в SDF
Лабораторные результаты и анализ
generate_spectrum— схематические спектры из списков пиков (ИК, БИК, КР, УФ/Вид, флуоресценция, ОРД, КД, ¹H/¹³C ЯМР, МС) с осевыми соглашениями для каждого типа — рисует заданные пики, не предсказывает спектрыgenerate_tlc— эскиз пластины ТСХ по значениям Rf: линия старта внизу, фронт растворителя вверху, по одной подписанной дорожке на точку нанесения (исходное / реакция / совместная точка), Rf указан у каждого пятна, подвижная фаза и детектирование напечатаны в подписи — эскиз, который требует лабораторный отчётgenerate_titration_curve— pH в зависимости от объёма титранта из точного зарядового баланса, с точками эквивалентности, буферными точками (pH = pKa) и полосой перехода индикатораgenerate_species_distribution— доли протонированных форм в зависимости от pH (Хендерсон–Хассельбальх) с отмеченными пересечениями pKagenerate_calibration_curve— линия наименьших квадратов через ваши стандарты, и неизвестные считываются с неё так же, как вы бы сделали линейкой. Образец за пределами калибровочного диапазона помечается как экстраполированный, а не тихо сообщается; пределы обнаружения и количественного определения (DIN 32645) прилагаются для вопроса валидации
Расчёты на столе (число и расчёт — лабораторный отчёт требует и того, и другого)
calculate_solution— что взвесить (m = c · V · M), что вы фактически получили, разведения (C₁V₁ = C₂V₂ с указанным объёмом растворителя), правило креста и молярные массы, включая гидраты, такие какCuSO₄·5H₂O. Предупреждает, когда рассчитанная навеска ниже того, что разрешает аналитические весы — тогда разведение большей навески — правильный ходcalculate_content— определение содержания так, как этого хочет протокол: одно содержание на измерение → тест Граббса на выбросы → среднее, s, RSD → t-тест против заявленного содержания. Титрование (с определением титра по референсным титрованиям) и фотометрия, плюс характеристики жиров (кислотное, омыления, эфирное и йодное числа) и содержание воды по Карлу Фишеру как дополнительныеmethodыcalculate_ph— слабые и сильные кислоты и основания, буферы, и рецепты буферов вплоть до взвешиваемых масс. Решается через точный зарядовый баланс с приближением из учебника рядом: где они расходятся, приближение потеряло свои допущения и говорит об этом. 10⁻⁸ M HCl даёт pH 6.98, а не 8
Данные о веществах (онлайн-запросы)
lookup— факты в виде текста, одинtopicна вопрос:properties(формула, масса, CAS, InChIKey — по умолчанию),safety(GHS формулировки опасности, пиктограммы, сигнальное слово),physical(температура плавления/кипения, растворимость, плотность),biochem(классификация ChEBI плюс связанные записи UniProt),pathway(метаболические пути из KEGG)lookup_molecule_data— PubChem + GHS, объединённые в один лист данных для панели в чате, включая структуруpredict_spectrum— какие ИК-полосы должна показывать структура (с интенсивностью и формой полосы), чему может соответствовать измеренное волновое число, и сколько сигналов ¹H ожидать с их интегральным соотношением. Детерминированный, поэтому он говорит, чего не может: нет химических сдвигов в ppm, и диастереотопные протоны считаются одним сигналом
Подготовка к экзаменам
export_anki_deck— карточки в виде готового к импорту Anki.apkg: упражнения структура↔название (опционально в обе стороны: одна заметка, оба направления), карточки с пропусками/заполнением, реакции идентификации/обнаружения, назначение полос спектра — со встроенными отрисованными изображениями, тегами на каждую карточку, подколодамиParent::Child; повторный экспорт колоды обновляет карточки вместо их дублирования. Опциональная доставка прямо в запущенный Anki через аддон AnkiConnect. Передайтеcurated_deck_idвместо своих карточек для небольшой, проверенной по формулам стартовой колоды (классические анальгетики, реакции идентификации Ph.Eur.)
Каждый инструмент относится к одной из пяти областей — рисование, лабораторная графика,
поиск, расчёт, Anki — и каждый говорит, для чего он не предназначен, в обе стороны, так что
«нарисуй аспирин» не может попасть в сетку субстратного охвата, а «какой pH у моего
буфера?» не может попасть в инструмент построения графиков. Один инструмент стоит вне них: save_png — это
серверная половина кнопки экспорта панели, вызывается при клике по ней, никогда
сам по себе.
Два дополнительных инструмента для хранилища (search_vault, read_vault_entry) появляются только
когда задан CHEMDRAW_VAULT_PATH; без него сервер предоставляет ровно
20 инструментов, перечисленных выше.
Опции инструментов рисования
formats— по умолчанию["png","svg"]; дляgenerate_molecule,generate_reactionиbatch_generateдополнительно"cdxml". Инструменты для работы с рисунками (generate_scope_table,generate_tlc,generate_spectrum) отклоняют CDXML с понятной ошибкой, вместо того чтобы записать что-то бессмысленное.abbreviate_groups=True— рисует распространённые заместители так, как их записывают химики: Ph, Bn, OMe, OAc, tBu, CO₂H, Boc, Ts, TBS. Это оправдано, когда ячейки становятся маленькими — таблица субстратов остаётся читаемой, потому что полностью прописано только то, чем субстраты различаются. Доступно вgenerate_molecule,generate_reaction,generate_scope_table,batch_generate.render_style— именованный вид вместо набора параметров отрисовки, в тех же четырёх инструментах."compact"(тонкие связи, ограниченный размер подписей, узкие поля) для небольшого рисунка в двухколоночной вёрстке,"presentation"(двойная толщина связей, минимальный размер шрифта, больше отступов) для слайда лекции,"grayscale"для чёрно-белой печати, где красный и синий иначе стали бы двумя неразличимыми оттенками серого. Пустое значение — стандартный вид, без изменений.annotate_stereo=True— выводит CIP-дескрипторы (R/S, E/Z) на двумерном рисунке (generate_molecule,batch_generate).
Установка
Три способа; выберите один. Варианты 1 и 2 идемпотентно вливаются в конфиг — сначала сделайте его резервную копию, остальные настроенные MCP-серверы они не трогают. После этого перезапустите Claude Desktop и спросите: «нарисуй кофеин».
Вариант 1 — клонировать репозиторий (рекомендуется, если вы хотите читать или менять код; при необходимости устанавливает uv, синхронизирует зависимости, регистрирует сервер):
git clone https://github.com/jurimaxam-dotcom/chemdraw-mcp.git
cd chemdraw-mcp && ./install.shВариант 2 — из PyPI, без клонирования (нужен uv):
uv tool install chemdraw-mcp
chemdraw-installchemdraw-install сам вписывает запись для Claude Desktop, используя
абсолютный путь установленного лаунчера, и печатает команду запуска, которую
зарегистрировал.
Вариант 3 — править конфиг вручную. Добавьте это в
claude_desktop_config.json в раздел mcpServers (macOS:
~/Library/Application Support/Claude/claude_desktop_config.json):
"chemdraw-tool": {
"command": "/opt/homebrew/bin/uvx",
"args": ["chemdraw-mcp"]
}Единственная ловушка, из-за которой ломается любая ручная установка: Claude Desktop не запускает MCP-серверы из login-оболочки — он использует минимальный GUI PATH. Голый
"uvx"или"uv"там не разрешается, и сервер не запускается, ничем об этом не сообщая. Всегда подставляйте вcommandабсолютный путь, которыйwhich uvxпечатает на вашей машине. Варианты 1 и 2 делают это за вас.
Дополнительные возможности
Java-рантайм (например,
brew install openjdk) позволяет OPSIN разбирать систематические названия IUPAC офлайн — в том числе те, которых нет ни в одной базе. Без Java резолвер просто продолжает онлайн-поиском по PubChem/NCI.Аддон AnkiConnect позволяет
export_anki_deckотправлять карточки прямо в запущенный Anki. Без него вы получаете файл.apkgи импортируете его сами.ChemDraw (macOS) никогда не требуется: запросите
formats=["cdxml"]и откройте файл сами, если хотите продолжить редактирование там.
Что-то не работает? Запустите доктор
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Это первое, что стоит попробовать — он превращает «сервер ничего не делает»
в названную причину. Он проверяет шесть вещей, из-за которых сервер выглядит
мёртвым в чате (рендеринг RDKit, рантайм Java/OPSIN, путь к uv, запись в
Claude Desktop, базы названий, выходную директорию) и для каждой проблемы
печатает точную команду, которая её исправляет. Различаются три уровня:
[OK], [LIMITED] (работает, но с ограничениями) и [FAIL] (сломано);
[NOTE] отмечает проверки, которые просто неприменимы, например, если
Claude Desktop не установлен. Код выхода остаётся 0, пока сервер пригоден к
использованию, так что его можно запускать в скриптах. (При установке из
PyPI проверки uv и Claude Desktop сообщают [NOTE] — они относятся к
установщику из репозитория.)
Ограничения
Заявлены заранее, чтобы в отчёте вас ничто не удивило:
Java необязательна, и у этого есть цена. Без JRE OPSIN пропускается, и названия резолвятся онлайн через PubChem/NCI — значит, поиск по названиям требует интернет-соединения и работает только для названий, которые есть в этих базах. Ввод SMILES никогда не обращается к сети.
Спектры схематичны.
generate_spectrumрисует те пики, которые ему передали, с правильными осевыми соглашениями для типа спектра. Он ничего не измеряет и ничего не предсказывает — если значения пиков пришли из чата, а не с вашего прибора, проверьте их, прежде чем они попадут в отчёт.Интенсивность на ТСХ — это подсказка для рисунка. Необязательный параметр
intensity(0…1) делает пятно бледнее на схеме. Это не денситометрия и не несёт количественного смысла.CDXML — побочный путь. Он записывается из молекулы RDKit и проходит сквозную валидацию, но PNG/SVG — основные выходные форматы, и именно их покрывают пиксельные тесты. CDXML по умолчанию выключен и ограничен структурами и схемами реакций — пластины ТСХ, таблицы субстратов и спектры его отклоняют.
3D — это один конформер.
generate_3dвстраивает геометрию через ETKDGv3 и оптимизирует MMFF (с запасным вариантом UFF). Это правдоподобная геометрия для просмотра, а не конформационный поиск и не утверждение об энергии.Мост к ChemDraw работает только на macOS и требует локально установленного ChemDraw. Всё остальное работает без него.
Как это работает
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)Разработка
Python 3.11+, пакетный менеджер 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Более 600 тестов, написанных в стиле test-first. E2E-тест растеризует настоящий SVG от RDKit в headless-браузере Chromium и сравнивает его с точным пиксельным снимком — путь экспорта и предпросмотр в чате придерживаются одних и тех же констант отрисовки.
Лицензия
Apache-2.0 — см. LICENSE. Copyright 2026 jurimaxam-dotcom.
Дисклеймер: Это неофициальный независимый проект, не аффилированный с Revvity и не одобренный ею. ChemDraw — товарный знак Revvity Signals Software, Inc. Этот инструмент не включает ChemDraw и не требует его; он может опционально экспортировать файлы в открытом формате CDXML.
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.-