Skip to main content
Glama
Biochemistry Archive MCP Server

Biochemistry Archive MCP Server

by AudreyZW

find_similar_compounds

Find compounds structurally similar to a SMILES query using Tanimoto similarity, so you can expand a known binder into analogue candidates.

Instructions

Compounds structurally similar to a SMILES string, by Tanimoto similarity. Use to expand from a known binder to its analogues.

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": "find_similar_compounds"
  }
}

Input Schema

NameRequiredDescriptionDefault
limitNo
smilesYesSMILES of the query structure
thresholdNoSimilarity percentage cutoff

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A3.8/5.0
Behavior3/5

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

With no annotations, the description must carry the behavioral load, and it does disclose the underlying method (Tanimoto similarity), which implies ranked, non-exhaustive retrieval. It stays silent on the practical consequences: that results are truncated at 'limit' (max 50) and that anything below the threshold is dropped, so an agent cannot tell whether an empty result means 'no analogues exist' or 'cutoff too strict'.

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, zero filler: the what comes first, the when second. Every clause contributes and nothing is repeated from 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 three-parameter read-only search with a declared output schema, the description is close to sufficient — return values need no explanation and the metric is named. The remaining gap is behavioral rather than structural: no word on truncation, ranking order, or the interpretation of zero hits.

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 67% — smiles and threshold are documented in-schema, limit is not. The description's one real contribution is naming Tanimoto similarity, which gives the 'threshold' parameter (a bare percentage in the schema) a concrete meaning. It adds nothing about how limit interacts with ranking or what happens at the boundaries.

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 operation and resource: retrieval of compounds structurally similar to a given SMILES, with the similarity metric named (Tanimoto). The intent is unambiguous, though it never names or contrasts itself against siblings such as compare_compounds or find_ligands, which an agent must infer from names alone.

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?

'Use to expand from a known binder to its analogues' gives a concrete triggering scenario rather than a generic 'use this to search'. However, no when-not condition, no mention of when compare_compounds or find_ligands would be the better call, and no statement about prerequisite knowledge of the SMILES.

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