Skip to main content
Glama
glebo309
by glebo309

ChemDraw MCP for macOS

Native, editable chemical drawings from your assistant or terminal. Read your unsaved ChemDraw edits, build aligned molecule tables in the same document, and export figures at a consistent chemical scale.

ChemDraw MCP graphical setup with molecular animation and pink, lavender and gold accents

Mac downloads · Terminal installation · Examples and customization · Architecture

Install once

Route

Start here

Graphical Mac installer

Download the Apple Silicon .dmg from Releases, open ChemDraw MCP, and choose your installed ChemDraw app and local assistants. Python and dependencies are included.

Terminal / Git

Clone this repository and run ./install.sh. It installs locked dependencies and automatically launches the animated terminal setup. Requires Git and uv. Commands

MCP bundle

The .mcpb is an alternative for clients that import MCP bundles. Choose this or the DMG, not both.

All routes use the same native bridge. You do not need a separate installation for each model. Other local stdio MCP clients can use the server executable; each client's permissions and tool behavior still need testing. The graphical helper offers Claude Desktop and Codex local-client configuration. It does not install a remote connector into web ChatGPT.

Terminal quick start

git clone https://github.com/glebo309/chemdraw-mcp-macos.git
cd chemdraw-mcp-macos
./install.sh

Setup starts automatically after dependency installation. To connect assistants, use ./install.sh --client claude --client codex instead. A Git clone alone does not execute anything. Checkout commands use uv run; no global shell command or PATH change is assumed. For an optional first drawing after setup:

uv run --locked --extra chemistry chemdraw-mac first-run

Prefer no terminal? Download the Mac DMG, open it, and open ChemDraw MCP. The graphical helper includes Python and dependencies, guides the ChemDraw add-in step, and connects selected local clients. It does not install or license ChemDraw itself.

The graphical install also includes terminal access. After Finish, open a new macOS zsh Terminal window and run chemdraw-mac --help or chemdraw-mac first-run. No second download, Python or uv installation is needed. Setup preserves and backs up existing shell settings before adding its PATH entry.

Experimental candidate: 0.10.0rc13. Requires your own licensed ChemDraw and a logged-in Mac desktop. Native tests have run on Apple Silicon, macOS 15.6, ChemDraw 23.0.1.11. The Mac app is ad-hoc signed, not Developer ID signed or notarized. Independent-Mac acceptance is still open. Only one assistant can own the native connection at a time. Compatibility · Graphical setup · Updates

Related MCP server: live-chemdraw-mcp

Ask for the result

Draw caffeine in my current ChemDraw document.

Read my edited parent structure. Make an eight-member scope, align the common scaffold, center the structures and captions, and add pages in this document if needed. Do not invent yields.

Export this document as PDF and transparent 600-DPI PNGs, preserving molecular scale.

The drawing harness checks explicit graphs, native output, layout and source preservation. Shared tables use measured ink centres and common caption baselines; complete batches can add physical pages without shrinking molecules. One hidden native copy measures the table before final insertion. Physical-scale SVG/PNG exports keep bond size consistent instead of fitting every molecule to the same image width. Native PDF retains paper pages. No HTML review is required for ordinary shared drawings or physical-scale exports.

Worked examples · Drawing request format · Export settings and limits

Control desktop ChemDraw from a terminal or an MCP-connected assistant. Create native structures and explicit reaction rows, import local styles, design mapped aromatic scopes, inspect identifiers, resolve names with explicit network opt-in, polish figures, add supported electron/charge symbols and curves, or batch-export finished drawings. Inspect native exports and keep editable output plus a chemical audit.

Native ChemDraw rendering. The desktop JavaScript API reads and appends supported molecule batches; bounded AppleScript handles other native commands and exports. RDKit supplies validated graphs and coordinates through its ChemDraw CDXML writer, not images. ChemDraw renders SVG; offline resvg rasterizes that unchanged native SVG for transparent PNG. Explicit background workflows retain the older native import/cleanup pipeline. Natural-language interpretation comes from your MCP client, not an embedded LLM.

Independent, open-source experimental project under AGPLv3. Native workflows require your own licensed ChemDraw installation; identifier inspection, style extraction and scope proposals are offline. Name/CAS resolution sends the supplied query to PubChem only with explicit opt-in. Only ChemDraw 23.0.1 has been live-tested here; individual feature evidence remains separate. Compatibility and limits

Experimental, not a stable release: native support is limited to the tested ChemDraw build and supported drawing subset. Cross-process coordination and opt-in circled charges have regression coverage; crowded charge positions fail explicitly rather than risking a changed molecular graph. See current development status for exact checks and pending acceptance on another Mac.

Two layers, one native MCP

The core MCP already works on its own. Use it to import, create, inspect, clean, style and export native ChemDraw documents. The optional workflow layer adds reusable drawing, layout and validation operations. Your connected AI client interprets natural language and chooses the tools; there is no LLM inside this server.

Mode

Launch command

Intended use

Core

chemdraw-mcp-macos --profile core

Direct native document tools; no RDKit required

Drawing

chemdraw-mcp-macos --profile drawing

Focused drawing, diagnostics and physical-export tools

Full (default)

chemdraw-mcp-macos --profile full

Core plus drawing, reaction, scope and validation workflows

Both modes use the same native bridge. Full workflows accept structures and recipes, not a fixed catalogue of molecules. Experimental metal-complex work is an additional capability, not something users must wait for before using the core MCP. See architecture, installation and design principles and client configuration.

Existing document or background export

chemdraw_draw and chemdraw_draw_structures reuse a visible working document in auto mode for supported molecules and captions. Untitled documents do not need saving first. Specify presentation="shared", document_id=ID when several documents are open. Native API insertion uses planned coordinates and preservation checks in the same document, without clipboard or keyboard movement. Shared delivery requirements and limits.

Use live-read and live-action to inspect and run supported native commands on the document already open in ChemDraw, without another working window or preview. Fresh snapshots detect changed content before dispatch. visibility shows/hides one document. render --input drawing.cdxml --output /absolute/new-folder exports supplied CDXML in a hidden window and closes that owned document after success. Both MCP profiles expose matching tools.

This is on-request synchronization, not continuous collaborative editing. Arbitrary atom edits still use the separate copy workflow. Background rendering requires a logged-in licensed Mac desktop; it is not a display-free server mode. Commands, evidence and limits

Acknowledgments

Special thanks to Marco DeCorti for showing what makes a chemical drawing clear and visually polished, providing reference examples, and carefully checking the generated output. His input helped shape the project's molecular drawing style and visual quality standards.

Native before and after

Both drawings below are exports from desktop ChemDraw, not a substitute renderer. GitHub previews have a solid white background for readability in light and dark themes; original exports remain transparent. Reproduce them with the included example and recipe below.

Before

After

Original illustrative oxidation drawing

Normalized native oxidation drawing

Complete jobs and reusable lab settings

The v0.9 workflow layer connects the individual tools into callable jobs:

  • Complete scope: scope-job proposes from an explicit mapped parent, requires candidate acceptance, draws and aligns the selected compounds, and lays out actual category bands with headings, dotted dividers and a shadow frame. Recipe · Guide

  • Explicit reaction series: reaction-series composes up to three supplied reaction rows, including supported water/halides, ionic salts and coefficients. It does not predict products or certify balance. Guide and limits

  • Owned movement and routes: build-ownership / move-owned carry explicit captions, symbols and internal curves with their molecules. suggest-routes / apply-route propose and render a selected obstacle-checked cubic path. Reaction-scheme vertical moves and one-sided cross-owner curve moves are refused; manual dragging is not covered. Guide

  • Shared styles: make-lab-style / styled-job use versioned, hashed numerical settings and reject conflicting recipe overrides. Each output retains its exact style package. Starting package · Guide

Every native workflow has an MCP counterpart and retains editable CDXML, native SVG, PNG and an audit. Start with the reproducible demo walkthrough. Another-Mac acceptance and package publication remain pending in the release checklist.

First drawing in one command

After terminal setup, open a blank ChemDraw document:

chemdraw-mac first-run

This draws caffeine and aspirin in the active document and validates native exports. It is an optional drawing test, not the package installer. Interactive onboarding cycles through native molecular silhouettes with pink/lavender/gold accents. The bar tracks workflow phases and completes only after native checks pass. It does not claim an installation-time estimate. Nothing installs or licenses ChemDraw for you.

Already in a checkout? Use uv run --locked --extra chemistry chemdraw-mac first-run instead for the committed dependency lock. Outputs go to a new uniquely named folder, the final drawing stays editable in ChemDraw, and pre-existing documents are preserved. Use --json for scripts or --no-open --no-animation for a quiet terminal. First-run behavior and troubleshooting

Desktop apps work too: connect the same local MCP server to Claude Desktop or your Codex desktop client, then ask it to run chemdraw_first_run. No terminal animation or automatic browser launch is sent over MCP. Desktop client setup

Try the polishing workflow

From the project directory, with uv installed and ChemDraw running and activated:

uv sync --locked --extra chemistry
uv run --extra chemistry chemdraw-mac doctor
uv run --extra chemistry chemdraw-mac polish \
  --input examples/messy-oxidation.cdxml \
  --recipe examples/oxidation-recipe.json \
  --output /absolute/existing/parent/oxidation-review

Replace the output path with a new absolute directory whose parent exists. The output directory must not already exist. The example depicts illustrative ethanol-to-ethanal oxidation with [O], not an experimental protocol.

Open the returned review.html. The output contains:

  • before.cdxml, before.svg, before.png

  • figure.cdxml, figure.svg, figure.png

  • recipe.json, audit.json, review.html

The source is not edited; the final working document remains open in ChemDraw. checks_passed means the implemented preservation and layout checks passed. It does not mean that the source chemistry is correct or that a human has approved the figure. Visual review remains required.

Make an analogue

The included example changes the existing chlorine atom to bromine and updates the caption, without rebuilding or rotating the scaffold:

Original

Analogue copy

4-Chlorobenzoic acid native drawing

4-Bromobenzoic acid native drawing

uv run --extra chemistry chemdraw-mac edit \
  --input examples/chlorobenzoic-acid.cdxml \
  --recipe examples/bromo-analogue-recipe.json \
  --output /absolute/existing/parent/bromo-analogue-review

The editor changes a copied CDXML graph, opens it in desktop ChemDraw and checks the native saved result. It is not a direct native atom-setter API. RDKit validates chemistry; it does not render the figure. The audit reports requested atom/bond changes, observed hydrogen changes and native atom-coordinate preservation. This bounded editor supports one molecule and explicitly assigned captions, not arbitrary reaction transformations. Edit recipes and supported operations

CDXML chemical labels are checked separately from the graph. Neither check proves that every exported SVG/PNG glyph is correct. A resolved input-label orientation issue is documented in known issues; inspect the actual preview before using it.

Arrange a scope grid

Keep the existing molecular orientations, normalize bond scale, and arrange explicitly assigned compounds in a chosen order. Names and compound/yield labels use shared baselines within each row. Native measured ink bounds determine cell size and page fit, including captions.

Before

Four-column grid

Unarranged illustrative scope structures

Native scope grid with compound labels

uv run --extra chemistry chemdraw-mac grid \
  --input examples/scope-input.cdxml \
  --recipe examples/scope-recipe.json \
  --output /absolute/existing/parent/scope-review

All percentages in this example are invented software-test values, not experimental yields. A zero is displayed as 0%; an absent yield is not invented. The recipe explicitly owns every molecular fragment and existing caption. Multiple fragments, such as a salt, can belong to one compound and translate together after normalization. Omit columns for automatic column selection, or specify it; a grid that does not fit is rejected instead of shrinking molecules. Grid recipes, tokens and limits

Batch-export finished figures

Export an explicit manifest of supported CDXML files without changing their styling or layout:

uv run --extra chemistry chemdraw-mac batch \
  --manifest /absolute/path/figures.json \
  --output /absolute/existing/parent/manuscript-figures

Each stable figure key gets native CDXML/SVG, a PNG rasterized from native SVG, optional PDF/CDX, an audit and retained snapshots. The batch review.html is a contact sheet with links and per-item status. Sources are opened as private copies; successful working copies are closed. Source hashes, the exact open-document inventory and pre-existing unsaved document content are checked. A native-operation error stops the batch without retrying the operation or closing an uncertain document. Unsupported inputs are reported individually; a mixed-failure run exits nonzero. Manifest, output layout and limits

Batch also accepts the supported annotation subset: existing full-headed or left/right-fishhook cubic curves and explicitly associated circled-charge symbols. It reuses the annotation preservation verifier alongside the ordinary molecule/reaction checks. Unknown curve/symbol types still fail closed. Exporting a mechanism does not route its arrows, repair collisions or certify its chemistry.

Add electron-flow arrows

In the full MCP profile, assistants have chemdraw_inspect_annotations and chemdraw_annotate_document, plus symbol and route tools. The smaller core and drawing profiles do not expose these annotation workflows. A reaction-series diagram alone is not a complete electron-pushing mechanism. Check the client's actual tool list before reporting that arrows are unavailable. Annotation creates a new copy and requires explicit chemical intent, not automatic mechanism inference.

The SN2 reference now has a reproducible annotation workflow. Add native editable full-headed two-electron curves or left/right fishhooks for one-electron flow, using explicit atom/bond endpoints or a displayed donor-symbol source:

