Tools
The server has 20 tools. Engine tools such as convert, name, properties, depict, check and screen take a structure and answer. Document tools create an Athanor document, edit it atom by atom, and render or export it.
The server at https://mcp-athanor.arbastro.com/mcp offers 20 tools, in two kinds. None of them needs an account. Structures can be given as SMILES, a molfile, an InChI or a common name. Limits: 60 calls a minute per address, structures up to 20,000 characters.
| Tool | Kind | Does |
|---|---|---|
convert |
Engine | Convert a structure |
name |
Engine | Name a structure |
properties |
Engine | Formula and properties |
depict |
Engine | Draw a structure |
perspective_rotate |
Engine | Turn a structure in perspective |
check |
Engine | Check a structure |
screen |
Engine | Safety screen |
library_search |
Engine | Search the library |
document_create |
Document | Create a document |
document_set_atom |
Document | Change an atom |
document_add_structure |
Document | Add a structure |
document_set_bond |
Document | Change a bond |
document_add_arrow |
Document | Add an arrow |
document_add_text |
Document | Add text |
document_transform |
Document | Flip, rotate or turn |
document_clean_up |
Document | Clean up structures |
document_get |
Document | What is in a document |
document_findings |
Document | Problems in a document |
document_render |
Document | Draw a document |
document_export |
Document | Export a document |
The examples below were run against the live server when this page was built. The document examples are one session, in order, so each uses the handle and atom ids the calls before it returned.
Engine tools
A structure in, an answer out. Read-only: they need no account and keep nothing.
convert
Convert a structure. Convert a structure between formats with Athanor's engine: canonical SMILES, a MOL V3000 or V2000 block, or XYZ with 3D coordinates.
| Input | Type | Required | What it is |
|---|---|---|---|
structure |
string | yes | A structure: SMILES (e.g. CC(=O)Oc1ccccc1C(=O)O), a MOL/SDF block, an InChI, or a common name such as "aspirin". |
to |
smiles, molfile, molfile-v2000, xyz |
yes | The format to return. |
Example call:
{
"name": "convert",
"arguments": {
"structure": "caffeine",
"to": "smiles"
}
}Result:
Cn1cnc2c1c(=O)n(C)c(=O)n2Cname
Name a structure. The systematic IUPAC name Athanor works out from the structure itself, and the common name if its library knows the compound. Says why when it will not name something (ions, some ring systems).
| Input | Type | Required | What it is |
|---|---|---|---|
structure |
string | yes | A structure: SMILES (e.g. CC(=O)Oc1ccccc1C(=O)O), a MOL/SDF block, an InChI, or a common name such as "aspirin". |
Example call:
{
"name": "name",
"arguments": {
"structure": "CC(=O)Oc1ccccc1C(=O)O"
}
}Result:
{
"smiles": "CC(=O)Oc1ccccc1C(=O)O",
"iupac": "2-acetyloxybenzoic acid",
"common": "Aspirin"
}properties
Formula and properties. Formula, charge, exact and average mass, and descriptors (H-bond donors and acceptors, rotatable bonds, TPSA, logP estimate and the like) as Athanor's Compound info shows them.
| Input | Type | Required | What it is |
|---|---|---|---|
structure |
string | yes | A structure: SMILES (e.g. CC(=O)Oc1ccccc1C(=O)O), a MOL/SDF block, an InChI, or a common name such as "aspirin". |
Example call:
{
"name": "properties",
"arguments": {
"structure": "caffeine"
}
}Result:
{
"smiles": "Cn1cnc2c1c(=O)n(C)c(=O)n2C",
"formula": {
"hill": "C8H10N4O2",
"empirical": "C4H5N2O",
"weight": 194.194,
"exact_mass": 194.080375576,
"charge": 0,
"uncertain": false,
"analysis": [
[
"C",
49.480416490725766
],
[
"H",
5.190685603056737
],
[
"N",
28.8515608103237
],
[
"O",
16.477337095893798
]
],
"isotopes": [
{
"mass": 194.08037557600002,
"relative": 100
},
{
"mass": 195.0828731950089,
"relative": 10.305100192467314
},
{
"mass": 196.08496800038765,
"relative": 0.8924917436709956
}
]
},
"descriptors": {
"aromaticRings": 1,
"doubleBondGeometry": 0,
"fractionSp3": 0.375,
"hba": 6,
"hbd": 0,
"heavyAtoms": 14,
"lipinski": {
"hbaOk": true,
"hbdOk": true,
"logpAvailable": false,
"massOk": true
},
"rings": 2,
"rotatable": 0,
"stereocenters": 0,
"tpsa": 56.220000000000006
}
}depict
Draw a structure. A 2D drawing of the structure as SVG, laid out by Athanor in the ACS 1996 journal style (or another preset).
| Input | Type | Required | What it is |
|---|---|---|---|
structure |
string | yes | A structure: SMILES (e.g. CC(=O)Oc1ccccc1C(=O)O), a MOL/SDF block, an InChI, or a common name such as "aspirin". |
preset |
acs-document-1996, new-document, new-slide, dark-mode |
no | Drawing style; ACS Document 1996 (the journal standard) by default. |
Example call:
{
"name": "depict",
"arguments": {
"structure": "CC(=O)Oc1ccccc1C(=O)O"
}
}Result:
<?xml version="1.0" encoding="UTF-8"?>
<svg xmlns="http://www.w3.org/2000/svg" version="1.1"
width="1.1603in" height="1.1583in"
viewBox="0 0 111.39 111.2">
<desc>Athanor figure. ACS Document 1996: bond 0.2 in, line 0.0083 in, 10pt Arial.</desc>
<g transform="translate(47.09 62.06)" fill="none" stroke="#000000" stroke-width="0.8" stroke-linecap="round" stroke-linejoin="miter" font-family="Arial" font-size="13.33" text-anchor="start">
<path d="M-37.09 -18.46 L-20.46 -28.06"/>
<path d="M-18.74 -27.06 L-18.74 -40.35"/>
<path d="M-22.19 -27.06 L-22.19 -40.35"/>
<path d="M-20.46 -28.06 L-8.34 -21.06"/>
<path d="M-3.84 -11.55 L-3.84 0.74"/>
<path d="M-3.84 0.74 L-20.46 10.34"/>
<path d="M-20.46 10.34 L-20.46 29.54"/>
<path d="M-17.01 13.03 L-17.01 26.85"/>
<path d="M-20.46 29.54 L-3.84 39.14"/>
<path d="M-3.84 39.14 L12.79 29.54"/>
<path d="M-3.24 34.8 L8.73 27.89"/>
<path d="M12.79 29.54 L12.79 10.34"/>
<path d="M-3.84 0.74 L12.79 10.34"/>
<path d="M-3.24 5.08 L8.73 11.99"/>
<path d="M12.79 10.34 L29.42 0.74"/>
<path d="M31.15 1.74 L31.15 -11.55"/>
<path d="M27.69 1.74 L27.69 -11.55"/>
<path d="M29.42 0.74 L41.54 7.74"/>
<text x="-23.21" y="-42.49" fill="#000000" stroke="none">O</text>
<text x="-6.59" y="-13.69" fill="#000000" stroke="none">O</text>
<text x="26.67" y="-13.69" fill="#000000" stroke="none">O</text>
<text x="43.3" y="15.11" fill="#000000" stroke="none">O</text>
<text x="48.8" y="15.11" fill="#000000" stroke="none">H</text>
</g>
</svg>perspective_rotate
Turn a structure in perspective. The 2D drawing turned in 3D (yaw about the vertical axis, pitch about the horizontal, roll in the page) and projected back, as the Perspective tool in Athanor does: bonds foreshortened, labels upright, and every stereocenter keeping its R or S with wedges chosen for the new view. Returns the SVG, a molfile, and the R/S labels before and after.
| Input | Type | Required | What it is |
|---|---|---|---|
structure |
string | yes | A structure: SMILES (e.g. CC(=O)Oc1ccccc1C(=O)O), a MOL/SDF block, an InChI, or a common name such as "aspirin". |
yaw |
number | no | Degrees about the vertical axis. |
pitch |
number | no | Degrees about the horizontal axis. |
roll |
number | no | Degrees in the plane of the page. |
Example call:
{
"name": "perspective_rotate",
"arguments": {
"structure": "C[C@H](N)C(=O)O",
"yaw": 40
}
}Result:
{
"smiles": "C[C@H](N)C(=O)O",
"turn": {
"yaw": 40,
"pitch": 0,
"roll": 0
},
"stereo_before": [
"C(CCN): S"
],
"stereo_after": [
"C(CCN): S"
],
"molfile": "turned\n athanor\n\n 0 0 0 0 0 0 0 0 0 0999 V3000\nM V30 BEGIN CTAB\nM V30 COUNTS 6 5 0 0 0\nM V30 BEGIN ATOM\nM V30 1 C -1.3861 0.4330 0.0000 0\nM V30 2 C -0.1058 0.4330 0.0000 0 HCOUNT=1\n
… (an SVG drawing, 2,192 characters)check
Check a structure. Every problem Athanor's editor would flag in the structure: valence, charges, stereo and drawing issues, each with what would fix it.
| Input | Type | Required | What it is |
|---|---|---|---|
structure |
string | yes | A structure: SMILES (e.g. CC(=O)Oc1ccccc1C(=O)O), a MOL/SDF block, an InChI, or a common name such as "aspirin". |
Example call:
{
"name": "check",
"arguments": {
"structure": "C(C)(C)(C)(C)C"
}
}Result:
{
"smiles": "C(C)(C)(C)(C)C",
"findings": [
{
"severity": "error",
"title": "C has 5 bonds",
"message": "This C has 5 bonds. C takes 4. Remove a bond, or add a charge if you meant an ion."
}
]
}screen
Safety screen. Athanor's safety screening of a structure as a synthesis target: controlled-substance schedules and chemical-weapons lists (CWC, Australia Group). Answers clear, notice or refuse, with the reason.
| Input | Type | Required | What it is |
|---|---|---|---|
structure |
string | yes | A structure: SMILES (e.g. CC(=O)Oc1ccccc1C(=O)O), a MOL/SDF block, an InChI, or a common name such as "aspirin". |
Example call:
{
"name": "screen",
"arguments": {
"structure": "caffeine"
}
}Result:
{
"smiles": "Cn1cnc2c1c(=O)n(C)c(=O)n2C",
"kind": "clear",
"blocked": false,
"message": ""
}library_search
Search the library. Look a compound up in Athanor's built-in library by name, synonym or CAS number; returns its name and SMILES.
| Input | Type | Required | What it is |
|---|---|---|---|
query |
string | yes | A name, synonym or CAS number. |
Example call:
{
"name": "library_search",
"arguments": {
"query": "acetone"
}
}Result:
{
"matches": [
{
"name": "Acetone",
"smiles": "CC(C)=O"
},
{
"name": "Acetone",
"smiles": "CC(C)=O"
}
]
}Document tools
These build and edit an Athanor document that the server keeps for you, the same document the app works on. document_create returns a handle such as doc_…; pass it as document to every other call. A document is kept for two hours after its last use, up to 2 MB. Atom ids come from document_get (or from the result of the call that added the structure).
document_create
Create a document. A new Athanor document to build and edit with the other document_ tools: empty, or from a structure (SMILES, molfile, CDXML) or an .athanor file (base64). Returns its handle (kept two hours after last use) and what is in it.
| Input | Type | Required | What it is |
|---|---|---|---|
name |
string | no | What to call it. |
structure |
string | no | A structure to start from: SMILES, a molfile or CDXML. |
athanor_base64 |
string | no | An .athanor file, base64, to continue editing. |
Example call:
{
"name": "document_create",
"arguments": {
"name": "Esterification",
"structure": "CC(=O)O"
}
}Result:
{
"document": "doc_hXtQklNVvktL",
"structures": [
{
"atoms": [
0,
1,
2,
3
],
"smiles": "CC(=O)O",
"formula": "C2H4O2",
"name": null
}
],
"objects": {}
}document_set_atom
Change an atom. Set an atom's element or label (an element symbol, D, 13C, or a group such as OMe), its charge, or its mass number (0 for natural). Atom ids come from document_get.
| Input | Type | Required | What it is |
|---|---|---|---|
document |
string | yes | The document handle from document_create. |
atom |
integer | yes | |
label |
string | no | |
charge |
integer | no | |
isotope |
integer | no |
Example call:
{
"name": "document_set_atom",
"arguments": {
"document": "doc_hXtQklNVvktL",
"atom": 0,
"isotope": 13
}
}Result:
{
"document": "doc_hXtQklNVvktL",
"structures": [
{
"atoms": [
0,
1,
2,
3
],
"smiles": "[13CH3]C(=O)O",
"formula": "C¹³CH4O2",
"name": null
}
],
"objects": {}
}document_add_structure
Add a structure. Put a structure (SMILES, molfile or CDXML) on the page at x, y (world units; a bond is about 19), laid out by Athanor.
| Input | Type | Required | What it is |
|---|---|---|---|
document |
string | yes | The document handle from document_create. |
structure |
string | yes | |
x |
number | no | |
y |
number | no |
Example call:
{
"name": "document_add_structure",
"arguments": {
"document": "doc_hXtQklNVvktL",
"structure": "CCO",
"x": 0,
"y": 60
}
}Result:
{
"document": "doc_hXtQklNVvktL",
"structures": [
{
"atoms": [
0,
1,
2,
3
],
"smiles": "[13CH3]C(=O)O",
"formula": "C¹³CH4O2",
"name": null
},
{
"atoms": [
4,
5,
6
],
"smiles": "CCO",
"formula": "C2H6O",
"name": null
}
],
"objects": {}
}document_set_bond
Change a bond. Set the bond between two atoms: its order (1, 2, 3) and its stereo mark (none, wedge, hash, wavy), drawn from the first atom.
| Input | Type | Required | What it is |
|---|---|---|---|
document |
string | yes | The document handle from document_create. |
from |
integer | yes | |
to |
integer | yes | |
order |
integer | no | |
stereo |
none, wedge, hash, wavy |
no |
Example call:
{
"name": "document_set_bond",
"arguments": {
"document": "doc_hXtQklNVvktL",
"from": 0,
"to": 1,
"stereo": "wedge"
}
}Result:
{
"document": "doc_hXtQklNVvktL",
"structures": [
{
"atoms": [
0,
1,
2,
3
],
"smiles": "[13CH3]C(=O)O",
"formula": "C¹³CH4O2",
"name": null
},
{
"atoms": [
4,
5,
6
],
"smiles": "CCO",
"formula": "C2H6O",
"name": null
}
],
"objects": {}
}document_add_arrow
Add an arrow. A reaction arrow (forward, equilibrium, retrosynthetic) or a plain line from x1, y1 to x2, y2.
| Input | Type | Required | What it is |
|---|---|---|---|
document |
string | yes | The document handle from document_create. |
x1 |
number | yes | |
y1 |
number | yes | |
x2 |
number | yes | |
y2 |
number | yes | |
kind |
forward, equilibrium, retrosynthetic, plain |
no |
Example call:
{
"name": "document_add_arrow",
"arguments": {
"document": "doc_hXtQklNVvktL",
"x1": 60,
"y1": 0,
"x2": 120,
"y2": 0,
"kind": "forward"
}
}Result:
{
"document": "doc_hXtQklNVvktL",
"structures": [
{
"atoms": [
0,
1,
2,
3
],
"smiles": "[13CH3]C(=O)O",
"formula": "C¹³CH4O2",
"name": null
},
{
"atoms": [
4,
5,
6
],
"smiles": "CCO",
"formula": "C2H6O",
"name": null
}
],
"objects": {
"Arrow": 1
}
}document_add_text
Add text. A text block on the page at x, y (a caption, a label, a condition over an arrow).
| Input | Type | Required | What it is |
|---|---|---|---|
document |
string | yes | The document handle from document_create. |
text |
string | yes | |
x |
number | yes | |
y |
number | yes |
Example call:
{
"name": "document_add_text",
"arguments": {
"document": "doc_hXtQklNVvktL",
"text": "H2SO4, heat",
"x": 90,
"y": -12
}
}Result:
{
"document": "doc_hXtQklNVvktL",
"structures": [
{
"atoms": [
0,
1,
2,
3
],
"smiles": "[13CH3]C(=O)O",
"formula": "C¹³CH4O2",
"name": null
},
{
"atoms": [
4,
5,
6
],
"smiles": "CCO",
"formula": "C2H6O",
"name": null
}
],
"objects": {
"Arrow": 1,
"Text": 1
}
}document_transform
Flip, rotate or turn. Flip, rotate in the page (degrees), or turn in perspective (yaw, pitch, roll in degrees, every R and S kept) the given atoms, or every atom when none are given.
| Input | Type | Required | What it is |
|---|---|---|---|
document |
string | yes | The document handle from document_create. |
atoms |
array of integer | no | |
op |
flip_horizontal, flip_vertical, rotate, perspective |
yes | |
degrees |
number | no | |
yaw |
number | no | |
pitch |
number | no | |
roll |
number | no |
Example call:
{
"name": "document_transform",
"arguments": {
"document": "doc_hXtQklNVvktL",
"op": "rotate",
"degrees": 15
}
}Result:
{
"document": "doc_hXtQklNVvktL",
"structures": [
{
"atoms": [
0,
1,
2,
3
],
"smiles": "[13CH3]C(=O)O",
"formula": "C¹³CH4O2",
"name": null
},
{
"atoms": [
4,
5,
6
],
"smiles": "CCO",
"formula": "C2H6O",
"name": null
}
],
"objects": {
"Arrow": 1,
"Text": 1
}
}document_clean_up
Clean up structures. Lay every structure out again to standard bond lengths and angles, keeping every R, S, E and Z.
| Input | Type | Required | What it is |
|---|---|---|---|
document |
string | yes | The document handle from document_create. |
Example call:
{
"name": "document_clean_up",
"arguments": {
"document": "doc_hXtQklNVvktL"
}
}Result:
{
"document": "doc_hXtQklNVvktL",
"moved": 6,
"structures": [
{
"atoms": [
0,
1,
2,
3
],
"smiles": "[13CH3]C(=O)O",
"formula": "C¹³CH4O2",
"name": null
},
{
"atoms": [
4,
5,
6
],
"smiles": "CCO",
"formula": "C2H6O",
"name": null
}
],
"objects": {
"Arrow": 1,
"Text": 1
}
}document_get
What is in a document. Every structure in the document (its atom ids, SMILES, formula and name) and how many objects of each kind (arrows, text, shapes).
| Input | Type | Required | What it is |
|---|---|---|---|
document |
string | yes | The document handle from document_create. |
Example call:
{
"name": "document_get",
"arguments": {
"document": "doc_hXtQklNVvktL"
}
}Result:
{
"document": "doc_hXtQklNVvktL",
"structures": [
{
"atoms": [
0,
1,
2,
3
],
"smiles": "[13CH3]C(=O)O",
"formula": "C¹³CH4O2",
"name": null
},
{
"atoms": [
4,
5,
6
],
"smiles": "CCO",
"formula": "C2H6O",
"name": null
}
],
"objects": {
"Arrow": 1,
"Text": 1
}
}document_findings
Problems in a document. Everything Athanor's Problems list would flag in the document (valence, charges, stereo, drawing), each with what fixes it.
| Input | Type | Required | What it is |
|---|---|---|---|
document |
string | yes | The document handle from document_create. |
Example call:
{
"name": "document_findings",
"arguments": {
"document": "doc_hXtQklNVvktL"
}
}Result:
{
"document": "doc_hXtQklNVvktL",
"findings": []
}document_render
Draw a document. The whole page as SVG, in the journal style the document uses (ACS 1996 by default).
| Input | Type | Required | What it is |
|---|---|---|---|
document |
string | yes | The document handle from document_create. |
Example call:
{
"name": "document_render",
"arguments": {
"document": "doc_hXtQklNVvktL"
}
}Result:
<?xml version="1.0" encoding="UTF-8"?>
<svg xmlns="http://www.w3.org/2000/svg" version="1.1"
width="0.7776in" height="1.1122in"
viewBox="0 0 74.65 106.77">
<desc>Athanor figure. ACS Document 1996: bond 0.2 in, line 0.0083 in, 10pt Arial.</desc>
<g transform="translate(35.08 30.15)" fill="#000000" stroke="none" stroke-width="0.8" stroke-linecap="round" stroke-linejoin="miter" font-family="Arial" font-size="13.33" text-anchor="start">
<path d="M12.05 2.65 L11.72 1.27 L12.05 -0.11 L2.88 0.87 L2.88 1.27 L2.88 1.67 Z"/>
<path d="M12.05 2.65 L11.72 1.27 L12.05 -0.11 L2.88 0.87 L2.88 1.27 L2.88 1.67 Z" fill="none" stroke="#000000" stroke-width="0.24" stroke-linejoin="round"/>
<path d="M12.71 3 L19.73 -9.15" fill="none" stroke="#000000"/>
<path d="M9.72 1.27 L16.73 -10.88" fill="none" stroke="#000000"/>
<path d="M11.72 1.27 L18.23 12.56" fill="none" stroke="#000000"/>
<path d="M-23.62 66.62 L-4.42 66.62" fill="none" stroke="#000000"/>
<path d="M-4.42 66.62 L2.09 55.33" fill="none" stroke="#000000"/>
<text x="-25.08" y="6.04">H</text>
<text x="-19.58" y="8.98" font-size="9.33">3</text>
<text x="-15.73" y="6.04">¹³C</text>
<text x="18.57" y="-10.58">O</text>
<text x="18.57" y="22.67">O</text>
<text x="24.07" y="22.67">H</text>
<text x="2.43" y="54.76">O</text>
<text x="7.93" y="54.76">H</text>
</g>
</svg>document_export
Export a document. The document as a file: athanor (base64, Athanor's own format, everything kept), cdxml (ChemDraw), mol (V3000), smiles, or svg.
| Input | Type | Required | What it is |
|---|---|---|---|
document |
string | yes | The document handle from document_create. |
format |
athanor, cdxml, mol, smiles, svg |
yes |
Example call:
{
"name": "document_export",
"arguments": {
"document": "doc_hXtQklNVvktL",
"format": "smiles"
}
}Result:
[13CH3]C(=O)O.CCOIs this helpful?
Last updated Nov 13, 2026
- Still stuck? Read the FAQ or contact support.
- Something wrong on this page? Tell us.
- For AI tools: llms.txt
