mcpField
C
ChemDraw MCP (unofficial)

ChemDraw MCP (unofficial)

ローカル
github.com/jurimaxam-dotcom科学・教育252 日前に更新

ChemDraw MCP (unofficial) について

ChemDraw MCP (unofficial)は、化学を学ぶ人や実験レポートの作成者向けのMCPサーバーです。分子名やSMILESから構造式を作成し、反応図や分子データを用意します。描画はRDKitでローカル処理され、チャット内でプレビューできます。

主な機能

  1. 01名称やSMILESから構造式を作成
  2. 02反応スキームを生成
  3. 03分子を比較して差異を強調
  4. 04PNG、SVG、任意でCDXMLに出力
  5. 05PubChemの物性とGHS安全情報を検索

活用シーン

  1. 01実験レポート用の統一形式の構造図を作成
  2. 02候補分子を並べて比較
  3. 03条件付きの反応スキームを作図
  4. 04分子の物性や危険情報を確認

MCP 対応

MCPクライアントに、分子描画、バッチ生成、比較、反応生成、分子データ検索のツールを提供します。デフォルトのMVPでは一部のツールが登録されます。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"jurimaxam-dotcom-chemdraw": {
"command": "uvx",
"args": [
"chemdraw-mcp"
]
}
}
}
起動コマンドuvx chemdraw-mcp

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
pypichemdraw-mcp0.6.0

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

chemdraw-mcp

CI Release License: Apache-2.0 PyPI GitHub stars

チャットから化学構造へ。 Claude Desktopで 「アスピリンを描いて」 と言うと、 正確で印刷可能な構造が得られます。RDKitでローカルに描画され、チャット内でそのまま操作できます。

chemdraw-mcpのパネル:ホバーすると官能基が強調表示されるアスピリンと、その後に表示されるPubChemデータシート

PubChemの読み込み待ち時間を短縮するため、デモを編集しています。

  • 似たものではなく、正しい分子を。 名称(ドイツ語の慣用名も含む)、IUPAC名、SMILESをOPSIN、PubChem、NCIで解決します。固定された識別テストでは、24件の入力をそれぞれのInChIKeyと照合します。
  • ラボレポートにそのまま使えます。 一貫した出版向けスタイルのPNGとSVGに加え、ChemDraw CDXMLも任意で出力できます。ChemDrawのライセンスは不要です。
  • 描くだけでなく、理解する。 官能基にカーソルを合わせて位置を確認したり、GHS安全情報付きのPubChemデータシートに切り替えたり、違いを強調表示して構造を比較したりできます。

インストール: Claude Desktop拡張機能をダウンロード(.mcpb、ダブルクリック)するか、uv tool install chemdraw-mcp && chemdraw-installを実行します。 無料のオープンソース(Apache-2.0)で、APIキーもサインアップも不要です。

なしの場合chemdraw-mcpを使う場合
Claudeが構造を言葉で説明するか、どこかに貼り付ける必要があるSMILESを書く構造がチャットに表示され、すぐにエクスポートできます
ChemDrawやChemSketchで手描きした図図ごとに一文で指定でき、レポート全体でスタイルが統一されます
モル質量、CAS、安全性情報を別々の3つのウェブサイトから取得PubChemを出典とする1つのデータシートにまとまります

30秒で試す

  1. Claude Desktop拡張機能をダウンロード (chemdraw-mcp-<version>.mcpb)して、ダブルクリックします。Claude Desktopで確認します。
  2. 新しいチャットを開き、「ChemDraw MCPを使って、カフェインを描いて」 と入力します。構造がパネルに表示されます。
  3. 次のいずれかを試してみてください。
指示得られるもの
「イブプロフェンとナプロキセンを並べて描き、違いを示して」両方の構造と、強調表示された違い
「アスピリン、カフェイン、パラセタモールを描いて」個別の構造とファイル
「エタノールと酢酸が反応して、酢酸エチルと水になる反応を描いて」反応スキーム
「カフェインのデータシートを表示して」構造、PubChemの特性、GHS安全情報