uv run --extra chemistry chemdraw-mac annotate \
  --input examples/sn2-annotation-input.cdxml \
  --recipe examples/sn2-annotation-recipe.json \
  --output /absolute/existing/parent/sn2-review

The workflow adds curves to copied CDXML and desktop ChemDraw saves/renders the result. Existing supported molecules, their orientation and symbols are retained. A recipe supplies endpoints and both cubic controls; this is not automatic routing or mechanism inference. Explicit symbol sources identify an existing negative charge/lone pair for a full arrow or electron dot for a fishhook. Tails start at the visible edge calibrated from native ChemDraw 23.0.1 exports, selecting an actual dot rather than the gap between a lone pair. These source-arrow cases passed native integration checks on the development Mac. Whole-route collisions still require visual review, and no chemical edits or native moving-attachment guarantees apply. Annotation recipes and limits

Use the separate inspect-symbols / symbols workflow to add native lone-pair symbols, graphical electron dots or circled symbols for existing +1/-1 atom charges in a new copy. Electron dots deliberately use native filled-circle graphics: ChemDraw's Electron Symbol would otherwise change an adjacent atom's radical state. Requests identify each owning atom; bounded placement uses calibrated glyph geometry and measured labels. Four native integration cases passed for negative-charge creation and charge/lone-pair/electron source-arrow workflows. This is not full rendered-bond-ink collision coverage or a cross-version guarantee; inspect each native export. Symbol recipes, electron-flow conventions

Optional scope framing

Add a rounded shadowed box, true dotted group dividers and optional headings to an existing grid with decorate-scope or MCP chemdraw_decorate_scope. Groups are explicit: the tool preserves your molecules, captions and positions instead of silently classifying or reordering them. Frame and dividers can be enabled independently. Recipe and native-object contract

Native framed-scope example · Editable input · Reproducible recipe

From explicit structures to a native figure

For supported ions, add "charge_style": "circled" to the draw manifest to create native circled charge symbols in the same job. Try the ionic example. The default remains "plain". The refined search supports the house-style nitrobenzene example without shrinking symbols or weakening owner checks. Crowded arrangements such as the current tetramethylammonium drawing still have no safe candidate and are rejected; plain-charge drawing remains available. Returned artifacts points to the actual final CDXML/SVG/PNG, including the optional charge pass.

draw accepts a manifest of explicit {compound_id, label, smiles} records. It preserves the supplied chemical identity through MOL seeding, native import and native Clean Up Structure, then hands the measured native structures to the grid workflow:

uv run --extra chemistry chemdraw-mac draw \
  --manifest /absolute/path/structures.json \
  --output /absolute/existing/parent/structures-review

Labels are caller-supplied, not verified chemical names. The first interface accepts 1 through 24 connected, supported nonradical structures of 2 through 150 atoms each. It produces editable CDXML, SVG, PNG, retained seeds and an audit. Optional manifest scaffold_smiles selects an explicit common core to align to the first structure using rotation and translation only, with no reflection or alignment scaling. Without it, native cleanup can choose a different orientation for each molecule. No name lookup, yield generation or automatic core inference is performed. Manifest and preservation limits

The included acetophenone scope manifest contains fourteen explicit candidates with short relative labels, an explicit acetophenone scaffold and no yields. Use it as --manifest for the three-column example. It is an illustrative proposal, not experimental scope data. The alignment-enabled fourteen-structure run passed native checks and visual inspection on the development Mac: native SVG figure. See project progress for run evidence and environment limits.

Propose a starter substrate scope

Supply the actual parent and mark the benzene carbon attached to its existing reaction handle. For example:

uv run --extra chemistry chemdraw-mac propose-scope \
  --parent 'O=C[c:1]1ccccc1' --handle-map 1

The bounded standard profile proposes fourteen distinct candidates: parent reference; ortho/meta/para methyl; para methoxy, trifluoromethyl, cyano, nitro and F/Cl/Br; ortho isopropyl/tert-butyl; and 2,6-dimethyl. Duplicate candidates across electronic and steric categories are merged. Every yield stays null. The output includes relative labels, mapped/unmapped SMILES, stable graph-derived IDs and reasons to consider each candidate.

This is an offline proposal for an isolated monosubstituted benzene ring, not reaction prediction or a universal scope recommendation. Review/select candidates before passing explicit records to draw. The parent, reaction handle, chemical compatibility and experimental outcomes are not guessed. Scope proposal contract

For pre-substituted rings and isolated five/six-membered heteroaromatics, explicitly map the H-bearing carbon sites and select a custom list from ten curated groups:

uv run --extra chemistry chemdraw-mac scan-scope --manifest examples/scope-custom.json

The example scans two mapped pyridine sites with Me and Cl, giving five distinct candidates including the parent. Each product receives one addition; symmetry duplicates retain their requested site variants. The limit is 100 requested combinations including the optional parent before deduplication. Expanded scope contract

Build a reaction or use a local style

uv run --extra chemistry chemdraw-mac reaction \
  --manifest examples/reaction-build.json \
  --output /absolute/existing/parent/reaction-review

uv run chemdraw-mac import-style --input /absolute/path/my-style.cds

The reaction example explicitly supplies ethanol, ethanal and the label oxidation; it supplies no experimental conditions or yields. The builder accepts one through three compounds on each side, draws the native arrow, plus signs and owned labels, then checks measured spacing and page fit. It does not predict or balance reactions. Reaction contract

Style inspection extracts supported typography/bond settings from local .cds, .cdx or .cdxml, reports defaults and unapplied properties, and leaves the source untouched. Add --style /absolute/path/my-style.cds to draw or reaction to override the manifest preset. Required label/caption font families are checked on the rendering Mac. Template artwork, page geometry, colour palettes and font files are not imported or redistributed. Style contract

Inspect identifiers offline

uv run --extra chemistry chemdraw-mac identify --value 'CCO' --format smiles

Returns canonical isomeric SMILES, formula, charge, component/isotope/stereo summaries and Standard InChI/InChIKey when available. InChI normalization warnings and graph-roundtrip differences are explicit. No name/CAS service or native application is contacted. Strict input and output semantics

The separate resolver supports explicit name or CAS input:

uv run --extra chemistry chemdraw-mac resolve --query caffeine --kind name --allow-network

--allow-network authorizes sending this query to PubChem. The response retains provenance, ambiguity, truncation and chemistry-validation results for up to 20 candidates. No candidate is selected automatically, even for one hit. CAS syntax/checksum checks do not certify CAS Registry ownership. Review an explicit candidate before drawing. Resolver contract

A photo or hand sketch can be interpreted by an image-capable connected assistant, which must resolve ambiguous atoms, bonds and stereo before submitting an explicit graph. There is no image recognizer or OCR service in this server, and identifier validation does not prove that a graph matches its source image.

Connect an assistant

For app-specific Claude Desktop JSON and Codex TOML setup, see desktop client instructions. This is a local stdio server, not a remote web connector.

The basic bridge does not require RDKit. Install with uv sync --locked for native import, cleanup, styling and export only. For identifiers, resolution, scope proposals and validated native figure workflows, retain the optional chemistry extra as above. identify, propose-scope, scan-scope, import-style and resolve do not require a running ChemDraw application; only resolve requires explicit network opt-in. Launch the installed executable directly from your MCP client:

{
  "mcpServers": {
    "chemdraw_native": {
      "command": "/absolute/path/chemdraw-mcp-macos/.venv/bin/chemdraw-mcp-macos"
    }
  }
}

Merge this entry into the client's existing configuration; do not replace unrelated entries. chemdraw-mac serve starts the same stdio server. A silent terminal waiting for a client is normal. API drawing starts a private authenticated loopback listener on demand; the opt-in resolver makes outbound HTTPS requests.

Example requests:

Inspect my open ChemDraw documents and report their current document IDs.

Analyze this document, identify its molecule captions and arrow conditions, then make a house-style row-layout copy in a new output folder. Show me the native before/after review and audit.

Export this revised working document as SVG and transparent PNG. Keep my original open.

Analyze this single molecule, identify its chlorine atom, then make a bromine analogue in a new document. Preserve the scaffold and replace the caption. Show the chemical diff and native before/after exports.

Arrange these products into four columns, keeping their orientation. Use the compound IDs and yields I supply, retain their names underneath, and show the native page-fit audit and preview.

Export these finished CDXML files under my supplied figure keys, add PDF copies, and give me a contact sheet. Do not restyle the drawings or touch my open originals.

Inspect this mechanism's atom/bond IDs, then add these specified electron-flow curves in a new copy. Preserve the structures and circled charges, and show the native before/after review.

For this explicit mapped parent, propose the standard aromatic scope and explain each category. Leave yields blank. After I select the compounds, create a native drawing with the labels I supply.

Inspect this SMILES without contacting a database. Report any unspecified stereo or InChI normalization difference.

Set CHEMDRAW_APP to the absolute .app path when discovery is ambiguous. CHEMDRAW_MCP_WORKSPACE changes the default ~/ChemDraw-MCP-Output scratch/backup location. Allow the launching application to control ChemDraw if macOS requests Automation permission. No unattended installer or automatic permission changer exists yet.

Available tools

The following tools are available in the full profile; the complete-job tools are described above. The smaller core profile exposes only the direct native tools listed in architecture. Identifiers, style extraction and scope proposals are offline; only explicit resolver calls use PubChem:

Tool

Behaviour

chemdraw_doctor

Reports installation, live connection and optional validator availability

chemdraw_first_run

Checks setup, draws a fixed native example and returns editable files and JSON checks without HTML

chemdraw_draw_complex

Experimental explicit coordination drawing: supplied XYZ, front/back chelate bonds, black default labels and corner charge annotation; checked after native saving, no geometry prediction. Ferrocene remains a refused regression fixture.

chemdraw_list_documents

Native document IDs, names, paths, modified flags and molecule counts

chemdraw_inspect_document

Native molecule indices/bounds and document settings

chemdraw_inspect_targets, chemdraw_prepare_selection, chemdraw_edit_targets

Snapshot-bound atom/H/charge and bond-order edits, supplied-fragment attachment, branch removal, wedges, rings and native subset alignment; bounded placement search and native clearance checks in new copies. Recipes and limits

chemdraw_native_action

Direct ChemDraw cleanup, alignment, distribution and label commands on owned working copies; selection and availability limits

chemdraw_draw_name

ChemDraw's own Name to Structure, with explicit network consent and native review exports; no RDKit seed or renderer

chemdraw_analyze_document

Exports a snapshot and reports supported object geometry plus a top-level source token; editable single molecules also receive atom/bond IDs

chemdraw_polish_document

Makes a normalized copy, optional explicit row layout, native review exports, recipe and audit

chemdraw_edit_document

Makes an analogue copy from explicit atom/H and bond-order edits; checks the expected source token, mapped product chemistry, coordinates and CDXML labels

chemdraw_grid_document

Makes a scope-grid copy with explicit compound/caption ownership, optional yields, native measured spacing and saved-page fit checks

chemdraw_decorate_scope

Adds an optional editable rounded shadow frame, dotted separators and explicit group headings while preserving the existing scope

chemdraw_batch_export

Sequentially exports explicit CDXML files under stable keys, with per-item audits, retained snapshots and a contact sheet; stops on uncertain native operations

chemdraw_inspect_annotations

Snapshots supported annotation drawings and reports atom/bond IDs, native atom-label bounds, existing curve geometry and a source token

chemdraw_annotate_document

Adds explicit full or fishhook cubic curves to a new copy; checks native curve geometry, supported existing charge-symbol associations and source preservation

chemdraw_identify

Strict offline SMILES/Standard InChI inspection with graph summaries, conversion availability and normalization warnings

chemdraw_resolve

Explicitly opted-in PubChem name/CAS candidate lookup with provenance and validation; no automatic selection

chemdraw_import_style

Read-only local style extraction with validated preset, source hash, defaults and unapplied-property report

chemdraw_scan_scope

Explicit mapped-site scans on supported pre-substituted and heteroaromatic parents using curated groups

chemdraw_build_reaction

Creates a native one-step row from explicit reactants/products and supplied conditions, with measured ownership/layout checks

chemdraw_inspect_symbols

Snapshots supported atom/symbol inventory, geometry and current source token

chemdraw_add_symbols

Adds explicitly requested graphical dots or existing formal-charge symbols to a new copy with bounded placement

chemdraw_propose_scope

Offline, map-anchored standard aromatic candidate proposal with relative labels, rationales and null yields; no drawing or reaction prediction

chemdraw_draw_structures

Creates native drawings from explicit SMILES/label records using MOL seeds, native import/cleanup, optional explicit-scaffold rigid alignment and a measured grid; no name lookup or automatic core inference

chemdraw_import_file

Opens a private copy of local CDXML, CDX, MOL or SDF

chemdraw_create_document

Opens caller-supplied CDXML in a new working file

chemdraw_clean

Native cleanup of one molecule or the document, with recovery backup; edits the target

chemdraw_apply_style

Creates a house or acs-1996 styled copy; does not rescale coordinates

chemdraw_export

Native CDXML, CDX, SVG and PDF; PNG from native SVG

chemdraw_close_working_document

Backs up and closes only documents opened by this server session

chemdraw_list_styles

Returns numerical preset settings

Both CLI and MCP call the same workflow implementation. Usage and recipe reference

