Skip to main content
Glama

Search compounds

search_compounds
Read-onlyIdempotent

Use when you need a list of cannabis compounds, for example every compound at CB2 or every terpene. Find the compounds mapped onto the human body (curated Greencyclepedia records and database compounds with a measured, sourced value at a target placed in tissue) by name, chemical class, record type or molecular target (for example every compound acting at CB2, TRPV1, 5-HT1A or FAAH, or every terpene). Returns identity, PubChem CID, record type, targets and the Greencyclepedia url. Use get_compound for one full record. Educational reference, not medical advice. Example arguments: {"target":"CB2","limit":10}.

Tool call template

This tool declares no required parameters. Add optional parameters from the input schema as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {},
    "name": "search_compounds"
  }
}

Input Schema

NameRequiredDescriptionDefault
classNoChemical class.
limitNoHow many items to return, at most 100.
queryNoPart of a name or identifier, for example "cannabidiol", "CBD", "thymol" or "CDB000032". Leave out to list all.
targetNoA receptor, channel or enzyme by name or gene, for example "CB2", "CNR1" or "PPAR-gamma".
recordTypeNocurated (Greencyclepedia records with reviewed effects and grades) or database (compounds with a measured value at a placed target).

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / properties / recordType / description
      Previous value: -"curated (atlas records with reviewed effects and grades) or database (compounds with a measured value at a placed target)."New value: +"curated (Greencyclepedia records with reviewed effects and grades) or database (compounds with a measured value at a placed target)."
  2. First observed

TDQS

A4/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 openWorldHint=false, so safety is covered. The description still adds real value beyond them: the inclusion criterion (only curated Greencyclepedia records plus database compounds with a measured, sourced value at a target placed in tissue) and the returned fields (identity, PubChem CID, record type, targets, URL). It omits ordering and pagination behavior, which keeps it from 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 'Use when' clause is correctly front-loaded, but the enumeration 'every compound at CB2 or every terpene' is repeated almost verbatim in the middle of the same sentence, and the legal disclaimer is padding for a search tool. The core scope sentence is dense with parentheticals that slow parsing.

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 five optional parameters, no output schema and rich annotations, the description covers the two things an agent would otherwise guess: what the result set includes and what fields come back. It is essentially complete for a filtered list tool, missing only result ordering and empty-result behavior.

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 100%, so every parameter already carries its own description and both enums are self-documenting, making 3 the baseline. The description adds illustrative values for target (CB2, TRPV1, 5-HT1A, FAAH) and an example argument object, but nothing about how class, target and recordType interact when combined.

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 (find/list cannabis compounds) and immediately narrows scope to compounds mapped onto the human body with a measured, sourced value at a placed target. It also names the sibling it is not — get_compound for a single full record — so an agent can distinguish the two without opening either schema.

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?

Opens with an explicit 'Use when you need a list of cannabis compounds' and routes single-record lookups to get_compound, which is clear selection guidance. It does not address when to prefer the generic 'search' sibling or what to do when no filters match, so it stops short of full when/when-not coverage.

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.