APIキーもサインアップもChemDrawのライセンスも不要です。描画はお使いのマシン上で実行されます。 詳しい情報とその他のインストール方法はインストールをご覧ください。 時間の節約になったら、⭐を付けていただけると、ほかの学生にも見つけてもらいやすくなります。

出力例

「カフェインを描いて」 — generate_moleculeで生成した、印刷可能なPNG:

generate_moleculeで描画したカフェインの構造

「イブプロフェン、ナプロキセン、ケトプロフェンの違いは?」 — compare_moleculesでは、共通の骨格を中立色のままにして、異なる部分を強調表示します:

イブプロフェン、ナプロキセン、ケトプロフェンを並べ、チャットパネルで相違点をハイライト表示

「エタノールと酢酸のフィッシャーエステル化を表示して」 — generate_reaction は平衡矢印(⇌)と、その上下に反応条件を配置した反応式をチャットパネルにリアルタイムで描画します。

チャットパネルに描画された、平衡矢印とその上下の反応条件を含むフィッシャーエステル化

その他の例 — full プロファイルのみ

以下の例には、MVP で一時停止中の機能が含まれています。 CHEMDRAW_PROFILE=full を設定すると、すべての機能を有効にできます。

「フィッシャーエステル化の反応機構を段階ごとに表示して」 — generate_mechanism は、インタラクティブパネルに曲矢印で電子の流れを描画します。

チャットパネルに描画された、曲矢印を含むフィッシャーエステル化の段階的な反応機構

概要では、各段階を同じ結合長で1列に並べるため、反応物、遷移状態、生成物をひと目で確認できます。

SN2 の概要:反応物、部分結合と曲矢印を含む遷移状態、生成物

「私の鈴木カップリングのスコープ図を作成して:3a 92%、3b 12時間後に88%、 3c 64%、ee 94%、dr 10:1、3d 71%」 — generate_scope_table は 一般反応式とその反応条件を上部に、生成物を下部に配置し、結合長とキャプションのベースラインをそろえます。

基質スコープ図:反応条件を上部に配置した鈴木カップリング反応式と、その下に収率および ee/dr の注記付きで3aから3dとラベル付けされた4つのビフェニル生成物

「酢酸エチルの IR スペクトルをスケッチして」 — generate_spectrum は、 与えられたピークを種類ごとの軸規則に従って描画します。

ピークにラベルを付けた酢酸エチルの模式的な IR スペクトル

「私のエステル化反応の TLC:出発物質は0.30、生成物は0.65、混合スポットには両方があり、出発物質が少し残っている」 — generate_tlc は、 移動相と検出法をキャプションに添えて、実験レポートで求められるプレートを描画します。

4レーンのTLCプレートのスケッチ:Rf 0.30の出発物質、かすかな出発物質のスポットと0.65のエステルを含む反応レーン、両方を含む混合スポットレーン、0.65の参照レーン

「カフェインを3Dで表示して」 — generate_3d は分子の立体構造(ETKDG + force field)を埋め込み、チャットパネルでドラッグして回転できる球棒モデルのビューアーを開きます。

凹面ビューアー内で回転する、球棒モデルの3Dカフェイン分子

「リン酸を NaOH で滴定する曲線。指示薬はフェノールフタレイン」 — generate_titration_curve は正確な電荷収支から pH を計算し、当量点、緩衝点(pH = pKa)、指示薬の変色域を表示します。また、関連する generate_species_distribution は各 pH で優勢となるプロトン化化学種を示します。

3つの当量点とフェノールフタレインの変色域を示すリン酸の滴定曲線 pKaの交点を示す、pHに対するリン酸の化学種分布

「重要な分子を含むAnkiデッキを作成して、Ankiで開いて」 — export_anki_deck は、構造式を埋め込んだ、すぐにインポートできる .apkg を作成します。オプションのAnkiConnectアドオンを使えば、カードはクリック操作なしで起動中のAnkiに直接追加されます。

薬理学

フルプロファイルのみ(CHEMDRAW_PROFILE=full。プロファイルを参照)。

薬理学の授業で繰り返し求められる曲線を、指定した数値から描画します。 図と、その基となる計算(calculate_pharmacokinetics)では同じ式を使うため、 図と数値に食い違いはありません。

「500 mgを8時間ごとに経口投与した場合(F 0.8、Vd 70 L、半減期4.6 h、ka 1.2/h)の血漿中濃度を、治療域2–6 mg/Lでプロットして」 — generate_pk_curve は定常状態に達するまでの推移を作成し、Cmax、tmax、AUC、蓄積率、定常状態の90 %に達するまでの時間を出力します。

治療域内で定常状態に達する、反復経口投与後の時間に対する血漿中濃度

「EC50 10 nMのアゴニストの用量反応曲線を描いて、競合アンタゴニスト(20 nM、KB 10 nM)の作用を示して」 — generate_dose_response は用量比に応じて曲線を右にシフトさせ、Emaxはそのまま維持します。

アゴニストのHill曲線と、競合アンタゴニストによって右にシフトした同じ曲線

フルプロファイルの機能リファレンス

CHEMDRAW_PROFILE=full で利用できる23個すべてのツールです。デフォルトのMVPで登録されるのは、 generate_molecule、batch_generate、compare_molecules、generate_reaction、 export_anki_deck、lookup_molecule_data、およびパネル内部の save_png のみです。 ファイルは ~/ChemDraw-Output/ に書き込まれます。 すべての描画ツールは、チャット内パネルで表示できるライブプレビューも返します。

構造式と反応スキーム

  • generate_molecule — 名前/SMILES → PNG + SVG形式の2D構造式 (オプションでCDXMLも出力)。物性、官能基の検出、リピンスキーの5則のチェック付き
  • batch_generate — 構造式のリスト全体を1回の呼び出しで生成
  • generate_reaction — 反応物 + 生成物 + 条件 → 反応スキーム 条件は矢印の上と下に表示。順反応(→)、平衡反応(⇌)、または 逆合成(⇒)の矢印を使用し、化学式の数字を下付き文字にします(H2SO4 → H₂SO₄)
  • generate_mechanism — 曲矢印による反応機構(SN1、SN2、フィッシャーエステル化)を段階ごとに生成
  • generate_scope_table — 方法論に関する文献に掲載される基質適用範囲の図を生成します。条件を上に置いた一般反応式の下に、生成物のグリッドを配置します。各生成物には識別子(「1a」)と収率(「78%」)を付け、任意でee/dr/時間も表示します。すべての構造式で結合長を統一し、すべてのキャプションを同じベースラインに揃えます。解決できない項目はエラーで処理を中断せず、報告します
  • compare_molecules — 2~4個の構造式を横並びにし、相違点を強調表示。共通骨格(MCS)は中立色で表示
  • generate_3d — チャットパネルに回転可能な3D球棒モデルの配座を表示(ETKDGv3 + 力場)し、SDF形式でエクスポート

実験結果と分析

  • generate_spectrum — ピークリストから模式的なスペクトルを作成します(IR、NIR、Raman、UV/Vis、蛍光、ORD、CD、¹H/¹³C NMR、MS)。種類ごとの軸の規則に従い、指定されたピークを描画します。スペクトルの予測は行いません
  • generate_tlc — Rf 値からTLCプレートのスケッチを作成します。下部にスタートライン、上部に溶媒先端を配置し、各塗布点(出発物質/反応/共スポット)ごとにキャプション付きのレーンを設け、各スポットにRfを記載します。展開溶媒と検出方法はキャプションとして印字します。実験レポートで求められるスケッチです
  • generate_titration_curve — 正確な電荷収支に基づき、滴定剤の体積に対するpHを示します。当量点、緩衝点(pH = pKa)、指示薬の変色域も表示します
  • generate_species_distribution — pHに対するプロトン化化学種の割合を示します(Henderson–Hasselbalch式)。pKaの交差点も表示します
  • generate_calibration_curve — 標準試料に最小二乗直線を当てはめ、定規を使うように未知試料の値を読み取ります。試料が校正範囲外の場合は、黙って報告するのではなく外挿値として表示します。検証に関する設問に備え、検出限界と定量限界(DIN 32645)も併せて示します

