Skip to main content
Glama

assess_small_molecule

Read-only

Assess a small molecule given as SMILES or a molfile: RDKit's descriptors, medchem's drug-likeness rules (Lipinski, Veber, Ghose, Egan, REOS, rule of three, CNS and more) and the papers' own readings where medchem departs from them, with every bound and this molecule's value, a structural-alert screen (PAINS, Brenk, NIH, ZINC and ChEMBL's seven curated sets) with the matched atoms, the molecular formula with its masses and natural-abundance isotope pattern, QED drug-likeness under all three weightings, ESOL aqueous solubility, synthetic accessibility and natural-product likeness, the Bemis–Murcko scaffold and generic framework, the BOILED-Egg's gut-absorption and brain-penetration verdicts, and per-atom logP, polar-surface and charge contributions. Readings are taken with hydrogens implicit, the form the descriptors and the rules' papers assume. An alert flags a nuisance or reactive substructure; it is not a verdict on activity or toxicity.

Input Schema

NameRequiredDescriptionDefault
rulesNowhich drug-likeness rules to evaluate, by id: medchem's 17, plus the papers' own readings of Lipinski, Ghose and REOS (ids ending _paper). Every rule by default.
_filesNoThe project: record references shaped like _subject. Their records become library documents a tool names in sequences/parts/document; a trace or alignment is found by file name.
_subjectNoThe record to act on: exactly one of sequence, accession (+source), sample (an id from list_samples) or file ({name, text} or {name, base64}); record_index picks one record of several.
moleculeYesthe structure: a SMILES string or an MDL molfile (V2000 or V3000). One molecule; for an SDF, pass one record.
alert_setsNowhich structural-alert catalogs to screen against. Empty screens nothing, which is not a clean result.

Output Schema

NameRequiredDescriptionDefault
qedYesQED (Bickerton 2012) with mean weights, maximum weights and unweighted; the eight inputs (MW average mass, ALOGP Crippen, HBA, HBD, PSA, ROTB, AROM, ALERTS) and each input's desirability; and the SMARTS of every unwanted group QED counted
rulesYesone entry per rule evaluated: id, label, passes, citation, and every clause with its property, bound and this molecule’s value. A rule with anyClauses passes when at least one of those holds
alertsYesevery alert matched: its set, name, SMARTS and the atom indices of the first match, numbered on the implicit-hydrogen molecule
formulaYesRDKit's molecular formula (every hydrogen, isotope labels merged, charge suffixed) with its element counts and charge, the monoisotopic and average masses in Da, and OpenMS's coarse natural-abundance isotope envelope (isotope index, mass, share of molecules), or the reason there is none (an isotope-labeled structure, or an element OpenMS has no isotope data for)
summaryYesthe assessment in one sentence, generated from this run
scaffoldYesthe Bemis–Murcko scaffold (ring systems and linkers, side chains removed) as canonical SMILES, empty for a molecule with no ring; the generic framework (every atom carbon, every bond single), null where an atom has more bonds than carbon allows; and the indices of the atoms the scaffold keeps, on the implicit-hydrogen molecule
structureYesthe 2D structure every reading was taken on, drawn by RDKit with implicit hydrogens as the chemistry tab opens it
boiled_eggYesthe BOILED-Egg placement (Daina & Zoete 2016) of the neutral, unsalted ChEMBL parent as the paper places it (`placed` says whether that is the parent or, when the pipeline refuses one or it is the molecule itself, the record as drawn; `asDrawn` and `parent` carry both): tPSA counting S and P, RDKit's Crippen logP standing in for WLOGP, and for the gut-absorption (hia) and brain-penetration (bbb) ellipses whether the point is inside, its summed focal distance and the ellipse's major axis; region is yolk, white or outside
solubilityYesESOL (Delaney 2004) log S in mol/L under two coefficient sets, rdkitRefit (Walters' refit to RDKit descriptors) and delaney2004 (the paper's, with Crippen logP for Daylight CLOGP), and the four inputs: Crippen logP, average mass, rotatable bonds, aromatic proportion
descriptorsYesRDKit's descriptors under RDKit's own keys (exactmw, CrippenClogP, tpsa, NumHBD …)
np_likenessYesErtl et al. 2008 natural-product likeness, about -5 (synthetic-like) to 5 (natural-product-like), and the confidence: the share of the molecule's fragments the model knows
canonical_smilesYesRDKit's canonical SMILES of the molecule every reading was taken on
atom_contributionsYesper-atom weights on the implicit-hydrogen molecule: logp (Crippen, heavy atoms), tpsa (Ertl, N and O), tpsaSP (Ertl with S and P) and charge (Gasteiger–Marsili; not a number around an element RDKit has no parameters for)
bioavailability_radarYesSwissADME's Bioavailability Radar (Daina 2017): six axes (lipo, size, polar, insolu, insatu, flex) with this molecule's value, the inclusive window, whether it is inside, and drugLike when all six are; read with Crippen logP for XLOGP3 and the XLOGP3 window's figure bound of 5.0
synthetic_accessibilityYesErtl & Schuffenhauer 2009 synthetic accessibility, 1 (easy) to 10 (hard), with its fragment score, complexity penalty, symmetry correction, the counts they read and how many fragments the table did not know; null only if the fragment table could not be loaded

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • addedOutput schema / properties / structure
      Added value: +{
      +  "description": "the 2D structure every reading was taken on, drawn by RDKit with implicit hydrogens as the chemistry tab opens it",
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
    • changedOutput schema / required
      Previous value: -[
      -  "summary",
      -  "canonical_smiles",
      -  "descriptors",
      -  "rules",
      -  "alerts",
      -  "boiled_egg",
      -  "formula",
      -  "synthetic_accessibility",
      -  "np_likeness",
      -  "solubility",
      -  "bioavailability_radar",
      -  "scaffold",
      -  "qed",
      -  "atom_contributions"
      -]New value: +[
      +  "summary",
      +  "canonical_smiles",
      +  "structure",
      +  "descriptors",
      +  "rules",
      +  "alerts",
      +  "boiled_egg",
      +  "formula",
      +  "synthetic_accessibility",
      +  "np_likeness",
      +  "solubility",
      +  "bioavailability_radar",
      +  "scaffold",
      +  "qed",
      +  "atom_contributions"
      +]
  2. First observed

TDQS

A3.6/5.0
Behavior4/5

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

Annotations already declare readOnlyHint and destructiveHint=false, so the safety profile is covered; the description adds real behavioral context beyond them — readings are taken with hydrogens implicit, and structural alerts flag nuisance/reactive substructures rather than activity or toxicity. It does not mention cost, runtime, or failure behavior for invalid structures, which keeps it short of a 5.

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

Conciseness3/5

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

The verb and resource are front-loaded, which is good, but the first sentence is an extremely long enumeration that largely restates the output schema. The two trailing sentences (hydrogen-implicit convention, alert-vs-toxicity caveat) are the highest-value lines and carry disproportionate weight.

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 an output schema present, the description need not explain return values, and it covers the input assumption (one molecule, implicit hydrogens) and a key interpretive caveat. What remains thin is guidance on single-molecule assessment versus comparison/screening workflows, the one thing an agent still has to guess.

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 100%, so the schema already documents rules, alert_sets, _subject and _files. The description only reinforces the molecule input format (SMILES or molfile) and the hydrogen-implicit assumption; it adds nothing about the semantics of selecting rule ids or empty alert_sets beyond what the schema states.

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 and resource ('Assess a small molecule given as SMILES or a molfile') and then enumerates the computed outputs (descriptors, drug-likeness rules, structural alerts, QED, ESOL, SAS, scaffold, BOILED-Egg, per-atom contributions), which makes its scope unmistakable. It never names a sibling, so an agent must infer that this is single-molecule characterization rather than comparison or library screening.

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?

Usage is only implied by the breadth of the described report; there is no explicit 'use this when…' statement and no pointer to siblings such as compare_molecules, screen_molecule_library or cluster_molecules. The closing note that an alert is not a verdict on activity or toxicity is useful interpretation guidance, but it is about reading results, not about when to select the tool.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources