Skip to main content
Glama

Analyze Molecule

analyze_molecule
Read-onlyIdempotent

Validate a SMILES string and return identifiers, molecular properties, CIP R/S and bond stereochemistry, stereo summaries, and SMARTS motif matches without drawing the molecule.

Instructions

Validate SMILES; return identifiers, properties, CIP R/S, bond stereo, stereo_summary and SMARTS motifs. Indices are zero-based in the input molecule. Does not draw.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "smiles": "<smiles>"
    },
    "name": "analyze_molecule"
  }
}

Input Schema

NameRequiredDescriptionDefault
smilesYes

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.0.0

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and closed-world behavior, so the safety profile is covered. The description adds meaningful context beyond that: it validates the input SMILES, states that returned indices are zero-based relative to the input molecule, and rules out drawing. It stops short of saying what happens when the SMILES is invalid.

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 dense sentences, with the core action and return payload front-loaded before the scope caveat. Nothing is repeated from the title and no sentence is wasted.

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?

This is a simple one-parameter read-only tool with an output schema, so return values need not be detailed, and annotations carry the safety profile. The remaining gap is failure semantics: whether an invalid SMILES raises an error or returns a validation flag is ambiguous given the word 'Validate'.

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 coverage is 0% for the single 'smiles' string parameter, but the name is nearly self-explanatory and the description confirms the value is a SMILES string that gets validated, plus a convention (zero-based indices) governing how results map back to the input. Only the accepted SMILES dialect/size limits are unstated.

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 pairs specific verbs ('Validate', 'return') with the resource (SMILES/molecule) and enumerates the outputs: identifiers, properties, CIP R/S, bond stereo, stereo_summary, SMARTS motifs. It also explicitly negates the drawing siblings with 'Does not draw', so an agent can separate it from draw_molecule without opening a schema.

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?

There is one explicit exclusion ('Does not draw') that steers the agent away from the drawing tools, but no positive guidance on when to call analyze_molecule versus siblings like find_substructure, conformer_3d, or enumerate_stereoisomers. Usage is only implied by the output list.

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