ベンチ計算(数値だけでなく計算過程も表示します。実験レポートでは両方が求められます)

  • generate_pk_curve — 1-コンパートメントモデルにおける血漿中濃度の経時変化を示します。単回投与または反復投与(定常状態への蓄積を含む)、経口またはi.v.投与に対応し、治療域も描画します
  • generate_dose_response — 対数軸上のHill曲線とEC50を示し、競合拮抗薬による右方への平行移動も表示します(用量比 r = 1 + [B]/KB、Emaxは不変)
  • calculate_solution — 秤量する量(m = c · V · M)、実際に得られた量、希釈(溶媒量を明記したC₁V₁ = C₂V₂)、混合クロス、およびCuSO₄·5H₂Oのような水和物を含むモル質量を計算します。計算された分取量が分析天秤の分解能を下回る場合は警告します。その場合は、より多く量り取ってから希釈するのが適切です
  • calculate_content — プロトコルに沿った含量測定を行います。各測定値から含量を算出し、Grubbsの外れ値検定を行った後、平均値、s、RSDを求め、表示含量とt検定で比較します。滴定(標準液による滴定で力価を決定)と光度法に加え、脂肪の特性値(酸価、けん化価、エステル価、ヨウ素価)およびKarl Fischer法による水分含量も、追加のmethodとして扱います
  • calculate_ph — 弱酸・強酸、弱塩基・強塩基、緩衝液、および秤量可能な量まで示す緩衝液の調製手順に対応します。正確な電荷収支を用いて解き、教科書的な近似値も併記します。両者が異なる場合は、近似の前提条件が成り立たないことを明示します。10⁻⁸ M HClのpHは8ではなく6.98になります
  • calculate_pharmacokinetics — 計算過程を含む1-コンパートメントモデルです。半減期、経時的な濃度、AUC、経口投与後のtmax/Cmax、蓄積と定常状態、負荷投与量と維持投与量を計算します。Vdに加えてke、半減期、クリアランスのいずれかを指定します。互いに矛盾する値がある場合は、黙って整合させず明示します

物質データ(オンライン照会)

  • lookup — 質問ごとにtopicを1つ指定すると、情報をテキストで取得します。 properties(化学式、質量、CAS、InChIKey — デフォルト)、safety(GHS危険有害性情報、絵表示、注意喚起語)、physical(融点/沸点、溶解度、密度)、biochem(ChEBI分類と関連するUniProtエントリー)、pathway(KEGGの代謝経路)
  • lookup_molecule_data — PubChemとGHSの情報をまとめ、構造を含む1つのデータシートとしてチャット内パネルに表示します
  • predict_spectrum — 構造から予想されるIRバンド(強度とバンド形状を含む)、測定された波数が該当する可能性のあるもの、および予想される¹Hシグナルの数と積分比を示します。決定論的なため、対応できない内容も明示します。ppm単位の化学シフトには対応せず、ジアステレオトピックなプロトンは1つのシグナルとして数えます

試験対策

  • export_anki_deck — すぐにインポートできる Anki .apkg 形式のフラッシュカード: 構造↔名称の練習(任意で逆方向にも対応:1つのノートで双方向)、 穴埋めカード、同定・検出反応、スペクトル帯域の割り当てに対応しています。 レンダリング済み画像が埋め込まれ、カードごとのタグや Parent::Child サブデッキも利用できます。デッキを再エクスポートすると、 カードは重複せず更新されます。AnkiConnect アドオンを使って、 起動中の Anki に直接送ることもできます。自分でカードを用意する代わりに curated_deck_id を渡すと、数式検証済みの小規模なスターターデッキ (代表的な鎮痛薬、Ph.Eur. の同定反応)を利用できます。

各ツールは、描画、ラボ用グラフィックス、検索、計算、Anki の5つの領域のいずれかに属し、 それぞれが何を目的としていないかも、両方向から明示します。そのため、 「アスピリンを描画して」が基質適用範囲のグリッドに表示されたり、 「バッファーの pH は?」がプロットツールに渡されたりすることはありません。 これらの領域に属さないツールが1つあります。save_png はパネルのエクスポートボタンの サーバー側機能で、ボタンをクリックしたときに呼び出されます。単独では呼び出されません。