Scope and safety

  • Polish supports a conservative flat, single-page molecular drawing subset. Groups, nested abbreviations, queries, polymers and enhanced stereo are rejected rather than guessed through.

  • Positive uniform scaling normalizes each molecule's median bond length. Existing orientation is preserved. This does not make molecules equally wide or repair every bond angle.

  • Row layout requires explicit caption and condition ownership. Ordinary unassigned text is rejected; label ownership is not guessed.

  • Polish does not run native Clean Up Structure automatically. Cleanup is separate because it can change orientation and depiction.

  • Analogue editing does not insert/delete atoms, change stereocentres, create/remove potential stereo or change charged/isotopic target atoms. It does not infer new names or fix collisions.

  • Scope grids require one physical page of supported fragments and explicitly owned captions. Reactions, arbitrary text, nested groups and native symbol graphics are unsupported. Plain formal-charge atom attributes are supported; general charge-symbol placement is not.

  • Batch export accepts supported flat CDXML and the bounded annotation subset, with no styling or layout changes. Full/half-headed cubic curves and explicitly associated circled charges are verified. Unknown graphics remain unsupported; any reaction scheme inferred by ChemDraw is not chemically certified.

  • Annotations support a separate bounded subset with existing circled-charge graphics and single-cubic electron-flow curves. Explicit references belong to the recipe; they do not promise native moving attachment. The separate symbols workflow adds supported graphical dots/charges without chemical or radical-state edits. No automatic mechanism inference runs.

  • The offline scope proposers attach only curated groups to supported mapped parents. This does not enable arbitrary atom insertion/deletion in an existing ChemDraw document or certify reaction compatibility.

  • draw creates new structures from explicit graphs, uses native cleanup and retains the first native import's page settings. Positive scale normalization and nonoverlapping uniform staging cells precede native composition, followed by measured grid-fit verification; the tool does not create custom paper sizes. Its optional circled-charge finishing pass uses the separate symbol verifier. The underlying grid still rejects general molecular graphics.

  • Chemistry is checked after native export. Glyph collisions, charge placement, source correctness and unsupported chemistry still need review.

  • Existing output paths are rejected. Draw creates new private structures; imports, polish, analogue editing, grids, annotations and batch export use working copies. Explicit low-level cleanup edits its target after a backup.

  • Backups remain local and contain chemical data. Only explicit resolve calls with network permission send queries to PubChem; other workflows stay local. Connected AI clients have separate privacy policies.

  • Updated CLI/MCP clients share a per-user process lock, including native working-copy workflows. A competing call waits at most two seconds before returning busy without dispatching its native operation. Manual GUI edits, older clients and other automation software do not honor this lock. Coordination contract

  • An AppleEvent timeout has an uncertain outcome and is not retried automatically. Inspect ChemDraw before retrying.

  • No raw AppleScript, arbitrary menu, clipboard or quit tool is exposed. Native commands are allowlisted; unrestricted molecular editing is not implemented.

Development and provenance

uv sync --locked --extra chemistry
uv run --extra chemistry pytest
CHEMDRAW_LIVE_TEST=1 uv run --extra chemistry pytest tests/test_live.py tests/test_scope_live.py tests/test_batch_live.py tests/test_annotations_live.py tests/test_draw_live.py -vs

Native tests are opt-in and require an available licensed application. Contributing and verification

The geometry layer adapts Box, find_overlaps and grid_positions from Michael Leitch's MIT-licensed live-chemdraw-mcp, not its Windows COM bridge. See third-party notices, pinned upstream sources, research and roadmap.

Offline identifiers are documented in the identifier contract; the separate opt-in PubChem interface is documented in resolver semantics. Native Name to Structure uses ChemDraw's lookup rather than the PubChem resolver. Layout and workflow research records the scope-grid motivation and further improvements. Use this README and the usage reference for interfaces, and project progress for actual validation evidence.

License and collaboration

Original project code is available under GNU AGPL version 3 only, with copyright and warranty notices. Commercial and noncommercial use are allowed. Covered redistribution and modified network-served versions carry source-sharing obligations; the licence text governs. This does not automatically license users' drawings or research, nor every independent client that connects over MCP.

Contributions are welcome: test another Mac/ChemDraw version, report a reproducible drawing problem, share a redistributable example, or send a focused pull request. Start with CONTRIBUTING.md. Do not upload confidential structures or proprietary assets. Marco DeCorti's visual guidance and upstream authors' contributions remain credited.

Retained upstream licences remain applicable to their respective code. ChemDraw is proprietary software and a trademark of its respective owner; this project is not affiliated with or endorsed by its vendor. Open-source availability does not establish a stable release or compatibility beyond the documented tests.

Available Tools

37 tools
chemdraw_add_symbolsA

Add native symbols to a NEW copy from explicit {key,kind:charge|lone_pair|electron,atom_id} requests. Charge derives sign from existing +1/-1 formal charge, not a chemical edit. Lone-pair/electron dots are graphical annotations, not radical-state edits. Bounded outward placement checks geometry against labels/bonds/objects; unsupported or colliding placement fails. Inspect current IDs/token first. New absolute output directory, before/after native exports and audit, source unchanged. Visual and chemical review required; no moving attachment or complete mechanism validation promise.

ParametersJSON Schema
NameRequiredDescriptionDefault
spanNo
pixelsNo
symbolsYes
clearanceNo
line_widthNo
output_dirYes
document_idYes
expected_source_tokenYes

TDQS

A4.3/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations, the description discloses that the source is unchanged, output goes to a new absolute directory, placement is bounded and can fail on collision/unsupported geometry, before/after exports and audit are produced, and no complete mechanism validation is promised. This gives an agent a clear behavioral model of a write-producing tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense but front-loaded: the main action appears first, and every subsequent sentence adds a distinct constraint or caveat. There is no filler or repetition of the schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a complex 8-parameter tool with no output schema, it covers the new-copy semantics, failure conditions, review requirement, and output artifacts. The main gaps are the unmentioned optional rendering parameters and the absence of an explicit statement of what the tool returns (e.g., audit location or export paths).

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description must document parameters. It explains the symbols array structure, output_dir, and hints at expected_source_token, but it leaves span, pixels, clearance, and line_width unexplained; their meanings must be guessed from names. Clearance is only obliquely referenced by 'bounded outward placement'.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The first sentence names a specific action and resource ('Add native symbols to a NEW copy') and restricts the payload to explicit {key, kind, atom_id} requests. It also contrasts the operation with chemical edits and radical-state edits, which separates it from related sibling tools like chemdraw_edit_document or chemdraw_annotate_document.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives a clear prerequisite ('Inspect current IDs/token first') and tells the agent this works on a copy, requires a new absolute output directory, and needs visual/chemical review. It does not explicitly name alternatives or state when not to use the tool, but the 'not a chemical edit' wording provides an implicit exclusion.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

chemdraw_analyze_documentB

Export a recovery snapshot and return molecule IDs, bounds, text, arrows and a top-level source_token for supported drawings. Use that token and explicit object IDs for scope grids. For supported single molecules, editing also includes atom/bond IDs and the same token for analogue edits. Source is not edited.

ParametersJSON Schema
NameRequiredDescriptionDefault
document_idYes

TDQS

B3.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description goes beyond the annotations by explicitly stating 'Source is not edited,' which is important given readOnlyHint is false. It also discloses that support is limited to 'supported drawings' and 'supported single molecules,' and reveals the recovery-snapshot side effect. This is meaningful behavioral context beyond the structured annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is only three sentences and every sentence contributes: the first states the core output, the second explains how to use the returned token, and the third adds the analogue-edit context and the non-destructive guarantee. It is dense with domain jargon but contains no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema, so the description reasonably enumerates the returned data: molecule IDs, bounds, text, arrows, and a top-level source_token. It also provides downstream usage context. However, it never explains what 'supported drawings' means, how object IDs are obtained, or the structure of the recovery snapshot, leaving notable gaps for an agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has one required parameter, document_id, with 0% schema description coverage. The description does not mention document_id at all, nor does it explain how the document is identified or any constraints on it. Because coverage is low and the description fails to compensate, this dimension is weak.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states a specific action: 'Export a recovery snapshot and return molecule IDs, bounds, text, arrows and a top-level source_token for supported drawings.' This is more specific than the tool name and identifies concrete outputs. It does not explicitly distinguish itself from siblings like chemdraw_inspect_document or chemdraw_export, so it stops short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives some downstream usage guidance: 'Use that token and explicit object IDs for scope grids' and mentions using the same token for analogue edits. However, it never says when to choose this tool over sibling tools such as inspect_document or export, and it does not state exclusions or when-not-to-use conditions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

chemdraw_annotate_documentA

Add native full or fishhook electron-flow curves to a NEW copy. Inspect annotations first. Each arrow has unique key, electrons 2 or 1, source {kind:symbol,id} for a displayed CircleMinus/LonePair (2 electrons) or Electron dot (1 electron), OR source {kind:bond,id,offset:[dx,dy]} for a donating bond. Atom-label sources and positive-charge donors are rejected; add a symbol first if needed. Target {kind:atom|bond,id,offset:[dx,dy]}; controls:[[dx1,dy1],[dx2,dy2]] relative to start/end; optional fishhook_side left/right only for one electron. Symbol targets rejected. A negative charge may represent a donating lone pair, but this is caller-supplied chemical intent, not inferred for every anion. Existing molecules/symbols retained; no chemical/radical-state edits. New absolute output directory, native CDXML/SVG/PNG before/after, recipe and audit. Source untouched. Visual review required; no whole-path collision or native moving attachment promise. Native errors not retried.

ParametersJSON Schema
NameRequiredDescriptionDefault
arrowsYes
pixelsNo
line_widthNo
output_dirYes
document_idYes
expected_source_tokenYes

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only say readOnlyHint=false and destructiveHint=false, so the description carries the behavioral disclosure burden. It does so thoroughly: source document is untouched, a new copy is created, existing molecules/symbols are retained, native errors are not retried, visual review is required, and no collision-free or native moving-attachment guarantee is promised. This goes well beyond the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense and front-loaded with the core purpose, followed by essential mechanics and caveats. It is long, and some parts could be clearer as structured bullets, but every sentence carries useful information and there is no filler. For a tool with six parameters and complex arrow semantics, this length is justified.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

This is a complex tool with no output schema, yet the description adequately covers inputs, arrow construction rules, rejection cases, outputs (CDXML/SVG/PNG before/after, recipe, audit), safety behavior, and required follow-up review. The only notable gap is expected_source_token semantics, but overall an agent has enough to select and invoke the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It richly explains the arrows parameter structure, including source kinds, target kinds, offsets, controls, fishhook_side, and chemical-intent caveats. However, it does not explain expected_source_token at all, and pixels and line_width are entirely unmentioned. The description covers the hardest parameter well but leaves other parameters underexplained.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource: 'Add native full or fishhook electron-flow curves to a NEW copy.' This clearly distinguishes the tool from siblings like chemdraw_edit_document, chemdraw_add_symbols, or chemdraw_draw_structures by specifying the operation, the artifact being modified, and the non-destructive copy behavior.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear usage context: inspect annotations first, add a symbol before annotating if needed, use atom/bond sources but not atom-label or positive-charge donors, and expect visual review afterward. It does not explicitly name alternative sibling tools or state when not to use it, but the preconditions and limitations are strong enough for an agent to decide when this tool applies.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

chemdraw_apply_routeA

Validate and render one explicitly selected suggested route in a NEW native copy. Rejects stale snapshots or modified proposals; preserves source and saves selection audit. This selects a geometric path, not a chemical mechanism.

ParametersJSON Schema
NameRequiredDescriptionDefault
pixelsNo
reportYes
output_dirYes
document_idYes
candidate_idYes

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Adds meaningful behavioral context beyond the annotations: the tool creates a NEW copy, preserves the source, saves a selection audit, and rejects stale/modified proposals. These are important side effects and constraints that the minimal annotations (readOnly=false, destructive=false) do not reveal.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three dense, purposeful sentences with no filler. The core purpose is front-loaded, followed by constraints and side effects, and finishes with a useful disambiguation from chemical mechanisms.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Provides enough operational context: required freshness, explicit selection, new-copy behavior, source preservation, and audit saving. It does not describe return values, which is notable given no output schema, but the invocation constraints are sufficiently complete for a competent agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description must compensate for missing parameter documentation. It conceptually maps candidate_id to the selected route, document_id to the source document, output_dir to the new copy, and report to the audit. However, it does not explain the report shape, pixels, or formatting expectations, leaving meaningful gaps.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific action ('Validate and render') on a precise resource ('one explicitly selected suggested route in a NEW native copy'). The final sentence disambiguates from chemical-mechanism tools by clarifying it selects a geometric path. This clearly differentiates it from sibling tools like chemdraw_suggest_routes.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Clearly implies when to use it: after a route is explicitly suggested, and only with a fresh unmodified snapshot. It also flags when the tool will reject input via 'Rejects stale snapshots or modified proposals'. However, it does not explicitly name sibling alternatives or state conditions for when another tool should be used instead.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

chemdraw_apply_styleB

Create a styled copy with consistent explicit fonts/strokes. Does not normalize existing coordinates or reposition charges. Cleanup is a separate explicit action.

ParametersJSON Schema
NameRequiredDescriptionDefault
presetNohouse
document_idYes

TDQS