2つの任意のボルトツール(search_vault、read_vault_entry)は、 CHEMDRAW_VAULT_PATH が設定されている場合にのみフルプロファイルに表示されます。 設定されていない場合、そのプロファイルで公開されるツールは上記の23個だけです。 MVP ではボルトツールは登録されません。

描画ツールのオプション
  • 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 — 多数のレンダリングパラメーターを指定する代わりに、 名前付きの表示スタイルを選べます。同じ4つのツールで利用できます。 2段組みレイアウトの小さな図には "compact"(細い結合、ラベルサイズの上限、 狭い余白)、講義スライドには "presentation"(結合幅を2倍にし、 最小フォントサイズと広めの余白を設定)、白黒印刷には "grayscale" を使えます。 "grayscale" では、赤と青が見分けのつかない濃淡になってしまうのを防ぎます。 空欄の場合は、既定の表示スタイルがそのまま使われます。
  • annotate_stereo=True — 2D 描画上に CIP 記述子(R/S、E/Z)を表示します (generate_molecule、batch_generate)。

プロファイル

デフォルトの MVP プロファイルは、5つの作業に重点を置いています。 分子の描画、複数の個別構造の描画、化合物の比較、反応スキームの描画、 そして構造からの Anki フラッシュカード作成です。パネルは化合物データシート、 PNG エクスポート、Anki に追加ボタンにも対応しています。合計7つのツールを登録します。 学習、教育、ラボレポート向けの一般的な化学ワークフローです。

その他の機能はコード内および任意の フルプロファイルに残っていますが、 MVP では登録されず、呼び出すこともできません。独立したブラウザー練習トレーナーは 引き続き利用できますが、MCP MVP の対象外です。

プロファイルの切り替え

リポジトリのルートから実行してください(プロファイルを変更した後はサーバーを再起動してください)。

uv run chemdraw-tool-server                         # MVP, the default
CHEMDRAW_PROFILE=full uv run chemdraw-tool-server   # restore all 23 tools

claude_desktop_config.json に登録されているサーバーの場合は、 そのサーバーエントリーに "env": {"CHEMDRAW_PROFILE": "full"} を設定します。 既存の環境変数がある場合は保持してから、Claude Desktop を再起動してください。 MVP に戻すには、この変数を削除するか mvp に設定します。 シェル変数を設定しても、すでに起動している Desktop アプリの設定には自動で反映されません。 無効なプロファイル名を指定すると、起動時にエラーが発生して停止します。

インストール

4つの方法があります。1つだけ選んでください。二重にインストールすると、サーバーが2回登録され、モデルから見えるツールもすべて2倍になります。オプション2と3は設定に冪等に追加されますが、まずバックアップを取り、設定済みのほかのMCPサーバーには手を加えません。インストール後、Claude Desktopを再起動して、*「カフェインを描いて」*と尋ねてみてください。

オプション0 — バンドル(macOS/Linux、ターミナル不要):最新リリースからchemdraw-mcp-<version>.mcpbをダウンロードし、ダブルクリックしてClaude Desktopで確認します。初回起動時にuv経由でPyPIからパッケージを取得します(未インストールの場合は自動でインストールされます)。約40 MBあるため、しばらくお待ちください。2回目以降の起動はオフラインで行えます。インストール後、Claude Desktopを一度再起動してください。 すでにオプション1または2でインストールしている場合は、先にその登録を削除してください。

オプション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-install

chemdraw-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サーバーを起動しません。最小限のGUI PATHを使用します。 そのため、"uvx"や"uv"だけではパスを解決できず、サーバーは何も通知せずに起動に失敗します。必ず、お使いのマシンでwhich uvxが出力する絶対パスをcommandに指定してください。オプション1と2では自動で設定されます。

追加オプション
  • Javaランタイム(例:brew install openjdk)があると、OPSINで体系的なIUPAC名をオフラインで解析できます。データベースに登録されていない名前も解析できます。Javaがない場合、リゾルバーはそのままPubChem/NCIのオンライン検索を続けます。
  • AnkiConnectアドオンがあると、export_anki_deckで実行中のAnkiにカードを直接送信できます。ない場合は.apkgファイルが生成されるので、自分でインポートしてください。
  • ChemDraw(macOS)は必須ではありません。formats=["cdxml"]をリクエストし、引き続き編集する場合はファイルを自分で開いてください。
うまく動作しない場合は?doctorを実行する
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

最初に試すべき手順です。「サーバーが何もしない」原因を特定できます。チャット上でサーバーが応答しないように見える原因となる6項目(RDKitのレンダリング、Java/OPSINランタイム、uvのパス、Claude Desktopのエントリー、名前データベース、出力ディレクトリ)を確認し、問題ごとに解決するための正確なコマンドを表示します。判定レベルは3段階です。[OK]、[LIMITED](動作するものの制限あり)、[FAIL](動作しない)。Claude Desktopがインストールされていないなど、単に該当しないチェックには[NOTE]が付きます。サーバーが利用可能である限り終了コードは0のままなので、スクリプトから実行できます。(PyPIからインストールした場合、uvとClaude Desktopのチェックは[NOTE]を返します。これらはリポジトリのインストーラーに関するチェックです。)

制限事項

レポートを見て驚くことがないよう、最初に明記します。

  • Java は任意ですが、その分の制約があります。 JRE がない場合、OPSIN はスキップされ、名前は PubChem/NCI を通じてオンラインで解決されます。そのため、名前の検索にはインターネット接続が必要で、これらのデータベースに登録されている名前のみが対象です。 SMILES 入力ではネットワークに接続しません。
  • スペクトルは模式図です。 generate_spectrum は、スペクトルの種類に応じた正しい軸の規則で、渡されたピークを描画します。測定も予測もしません。ピーク値が装置ではなくチャットから得られた場合は、レポートに記載する前に確認してください。
  • TLC の強度は描画上のヒントです。 任意の intensity(0…1)を指定すると、スケッチ上のスポットが薄くなります。これはデンシトメトリーではなく、定量的な意味はありません。
  • CDXML は補助的な出力です。 RDKit 分子から書き出され、ラウンドトリップ検証も行われますが、主な出力は PNG/SVG であり、ピクセルテストの対象もこちらです。CDXML は既定では無効で、構造式と反応スキームに限られます。TLC プレート、スコープ図、スペクトルでは使用できません。
  • 3D は単一の配座です。 generate_3d は ETKDGv3 で埋め込み、MMFF(フォールバックとして UFF)で最適化します。これは見て確認するための妥当な形状であり、配座探索でもエネルギーに関する主張でもありません。
  • ChemDraw ブリッジは macOS 専用で、ローカルにインストールされた ChemDraw が必要です。それ以外の機能は 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 件以上のテストをテストファーストで記述しています。E2E テストでは、ヘッドレス Chromium で実際の RDKit SVG をラスタライズし、正確なピクセルスナップショットと比較します。エクスポート経路とチャット内プレビューには、同じ描画定数が適用されます。

フィードバック、バグ、ご要望

このプロジェクトは学生向けに作られており、今後の開発内容は、実際に使う中で直面した課題をもとに決まります。

  • 何かが壊れましたか? バグを報告する — フォームでは chemdraw-doctor の出力を求めています。これにより、質問される前に大半の問題に回答できます。
  • コースで必要なものがありませんか? 描画または計算したい内容をお知らせください — 科目と試験問題を記載してください。機能名だけを伝えるより、参考になります。
  • 化学的な間違いがありますか? バグ報告フォームを使い、化合物名と図を記載してください。ここでは、構造の間違いが何よりも重要です。
  • 質問がありますか? または、これを使って何か作りましたか? ディスカッション — 何に使ったかを紹介するなら、「Show and tell」が最適な場所です。
  • 役に立ちましたか? リポジトリへの ⭐ が、このプロジェクトで唯一の分析手段です。

ライセンス

Apache-2.0 — LICENSE を参照してください。著作権 2026 jurimaxam-dotcom。

免責事項: これは非公式の独立したプロジェクトであり、Revvity とは提携しておらず、承認も受けていません。ChemDraw は Revvity Signals Software, Inc. の商標です。このツールには ChemDraw は含まれておらず、使用も必要ありません。オープンな CDXML 形式でのファイルのエクスポートは任意で行えます。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。