B3.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only declare readOnlyHint=false and destructiveHint=false, which are minimal. The description adds meaningful behavioral context: it creates a copy (so the original is presumably untouched), it does not normalize coordinates or reposition charges, and cleanup is separate. These are important side-effects and limitations beyond what annotations convey, though it does not address return values or side effects like saving or versioning.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise: three short sentences, with the primary purpose front-loaded. It adds only necessary exclusions (coordinates, charges, cleanup) without fluff. Every sentence earns its place, and the structure is clear and scannable.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a mutating tool with no output schema and no parameter descriptions, the description is incomplete. It lacks any explanation of what 'preset' options exist, what document_id refers to, or what the tool returns (e.g., the new copy's ID). While it covers the operation's scope, it leaves crucial invocation details undefined, especially given the flexible preset parameter.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, meaning the schema has no parameter descriptions. The description mentions neither 'document_id' nor 'preset', and does not hint at what 'preset' accepts (enum or object). With two parameters and one being complex (enum/object), the description fails to provide any semantic help. This is a severe gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Create a styled copy with consistent explicit fonts/strokes.' It identifies the resource (a copy) and the action (applying style), and distinguishes itself by noting what it does NOT do (normalize coordinates, reposition charges, or clean up). This differentiates it from sibling tools like chemdraw_clean or chemdraw_apply_route, though it could be more explicit about the 'styled copy' concept.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives implicit usage guidance: it mentions 'Cleanup is a separate explicit action,' implying you should not expect cleanup here, and that coordinates/charges are not normalized, suggesting other tools handle those. However, it does not explicitly name alternative tools or state when to choose this over siblings. The guidance is contextual but not explicit enough to be a 4.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

chemdraw_batch_exportA

Sequential native batch export of explicit supported CDXML files. Each item: {key: safe-unique-figure-key, source: absolute-file-path, formats: [pdf,cdx]}. Always exports CDXML/SVG/PNG plus requested PDF/CDX, with per-item audit and HTML contact sheet. New absolute output directory only. No style/layout/chemistry edits. Creates private copies and closes only those copies. Input failures reported per item. Any native-operation error is conservatively uncertain: stop later items, do not retry or close the uncertain document. Requires chemistry extra; flat supported drawings plus the annotation verifier's existing circled-charge/full-or-half cubic-curve subset. Unknown annotations rejected. Review all outputs; source metadata and mapped chemistry checks do not certify source correctness or glyph appearance.

ParametersJSON Schema
NameRequiredDescriptionDefault
itemsYes
pixelsNo
output_dirYes

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes far beyond the sparse annotations (readOnlyHint=false, destructiveHint=false), disclosing that private copies are created and closed, errors stop later items without retry or closure of uncertain documents, failures are per-item, and outputs need human review. This is exceptionally transparent about side effects and edge-case behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is long but information-dense, with no filler. It is front-loaded with the core purpose, then systematically covers output, constraints, copy behavior, error handling, requirements, and caveats. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a complex batch operation with no output schema and minimal annotation support, the description covers most needed context: supported inputs, outputs, audit artifacts, error policy, and limitations. The missing 'pixels' semantics and lack of explicit return-value description keep it just short of complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It defines the items object structure precisely with key/source/formats, and clarifies output_dir as a new absolute output directory. However, the 'pixels' parameter is not mentioned at all, leaving a semantic gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: 'Sequential native batch export of explicit supported CDXML files.' It clearly signals batch operation, distinguishes itself from the singular sibling chemdraw_export, and enumerates the output contract (CDXML/SVG/PNG plus requested PDF/CDX).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides clear when-to-use constraints: supported CDXML files, required chemistry extra, flat drawings plus a specific annotation subset, and rejection of unknown annotations. It also states what the tool does not do ('No style/layout/chemistry edits'), though it does not explicitly name an alternative sibling for single-file export.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

chemdraw_build_ownershipA
Read-only

Snapshot a native document and build explicit sidecar ownership. Each owner {key,fragment_ids,caption_ids}; every fragment exactly once. Existing curves require curve_id and explicit source/target {kind,id}. Returns source-token-bound ownership; does not change manual dragging behavior.

ParametersJSON Schema
NameRequiredDescriptionDefault
curvesNo
ownersYes
document_idYes

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the readOnlyHint/destructiveHint annotations, the description discloses meaningful behavioral constraints: every fragment must be assigned exactly once, existing curves require curve_id plus explicit source/target {kind,id}, and the operation does not change manual dragging behavior. This is substantial non-obvious context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, front-loaded with the core purpose, followed by the most important structural and behavioral details. No filler or repetition of schema fields.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only tool with no output schema, the description covers purpose, required ownership invariants, curve constraints, and a return hint. The only notable gap is that 'source-token-bound ownership' is left undefined, which may leave the exact return contract slightly ambiguous.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description compensates well by explaining the owners structure and curve requirements. It does not elaborate on document_id, but that parameter is self-evident from its name and integer type; the main semantic gaps are filled.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb-resource pair ('Snapshot a native document and build explicit sidecar ownership') and immediately states the output shape: owner objects with key, fragment_ids, and caption_ids. This clearly distinguishes it from sibling tools like chemdraw_move_owned or chemdraw_build_scope_job, which target different operations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The intended use is implied: call this when you need to produce a sidecar ownership snapshot of a native document. However, it never explicitly states when to prefer this over alternatives or what conditions rule it out, leaving sibling selection partly to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

chemdraw_build_reactionA

Create a native reaction with explicit 1..3 reactant and 1..3 product records {compound_id,label,smiles,coefficient?}, single-line above/below conditions and measured spacing. The expanded path supports water, hydroxide, halide/alkali ions, bounded charge-balanced salts and explicit positive coefficients. Connected-only input may use explicit shared-core alignment; expanded input with scaffold alignment is rejected. Actual ChemDraw cleanup and native identity/layout checks; no reaction prediction or balance certificate. New absolute output directory, editable CDXML/SVG/PNG and HTML review. Originals untouched, native uncertainty stops without retry/close.

ParametersJSON Schema
NameRequiredDescriptionDefault
layoutNo
pixelsNo
presetNohouse
productsYes
reactantsYes
output_dirYes
scaffold_smilesNo
conditions_aboveNo
conditions_belowNo

TDQS

A3.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations are minimal (readOnlyHint=false, destructiveHint=false), so the description carries the burden. It discloses that originals are untouched (consistent with destructiveHint=false), performs cleanup and checks, and stops without retry on native uncertainty. It does not mention permissions or error details, but covers key behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single dense paragraph that front-loads the main purpose and packs many details efficiently. It is not overly verbose, though it could be more structured with separate sentences for distinct aspects. It earns its place without much redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (9 parameters, no output schema, no param descriptions), the description covers many aspects but misses specifics on layout, pixels, preset, and exact output delivery. It also does not clarify the 'expanded path' vs 'connected-only' input distinction fully. It is adequate but not comprehensive.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It explains the structure of reactants/products and conditions, but leaves layout, pixels, preset, and scaffold_smiles semantics vague. For instance, 'pixels' and 'preset' are not described beyond defaults, and the expanded/connected-only distinction is not fully defined.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool creates a native reaction with explicit reactant/product records and conditions, and mentions constraints (1..3 each). It distinguishes from siblings like chemdraw_build_reaction_series by focusing on a single reaction, though it does not name alternatives explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It provides guidance on input types (expanded vs connected-only) and what it does not do (reaction prediction). However, it does not explicitly compare with sibling tools or state when to prefer this over others, leaving some usage decisions to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

chemdraw_build_reaction_seriesA

Build 1 through 3 explicitly supplied reaction rows on ONE editable ChemDraw page. Steps contain step_id, reactants/products and optional above/below conditions; participants specify compound_id,label,smiles and optional positive coefficient. Supported water/halides and bounded salts. No product inference or balance certificate; native chemistry and measured layout verified separately.

ParametersJSON Schema
NameRequiredDescriptionDefault
stepsYes
layoutNo
pixelsNo
presetNohouse
output_dirYes

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations are all false (not read-only, not open world, not destructive), so the description carries the burden of behavioral disclosure. It discloses meaningful limits: no product inference, no balance certificate, support restricted to water/halides and bounded salts, and separate verification of native chemistry and layout. This goes well beyond the raw annotation fields and gives an agent a realistic picture of what the tool will and will not do. No contradiction with readOnlyHint=false, since 'Build' implies a write operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two dense sentences with no filler, and the primary action and key constraint ('1 through 3 explicitly supplied reaction rows') are front-loaded. The jargon ('bounded salts', 'native chemistry and measured layout verified separately') is compact but meaningful, so nothing feels wasted. Slightly dense readability keeps it from a 5.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 5 parameters, no output schema, and no per-parameter descriptions, the description explains the most complex input (steps and participants) and sets expectations about limits, which is valuable. However, it says nothing about layout, pixels, preset, or output_dir semantics beyond what their names imply, leaving the optional parameters underspecified. Adequate for the required inputs, but incomplete for fully informed invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It does clarify the steps array structure (step_id, reactants/products, optional above/below conditions) and participant fields (compound_id, label, smiles, optional positive coefficient), adding real meaning to the opaque schema. Yet layout, pixels, preset, and output_dir receive no explanatory attention, so the compensation is partial.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Build') with a clear resource ('1 through 3 explicitly supplied reaction rows on ONE editable ChemDraw page'), and the series scope differentiates it from the sibling chemdraw_build_reaction. It also states what the tool does not do (no product inference or balance certificate), removing ambiguity about its role. The resource and constraints are precise enough for an agent to know when this tool applies.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for explicitly supplied multi-row reaction series (1-3 rows) on a single page, and the 'No product inference' note signals it is not for route design or inference. However, it never names sibling alternatives such as chemdraw_build_reaction or chemdraw_build_scope_job, nor states explicit when-to-use/when-not-to-use conditions. The guidance is only implicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

chemdraw_build_scope_jobA

Build an explicitly approved scope job in NEW native documents: selected candidates, conserved scaffold, true category rows, headings, optional frame/dividers, editable exports and audit. Single supported physical page; overflow fails without shrinking molecules. Source drawings unchanged; no inferred experimental outcomes.

ParametersJSON Schema
NameRequiredDescriptionDefault
jobYes
output_dirYes

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description goes beyond annotations by disclosing meaningful behaviors: source drawings are left unchanged, no experimental outcomes are inferred, only a single physical page is supported, and overflow fails without shrinking molecules. This is valuable behavioral context not present in the schema or annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three dense sentences with no wasted words. The main action and deliverables are front-loaded, and each subsequent clause adds a distinct constraint or behavior that earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description is rich in high-level purpose and constraints, which is helpful given the weak schema and absent output schema. However, it leaves the structure of the `job` object ambiguous and does not explain `output_dir` or what the tool returns, so an agent cannot fully construct the invocation from the description alone.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must carry parameter meaning. It lists job content components ('selected candidates, conserved scaffold, true category rows, headings'), but does not map them to the `job` object's keys, and the required `output_dir` parameter is never explained. The description provides partial semantics only partially compensates for the schema's silence.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb ('Build'), resource ('scope job'), and key scope qualifier ('explicitly approved', 'in NEW native documents'), followed by concrete deliverables. This clearly distinguishes it from planning, decorating, or editing tools even without naming siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'explicitly approved' implies this should be used after a planning/approval stage, and 'NEW native documents' implies creation rather than mutation of existing files. However, it never explicitly names alternatives such as chemdraw_plan_scope_job or states when not to use this tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

chemdraw_cleanB
Destructive

Run native Clean Up Structure on the specified molecule or whole document, after a recovery export. This changes depiction and can alter orientation.

ParametersJSON Schema
NameRequiredDescriptionDefault
document_idYes
molecule_indexNo

TDQS

B3.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already declare destructiveHint=true, and readOnlyHint=false, indicating this tool modifies data. The description adds that it 'changes depiction and can alter orientation', which is useful behavioral context beyond the annotations. However, it doesn't elaborate on the extent of changes, reversibility, or any side effects beyond orientation. It adds some value but not deeply.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is succinct, with two short sentences. The key action is front-loaded, and the caution about depiction and orientation is stated briefly. No wasted words, though the 'after a recovery export' clause adds context without verbosity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's mutating nature, lack of output schema, and sparse schema coverage, the description is insufficient. It doesn't explain what the outcome will be (e.g., no confirmation, no mention of return values), nor does it detail the prerequisites or side effects. For a destructive operation with only 2 parameters, an agent might need to know more to call it correctly, such as whether document_id must be a working document, or the effect on the original file.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema description coverage is 0%, so the description must compensate for parameter documentation. It mentions 'specified molecule or whole document', which partially explains 'molecule_index' and 'document_id', but it doesn't explain the exact meaning of each parameter, the range of molecule_index, or the effect of null. The description is too high-level to guide correct parameter use.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Run native Clean Up Structure'), the target ('specified molecule or whole document'), and the context ('after a recovery export'). While it doesn't explicitly name alternative sibling tools, the verb 'clean' is distinctive enough among the siblings, and the mention of 'recovery export' gives a specific use case.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'after a recovery export' gives a temporal context, implying it should be used following a recovery export operation. However, it doesn't explicitly state when NOT to use it or point to any alternative tools for similar tasks, such as chemdraw_apply_style or chemdraw_polish_document. The guidance is implicit rather than explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

chemdraw_close_working_documentA
Destructive

Back up and close a document opened by this server session. Refuses all other documents.

ParametersJSON Schema
NameRequiredDescriptionDefault
document_idYes

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate destructiveHint=true, so the description's emphasis on 'back up' adds context that the operation includes a backup step, which is beneficial. However, it doesn't explain the behavior of refusal in detail (e.g., what happens if you try to close a non-working document), and it doesn't mention any side effects like unsaved changes or locks. With destructiveHint true, the description should have explained that it saves changes as part of the backup, but it's adjacent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise, with one sentence that front-loads the main action ('Back up and close') and then states the constraint. It is well-structured and easy to parse, with no fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has only 1 parameterable, no output schema, and complex annotations (destructive), the description is moderately complete. It covers the core action and a key constraint, but it lacks details on how to handle the refusal, what the response looks like, and whether any confirmation is needed. With destructiveHint true, more information about the backup process or rollback would be warranted.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It does not explain the document_id parameter beyond its type and requirement, but the description's mention of 'document opened by this server session' implies that document_id must refer to such a document. However, it doesn't explain how to find the correct ID (e.g., via list_documents), which is a gap. But for a single parameter, the description partially clarifies the semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states that the tool backs up and closes a document opened by the current server session, and that it refuses other documents. This is specific about the action and scope, but it doesn't explicitly distinguish it from sibling tools that might also close documents (though none seem to close). It is clear and actionable.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies that it should be used for documents opened by this server session and not for others, but it doesn't explicitly say when to use it versus alternatives, nor does it mention prerequisites like the document being currently open. There is no mention of when not to use it beyond the refusal, which is a constraint rather than a usage guideline.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

chemdraw_create_documentB

Create an editable native document from CDXML. Caller supplies validated chemical structures; no name resolver or chemistry invention is performed.

ParametersJSON Schema
NameRequiredDescriptionDefault
cdxmlYes

TDQS

B3.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare readOnlyHint false, openWorldHint false, destructiveHint false, so no contradiction. However, the description does not disclose what happens on invalid CDXML, whether existing documents are overwritten, what output/return is provided, or any side effects beyond creating a document. For a creation tool with no output schema, this is a significant transparency gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with no filler. Every clause earns its place: the action, the input format, the output type, and the critical constraint about no name resolver or chemistry invention.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter tool with no output schema and no annotations beyond default flags, the description should cover what happens after creation, error behavior, and any prerequisites. It says the caller supplies validated structures but not what the tool returns or how the agent will know it succeeded. The tool name and siblings suggest a document-management workflow, but the description leaves the success/return semantics implicit.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0% and there is only one required parameter, cdxml. The description identifies cdxml as the input format (CDXML) and says it must be validated chemical structures, which adds some meaning beyond the bare parameter name. However, it does not specify format details, size limits, or accepted variations.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (create) and object (editable native document from CDXML) and a key constraint (caller supplies validated structures; no name resolver or chemistry invention). It is clear what the tool does, though it does not explicitly contrast with siblings by name.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implicitly tells the agent when to use it: when the caller already has validated CDXML and wants an editable native document, and explicitly tells when not to use it (when name resolution or chemistry invention is needed). It lacks an explicit mention of alternatives but the constraint serves as a usage guide.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

chemdraw_create_lab_styleC

Write a new portable versioned numerical style JSON with content hash. Settings sections grid/reaction/symbols; references are names/hashes/descriptions only. No fonts, proprietary artwork, code or local paths embedded. Does not publish or install anything.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
presetYes
versionYes
settingsNo
referencesNo
output_pathYes

TDQS

C2.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate readOnlyHint=false (write operation) and destructiveHint=false. The description aligns by stating it 'writes' and 'does not publish or install anything'. It adds constraints about no embedded fonts, proprietary artwork, code, or local paths, and mentions content hashing, which goes beyond the annotations. However, it does not clarify overwrite behavior or error conditions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three sentences, front-loading the core action and then adding constraints. It is efficient with no wasted words, and the key purpose is stated first. The structure is easy to scan and understand.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a create operation with 6 parameters, nested objects, and no output schema, the description lacks crucial details. It does not explain what 'preset' contains, how 'version' is used, what 'output_path' should point to, or how settings and references interplay. It partially covers settings and references but leaves major gaps for an agent to correctly invoke the tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description must compensate for parameter meaning. It does explain 'settings' sections (grid/reaction/symbols) and 'references' format (names/hashes/descriptions), but completely omits name, version, preset, and output_path semantics. This leaves most parameters underspecified for an agent.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states a specific verb ('write') and resource ('new portable versioned numerical style JSON with content hash'). It also lists key aspects like settings sections and reference format, and explicitly distinguishes from publishing/installing. This differentiates it from siblings like import_style or apply_style, though it doesn't name a specific sibling.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies it is for creating a new style file but does not provide explicit when-to-use guidance or name alternatives. It only notes what it does NOT do (publish/install), which hints at usage boundaries but doesn't give clear direction on when to choose this tool over others like chemdraw_import_style or chemdraw_apply_style.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

chemdraw_decorate_scopeA

Decorate an existing flat scope in a NEW copy with an optional native rounded shadow frame and dotted group dividers. Explicit groups {label,fragment_ids,caption_ids} must own every source fragment and caption once and form nonoverlapping top-to-bottom bands. Labels can be empty; nonempty labels need measured free space. No automatic chemical classification or molecule reordering. Inspect current IDs/source token first. Native editable CDXML/SVG/PNG with source preservation and layout audit; human visual review still required. New absolute output directory only; uncertain native writes stop without retry.

ParametersJSON Schema
NameRequiredDescriptionDefault
frameNo
groupsYes
pixelsNo
output_dirYes
separatorsNo
document_idYes
expected_source_tokenYes

TDQS

A4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations are all default-false (readOnlyHint: false, destructiveHint: false), so the description carries the full burden, and it delivers extensively. It discloses that the operation writes to a NEW copy with source preservation, that 'uncertain native writes stop without retry' (fail-fast behavior), that output is native editable CDXML/SVG/PNG with a layout audit, and that human visual review is still required. This level of failure-mode and side-effect disclosure is exemplary.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four dense sentences carrying distinct payloads: core action, group invariant, label/non-behavior, and output/failure semantics. The core action is front-loaded and every sentence earns its place. The density is high enough that an agent must parse carefully, but nothing is redundant and the organization parallels how the tool will actually be used (inspect → decorate → verify).

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (7 params, a nested groups structure, no output schema, all-false annotations), the description is unusually complete. It documents the required invariant (exclusive ownership, nonoverlapping top-to-bottom bands), label constraints (empty allowed, nonempty needs measured free space), and failure behavior. The only notable gap is the absence of any description of the layout audit's return format, which matters since there is no output schema to fall back on.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate, and it does for most parameters: 'optional native rounded shadow frame' covers frame, 'dotted group dividers' covers separators, 'New absolute output directory only' covers output_dir, and 'groups {label,fragment_ids,caption_ids} must own every source fragment and caption once' gives the groups parameter real meaning. Two parameters (pixels, document_id) receive no description-level semantics, and expected_source_token is only referenced obliquely via 'Inspect current IDs/source token first', so compensation is strong but not complete.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb+resource: 'Decorate an existing flat scope in a NEW copy' with concrete outcomes (rounded shadow frame, dotted group dividers). The phrase 'No automatic chemical classification or molecule reordering' draws a boundary that helps separate it from analysis/build siblings. It does not, however, name any sibling explicitly, and with 40 sibling tools (build_scope_job, grid_document, polish_document) some ambiguity remains about where decoration ends and other visual-editing tools begin.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear preconditions ('Inspect current IDs/source token first') and constraints ('New absolute output directory only'), which imply when the tool is appropriate. It also signals what the tool will NOT do ('No automatic chemical classification or molecule reordering'), a weak when-not boundary. However, it never names an alternative tool or states explicit conditions for choosing a sibling instead, leaving usage routing to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

chemdraw_doctorA
Read-only

Check the Mac installation, live connection and optional chemistry validator without editing documents.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds the useful behavioral detail that it checks 'Mac installation, live connection and optional chemistry validator' and that it does not edit documents. It does not disclose what the output looks like or what 'optional' means in practice, but for a zero-parameter diagnostic tool the added context is adequate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single sentence that front-loads the action ('Check'), names the three checked areas, and explicitly excludes document editing. Every word earns its place; there is no fluff or repetition of the tool name.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter, read-only diagnostic tool with no output schema, the description is largely complete: it states what is checked and what is not done. The only minor gap is not describing the return format or how the 'optional chemistry validator' is triggered, but given the tool's simplicity and annotation coverage, this is a small omission.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so there is no parameter semantics burden on the description. The description still clarifies the tool's scope (installation, connection, validator) which is the only meaningful semantic content an agent needs. Baseline 4 for zero-parameter tools is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Check') and resource ('Mac installation, live connection and optional chemistry validator') and explicitly notes it does not edit documents. It is clear enough to distinguish from the many sibling tools that perform document edits or build operations, though it does not name a specific sibling alternative.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies this is a diagnostic/health-check tool to run before other operations, and the 'without editing documents' phrase signals it is safe to use in read-only contexts. However, it does not explicitly state when to use it versus alternatives or when not to use it, leaving the agent to infer its role from the sibling names.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

chemdraw_draw_structuresA

Create a native ChemDraw figure from 1..24 explicit {compound_id,label,smiles} records. Labels are caller supplied, not verified names. Connected supported nonradical structures only. RDKit supplies MOL coordinate seeds; actual ChemDraw imports, runs native Clean Up Structure and renders. Optional scaffold_smiles explicitly selects a common core, rigidly aligned to the first native structure without reflection; poor fits fail, no inferred core. Checks identity after import/cleanup and measured grid after native save. New absolute output directory, editable/vector/PNG preview and audit. Final document stays open, originals untouched. No name lookup or yields. Review stereo and intramolecular collisions visually. Native uncertainty stops without retry/close.

ParametersJSON Schema
NameRequiredDescriptionDefault
layoutNo
pixelsNo
presetNohouse
columnsNo
output_dirYes
structuresYes
charge_styleNoplain
scaffold_smilesNo

TDQS

A3.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses many behavioral traits beyond the minimal annotations: RDKit coordinate seeding, native ChemDraw import and Clean Up Structure, identity checks after import/cleanup, grid measurement after native save, new absolute output directory, editable/vector/PNG preview and audit, final document staying open, originals untouched, and stopping without retry on native uncertainty. No contradiction with annotations exists.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense but every sentence contributes operational or constraint information. It is front-loaded with the primary purpose, followed by relevant processing details and caveats. While not brief, the length is justified by the complexity of the tool and there is no obvious filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a complex tool with no output schema, the description covers the main workflow, constraints, output artifacts, failure behavior, and review caveats. It does not explicitly describe the return value or audit contents, but it provides enough operational detail for an agent to invoke the tool and interpret a successful result.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description must carry parameter meaning. It clearly explains structures (explicit 1..24 compound_id,label,smiles records), scaffold_smiles (explicit common core, rigid alignment, no inference), and output_dir (new absolute output directory). However, layout, pixels, preset, columns, and charge_style are not described, leaving several parameters without semantic context beyond their names and defaults.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource: 'Create a native ChemDraw figure from 1..24 explicit {compound_id,label,smiles} records,' making the tool's core action clear. It does not explicitly contrast itself with siblings such as chemdraw_create_document or chemdraw_build_reaction, though the stated focus on explicit SMILES records implicitly differentiates it.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides several situational constraints: connected nonradical structures only, no name lookup, no yields, and scaffold_smiles behavior. It does not explicitly say when to use this tool instead of a sibling or mention alternatives for name lookup or yields, so the usage guidance is implied rather than explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

chemdraw_edit_documentA

Make an edited COPY of one molecule with native before/after exports and chemical diff. Analyze first: use editing atom/bond IDs and source_token. Atom op: {kind:atom,id,element:S,hydrogens:1}; element optional, H count required. Bond op: {kind:bond,id,order:2}. Captions must explicitly replace, retain or null-remove every page text ID. Supports neutral main-group atom/H changes and plain nonaromatic bond orders; no insertions/deletions, charged/isotopic target edits, radicals, stereocentre edits or new alkene stereo. Coordinates preserved, no cleanup. Existing source untouched; final mapped chemistry, labels and coordinates verified after ChemDraw export. Visual review required.

ParametersJSON Schema
NameRequiredDescriptionDefault
pixelsNo
captionsYes
operationsYes
output_dirYes
document_idYes
expected_source_tokenYes

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only signal a non-read-only, non-destructive operation. The description adds material behavioral context: it operates on a copy, leaves the existing source untouched, preserves coordinates, performs no cleanup, verifies chemistry/labels/coordinates after export, and requires visual review.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense but front-loaded with the core purpose and contains no filler. All sentences add necessary detail, though a slightly more structured layout would improve scannability.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with no output schema, it explains outputs (before/after exports, chemical diff), verification behavior, and operational constraints. It relies on 'Analyze first' and source token naming, but does not state how to obtain document_id/source_token or what the exact return payload is; still, it is largely complete for calling the tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description carries the burden. It documents the operations object structure (atom/bond kinds, required fields like hydrogens and order) and the caption rule (explicit replace/retain/null-remove). It does not spell out document_id/output_dir/pixels, but those are inferable from names.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('Make an edited COPY'), resource ('one molecule'), and outputs ('native before/after exports and chemical diff'). The copy semantics and diff output clearly distinguish it from sibling editing tools, even without naming them.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives an explicit prerequisite ('Analyze first') and enumerates supported vs unsupported operations ('Supports neutral main-group atom/H changes... no insertions/deletions...'), which tells an agent when to use this tool and when not. It does not name alternative tools, but the exclusions are actionable.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

chemdraw_exportA

Export through actual ChemDraw, refusing overwrites. PNG rasterizes unchanged native SVG offline with resvg; pixels controls longest side. Output parent must exist. Unsupported SVG resources fail explicitly; no rasterizer fallback.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
formatYes
pixelsNo
document_idYes

TDQS

A3.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Adds meaningful behavioral context beyond the basic annotations: refusing overwrites, offline resvg rasterization for PNG, and explicit failure without rasterizer fallback. The annotations only say readOnlyHint=false, openWorldHint=false, destructiveHint=false, so this extra disclosure is valuable. No contradiction detected.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three dense sentences pack in the tool's identity, a crucial overwrite behavior, PNG-specific processing details, a hard prerequisite, and a failure mode. Every sentence carries distinct information with zero filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a moderate-complexity export tool with no output schema, the description covers the prerequisites, key options, and failure behavior sufficiently for an agent to invoke it correctly. The only notable gap is that it does not describe what a successful call returns, but this is not essential for making the call.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It explains 'pixels controls longest side' and implies path is a file whose parent must exist. However, document_id is left to inference, and format is covered only by the enum. It adds some semantics but does not fully compensate for the coverage gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a clear verb+resource: export a document through actual ChemDraw, and adds a key behavioral constraint ('refusing overwrites'). It does not explicitly differentiate from the sibling chemdraw_batch_export, which is the natural alternative, leaving some ambiguity about scope.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit when-to-use guidance or named alternatives. The description does provide useful prerequisites ('Output parent must exist') and a limitation ('Unsupported SVG resources fail explicitly'), but it never tells an agent when to pick this tool over batch_export or another sibling.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

chemdraw_grid_documentB

Create a native scope grid COPY. Analyze first for source_token and IDs. Cells in requested order: {compound_id:3a,fragment_ids:[ID],caption_id:ID|null,yield_percent:82|null}. Every fragment and existing page caption needs one owner. 0% remains visible; missing yield omitted. Multi-fragment compounds translate together after normalization. Native measured molecular+caption bounds determine uniform cells. Columns auto-fit if omitted; overflow fails, never shrinks individual molecules. Requires chemistry extra. No reactions/page graphics/nested groups/native symbol graphics. Preserves orientation and chemistry, adds caller-supplied compound IDs/yields, verifies native saved page fit and alignment. Yields are not experimentally validated. Visual review required.

ParametersJSON Schema
NameRequiredDescriptionDefault
cellsYes
h_gapNo
v_gapNo
widthNo
heightNo
marginNo
pixelsNo
presetNohouse
columnsNo
label_gapNo
output_dirYes
document_idYes
expected_source_tokenYes

TDQS

B3.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Since annotations are all false (readOnlyHint=false, openWorldHint=false, destructiveHint=false), the description carries the full burden of behavioral disclosure. It reveals several important behaviors: '0% remains visible; missing yield omitted,' 'overflow fails, never shrinks individual molecules,' 'Columns auto-fit if omitted,' and 'Multi-fragment compounds translate together after normalization.' It also discloses that 'Yields are not experimentally validated' and that verification of native saved page fit occurs. These are substantive disclosures beyond the annotations, though some phrases (e.g., '0% remains visible') are ambiguous.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a dense, run-on paragraph with no paragraph breaks or bullet points. It front-loads the main purpose but then continues with a stream of clauses covering cells, ownership, translation, measurement, columns, exclusions, and verification, all in a single block. While every sentence contains information, the lack of structure makes it hard to parse, and it is unnecessarily verbose for what could be organized into clear sections.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (13 parameters, no output schema, no parameter descriptions in the schema), the description is incomplete. It fails to explain the purpose of expected_source_token, output_dir, or the numeric gap/margin parameters, and it gives no indication of return values or error behavior. The description provides some insight into cells and columns but leaves many essential calling details unresolved, making it insufficient for an agent to correctly invoke the tool without additional knowledge.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It explains the structure of the 'cells' parameter ('Cells in requested order: {compound_id:3a,fragment_ids:[ID],caption_id:ID|null,yield_percent:82|null}') and mentions 'Columns auto-fit if omitted' for the columns parameter. However, it does not explain document_id, output_dir, expected_source_token, h_gap, v_gap, width, height, margin, pixels, preset, or label_gap. With 13 parameters and only two partially addressed, the description falls far short of covering parameter semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a clear action: 'Create a native scope grid COPY.' It specifies the resource (scope grid) and the operation (create a copy). It also mentions 'Preserves orientation and chemistry' and 'adds caller-supplied compound IDs/yields,' which further clarifies the function. However, it does not explicitly contrast with sibling tools like chemdraw_build_scope_job or chemdraw_plan_scope_job, so some ambiguity remains about when this specific grid-copy tool is preferred.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides some usage context: it states 'Requires chemistry extra' and lists exclusions ('No reactions/page graphics/nested groups/native symbol graphics'), which imply when not to use it. It also mentions 'Visual review required' as a follow-up expectation. However, it never names alternative tools or gives explicit 'use this instead of X' guidance, leaving routing decisions to the agent.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

chemdraw_identifyA
Read-only

Inspect an explicit SMILES or canonical Standard InChI entirely offline with optional RDKit. Returns canonical isomeric SMILES, formula, charge, components, isotope/stereo summaries and InChI/Key when available. No ChemDraw call, names/CAS resolution, salt stripping or tautomer conversion. Standard InChI normalization and graph-roundtrip differences are explicit.

ParametersJSON Schema
NameRequiredDescriptionDefault
valueYes
input_formatNosmiles

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already mark this as read-only, and the description adds meaningful behavioral context: offline execution, optional RDKit usage, explicit normalization behavior, and the absence of salt stripping or tautomer conversion. This goes well beyond the readOnlyHint and gives the agent a precise model of what will and will not happen.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded: purpose first, then outputs, then explicit exclusions and caveats. Every sentence adds useful information without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only identification tool with no output schema, the description is unusually complete: it defines accepted input forms, lists all return categories, and states important limitations and normalization caveats. An agent has enough information to call it correctly and interpret the result.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description carries the burden of explaining the value parameter, and it does so by specifying 'explicit SMILES or canonical Standard InChI'. It does not explicitly mention the input_format parameter by name, but the enum and default are in the schema and the description clearly implies format selection.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource: 'Inspect an explicit SMILES or canonical Standard InChI' and clearly enumerates the outputs. It also distinguishes itself by explicitly saying what it does not do, such as ChemDraw calls, names/CAS resolution, salt stripping, and tautomer conversion, which sets it apart from sibling tools like chemdraw_resolve.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description communicates when to use this tool: for offline inspection of explicit structure strings with no external ChemDraw call. It also gives clear exclusions ('No ChemDraw call, names/CAS resolution, salt stripping or tautomer conversion'), but it does not name a specific sibling tool to use for those cases.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

chemdraw_import_fileA

Open a private working copy of a local CDXML, CDX, MOL or SDF. Never opens the original for editing.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations provide readOnlyHint=false and destructiveHint=false, so the tool is expected to be non-destructive. The description adds useful context by stating the original is never opened for editing and that a private working copy is used. However, it does not disclose the working-copy lifecycle, such as whether a handle is returned, whether the copy persists, or whether it must be closed explicitly.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences with no wasted words. The core action and supported file formats are front-loaded, and the safety guarantee is placed in the second sentence. Every sentence contributes essential information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with one parameter and no output schema, the description conveys the main purpose and safety boundary. However, it leaves out what happens after the import: what is returned, how to reference the working copy in subsequent calls, and whether there are sequencing constraints with sibling tools like chemdraw_close_working_document. This is a real gap for an agent planning a workflow.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has a single 'path' parameter with 0% description coverage, so the description must define its meaning. The description does this by clarifying that the path refers to a local CDXML, CDX, MOL, or SDF file. It stops short of specifying path syntax or file-existence requirements, but the core parameter semantics are meaningfully supplied.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Open'), a precise resource ('private working copy of a local CDXML, CDX, MOL or SDF'), and adds an important distinguishing behavior ('Never opens the original for editing'). This clearly separates it from document-creation, style-import, and editing tools in the sibling list.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage: use this to open a local chemistry file in a safe private working copy. However, it never explicitly says when to use this tool versus alternatives, nor does it rule out cases like importing styles or creating new documents, especially given the large sibling set.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

chemdraw_import_styleA
Read-only

Read a local .cds/.cdx/.cdxml document style without opening ChemDraw or modifying the source. Returns validated preset settings, hash, defaults used and unapplied properties. Pass its preset object to draw/polish/grid/apply_style. Only supported typography and bond settings, not template artwork, page geometry or colour palette. Custom fonts are checked on the rendering Mac before use.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description aligns with annotations (readOnlyHint=true, destructiveHint=false) by stating it does not open ChemDraw or modify the source. It adds behavioral details beyond annotations, such as returning validated preset settings, a hash, defaults used, and unapplied properties, and notes that custom fonts are checked on the rendering Mac. This enriches the agent's understanding of side effects and dependencies, though it could have disclosed more about error handling or output format.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise, with three sentences that front-load the primary purpose, then add usage guidance and limitations. Every sentence provides value—no filler or redundancy. It is well-structured for quick parsing by an agent.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-only tool with one parameter and no output schema, the description is fairly complete. It specifies the input type, what it returns (validated settings, hash, defaults, unapplied properties), and how to use the result. It also mentions limitations. Minor gaps include lack of error behavior and exact return structure, but these are not critical for a straightforward operation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With a single parameter 'path' and 0% schema description coverage, the description must clarify the parameter's meaning. It implicitly conveys that 'path' points to a local .cds/.cdx/.cdxml file by stating the tool reads such files, which adds some context. However, it does not explicitly describe the parameter, its format, or any constraints (e.g., absolute vs. relative path), leaving room for interpretation. The description partially compensates for the lack of schema coverage but not fully.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function: reading a local .cds/.cdx/.cdxml document style without modifying it. It explicitly names the resource type and the non-destructive nature, and the mention of returning preset settings to be passed to draw/polish/grid/apply_style distinguishes it from sibling tools like chemdraw_import_file or chemdraw_create_lab_style.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear usage context by instructing to pass the returned preset object to draw/polish/grid/apply_style, indicating when to use this tool. It also states limitations (only typography and bond settings, not template artwork, page geometry, or colour palette), which guides appropriate usage. However, it does not explicitly name alternatives or state when not to use it, so it falls short of a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

chemdraw_inspect_annotationsA
Read-only

Export a read-only snapshot and list atom/bond IDs, measured label boxes, supported native curves and source_token for electron-flow annotation. Supports existing circled charge graphics. Ownership in an annotation recipe is not a native moving attachment guarantee.

ParametersJSON Schema
NameRequiredDescriptionDefault
document_idYes

TDQS

A3.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already declare readOnlyHint=true and destructiveHint=false, and the description independently says 'read-only snapshot', so there is no contradiction. It adds useful extra context beyond the annotations by enumerating what is returned and warning that 'Ownership in an annotation recipe is not a native moving attachment guarantee.' This goes beyond the structured metadata without needing to restate safety flags.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact: one core sentence listing the outputs plus one sentence for the ownership caveat. It front-loads the main purpose before the limitation. Some domain jargon like 'measured label boxes' and 'supported native curves' makes it dense, but every sentence contributes distinct information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description acts as the return contract by listing atom/bond IDs, measured label boxes, supported native curves, and source_token. It also covers supported graphics and the ownership limitation. Missing response format details and failure behavior are minor for a simple read-only tool with one required parameter.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has no descriptions (0% coverage), and the description never mentions document_id or explains how the parameter selects the snapshot target. Since schema description coverage is low, the description needed to compensate, but it does not. The parameter name is self-explanatory, yet the description adds no semantic value beyond it.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The opening phrase 'Export a read-only snapshot and list atom/bond IDs, measured label boxes, supported native curves and source_token' clearly states a specific verb, resource, and concrete outputs. It is obviously about annotation inspection rather than generic document inspection, though it does not explicitly differentiate itself from sibling tools such as chemdraw_inspect_document or chemdraw_inspect_symbols.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'for electron-flow annotation' implies when the tool is relevant, and the ownership caveat signals a limitation to keep in mind. However, there is no explicit when-to-use or when-not-to-use guidance, and no alternative sibling tools are named. Usage context is implied rather than stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

chemdraw_inspect_documentA
Read-only

Inspect 1-based molecule indices/bounds and document settings. Refresh indices after edits. Native molecule IDs are broken in ChemDraw 23. Does not return atom-level chemistry.

ParametersJSON Schema
NameRequiredDescriptionDefault
document_idYes

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint and destructiveHint, but the description adds meaningful behavior: 1-based indexing, the need to refresh after edits, the ChemDraw 23 ID caveat, and the explicit statement that atom-level chemistry is not returned. This exceeds the annotation baseline.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three dense, front-loaded sentences with no filler. Each sentence adds distinct value: the core purpose, a usage caution, and an explicit scope boundary.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only inspection tool with a single obvious parameter, the description covers purpose, index semantics, refresh expectations, a known compatibility issue, and what it does not return. Nothing critical is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description carries the burden, but it never explicitly explains the document_id parameter. However, the parameter name is self-explanatory and the tool description makes it clear which document is inspected, so the gap is not severe.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('Inspect') and resource ('1-based molecule indices/bounds and document settings'), clearly distinguishing it from sibling inspect tools like chemdraw_inspect_symbols and chemdraw_inspect_annotations. The explicit exclusion of atom-level chemistry further sharpens its scope.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides practical usage context: refresh indices after edits, and notes ChemDraw 23 has broken native molecule IDs, implying when to rely on this tool's indices. It does not explicitly name alternative tools or state when not to use it, so it stops short of a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

chemdraw_inspect_lab_styleA
Read-only

Read and validate a portable style package, exact supported settings, version and content hash. No native application or network access.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and destructiveHint=false; the description reinforces this with 'Read and validate' and adds environmental constraints ('No native application or network access') and expected output contents. This goes beyond the structured annotations without contradicting them.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences with no wasted words; the main purpose and key constraints are front-loaded. Every phrase adds information about what the tool does or does not do.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter, read-only inspection tool, the description covers the action, the resource, the returned values, and network/native-access limitations. It does not specify return formatting or error behavior, but the absence of an output schema makes this a minor gap given the tool's simplicity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has a single 'path' parameter with zero description coverage, and the description does not explain the expected path format or whether it points to a file or directory. The resource type weakly implies that path locates the package, but the description does not compensate for the missing parameter documentation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific action ('Read and validate') and a clear resource ('portable style package'), and it lists the expected outputs (supported settings, version, content hash). This distinguishes it from sibling inspect tools by resource type (lab style vs document/symbols/annotations).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the tool is for inspecting a style package, but it does not explicitly say when to prefer it over sibling tools such as chemdraw_list_styles or chemdraw_inspect_document. There are no exclusions or prerequisites stated, leaving usage guidance implicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

chemdraw_inspect_symbolsB
Read-only

Snapshot native atom/bond/symbol IDs and measured label bounds, returning a source_token. Supports existing associated circled charges and unassociated graphical electron/lone-pair symbols. A graphical electron dot is not a verified radical state.

ParametersJSON Schema
NameRequiredDescriptionDefault
document_idYes

TDQS

B3.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds value beyond that by specifying that the tool takes a snapshot (implying non-mutating) and returns a source_token, plus a caveat that a graphical electron dot is not a verified radical state. This adds semantic nuance without contradicting annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise (two sentences) and front-loaded with the primary action. It avoids fluff and conveys key points efficiently. It could be slightly more structured (e.g., separating the token explanation), but it is appropriately sized for the tool's simplicity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the core behavior and a relevant caveat, but it does not explain the purpose of the source_token or how it is used downstream. It also does not clarify how this tool differs from other inspection tools (e.g., chemdraw_inspect_document) or mention any prerequisites. Given the single parameter and read-only annotations, it is adequate but not complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With schema_description_coverage at 0% and only one parameter (document_id), the description does not explain the parameter's format, purpose, or constraints. The name is self-explanatory, but the description provides no additional semantics, failing to compensate for the lack of schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states a specific action ('Snapshot native atom/bond/symbol IDs and measured label bounds') and a distinct output ('returning a source_token'). It identifies the resource (symbols in a document) and is not a tautology. However, it does not explicitly differentiate from sibling tools like chemdraw_inspect_document or chemdraw_inspect_annotations, so it loses one point.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives no explicit guidance on when to use this tool versus alternatives. It mentions supported symbol types (circled charges, electron/lone-pair symbols) but does not state conditions or exclusions. There is no mention of when to prefer this over other inspect tools, leaving the agent to infer usage.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

chemdraw_list_documentsA
Read-only

List running ChemDraw documents with unique IDs, names, paths and modified flags.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is fully covered and the description does not need to repeat it. The description adds the 'running' scope and the returned fields, which is useful context beyond the annotations, but it does not mention edge behavior such as empty result sets or exact return formatting. This is adequate given the annotations, but not rich.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single sentence with the verb and resource front-loaded, followed by a tight list of returned fields. Every word earns its place, and there is no repetition of structured data or filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter, read-only list tool with no output schema, the description states both the scope ('running' documents) and the return content (IDs, names, paths, modified flags). Combined with the readOnly and destructive annotations, an agent has enough information to invoke the tool and interpret its result correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters and an empty schema, so there is no parameter burden for the description to carry. Per the rubric, a zero-parameter tool earns a baseline of 4; no additional parameter explanation is needed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses the specific verb 'List' with the resource 'running ChemDraw documents' and enumerates exactly what is returned: unique IDs, names, paths and modified flags. This clearly distinguishes it from sibling tools such as chemdraw_list_styles and chemdraw_inspect_document, so an agent can identify its purpose without inspecting schemas.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage: call this when you need to enumerate currently running ChemDraw documents and their IDs. However, it provides no explicit when/when-not guidance and names no alternatives, even though siblings like chemdraw_inspect_document, chemdraw_close_working_document, and chemdraw_create_document offer related document operations. The usage context is inferred rather than stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

chemdraw_list_stylesA
Read-only

List numeric style presets. These are defaults plus explicit text/bond overrides, not chemistry or automatic layout engines.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds that the tool returns numeric style presets and clarifies that it doesn't cover chemistry or layout engines, which is extra context beyond the annotations. It doesn't describe return format, but for a list tool with no output schema, that's a minor gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise—one sentence with no fluff. It front-loads the core purpose ('List numeric style presets') and adds qualifying context in the second clause. Every word earns its place, and it's perfectly sized for a simple list operation.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter, read-only list tool, the description covers the essentials: what it lists, the scope (defaults and overrides), and what it excludes. Given the annotations cover safety and the schema is empty, it's complete enough for an agent to know when to call it and what to expect. Missing explicit output format is a minor gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so the input schema is trivially complete. The description doesn't need to add parameter meaning, and it provides sufficient context about what the list contains. Baseline 4 is appropriate for a no-parameter tool.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it lists numeric style presets, distinguishing itself from related style operations like create_lab_style or apply_style. It specifies the scope (defaults plus explicit text/bond overrides) and clarifies what it is not (chemistry or layout engines), which differentiates it from sibling tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use this tool: when you need to list available numeric style presets. It doesn't explicitly state when not to use it or name alternatives, but the distinction from chemistry/automatic layout engines suggests what this tool is not for. With 36 siblings, more explicit exclusions would help, but the context is reasonably clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

chemdraw_move_ownedA

Move explicit owners {owner_key,delta:[dx,dy]} in a NEW native copy, carrying owned captions, symbols and internal curves. Cross-owner curves require equal translation of both owners. Returns remapped ownership sidecar. No automatic manual-drag attachment or collision-free layout claim.

ParametersJSON Schema
NameRequiredDescriptionDefault
movesYes
pixelsNo
ownershipYes
output_dirYes
document_idYes
expected_source_tokenYes

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations provide readOnlyHint=false and destructiveHint=false, indicating a mutating operation that is not destructive. The description aligns by stating it creates a 'new native copy' (non-destructive) and adds key behavioral context: it carries owned captions/symbols, requires equal translation for cross-owner curves, and explicitly disclaims automatic manual-drag attachment or collision-free layout. This goes beyond annotations to set expectations about side effects and limitations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences: the first packs the action, scope, and key nuance (cross-owner curves) efficiently; the second adds return value and explicit non-claims. Every clause adds value, front-loads the core behavior, and avoids fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the tool's purpose, key behaviors, and limitations, which is strong for a tool with no output schema and nested objects. However, with 5 required parameters and no schema descriptions, an agent might still have questions about expected_source_token and output_dir semantics, and the 'ownership' object structure isn't elaborated. Still, the description is quite complete for the core operation, so a 4 is justified.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It explains the core 'moves' parameter (owner_key, delta), mentions the ownership sidecar, and refers to 'ownership' implicitly. However, it does not describe each parameter in detail (e.g., output_dir, expected_source_token), leaving some gaps. The description adds significant meaning for the main complex parameters, so a 4 is appropriate given the 0% coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states what the tool does: it moves explicit owners by specifiable deltas in a new native copy, and it enumerates what is carried along (captions, symbols, internal curves). It distinguishes itself from other moving/editing tools by specifying the 'explicit owner' mechanism and the 'new native copy' behavior.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use this tool (when moving owned elements with explicit owner definitions) and gives a specific constraint for cross-owner curves. It doesn't explicitly name alternative tools, but the sibling context includes tools like chemdraw_edit_document and chemdraw_clean, which likely handle broader edits. The lack of explicit 'use X instead' is a minor gap, but the conditional guidance for cross-owner curves is concrete.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

chemdraw_plan_scope_jobA
Read-only

Offline standard aromatic scope proposal, explicit candidate selection and category grouping plan. Job needs mapped parent_smiles, handle_atom_map and ordered groups {label,categories}. Building requires selected_candidate_ids or accept_all=true; planning never implicitly accepts. All yields null.

ParametersJSON Schema
NameRequiredDescriptionDefault
jobYes

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already mark the tool read-only and non-destructive, and the description adds useful behavioral detail: it runs offline, yields null, and never implicitly accepts candidates. This goes beyond the schema and annotations and clarifies the planning contract clearly.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three dense sentences with no redundancy and front-loads the main purpose. The wording is slightly telegraphic and the phrase 'All yields null' is awkward, but every sentence contributes substantive information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

It provides the essential inputs and a clear behavioral contract despite the bare nested job schema and missing output schema. However, the exact shape of handle_atom_map and the categories structure is not fully specified, so an agent may need to infer details about the nested argument.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema provides only an opaque job object with 0% description coverage, but the description names required internal fields: mapped parent_smiles, handle_atom_map, and ordered groups {label,categories}. It also distinguishes build-time selected_candidate_ids/accept_all from planning semantics, which meaningfully compensates for the empty schema even though exact types and nested structures remain underspecified.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a clear function: offline planning of a standard aromatic scope with explicit candidate selection and category grouping. It is distinguishable from build_scope_job and propose_scope by emphasizing planning and offline mode, though it is phrased as a noun phrase rather than an active verb.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives context that this is the offline planning stage, expects mapped parent_smiles, handle_atom_map, and ordered groups, and contrasts planning with building by noting that building requires selected_candidate_ids or accept_all=true while planning never implicitly accepts. It does not explicitly name alternative sibling tools or give when-not-to-use conditions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

chemdraw_polish_documentA

Create a new normalized native drawing plus editable CDXML, SVG, PNG, before/after HTML, recipe and audit. Never edits the source. Requires chemistry extra. Flat one-page drawings only; queries/groups/abbreviations fail closed. Row layout requires explicit fragment-to-caption and arrow-to-condition ID maps from analyze; unassigned text is rejected. Preserves orientation, charges, isotopes and supported stereo. Does not run native cleanup automatically. Review previews before publication; checks establish preservation, not source correctness.

ParametersJSON Schema
NameRequiredDescriptionDefault
gapNo
widthNo
layoutNopreserve
pixelsNo
presetNohouse
label_gapNo
output_dirYes
caption_mapNo
document_idYes
condition_mapNo

TDQS

A4.3/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With only bare annotation hints (readOnlyHint=false, destructiveHint=false), the description richly discloses behavior: it never edits the source, requires an extra feature, fails closed on unsupported content, preserves specific chemical attributes, does not auto-clean, and explicitly warns that checks establish preservation not correctness. This far exceeds the annotation baseline and gives agents essential safety expectations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense but every sentence carries critical operational information; the main purpose is front-loaded in the first sentence. It is somewhat long and could be structured into bullet points for scannability, but it avoids filler and earns its length.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 10 parameters, no output schema, and minimal annotations, the description covers behavior, limitations, prerequisites, and preservation scope well. It omits explanation for several styling/output parameters (gap, label_gap, pixels) and does not describe return values, but the core calling context is sufficiently complete for an agent to use it safely.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It gives meaning to 'layout' and the maps ('Row layout requires explicit fragment-to-caption and arrow-to-condition ID maps from analyze; unassigned text is rejected'), but it does not explain 'gap', 'label_gap', 'width', 'pixels', or 'preset' beyond their schema titles. Partial compensation only.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and concrete deliverables ('Create a new normalized native drawing plus editable CDXML, SVG, PNG, before/after HTML, recipe and audit') and immediately disambiguates from siblings by stating 'Never edits the source' and 'Does not run native cleanup automatically.' This distinguishes it clearly from chemdraw_edit_document, chemdraw_clean, and chemdraw_export.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It provides explicit prerequisites ('Requires chemistry extra', 'Flat one-page drawings only') and failure conditions ('queries/groups/abbreviations fail closed', 'unassigned text is rejected'), plus a dependency on 'analyze' for row-layout maps. It doesn't explicitly name alternative tools, but the conditions effectively tell an agent when this tool is appropriate and when to avoid it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

chemdraw_propose_scopeA
Read-only

Propose a standard aromatic substrate scope offline, not experimental results. Parent requires a uniquely atom-mapped benzene carbon attached to the existing reaction handle on an isolated monosubstituted ring. Produces deduplicated parent, electronic, halogen, 2/3/4-Me and steric variants with stable graph IDs, SMILES, relative labels, rationale and blank yields. Preserves supported parent graph/stereo. No native drawing or reaction prediction. Review/select candidates, then call draw_structures with explicit compound_id/label/smiles.

ParametersJSON Schema
NameRequiredDescriptionDefault
profileNostandard
parent_smilesYes
handle_atom_mapYes

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds substantial behavioral context beyond the readOnly/destructive annotations: it enumerates the exact generated variant classes, the stable graph IDs/SMILES/labels/rationale/yields output, preservation of parent graph/stereo, and the absence of drawing or reaction-prediction behavior. This goes well beyond the annotation hints and sets accurate expectations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description front-loads the core purpose, then moves through input constraint, output contents, limitations, and the next action. Each sentence adds a distinct piece of information with no fluff or repetition; the length is justified by the tool's complexity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with no output schema and only three parameters, the description covers the required input shape, what outputs to expect, what is preserved, what is not performed, and what to do next. An agent has enough information to decide to call it and to interpret its result.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description must carry parameter meaning, and it does for the two required parameters: parent must be an isolated monosubstituted ring with an atom-mapped carbon attached to the handle. It does not explicitly call out the optional 'profile' parameter, but that parameter is constrained to a default constant, so the omission is minor.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific action and object: 'Propose a standard aromatic substrate scope offline, not experimental results.' It states exactly what the tool produces (deduplicated parent, electronic, halogen, Me, steric variants) and what it does not do (native drawing or reaction prediction), so an agent can distinguish it from related scope/drawing tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives clear input prerequisites ('Parent requires a uniquely atom-mapped benzene carbon attached to the existing reaction handle on an isolated monosubstituted ring') and a downstream instruction ('Review/select candidates, then call draw_structures'). It does not, however, explicitly contrast this tool with sibling propose/decorate/scan scope tools or state when not to use them.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

chemdraw_resolveA
Read-only

Resolve an explicit name or CAS query using PubChem ONLY with allow_network=True. Sends the query to PubChem and returns up to 20 candidates, provenance, ambiguity/truncation and graph-validation results. No silent candidate selection, native drawing, retries, provider fallback or CAS Registry certification. Review and select an explicit valid candidate SMILES before drawing. Network denied by default.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYes
input_kindNoname
allow_networkNo

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, openWorldHint, and destructiveHint false, and the description adds substantial behavior beyond them: returns up to 20 candidates, provenance, ambiguity/truncation and graph-validation results; network is denied by default and requires allow_network=True; no retries or provider fallback. No contradiction with annotations exists.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four dense sentences with no filler. The first sentence front-loads the action and key constraint, and every subsequent sentence adds behavioral or workflow detail that is not present in the schema or annotations.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 3-parameter tool with no output schema, the description is complete: it states what the tool returns, the network precondition, the required follow-up action, and the explicit limitations. An agent has enough information to invoke it correctly and interpret the result.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description carries full parameter-semantics burden. It explains query as an explicit name or CAS, implies input_kind enum values (name/cas), and clarifies allow_network behavior ('allow_network=True', 'Network denied by default'). All three parameters gain meaning beyond the raw schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb 'Resolve' with a clear resource: an explicit name or CAS query via PubChem. It also differentiates itself from siblings by listing non-goals ('No silent candidate selection, native drawing, retries, provider fallback or CAS Registry certification'), so an agent can tell what this tool is and is not for.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives clear when-to-use context: resolve explicit name or CAS queries through PubChem. It also provides when-not-to-use guidance: no silent candidate selection, no drawing, no retries, no provider fallback, and instructs the agent to review and select a valid candidate before drawing. It does not name a specific sibling alternative, but the exclusions are sufficient for routing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

chemdraw_run_styled_jobA

Run a native workflow with a locked portable lab style. Conflicting recipe settings rejected, actual package/hash retained beside output. Grid/symbols recipes require input CDXML path. Native exports use ChemDraw; numerical conventions do not replace explicit chemical review.

ParametersJSON Schema
NameRequiredDescriptionDefault
recipeYes
workflowYes
output_dirYes
package_pathYes

TDQS

A3.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds meaningful behavior beyond the annotations: conflicting recipe settings are rejected, the actual package/hash is retained beside the output, native exports use ChemDraw, and numerical conventions do not substitute for chemical review. It does not disclose what gets created or overwritten or how errors are surfaced, but it reveals several important operational traits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is appropriately short and front-loaded with the core purpose. Every sentence adds information, though several phrases are compressed to the point of ambiguity (e.g., 'locked portable lab style', 'numerical conventions'), which slightly reduces clarity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

This is a complex tool with four required parameters, an open recipe object, an enum workflow, and no output schema. The description provides only fragments: a CDXML requirement, a conflict-rejection rule, and a caveat about ChemDraw exports. It does not define the workflow values, recipe shape, style/packaging mechanics, or expected outputs, so an agent would need external knowledge to invoke it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate, but it only hints at recipe settings, a CDXML path, and output/package/hash behavior. It does not clarify the meaning of package_path, output_dir, the workflow enum values, or the structure of the recipe object, leaving four required parameters largely unexplained.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific action, 'Run a native workflow', plus a key distinguishing constraint: the workflow uses a 'locked portable lab style'. It also names the grid/symbols workflow requirement, but 'native workflow' and 'locked portable lab style' remain somewhat jargon-heavy and the description does not explicitly differentiate from sibling build/apply/export tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives useful context: this tool runs workflows with a fixed lab style, rejects conflicting recipe settings, and requires an input CDXML path for grid/symbols recipes. However, it does not explicitly state when to prefer this over sibling tools like chemdraw_build_scope_job or chemdraw_apply_route, nor what conditions would make it inappropriate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

chemdraw_scan_scopeA
Read-only

Propose substitutions offline at explicit mapped H-bearing aromatic carbon sites. Supports isolated five/six-membered rings, including heteroaromatics and pre-substituted rings. Curated Me, OMe, CF3, CN, NO2, F, Cl, Br, iPr, tBu; one site at a time, capped at 100 requests before deduplication. Preserves supported parent graph/stereo, retains alternative provenance for duplicates, no invented yields or reaction prediction. Select explicit candidates and use draw_structures for native output.

ParametersJSON Schema
NameRequiredDescriptionDefault
substituentsYes
parent_smilesYes
include_parentNo
site_atom_mapsYes

TDQS

A4.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare readOnlyHint=true and destructiveHint=false, but the description goes further by stating that it preserves the parent graph/stereo, retains alternative provenance for duplicates, and does not invent yields or reaction predictions. This adds valuable context about the tool's behavior beyond the annotation flags.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise, with every sentence providing useful information. It front-loades the core function and then adds constraints and guidance. No fluff or redundant wording.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity (4 params, 0% schema coverage, no output schema), the description covers everything an agent needs to call it correctly: what inputs are expected, how to select them, limitations, and what happens to the results. It even points to the next tool for output.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description explains what the parameters represent (explicit mapped H-bearing aromatic carbon sites, curated substituents, one site at a time) even though the schema provides no descriptions. It clarifies the meaning of 'site_atom_maps' as explicit mapping and 'substituents' as the curated list, which is essential given 0% schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool proposes substitutions at specific aromatic carbon sites, specifying the types of rings and substituents. It distinguishes itself from sibling tools like 'decorate_scope' and 'propose_scope' by emphasizing the offline, curated nature and the requirement for explicit mapped sites.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly says to select explicit candidates and use draw_structures for native output, directing the agent to the appropriate next step. It also clarifies limitations (one site at a time, cap at 100 requests) which helps the agent decide when to use this tool versus others.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

chemdraw_suggest_routesA
Read-only

Suggest bounded cubic electron-flow paths using measured obstacles. Source must be an explicit displayed CircleMinus/LonePair for two electrons, Electron dot for one electron, or donating bond. Atom-label sources are rejected; add a symbol first if needed. Target is an explicit atom or bond ID. No chemistry inference or automatic route selection. Returns snapshot-bound candidate recipes and clearance audit; native arrowhead ink still needs visual review.

ParametersJSON Schema
NameRequiredDescriptionDefault
sourceYes
targetYes
clearanceNo
electronsNo
line_widthNo
document_idYes
fishhook_sideNo
max_candidatesNo

TDQS

A4.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, so no contradiction. The description adds meaningful behavioral constraints: it rejects atom-label sources, requires an explicit symbol, returns snapshot-bound candidate recipes and a clearance audit, and explicitly says native arrowhead ink still needs visual review. It does not fully describe failure modes or the exact shape of the candidate recipes, but with readOnlyHint covering safety, this is strong.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and information-dense. Every sentence contributes: the first sentence defines the tool's exact function, the second and third define input constraints, the third defines non-behaviors, and the last describes the return type. It is well-structured and front-loaded with the core behavior.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's moderate complexity (8 params, nested objects, no output schema) and readOnlyHint annotations, the description covers what the tool does, what inputs are valid, what it does not do, and what it returns. The main omission is parameter semantics for the remaining options, but the defaults and names make them inferable. This is complete enough for an agent to call it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% and there are 8 parameters including nested objects. The description explains the meaning of source and target in detail (source types accepted/rejected, target as explicit atom/bond ID), which compensates for the schema's lack of descriptions. However, it does not explain clearance, electrons, line_width, fishhook_side, or max_candidates, leaving those to be inferred from defaults and names.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb (suggest) and resource (bounded cubic electron-flow paths) and clearly distinguishes it from siblings by specifying it uses measured obstacles and returns candidate recipes plus clearance audit, not actual route application. It differentiates from chemdraw_apply_route, which likely executes routes, and from chemdraw_plan_scope_job.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives explicit eligibility criteria: source must be an explicit displayed CircleMinus/LonePair for two electrons, Electron dot for one electron, or donating bond; atom-label sources are rejected; target must be an explicit atom or bond ID. It also states no chemistry inference or automatic route selection, ruling out use cases where the user expects the tool to interpret chemistry.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 37 tool updatesv0.9.0
    • First observedchemdraw_add_symbols
    • First observedchemdraw_analyze_document
    • First observedchemdraw_annotate_document
    • First observedchemdraw_apply_route
    • First observedchemdraw_apply_style
    • First observedchemdraw_batch_export
    • First observedchemdraw_build_ownership
    • First observedchemdraw_build_reaction
    • First observedchemdraw_build_reaction_series
    • First observedchemdraw_build_scope_job
    • First observedchemdraw_clean
    • First observedchemdraw_close_working_document
    • First observedchemdraw_create_document
    • First observedchemdraw_create_lab_style
    • First observedchemdraw_decorate_scope
    • First observedchemdraw_doctor
    • First observedchemdraw_draw_structures
    • First observedchemdraw_edit_document
    • First observedchemdraw_export
    • First observedchemdraw_grid_document
    • First observedchemdraw_identify
    • First observedchemdraw_import_file
    • First observedchemdraw_import_style
    • First observedchemdraw_inspect_annotations
    • First observedchemdraw_inspect_document
    • First observedchemdraw_inspect_lab_style
    • First observedchemdraw_inspect_symbols
    • First observedchemdraw_list_documents
    • First observedchemdraw_list_styles
    • First observedchemdraw_move_owned
    • First observedchemdraw_plan_scope_job
    • First observedchemdraw_polish_document
    • First observedchemdraw_propose_scope
    • First observedchemdraw_resolve
    • First observedchemdraw_run_styled_job
    • First observedchemdraw_scan_scope
    • First observedchemdraw_suggest_routes

TDQS

B3.4/5.0

Scored across 37 tools

Disambiguation2/5

Multiple tools have overlapping boundaries: plan_scope_job, propose_scope, and scan_scope all generate scope proposals, while inspect_document, analyze_document, inspect_symbols, and inspect_annotations all provide overlapping inspection snapshots. build_reaction and build_reaction_series also risk confusion despite detailed descriptions.

Naming Consistency4/5

All tools share the chemdraw_ prefix and mostly follow a verb_noun pattern such as list_documents, create_document, and grid_document. A few exceptions like doctor, resolve, identify, and clean break the pattern, but the overall convention is still readable and predictable.

Tool Count2/5

With 37 tools, this server is well beyond the 25+ threshold for a heavy tool surface. The broad functionality is real, but the set would benefit from consolidation or separation of scope, inspection, styling, and annotation clusters into more focused servers.

Completeness3/5

The server covers a wide range of workflows: document lifecycle, structure drawing, reactions, scopes, styles, annotations, and export. However, there are notable gaps such as no document deletion/discard, no molecule insertion/deletion, and limited editing of charged, isotopic, radical, or stereochemical structures.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    C
    maintenance
    Enables intelligent identification and validation of compound data from documents and images, then automatically draws compound structures using local ChemDraw software with academic formatting.
    -
  • A
    license
    Not graded
    quality
    A
    maintenance
    Connects AI assistants to a live ChemDraw window on Windows via COM automation, enabling drawing, editing, and organizing chemical structures directly in the open document. Supports structure insert/export, scope tables, shorthand groups, figure layout, chemistry QC, publication tools, annotations, polymer brackets, and TLC plates.
    1
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    MCP server that connects AI assistants to a live Ketcher window, the open-source web-based chemical structure editor. Draw, edit, and organize structures directly in the canvas you have open.
    2
    MIT