Skip to main content
Glama

BioMCP

One binary. One grammar. Evidence from the biomedical sources you already trust.

What is BioMCP?

BioMCP is one CLI binary over a single command grammar that reaches ~30 trusted biomedical sources (PubMed, ClinVar, ClinicalTrials.gov, OncoKB, Reactome, and more). It is also an MCP (Model Context Protocol) server, so the same tools are available to AI agents such as Claude Code, Codex, and Claude Desktop.

BioMCP cuts through the usual biomedical data maze: one query reaches the sources that normally live behind different APIs, identifiers, and search habits. Researchers, clinicians, and agents use the same command grammar to search, focus, and pivot without rebuilding the workflow for each source. You get compact, evidence-oriented results across live public data plus local study analytics.

Related MCP server: clinicaltrialsgov-mcp-server

Features

  • Search the literature: search article fans out across PubTator3 and Europe PMC, deduplicates PMID/PMCID/DOI identifiers, and can add a Semantic Scholar leg when your filters support it.

  • Pivot without rework: move from a gene, variant, drug, disease, pathway, protein, or article straight into the next built-in view instead of rebuilding filters by hand.

  • Choose a playbook: biomcp skill list shows shipped worked examples so you can open the matching biomcp skill <slug> workflow.

  • Analyze studies locally: study commands cover local query, cohort, survival, compare, and co-occurrence workflows with native terminal, SVG, and PNG charts for downloaded cBioPortal-style datasets.

  • Follow the paper trail: article citations, article references, article recommendations, and article entities turn one known paper into a broader evidence map.

  • Enrich and batch: use biomcp enrich for top-level g:Profiler enrichment and biomcp batch for up to 10 focused get calls in one command.

Quick start

First useful query in under 30 seconds:

uv tool install biomcp-cli
biomcp health --apis-only
biomcp skill list
biomcp list gene
biomcp search all --gene BRAF --disease melanoma  # unified cross-entity discovery
biomcp get gene BRAF pathways hpa

Installation

Binary install

curl -fsSL https://biomcp.org/install.sh | bash

PyPI tool install

uv tool install biomcp-cli
# or: pip install biomcp-cli

PyPI package warning: install biomcp-cli, not biomcp. The biomcp PyPI package is unrelated to this project.

MCP Registry ownership marker: mcp-name: io.github.genomoncology/biomcp.

This installs the biomcp binary in ~/.local/bin. If that directory is not already on PATH, the installer prints one command to add it; it never edits your shell startup files.

Homebrew

brew tap genomoncology/biomcp
brew install biomcp

The separate genomoncology/homebrew-biomcp tap repository must exist before these commands can work.

Docker

docker run --rm ghcr.io/genomoncology/biomcp --version
docker run --rm ghcr.io/genomoncology/biomcp list
docker run --rm -i ghcr.io/genomoncology/biomcp serve

Use the GHCR image for quick CLI checks or stdio MCP clients without a local install.

Claude Code plugin

Install the biomcp binary first, then add the hosted plugin marketplace and install the BioMCP plugin in Claude Code:

/plugin marketplace add genomoncology/biomcp
/plugin install biomcp@biomcp

The plugin wires Claude Code to the local stdio MCP server with biomcp serve. For guided BioMCP workflows, also install the skill assets below.

Codex MCP server

Install the biomcp binary first, then register the same stdio MCP server with Codex:

codex mcp add biomcp -- biomcp serve

Claude Desktop extension (.mcpb)

Install BioMCP from the Anthropic Directory in Claude Desktop when that path is available for your environment. For local/manual setups, use the JSON MCP config below.

Install skills

Install guided investigation workflows into your agent directory:

biomcp skill install ~/.claude --force

MCP clients

{
  "mcpServers": {
    "biomcp": {
      "command": "biomcp",
      "args": ["serve"]
    }
  }
}

Remote HTTP server

For shared or remote deployments:

biomcp serve-http --host 127.0.0.1 --port 8080

Remote clients connect to http://127.0.0.1:8080/mcp. Probe routes are GET /health, GET /readyz, and GET /.

Runnable demo:

uv run --script examples/streamable-http/streamable_http_client.py

See Remote HTTP Server for the newcomer guide.

From source

make install
"$HOME/.local/bin/biomcp" --version

For repo-local verification, run the standard gates directly: make lint, make test, and make spec. make test includes both Rust nextest and the Python/docs contract lane, while make release-gate adds the named full-feature proof and runs specs against the all-feature release binary. There is no supported make check command. Use make verify only for opt-in live public-upstream confidence; make release-live-smoke remains a compatibility alias.

Command grammar

search <entity> [filters]    → discovery
skill list                   → playbook catalog for how-to questions
discover <query>             → concept resolution before entity selection
get <entity> <id> [sections] → focused detail
<entity> <helper> <id>       → cross-entity pivots
enrich <GENE1,GENE2,...>     → gene-set enrichment
batch <entity> <id1,id2,...> → parallel gets
search all [slot filters]    → counts-first cross-entity orientation

Entities and sources

The tables below distinguish detail-card entities from search-only surfaces so agents do not synthesize unsupported get commands.

Gettable entities

Entity

Upstream providers used by BioMCP

Example

gene

MyGene.info, UniProt, Reactome, QuickGO, STRING, GTEx, Human Protein Atlas, DGIdb, ClinGen, NIH Reporter, DisGeNET, GTR-backed diagnostics pivot

biomcp get gene BRAF pathways hpa

variant

MyVariant.info, ClinVar, direct gnomAD v4 population data, CIViC, Cancer Genome Interpreter, OncoKB, cBioPortal, GWAS Catalog, AlphaGenome

biomcp get variant "BRAF V600E" clinvar

article

PubMed, PubTator3, Europe PMC, PMC OA, NCBI ID Converter, Semantic Scholar (optional auth; S2_API_KEY recommended)

biomcp search article -g BRAF --limit 5

trial

ClinicalTrials.gov API v2, NCI CTS API

biomcp search trial -c melanoma -s recruiting

diagnostic

NCBI Genetic Testing Registry local bulk bundle + WHO IVD local CSV + optional OpenFDA device overlay

biomcp get diagnostic GTR000006692.3 regulatory

drug

MyChem.info, DDInter local bundle, EMA local batch, WHO Prequalification local exports, ChEMBL, OpenTargets, Drugs@FDA, OpenFDA labels/shortages/approvals/FAERS/MAUDE/recalls, CIViC

biomcp drug interactions warfarin

disease

MyDisease.info, Monarch Initiative, MONDO, OpenTargets, Reactome, CIViC, SEER Explorer, NIH Reporter, DisGeNET, GTR/WHO IVD diagnostics pivot

biomcp get disease "Lynch syndrome" genes

pathway

Reactome, KEGG, WikiPathways, g:Profiler, Enrichr-backed enrichment sections

biomcp get pathway hsa05200 genes

protein

UniProt, InterPro, STRING, ComplexPortal, PDB, AlphaFold

biomcp get protein P15056 complexes

adverse-event

OpenFDA FAERS/MAUDE/recalls plus CDC WONDER VAERS aggregate vaccine search

biomcp search adverse-event --drug pembrolizumab

pgx

CPIC, PharmGKB

biomcp get pgx CYP2D6 recommendations

Search-only entities

Entity

Upstream providers used by BioMCP

Example

gwas

GWAS Catalog

biomcp search gwas --trait "type 2 diabetes"

phenotype

Monarch Initiative (HPO semantic similarity)

biomcp search phenotype "HP:0001250"

Cross-entity helpers

Pivot between related entities without rebuilding filters.

See the cross-entity pivot guide for when to use a helper versus a fresh search.

biomcp variant trials "BRAF V600E" --limit 5
biomcp variant articles "BRAF V600E"
biomcp drug adverse-events pembrolizumab
biomcp drug trials pembrolizumab
biomcp disease trials melanoma
biomcp disease drugs melanoma
biomcp disease articles "Lynch syndrome"
biomcp gene trials BRAF
biomcp gene drugs BRAF
biomcp gene articles BRCA1
biomcp gene pathways BRAF
biomcp pathway drugs R-HSA-5673001
biomcp pathway drugs hsa05200
biomcp pathway articles R-HSA-5673001
biomcp pathway trials R-HSA-5673001
biomcp protein structures P15056
biomcp article entities 22663011
biomcp article citations 22663011 --limit 3
biomcp article references 22663011 --limit 3
biomcp article recommendations 22663011 --limit 3

Gene-set enrichment

biomcp enrich BRAF,KRAS,NRAS --limit 10

Top-level biomcp enrich uses g:Profiler. Gene enrichment sections inside other entity views still reference Enrichr where that is the backing source.

Sections and progressive disclosure

Every get command supports selectable sections for focused output:

biomcp get gene BRAF                    # summary card
biomcp get gene BRAF pathways           # add pathway section
biomcp get gene BRCA1 diagnostics       # diagnostic-test pivot from GTR
biomcp get gene BRAF hpa                # protein tissue expression + localization
biomcp get gene BRAF civic interactions # multiple sections
biomcp get gene BRAF all                # standard sections; diagnostics/funding stay opt-in

biomcp get variant "BRAF V600E" clinvar population conservation
biomcp get article 22663011 tldr
biomcp get drug pembrolizumab label targets civic approvals
biomcp get drug trastuzumab regulatory --region who
biomcp get disease "Lynch syndrome" genes phenotypes variants
biomcp get disease tuberculosis diagnostics
biomcp get diagnostic GTR000006692.3 regulatory
biomcp get trial NCT02576665 eligibility locations outcomes

In JSON mode, get responses expose _meta.next_commands for the next likely follow-ups and _meta.section_sources for section-level provenance. batch ... --json returns per-entity objects with the same metadata shape.

API keys

Most commands work without credentials. Optional keys improve rate limits or unlock optional enrichments:

export NCBI_API_KEY="..."        # PubTator, PubMed/efetch, PMC OA, NCBI ID converter
export S2_API_KEY="..."          # Optional Semantic Scholar auth; dedicated quota at 1 req/sec
export OPENFDA_API_KEY="..."     # OpenFDA rate limits
export NCI_API_KEY="..."         # NCI CTS trial search (--source nci)
export ONCOKB_TOKEN="..."        # OncoKB variant helper
export ALPHAGENOME_API_KEY="..." # AlphaGenome variant effect prediction

search article, get article, article batch, get article ... tldr, and the explicit Semantic Scholar helpers all work without S2_API_KEY. With the key, BioMCP sends authenticated requests and uses a dedicated rate limit at 1 req/sec. Without it, BioMCP uses the shared unauthenticated pool at 1 req/2sec. search article --source supports all, pubtator, europepmc, pubmed, semanticscholar, and litsense2. The default compatible article federation uses PubTator3, Europe PMC, PubMed, and automatic Semantic Scholar; use --source semanticscholar or --source litsense2 explicitly when you want one of those sources alone. Explicit source selection also disables cross-provider row enrichment. References and recommendations can be empty for paywalled papers because of publisher elision in Semantic Scholar upstream coverage.

Configuration

Claude Desktop extension settings

The directory bundle exposes only the optional settings needed for the first reviewer-facing build:

Claude Desktop field

Runtime env var

Purpose

OncoKB Token

ONCOKB_TOKEN

Enables biomcp variant oncokb "<gene> <variant>" therapy and level evidence

DisGeNET API Key

DISGENET_API_KEY

Enables scored DisGeNET sections on gene and disease lookups

Semantic Scholar API Key

S2_API_KEY

Improves reliability for article TLDR, citation, reference, and recommendation helpers

The first directory build exposes only those three optional settings. Advanced CLI-only env vars remain documented in API Keys for the general BioMCP CLI path.

Usage Examples

Public cross-entity overview

User prompt: Give me a low-noise overview of BRAF in melanoma.

Expected tool call: biomcp search all --gene BRAF --disease melanoma --counts-only

Expected behavior: Returns a cross-entity counts summary that orients the next command instead of dumping long detail tables.

Expected output: Counts-first summary with suggested next commands for the highest-yield entity follow-ups.

Public variant evidence

User prompt: Summarize ClinVar significance and population frequency for BRAF V600E.

Expected tool call: biomcp get variant "BRAF V600E" clinvar population

Expected behavior: Retrieves the focused variant card, ClinVar section, and population-frequency data in one read-only call.

Expected output: Variant summary, ClinVar significance details, and gnomAD population frequencies.

Credentialed OncoKB example

User prompt: Show OncoKB therapy evidence for BRAF V600E.

Expected tool call: biomcp variant oncokb "BRAF V600E"

Expected behavior: Uses ONCOKB_TOKEN when configured and otherwise returns helpful guidance about the missing credential.

Expected output: Therapy and level evidence when ONCOKB_TOKEN is set, or a clear setup hint when it is not.

Credentialed DisGeNET example

User prompt: Show scored DisGeNET associations for TP53.

Expected tool call: biomcp get gene TP53 disgenet

Expected behavior: Uses DISGENET_API_KEY to retrieve the scored gene-disease association section.

Expected output: Ranked disease-association table with evidence counts and scores when DISGENET_API_KEY is configured.

Privacy Policy

BioMCP does not add telemetry, analytics, or remote log upload. Review the full privacy statement at https://biomcp.org/policies/.

Multi-worker deployment

BioMCP rate limiting is process-local. For many concurrent workers, run one shared Streamable HTTP biomcp serve-http endpoint so all workers share a single limiter budget:

biomcp serve-http --host 0.0.0.0 --port 8080 \
  --allowed-hosts biomcp.example.org

Loopback servers accept only local Host values by default. A non-loopback bind requires --allowed-hosts. The explicit --unsafe-allow-any-host escape hatch disables only this Host check; it does not add authentication, TLS, or encryption. Put remote deployments behind a trusted authenticated TLS proxy or inside a private network.

Remote clients should connect to http://<host>:8080/mcp. Lightweight process probes are available at GET /health, GET /readyz, and GET /.

Skills

BioMCP ships an embedded agent guide and a worked-example catalog. Use biomcp skill list when you need the right worked example, then use biomcp skill to read the embedded BioMCP guide or install it into your agent directory when you want local copies of the workflow references:

biomcp skill list
biomcp skill
biomcp skill install ~/.claude --force

See Skills for supported install targets, installed files, and legacy compatibility notes.

Local study analytics

study is BioMCP's local analysis family for downloaded cBioPortal-style datasets. The public entity surface handles API-backed, local-runtime, and hybrid discovery/detail; study commands work on local datasets when you need per-study query, cohort, survival, comparison, or co-occurrence workflows. Per-gene queries include mutations, CNA, expression, and structural variants/fusions from local data_sv.txt files. Mutation summaries stay mutation-only and note when fusions/SV need --type sv.

Use study download to fetch a dataset into your local study root. Set BIOMCP_STUDY_DIR when you want an explicit dataset location for reproducible scripts and demos; if it is unset, BioMCP falls back to its default study root.

export BIOMCP_STUDY_DIR="$HOME/.local/share/biomcp/studies"
biomcp study download msk_impact_2017
biomcp study query --study msk_impact_2017 --gene TP53 --type mutations --chart bar --theme dark --palette wong -o docs/blog/images/tp53-mutation-bar.svg
biomcp study query --study msk_impact_2017 --gene RET --type sv

See the CLI reference for the full study command family and dataset prerequisites.

Ops

biomcp version                            # show version and build info
biomcp health                             # inspect API connectivity plus local DDInter/EMA/cache readiness
biomcp update                             # self-update with release SHA256 checksum verification
biomcp update --check                     # check for updates without installing
biomcp uninstall                          # remove biomcp from ~/.local/bin

Support

Documentation

Citation

If you use BioMCP in research, cite it via CITATION.cff. GitHub also exposes Cite this repository in the repository sidebar when that file is present.

Data Sources and Licensing

BioMCP is MIT-licensed. It performs on-demand queries against upstream providers instead of vendoring or mirroring their datasets, but upstream terms govern reuse of retrieved results.

Some providers are fully open, some BioMCP features require registration or API keys, and some queryable sources still impose notable reuse limits. The two biggest cautions are KEGG, which distinguishes academic and non-academic use, and COSMIC, which BioMCP keeps indirect-only because its licensing model is incompatible with a direct open integration.

Use Source Licensing and Terms for the per-source breakdown and API Keys for setup steps and registration links.

License

MIT

Available Tools

35 tools
alphagenome_predictorA

Predict variant effects on gene regulation using Google DeepMind's AlphaGenome.

⚠️ PREREQUISITE: Use the 'think' tool FIRST to plan your analysis strategy!

AlphaGenome provides state-of-the-art predictions for how genetic variants
affect gene regulation, including:
- Gene expression changes (RNA-seq)
- Chromatin accessibility impacts (ATAC-seq, DNase-seq)
- Splicing alterations
- Promoter activity changes (CAGE)

This tool requires:
1. AlphaGenome to be installed (see error message for instructions)
2. An API key from https://deepmind.google.com/science/alphagenome

API Key Options:
- Provide directly via the api_key parameter
- Or set ALPHAGENOME_API_KEY environment variable

Example usage:
- Predict regulatory effects of BRAF V600E mutation: chr7:140753336 A>T
- Assess non-coding variant impact on gene expression
- Evaluate promoter variants in specific tissues

Note: This is an optional tool that enhances variant interpretation
with AI predictions. Standard annotations remain available via variant_getter.
ParametersJSON Schema
NameRequiredDescriptionDefault
alternateYesAlternate allele(s) (e.g., 'T', 'A')
api_keyNoAlphaGenome API key. Check if user mentioned 'my AlphaGenome API key is...' in their message. If not provided here and no env var is set, user will be prompted to provide one.
chromosomeYesChromosome (e.g., 'chr7', 'chrX')
interval_sizeNoSize of genomic interval to analyze in bp (max 1,000,000)
positionYes1-based genomic position of the variant
referenceYesReference allele(s) (e.g., 'A', 'ATG')
significance_thresholdNoThreshold for significant log2 fold changes (default: 0.5)
tissue_typesNoUBERON ontology terms for tissue-specific predictions (e.g., 'UBERON:0002367' for external ear)

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively describes prerequisites (installation, API key), authentication needs (API key options), and context (enhances variant interpretation with AI predictions). However, it lacks details on rate limits, error handling, or what the output contains, leaving some behavioral aspects unclear.

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

Conciseness4/5

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

The description is well-structured with sections for prerequisites, capabilities, requirements, API key options, examples, and notes. It is appropriately sized for a complex tool, but some sentences could be more front-loaded (e.g., the prerequisite warning is prominent, but the core purpose is slightly buried). Overall, it earns its place with useful information.

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?

Given the tool's complexity, no annotations, and an output schema (which handles return values), the description is mostly complete. It covers purpose, usage, prerequisites, and examples, but could improve by detailing output format or error scenarios. The presence of an output schema reduces the need to explain returns, but more behavioral context would enhance completeness.

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 all 8 parameters thoroughly. The description adds minimal parameter-specific semantics beyond the schema, such as implying variant input format in examples (e.g., 'chr7:140753336 A>T') and mentioning tissue-specific predictions. This meets the baseline of 3 when schema coverage is high.

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 clearly states the tool's purpose: 'Predict variant effects on gene regulation using Google DeepMind's AlphaGenome.' It specifies the verb ('predict'), resource ('variant effects on gene regulation'), and technology ('AlphaGenome'), distinguishing it from sibling tools like variant_getter or variant_searcher that handle standard annotations rather than AI predictions.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit usage guidance: it states a prerequisite ('Use the 'think' tool FIRST to plan your analysis strategy!'), gives examples of when to use it (e.g., 'Predict regulatory effects of BRAF V600E mutation'), and contrasts it with alternatives ('Standard annotations remain available via variant_getter'). This covers when to use, when not to use, and alternatives clearly.

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

article_getterA

Fetch detailed information for a specific article.

Retrieves the full abstract and available text for an article by its identifier.
Supports:
- PubMed IDs (PMID) for published articles
- PMC IDs for articles in PubMed Central
- DOIs for preprints from Europe PMC

Returns formatted text including:
- Title
- Abstract
- Full text (when available from PMC for published articles)
- Source information (PubMed or Europe PMC)
ParametersJSON Schema
NameRequiredDescriptionDefault
pmidYesArticle identifier - either a PubMed ID (e.g., '38768446' or 'PMC11193658') or DOI (e.g., '10.1101/2024.01.20.23288905')

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It does well by describing what information is returned (title, abstract, full text when available, source) and specifying availability conditions ('when available from PMC for published articles'). However, it doesn't mention potential limitations like rate limits, authentication needs, or error conditions.

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?

The description is well-structured and appropriately sized. It starts with a clear purpose statement, then provides supporting details about identifier types and return format in bullet points. Every sentence earns its place with no wasted words or redundancy.

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?

Given the tool's moderate complexity (single parameter, read-only operation), the description is reasonably complete. It explains what the tool does, what identifiers it accepts, and what information it returns. With an output schema presumably documenting the return structure, the description doesn't need to fully explain return values. The main gap is lack of behavioral constraints disclosure.

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 fully documents the single 'pmid' parameter with examples. The description adds some semantic context by listing the specific identifier types supported (PubMed IDs, PMC IDs, DOIs), which complements but doesn't significantly expand beyond what the schema provides. Baseline 3 is appropriate when schema does the heavy lifting.

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 clearly states the tool's purpose with specific verbs ('fetch detailed information', 'retrieves full abstract and available text') and identifies the resource ('article by its identifier'). It distinguishes from sibling tools like 'article_searcher' by focusing on retrieving details for a specific article rather than searching for multiple articles.

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?

The description provides clear context for when to use this tool by specifying the types of identifiers supported (PubMed IDs, PMC IDs, DOIs) and indicating it's for fetching detailed information about a specific article. However, it doesn't explicitly state when NOT to use it or mention alternatives like 'article_searcher' for broader searches.

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

article_searcherA

Search PubMed/PubTator3 for research articles and preprints.

⚠️ PREREQUISITE: Use the 'think' tool FIRST to plan your research strategy!

Use this tool to find scientific literature ABOUT genes, variants, diseases, or chemicals.
Results include articles from PubMed and optionally preprints from bioRxiv/medRxiv.

Important: This searches for ARTICLES ABOUT these topics, not database records.
For genetic variant database records, use variant_searcher instead.

Example usage:
- Find articles about BRAF mutations in melanoma
- Search for papers on a specific drug's effects
- Locate research on gene-disease associations
ParametersJSON Schema
NameRequiredDescriptionDefault
chemicalsNoChemical/drug names to search for
diseasesNoDisease names to search for
genesNoGene symbols to search for
include_cbioportalNoInclude cBioPortal cancer genomics summary when searching by gene
include_preprintsNoInclude preprints from bioRxiv/medRxiv
keywordsNoFree-text keywords to search for
pageNoPage number (1-based)
page_sizeNoResults per page
variantsNoVariant strings to search for (e.g., 'V600E', 'p.D277Y')

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior4/5

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

No annotations are provided, so the description carries the full burden. It discloses that results include articles from PubMed and optionally preprints from bioRxiv/medRxiv, and clarifies that it searches for articles about topics, not database records. However, it lacks details on rate limits, authentication needs, or pagination behavior, which would be helpful for a search tool with 9 parameters.

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

Conciseness4/5

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

The description is well-structured with a clear purpose statement, prerequisite warning, usage guidelines, and examples. It uses bullet points efficiently for examples. However, the example usage section could be more concise, and some sentences are slightly verbose, but overall it's front-loaded and informative without significant waste.

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?

Given the complexity (9 parameters, no annotations, but with output schema), the description is fairly complete. It covers purpose, usage, and behavioral context adequately. Since an output schema exists, the description doesn't need to explain return values. However, for a tool with no annotations, it could benefit from more details on limitations or error handling to be fully comprehensive.

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 all 9 parameters thoroughly. The description adds minimal parameter semantics beyond the schema, only implying the tool searches for topics like genes, variants, diseases, or chemicals, which aligns with parameter names but doesn't provide additional syntax or format details. The baseline score of 3 is appropriate given high schema coverage.

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 clearly states the tool searches PubMed/PubTator3 for research articles and preprints, specifying the verb ('search') and resource ('research articles and preprints'). It distinguishes from sibling tools by explicitly contrasting with variant_searcher for database records, making the purpose specific and differentiated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit guidance: it states when to use this tool (for articles about genes, variants, diseases, or chemicals), when not to use it (not for database records), and names an alternative tool (variant_searcher). It also includes a prerequisite to use the 'think' tool first, offering comprehensive usage instructions.

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

disease_getterA

Get detailed disease information from MyDisease.info.

⚠️ PREREQUISITE: Use the 'think' tool FIRST to understand your research goal!

Provides real-time disease annotations including:
- Official disease name and definition
- Disease synonyms and alternative names
- Ontology mappings (MONDO, DOID, OMIM, etc.)
- Associated phenotypes
- Links to disease databases

This tool fetches CURRENT disease information from MyDisease.info, ensuring
you always have the latest ontology mappings and definitions.

Example usage:
- Get the definition of GIST (Gastrointestinal Stromal Tumor)
- Look up synonyms for melanoma
- Find the MONDO ID for a disease by name

Note: For clinical trials about diseases, use trial_searcher. For articles about diseases, use article_searcher.
ParametersJSON Schema
NameRequiredDescriptionDefault
disease_id_or_nameYesDisease name (e.g., 'melanoma', 'lung cancer') or ontology ID (e.g., 'MONDO:0016575', 'DOID:1909')

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.4/5.0
Behavior4/5

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

With no annotations provided, the description carries full burden and does well: it discloses the tool provides 'real-time' and 'CURRENT' information, mentions it fetches from a specific source (MyDisease.info), and includes a warning about prerequisites. It doesn't mention rate limits, error behavior, or authentication needs, but covers key operational aspects.

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

Conciseness4/5

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

The description is appropriately sized and front-loaded: it starts with the core purpose, then lists what it provides, emphasizes currency, gives usage examples, and ends with sibling distinctions. Some redundancy exists ('real-time' and 'CURRENT' are similar), but overall it's well-structured with minimal waste.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has an output schema (so return values don't need explanation), 100% schema coverage, and no annotations, the description provides excellent context: purpose, usage guidelines, behavioral traits, examples, and sibling distinctions. It's complete enough for an agent to use this tool effectively.

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 fully documents the single parameter. The description doesn't add any parameter-specific information beyond what's in the schema (which explains disease_id_or_name accepts names or IDs). Baseline 3 is appropriate when schema does the heavy lifting.

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 clearly states the tool's purpose: 'Get detailed disease information from MyDisease.info' with specific resources listed (disease name, synonyms, ontology mappings, phenotypes, database links). It distinguishes from siblings by specifying it's for disease information retrieval, not clinical trials (trial_searcher) or articles (article_searcher).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit guidance: it includes a prerequisite ('Use the 'think' tool FIRST'), clear when-to-use examples (getting definitions, synonyms, IDs), and explicit alternatives for related tasks ('For clinical trials about diseases, use trial_searcher. For articles about diseases, use article_searcher').

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

drug_getterA

Get detailed drug/chemical information from MyChem.info.

⚠️ PREREQUISITE: Use the 'think' tool FIRST to understand your research goal!

This tool provides comprehensive drug information including:
- Chemical properties (formula, InChIKey)
- Drug identifiers (DrugBank, ChEMBL, PubChem)
- Trade names and brand names
- Clinical indications
- Mechanism of action
- Pharmacology details
- Links to drug databases

This tool fetches CURRENT drug information from MyChem.info, part of the
BioThings suite, ensuring you always have the latest drug data.

Example usage:
- Get information about imatinib (Gleevec)
- Look up details for DrugBank ID DB00619
- Find the mechanism of action for pembrolizumab

Note: For clinical trials about drugs, use trial_searcher. For articles about drugs, use article_searcher.
ParametersJSON Schema
NameRequiredDescriptionDefault
drug_id_or_nameYesDrug name (e.g., 'aspirin', 'imatinib') or ID (e.g., 'DB00945', 'CHEMBL941')

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.4/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively describes key behavioral traits: it specifies the data source ('MyChem.info, part of the BioThings suite'), emphasizes that information is current ('fetches CURRENT drug information'), and mentions the scope of data ('comprehensive drug information'). However, it lacks details on rate limits, error handling, or authentication needs, which would be beneficial for full transparency.

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

Conciseness4/5

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

The description is well-structured and appropriately sized, with clear sections (prerequisite, bullet points of information, source details, examples, and exclusions). Most sentences earn their place by adding value, though the bulleted list could be slightly condensed. It is front-loaded with the core purpose and prerequisite, making it efficient for quick understanding.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (retrieving detailed drug data), the description is complete enough: it covers purpose, usage guidelines, behavioral context (source and currency), and exclusions. With an output schema present, it does not need to explain return values. The combination of description and structured fields (schema, output schema) provides sufficient context for effective use.

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?

The input schema has 100% description coverage, clearly documenting the single parameter 'drug_id_or_name'. The description adds minimal semantic value beyond the schema, as it only implies usage through examples (e.g., 'imatinib', 'DB00619') without explaining parameter constraints or formats further. Given the high schema coverage, a baseline score of 3 is appropriate.

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 clearly states the tool's purpose with specific verbs ('Get detailed drug/chemical information') and resources ('from MyChem.info'), distinguishing it from siblings like trial_searcher and article_searcher. It explicitly lists the types of information retrieved, making the purpose highly specific and differentiated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit usage guidelines: it includes a prerequisite ('Use the 'think' tool FIRST'), gives clear examples of when to use it (e.g., 'Get information about imatinib'), and specifies when not to use it by naming alternatives ('For clinical trials about drugs, use trial_searcher. For articles about drugs, use article_searcher'). This covers when, when-not, and alternatives comprehensively.

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

fetchA

Fetch comprehensive details for a specific biomedical record.

This tool retrieves full information for articles, clinical trials, genetic variants,
genes, drugs, or diseases using their unique identifiers. It returns data in a
standardized format suitable for detailed analysis and research.

## IDENTIFIER FORMATS:
- Articles: PMID (PubMed ID) - e.g., "35271234" OR DOI - e.g., "10.1101/2024.01.20.23288905"
- Trials: NCT ID (ClinicalTrials.gov ID) - e.g., "NCT04280705"
- Variants: HGVS notation or dbSNP ID - e.g., "chr7:g.140453136A>T" or "rs121913254"
- Genes: Gene symbol or Entrez ID - e.g., "BRAF" or "673"
- Drugs: Drug name or ID - e.g., "imatinib" or "DB00619"
- Diseases: Disease name or ID - e.g., "melanoma" or "MONDO:0005105"
- NCI Organizations: NCI organization ID - e.g., "NCI-2011-03337"
- NCI Interventions: NCI intervention ID - e.g., "INT123456"
- NCI Diseases: NCI disease ID - e.g., "C4872"

The domain is automatically detected from the ID format if not provided:
- NCT* → trial
- Contains "/" with numeric prefix (DOI) → article
- Pure numeric → article (PMID)
- rs* or contains ':' or 'g.' → variant
- For genes, drugs, diseases: manual specification recommended

## DOMAIN-SPECIFIC OPTIONS:

### Articles (domain="article"):
- Returns full article metadata, abstract, and full text when available
- Supports both PubMed articles (via PMID) and Europe PMC preprints (via DOI)
- Includes annotations for genes, diseases, chemicals, and variants (PubMed only)
- detail="full" attempts to retrieve full text content (PubMed only)

### Clinical Trials (domain="trial"):
- detail=None or "protocol": Core study information
- detail="locations": Study sites and contact information
- detail="outcomes": Primary/secondary outcomes and results
- detail="references": Related publications and citations
- detail="all": Complete trial record with all sections

### Variants (domain="variant"):
- Returns comprehensive variant information including:
  - Clinical significance and interpretations
  - Population frequencies
  - Gene/protein effects
  - External database links
- detail parameter is ignored (always returns full data)

### Genes (domain="gene"):
- Returns gene information from MyGene.info including:
  - Gene symbol, name, and type
  - Entrez ID and Ensembl IDs
  - Gene summary and aliases
  - RefSeq information
- detail parameter is ignored (always returns full data)

### Drugs (domain="drug"):
- Returns drug/chemical information from MyChem.info including:
  - Drug name and trade names
  - Chemical formula and structure IDs
  - Clinical indications
  - Mechanism of action
  - External database links (DrugBank, PubChem, ChEMBL)
- detail parameter is ignored (always returns full data)

### Diseases (domain="disease"):
- Returns disease information from MyDisease.info including:
  - Disease name and definition
  - MONDO ontology ID
  - Disease synonyms
  - Cross-references to other databases
  - Associated phenotypes
- detail parameter is ignored (always returns full data)

### NCI Organizations (domain="nci_organization"):
- Returns organization information from NCI database including:
  - Organization name and type
  - Full address and contact information
  - Research focus areas
  - Associated clinical trials
- Requires NCI API key
- detail parameter is ignored (always returns full data)

### NCI Interventions (domain="nci_intervention"):
- Returns intervention information from NCI database including:
  - Intervention name and type
  - Synonyms and alternative names
  - Mechanism of action (for drugs)
  - FDA approval status
  - Associated clinical trials
- Requires NCI API key
- detail parameter is ignored (always returns full data)

### NCI Diseases (domain="nci_disease"):
- Returns disease information from NCI controlled vocabulary including:
  - Preferred disease name
  - Disease category and classification
  - All known synonyms
  - Cross-reference codes (ICD, SNOMED)
- Requires NCI API key
- detail parameter is ignored (always returns full data)

## RETURN FORMAT:
All fetch operations return a standardized format:
```json
{
    "id": "unique_identifier",
    "title": "Record title or name",
    "text": "Full content or comprehensive description",
    "url": "Link to original source",
    "metadata": {
        // Domain-specific additional fields
    }
}
```

## EXAMPLES:

Fetch article by PMID (domain auto-detected):
```
await fetch(id="35271234")
```

Fetch article by DOI (domain auto-detected):
```
await fetch(id="10.1101/2024.01.20.23288905")
```

Fetch complete trial information (domain auto-detected):
```
await fetch(
    id="NCT04280705",
    detail="all"
)
```

Fetch variant with clinical interpretations:
```
await fetch(id="rs121913254")
```

Explicitly specify domain (optional):
```
await fetch(
    domain="variant",
    id="chr7:g.140453136A>T"
)
```
ParametersJSON Schema
NameRequiredDescriptionDefault
api_keyNoNCI API key for fetching NCI records (nci_organization, nci_intervention, nci_disease). Required for NCI fetches. Get a free key at: https://clinicaltrialsapi.cancer.gov/
call_benefitNoBrief explanation of why this fetch is being performed and expected benefit. Helps provide context for analytics and improves result relevance.
detailNo
domainNoDomain of the record (auto-detected if not provided)
idYes

TDQS

A4.7/5.0
Behavior5/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It thoroughly describes what the tool does: returns data in a standardized format, includes domain-specific options, details return format, and specifies requirements like NCI API key for certain domains. It covers behavioral traits such as auto-detection logic, detail parameter usage, and data sources.

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

Conciseness4/5

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

The description is well-structured with clear sections (e.g., identifier formats, domain-specific options, return format, examples) and is appropriately sized for a complex tool. However, it is lengthy due to the comprehensive coverage, which is necessary but slightly reduces conciseness. Most sentences earn their place by adding value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (5 parameters, no annotations, no output schema), the description is highly complete. It covers purpose, usage, parameters, behavioral details, return format, and examples. It addresses all contextual needs for an agent to correctly invoke the tool across multiple biomedical domains, making up for the lack of structured metadata.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description adds significant meaning beyond the input schema, which has only 60% coverage. It explains the 'id' parameter with detailed identifier formats and examples for each domain, clarifies 'domain' with auto-detection rules and domain-specific behaviors, details 'detail' parameter options per domain, and specifies 'api_key' requirements for NCI domains. This compensates for schema gaps and provides essential context.

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 clearly states the tool's purpose: 'Fetch comprehensive details for a specific biomedical record' with specific verbs ('retrieves', 'returns') and resources ('articles, clinical trials, genetic variants, genes, drugs, or diseases'). It distinguishes from siblings like 'search' by focusing on fetching single records by ID rather than searching.

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?

The description provides clear context for when to use this tool: for retrieving full information using unique identifiers, with domain-specific sections detailing what each fetch returns. It mentions domain auto-detection and when manual specification is recommended. However, it does not explicitly state when not to use it or name specific alternatives among the many sibling tools.

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

gene_getterA

Get detailed gene information from MyGene.info.

⚠️ PREREQUISITE: Use the 'think' tool FIRST to understand your research goal!

Provides real-time gene annotations including:
- Official gene name and symbol
- Gene summary/description
- Aliases and alternative names
- Gene type (protein-coding, etc.)
- Links to external databases

This tool fetches CURRENT gene information from MyGene.info, ensuring
you always have the latest annotations and nomenclature.

Example usage:
- Get information about TP53 tumor suppressor
- Look up BRAF kinase gene details
- Find the official name for a gene by its alias

Note: For genetic variants, use variant_searcher. For articles about genes, use article_searcher.
ParametersJSON Schema
NameRequiredDescriptionDefault
gene_id_or_symbolYesGene symbol (e.g., 'TP53', 'BRAF') or Entrez ID (e.g., '7157')

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.4/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden. It effectively discloses key behavioral traits: it's a read operation ('fetches'), provides real-time/current data, and specifies the data source (MyGene.info). It doesn't mention rate limits, authentication needs, or error handling, but covers the core functionality well for a query tool.

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

Conciseness4/5

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

The description is well-structured with clear sections (prerequisite, what it provides, data currency, examples, alternatives). While slightly longer than minimal, every sentence adds value. The warning icon and bullet points enhance readability without unnecessary verbosity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter query tool with an output schema (which handles return values), the description is complete. It covers purpose, usage guidelines, behavioral context, and distinguishes from siblings. The presence of an output schema means the description doesn't need to explain return values.

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 fully documents the single parameter. The description doesn't add any parameter-specific information beyond what's in the schema (both mention gene symbols and IDs). Baseline 3 is appropriate when the schema does the heavy lifting.

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 clearly states the tool's purpose: 'Get detailed gene information from MyGene.info' with specific examples of what information is provided (gene name, symbol, summary, aliases, type, links). It distinguishes itself from sibling tools like variant_searcher and article_searcher by focusing on gene annotations rather than variants or articles.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit guidance: it includes a prerequisite ('Use the 'think' tool FIRST'), gives positive examples of when to use it (e.g., 'Get information about TP53'), and explicitly names alternatives for related tasks ('For genetic variants, use variant_searcher. For articles about genes, use article_searcher').

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

nci_biomarker_searcherA

Search for biomarkers in the NCI Clinical Trials database.

Searches for biomarkers used in clinical trial eligibility criteria.
This is essential for precision medicine trials that select patients
based on specific biomarker characteristics.

Biomarker examples:
- Gene mutations (e.g., BRAF V600E, EGFR T790M)
- Protein expression (e.g., PD-L1 ≥ 50%, HER2 positive)
- Gene fusions (e.g., ALK fusion, ROS1 fusion)
- Other molecular markers (e.g., MSI-H, TMB-high)

Requires NCI API key from: https://clinicaltrialsapi.cancer.gov/

Note: Biomarker data availability may be limited in CTRP.
Results focus on biomarkers used in trial eligibility criteria.

Example usage:
- Search for PD-L1 expression biomarkers
- Find trials requiring EGFR mutations
- Look up biomarkers tested by NGS
- Search for HER2 expression markers
ParametersJSON Schema
NameRequiredDescriptionDefault
api_keyNoNCI API key. Check if user mentioned 'my NCI API key is...' in their message. If not provided here and no env var is set, user will be prompted to provide one.
biomarker_typeNoType of biomarker ('reference_gene' or 'branch')
nameNoBiomarker name to search for (e.g., 'PD-L1', 'EGFR mutation')
pageNoPage number (1-based)
page_sizeNoResults per page

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.1/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively adds important context: the requirement for an NCI API key with specific source URL, limitations ('Biomarker data availability may be limited in CTRP'), and scope clarification ('Results focus on biomarkers used in trial eligibility criteria'). It doesn't mention rate limits, authentication errors, or response formats, but covers key operational constraints.

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

Conciseness4/5

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

The description is well-structured and appropriately sized. It front-loads the core purpose, then provides context, examples, requirements, limitations, and usage examples. Some sentences could be more concise (e.g., the biomarker examples list is detailed but necessary), but overall it's efficient with minimal waste.

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?

Given the tool's complexity (biomarker search with API requirements), no annotations, but with 100% schema coverage and an output schema present, the description is reasonably complete. It covers purpose, context, requirements, limitations, and examples. The output schema existence means it doesn't need to explain return values, and it addresses key behavioral aspects despite no annotations.

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 all 5 parameters thoroughly. The description adds value through biomarker examples that help interpret the 'name' parameter, but doesn't provide additional semantics for parameters like 'biomarker_type' beyond what's in the schema. Baseline 3 is appropriate when schema does heavy lifting.

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 clearly states the tool's purpose: 'Search for biomarkers in the NCI Clinical Trials database' and specifies 'Searches for biomarkers used in clinical trial eligibility criteria.' It distinguishes from siblings like 'nci_disease_searcher' or 'trial_searcher' by focusing specifically on biomarkers, not diseases or trials themselves.

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?

The description provides clear context for when to use this tool: 'essential for precision medicine trials that select patients based on specific biomarker characteristics' and gives example use cases. However, it doesn't explicitly state when NOT to use it or name specific alternatives among siblings for different search needs.

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

nci_disease_searcherA

Search NCI's controlled vocabulary of cancer conditions.

Searches the National Cancer Institute's curated database of cancer
conditions and diseases used in clinical trials. This is different from
the general disease_getter tool which uses MyDisease.info.

NCI's disease vocabulary provides:
- Official cancer terminology used in trials
- Disease synonyms and alternative names
- Hierarchical disease classifications
- Standardized disease codes for trial matching

Requires NCI API key from: https://clinicaltrialsapi.cancer.gov/

Example usage:
- Search for specific cancer types (e.g., "melanoma")
- Find all lung cancer subtypes
- Look up official names for disease synonyms
- Get standardized disease terms for trial searches

Note: This is specifically for NCI's cancer disease vocabulary.
For general disease information, use the disease_getter tool.
ParametersJSON Schema
NameRequiredDescriptionDefault
api_keyNoNCI API key. Check if user mentioned 'my NCI API key is...' in their message. If not provided here and no env var is set, user will be prompted to provide one.
categoryNoDisease category/type filter
include_synonymsNoInclude synonym matches in search
nameNoDisease name to search for (partial match)
pageNoPage number (1-based)
page_sizeNoResults per page

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.4/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively communicates that this requires an NCI API key (including where to obtain it), describes what the vocabulary provides (official terminology, synonyms, classifications, codes), and gives clear usage examples. However, it doesn't mention rate limits, authentication errors, or pagination behavior beyond what's in the schema.

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

Conciseness4/5

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

The description is well-structured and appropriately sized. It front-loads the core purpose, then provides differentiating information, key features, authentication requirements, usage examples, and final guidance. While comprehensive, some sentences could be more concise (e.g., the bulleted list of vocabulary features could be streamlined).

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (searching a specialized medical vocabulary with authentication requirements), the description provides excellent context. It explains the specific domain (NCI cancer vocabulary), differentiates from alternatives, lists key features, provides authentication guidance, gives concrete examples, and references the sibling tool. With an output schema present, it appropriately doesn't explain return values.

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 all 6 parameters thoroughly. The description doesn't add any parameter-specific information beyond what's in the schema descriptions. It provides general context about searching for cancer conditions but no additional parameter semantics. This meets the baseline expectation when schema coverage is complete.

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 clearly states the tool searches NCI's controlled vocabulary of cancer conditions, specifying the exact resource (NCI's curated database) and distinguishing it from the sibling tool 'disease_getter' which uses MyDisease.info. The opening sentence provides a specific verb ('Search') and resource, while subsequent sentences elaborate on what makes this vocabulary unique.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit guidance on when to use this tool versus alternatives. It states 'This is different from the general disease_getter tool which uses MyDisease.info' and later reinforces 'For general disease information, use the disease_getter tool.' It also provides concrete example use cases and specifies this is 'specifically for NCI's cancer disease vocabulary.'

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

nci_intervention_getterA

Get detailed information about a specific intervention from NCI.

Retrieves comprehensive details about an intervention including:
- Full name and synonyms
- Intervention type and category
- Mechanism of action (for drugs)
- FDA approval status
- Associated clinical trials
- Combination therapies

Requires NCI API key from: https://clinicaltrialsapi.cancer.gov/

Example usage:
- Get details about a specific drug
- Find all trials using a device
- View combination therapy protocols
ParametersJSON Schema
NameRequiredDescriptionDefault
api_keyNoNCI API key. Check if user mentioned 'my NCI API key is...' in their message. If not provided here and no env var is set, user will be prompted to provide one.
intervention_idYesNCI intervention ID (e.g., 'INT123456')

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions the API key requirement and where to obtain it, which is valuable context. However, it doesn't disclose other important behavioral traits like rate limits, authentication needs beyond the API key, whether this is a read-only operation, error handling, or response format details. The description adds some context but leaves significant gaps.

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

Conciseness4/5

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

The description is well-structured with clear sections: purpose statement, bulleted list of retrieved information, authentication requirement, and example use cases. It's appropriately sized at 7 sentences plus a bullet list. Every sentence adds value, though the bullet list could potentially be more concise. The information is front-loaded with the core purpose stated first.

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?

Given that an output schema exists (context signals indicate 'Has output schema: true'), the description doesn't need to explain return values. It covers the tool's purpose, what information it retrieves, authentication requirements, and example usage. For a read operation with good schema coverage and output schema, this is reasonably complete, though it could benefit from more behavioral context given the lack of annotations.

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 both parameters thoroughly. The description doesn't add any meaningful parameter semantics beyond what's in the schema - it doesn't explain the intervention_id format beyond the basic example, nor does it provide additional context about the api_key parameter. This meets the baseline of 3 when schema coverage is high.

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?

The description clearly states the tool's purpose: 'Get detailed information about a specific intervention from NCI' with specific examples of what information is retrieved (e.g., full name, intervention type, FDA approval status). It distinguishes from sibling tools like 'nci_intervention_searcher' by focusing on retrieving details for a specific intervention rather than searching. However, it doesn't explicitly contrast with other getters like 'drug_getter' or 'trial_getter'.

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?

The description provides clear context for when to use this tool through example usage statements ('Get details about a specific drug', 'Find all trials using a device', 'View combination therapy protocols'). It implies usage for retrieving comprehensive intervention details, but doesn't explicitly state when NOT to use it or name specific alternatives among the many sibling tools.

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

nci_intervention_searcherA

Search for interventions in the NCI Clinical Trials database.

Searches the National Cancer Institute's curated database of interventions
used in cancer clinical trials. This includes:
- FDA-approved drugs
- Investigational agents
- Medical devices
- Surgical procedures
- Radiation therapies
- Behavioral interventions

Requires NCI API key from: https://clinicaltrialsapi.cancer.gov/

Example usage:
- Find all trials using pembrolizumab
- Search for CAR-T cell therapies
- List radiation therapy protocols
- Find dietary interventions
ParametersJSON Schema
NameRequiredDescriptionDefault
api_keyNoNCI API key. Check if user mentioned 'my NCI API key is...' in their message. If not provided here and no env var is set, user will be prompted to provide one.
intervention_typeNoType of intervention: 'Drug', 'Device', 'Biological', 'Procedure', 'Radiation', 'Behavioral', 'Genetic', 'Dietary', 'Other'
nameNoIntervention name to search for (e.g., 'pembrolizumab')
pageNoPage number (1-based)
page_sizeNoResults per page. If not specified, returns all matching results.
synonymsNoInclude synonym matches in search

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.9/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It discloses key behavioral traits: the tool searches a curated database, requires an NCI API key with a source URL, and includes example usage patterns. However, it lacks details on rate limits, authentication errors, pagination behavior, or response format, which are important for a search tool with API dependencies.

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

Conciseness4/5

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

The description is well-structured and appropriately sized, with a clear purpose statement, bulleted list of intervention types, API key requirement, and example usage. However, the example section is slightly verbose and could be more tightly integrated, though all sentences add value for user understanding.

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?

Given the tool's complexity (6 parameters, API dependency) and the presence of an output schema (which handles return values), the description is reasonably complete. It covers purpose, scope, prerequisites, and usage examples. However, it lacks details on error handling, rate limits, and pagination behavior, which are relevant for a search tool with external API calls.

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 all 6 parameters thoroughly. The description adds minimal parameter semantics beyond the schema, only implying usage through examples (e.g., 'pembrolizumab' for the 'name' parameter). It does not explain parameter interactions or search logic, resulting in a baseline score of 3.

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 clearly states the tool's purpose: 'Search for interventions in the NCI Clinical Trials database' with a specific verb ('Search') and resource ('interventions in the NCI Clinical Trials database'). It distinguishes from sibling tools like 'nci_intervention_getter' by specifying search functionality versus retrieval, and lists concrete intervention types (e.g., FDA-approved drugs, medical devices) to clarify scope.

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?

The description provides clear context for when to use this tool: searching interventions in cancer clinical trials, with example use cases (e.g., 'Find all trials using pembrolizumab'). However, it does not explicitly state when NOT to use it or mention alternatives like 'nci_intervention_getter' for retrieving specific interventions by ID, leaving some ambiguity for sibling differentiation.

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

nci_organization_getterA

Get detailed information about a specific organization from NCI.

Retrieves comprehensive details about an organization including:
- Full name and aliases
- Address and contact information
- Organization type and role
- Associated clinical trials
- Research focus areas

Requires NCI API key from: https://clinicaltrialsapi.cancer.gov/

Example usage:
- Get details about a specific cancer center
- Find contact information for trial sponsors
- View organization's trial portfolio
ParametersJSON Schema
NameRequiredDescriptionDefault
api_keyNoNCI API key. Check if user mentioned 'my NCI API key is...' in their message. If not provided here and no env var is set, user will be prompted to provide one.
organization_idYesNCI organization ID (e.g., 'NCI-2011-03337')

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden. It discloses the requirement for an NCI API key and provides the source URL, which is valuable behavioral context. However, it lacks information about rate limits, error handling, authentication needs beyond the API key, or what happens if the organization_id is invalid. The description doesn't contradict any annotations since none exist.

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?

The description is well-structured and appropriately sized. It starts with a clear purpose statement, provides a bulleted list of retrieved details for quick scanning, includes important behavioral information (API key requirement), and ends with concrete example use cases. Every sentence adds value without redundancy.

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?

Given that there is an output schema (which means the description doesn't need to explain return values), no annotations, and 100% schema coverage, the description provides good contextual completeness. It covers the purpose, usage examples, and key behavioral requirement (API key). The main gap is the lack of explicit guidance on when to use this versus the sibling 'nci_organization_searcher' tool.

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 fully documents both parameters (api_key and organization_id). The description does not add any parameter-specific information beyond what's in the schema, such as format examples for organization_id beyond what's already in the schema description. The baseline of 3 is appropriate when the schema does all the parameter documentation.

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 clearly states the verb ('Get detailed information', 'Retrieves comprehensive details') and resource ('about a specific organization from NCI'), with specific examples of what information is retrieved. It distinguishes from the sibling 'nci_organization_searcher' by focusing on retrieving details for a specific organization rather than searching.

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?

The description provides clear context for when to use this tool through example use cases ('Get details about a specific cancer center', 'Find contact information for trial sponsors', 'View organization's trial portfolio'). However, it does not explicitly state when NOT to use it or mention alternatives like the sibling 'nci_organization_searcher' for broader searches.

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

nci_organization_searcherA

Search for organizations in the NCI Clinical Trials database.

Searches the National Cancer Institute's curated database of organizations
involved in cancer clinical trials. This includes:
- Academic medical centers
- Community hospitals
- Industry sponsors
- Government facilities
- Research networks

Requires NCI API key from: https://clinicaltrialsapi.cancer.gov/

IMPORTANT: To avoid API errors, always use city AND state together when searching by location.
The NCI API has limitations on broad searches.

Example usage:
- Find cancer centers in Boston, MA (city AND state)
- Search for "MD Anderson" in Houston, TX
- List academic organizations in Cleveland, OH
- Search by organization name alone (without location)
ParametersJSON Schema
NameRequiredDescriptionDefault
api_keyNoNCI API key. Check if user mentioned 'my NCI API key is...' in their message. If not provided here and no env var is set, user will be prompted to provide one.
cityNoCity where organization is located. IMPORTANT: Always use with state to avoid API errors
nameNoOrganization name to search for (partial match supported)
organization_typeNoType of organization (e.g., 'Academic', 'Industry', 'Government')
pageNoPage number (1-based)
page_sizeNoResults per page
stateNoState/province code (e.g., 'CA', 'NY'). IMPORTANT: Always use with city to avoid API errors

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations provided, the description carries full burden and does well by disclosing critical behavioral traits: API key requirement with source URL, API limitations on broad searches, and the important constraint about city+state pairing to avoid errors. It also provides concrete usage examples showing expected query patterns.

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?

The description is well-structured and appropriately sized. It starts with the core purpose, then provides context about what's searched, followed by critical requirements and constraints, and ends with concrete examples. Every sentence serves a clear purpose with zero wasted content.

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?

Given the tool's complexity (7 parameters, API integration) and the presence of an output schema, the description provides strong context about the database scope, API requirements, and usage patterns. The main gap is lack of explicit differentiation from sibling tools like nci_organization_getter, but overall it's quite complete for a search tool.

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 baseline is 3. The description adds some value by reinforcing the city+state constraint mentioned in the schema and providing example usage patterns, but doesn't significantly enhance parameter understanding beyond what the schema already documents.

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 clearly states the tool searches for organizations in the NCI Clinical Trials database, specifying the exact resource (organizations) and database (NCI Clinical Trials). It distinguishes from siblings like nci_organization_getter by emphasizing search functionality rather than retrieval of specific organizations.

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?

The description provides clear context for when to use this tool (searching organizations in cancer clinical trials) and includes practical constraints (API key requirement, city+state pairing). However, it doesn't explicitly mention when NOT to use it or name specific alternatives among the many sibling tools.

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

openfda_adverse_getterA

Get detailed information for a specific FDA adverse event report.

Retrieves complete details including:
- Patient demographics and medical history
- All drugs involved and dosages
- Complete list of adverse reactions
- Event narrative and outcomes
- Reporter information
ParametersJSON Schema
NameRequiredDescriptionDefault
api_keyNoOptional OpenFDA API key (overrides OPENFDA_API_KEY env var)
report_idYesSafety report ID

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden. It discloses the tool's behavior as a retrieval operation ('Get detailed information'), which implies it's read-only and non-destructive, but lacks details on authentication needs (e.g., API key usage), rate limits, error handling, or data freshness. It adds some context by listing the types of details retrieved, but more behavioral traits would be helpful.

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?

The description is appropriately sized and front-loaded, starting with a clear purpose statement followed by a bulleted list of details retrieved. Every sentence and bullet point earns its place by adding specific value without redundancy.

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?

Given the tool's moderate complexity (retrieving detailed report data), no annotations, and an output schema present (which handles return values), the description is mostly complete. It covers the purpose and scope well but could benefit from more behavioral context (e.g., authentication, limitations) to fully compensate for the lack of annotations.

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 both parameters thoroughly. The description does not add any meaning beyond what the schema provides (e.g., it doesn't explain parameter interactions or provide examples). Baseline 3 is appropriate as the schema handles the heavy lifting.

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 clearly states the tool's purpose with a specific verb ('Get detailed information') and resource ('FDA adverse event report'), and distinguishes it from its sibling 'openfda_adverse_searcher' by focusing on retrieving complete details for a specific report rather than searching. The bullet points further specify the scope of information retrieved.

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?

The description implies usage context by specifying it retrieves details for 'a specific FDA adverse event report,' suggesting it should be used when you have a report ID. However, it does not explicitly state when not to use it or name alternatives like 'openfda_adverse_searcher' for broader searches, though the distinction is clear from the purpose.

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

openfda_adverse_searcherA

Search FDA adverse event reports (FAERS) for drug safety information.

⚠️ PREREQUISITE: Use the 'think' tool FIRST to plan your research strategy!

Searches FDA's Adverse Event Reporting System for:
- Drug side effects and adverse reactions
- Serious event reports (death, hospitalization, disability)
- Safety signal patterns across patient populations

Note: These reports do not establish causation - they are voluntary reports
that may contain incomplete or unverified information.
ParametersJSON Schema
NameRequiredDescriptionDefault
api_keyNoOptional OpenFDA API key (overrides OPENFDA_API_KEY env var)
drugNoDrug name to search for adverse events
limitNoMaximum number of results
pageNoPage number (1-based)
reactionNoAdverse reaction term to search for
seriousNoFilter for serious events only

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior4/5

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

With no annotations provided, the description carries full burden and does well by disclosing key behavioral traits: it warns about data limitations ('voluntary reports that may contain incomplete or unverified information'), clarifies the nature of results ('do not establish causation'), and describes what types of events are searched. However, it doesn't mention rate limits, authentication requirements, or pagination behavior.

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

Conciseness4/5

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

The description is well-structured and appropriately sized with clear sections: purpose statement, prerequisite warning, search scope list, and data quality disclaimer. Every sentence earns its place, though the prerequisite warning could be slightly more concise. The information is front-loaded with the core purpose first.

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?

Given the tool's complexity (search functionality with 6 parameters), no annotations, but with an output schema present, the description is reasonably complete. It covers purpose, usage guidance, data limitations, and search scope. The output schema will handle return values, so the description appropriately focuses on behavioral context rather than output details.

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 all 6 parameters thoroughly. The description adds minimal parameter-specific information beyond what's in the schema - it mentions 'drug side effects' and 'serious event reports' which map to the 'drug' and 'serious' parameters, but doesn't provide additional semantic context. Baseline 3 is appropriate when schema does the heavy lifting.

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 clearly states the specific action ('Search FDA adverse event reports'), resource ('FAERS'), and scope ('for drug safety information'). It distinguishes this tool from its sibling 'openfda_adverse_getter' by emphasizing search functionality rather than retrieval of specific records.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit guidance with a prerequisite warning ('Use the 'think' tool FIRST to plan your research strategy!') and clarifies when to use this tool by listing specific search purposes (drug side effects, serious events, safety patterns). It also implicitly distinguishes from other FDA tools by focusing on adverse events.

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

openfda_approval_getterA

Get detailed FDA drug approval information for a specific application.

Returns comprehensive approval details including:
- Full product list with dosage forms and strengths
- Complete submission history
- Marketing status timeline
- Therapeutic equivalence codes
- Pharmacologic class information
ParametersJSON Schema
NameRequiredDescriptionDefault
api_keyNoOptional OpenFDA API key (overrides OPENFDA_API_KEY env var)
application_numberYesNDA or BLA application number

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It discloses the tool's behavior by listing what information is returned (e.g., product list, submission history), which helps understand the output. However, it lacks details on error handling, rate limits, or authentication requirements beyond the optional api_key parameter.

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?

The description is front-loaded with the core purpose in the first sentence, followed by a bulleted list of return details that efficiently elaborates without redundancy. Every sentence earns its place by adding specific value.

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?

Given that an output schema exists (so return values need not be explained), the description is complete enough for a read-only tool. It covers the purpose, key parameters, and output scope. However, with no annotations, it could benefit from more behavioral context like error cases or rate limits.

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 description coverage is 100%, so the schema already documents both parameters well. The description adds value by clarifying that 'application_number' refers to 'NDA or BLA application number', providing context beyond the schema's title. No additional parameter details are needed, but this semantic clarification is helpful.

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 clearly states the specific action ('Get detailed FDA drug approval information') and resource ('for a specific application'), distinguishing it from sibling tools like 'openfda_approval_searcher' which likely searches across applications rather than retrieving details for one.

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?

The description implies usage by specifying 'for a specific application', suggesting it should be used when you have a known application number. However, it does not explicitly state when not to use it or name alternatives (e.g., vs. 'openfda_approval_searcher' for broader searches).

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

openfda_approval_searcherA

Search FDA drug approval records from Drugs@FDA database.

⚠️ PREREQUISITE: Use the 'think' tool FIRST to plan your research strategy!

Returns information about:
- Application numbers and sponsors
- Brand and generic names
- Product formulations and strengths
- Marketing status and approval dates
- Submission history

Useful for verifying if a drug is FDA-approved and when.
ParametersJSON Schema
NameRequiredDescriptionDefault
api_keyNoOptional OpenFDA API key (overrides OPENFDA_API_KEY env var)
application_numberNoNDA or BLA application number
approval_yearNoYear of approval (YYYY format)
drugNoDrug name (brand or generic) to search for
limitNoMaximum number of results
pageNoPage number (1-based)

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.4/5.0
Behavior4/5

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

With no annotations provided, the description carries full burden. It discloses the tool's search behavior (returns multiple types of drug approval information), mentions the prerequisite 'think' tool requirement, and indicates it's for verification purposes. However, it doesn't mention rate limits, authentication needs (though api_key parameter suggests optional auth), or pagination behavior (implied by page/limit parameters but not explicitly described).

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?

The description is well-structured and front-loaded with the core purpose. Every sentence earns its place: first states what it does, then prerequisite warning, then what information it returns, and finally when to use it. No wasted words, and the warning emoji draws appropriate attention to the important prerequisite.

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?

Given the tool has an output schema (so return values are documented elsewhere), 6 parameters with 100% schema coverage, and no annotations, the description is reasonably complete. It covers purpose, prerequisite, returned information types, and use case. However, for a search tool with multiple parameters, it could better explain how searches work (e.g., are parameters AND/OR combined, what happens when multiple are provided).

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 baseline is 3. The description doesn't add significant parameter semantics beyond what's in the schema - it mentions searching by 'drug name' and returns 'application numbers' which map to parameters, but doesn't explain parameter interactions, search logic, or how multiple parameters combine. The description focuses on what the tool does rather than how to use the parameters.

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 clearly states the tool's purpose with specific verb ('Search') and resource ('FDA drug approval records from Drugs@FDA database'). It distinguishes itself from sibling tools like 'openfda_approval_getter' by being a search tool rather than a getter, and explicitly mentions what information it returns (application numbers, brand/generic names, formulations, etc.).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit usage guidance with a prerequisite warning ('⚠️ PREREQUISITE: Use the 'think' tool FIRST to plan your research strategy!') and states when to use it ('Useful for verifying if a drug is FDA-approved and when'). It differentiates from other FDA tools by specifying it searches approval records specifically, not adverse events, labels, or other data types.

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

openfda_device_getterA

Get detailed information for a specific FDA device event report.

Retrieves complete device event details including:
- Device identification and specifications
- Complete event narrative
- Patient outcomes and impacts
- Manufacturer analysis and actions
- Remedial actions taken
ParametersJSON Schema
NameRequiredDescriptionDefault
api_keyNoOptional OpenFDA API key (overrides OPENFDA_API_KEY env var)
mdr_report_keyYesMDR report key

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It discloses the tool's behavior as a retrieval operation with specific data categories returned, but lacks details on error handling, rate limits, authentication needs (though the api_key parameter hints at this), or response format. It adds some context but is incomplete for a tool with no annotations.

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?

The description is front-loaded with the core purpose in the first sentence, followed by a bulleted list of retrieved details that efficiently elaborates without redundancy. Every sentence earns its place by clarifying scope and content.

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?

Given the tool's moderate complexity (2 parameters, no annotations, but with output schema), the description is reasonably complete: it explains what data is retrieved, which compensates for lack of output schema details. However, it could better address behavioral aspects like error cases or usage constraints.

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 both parameters (mdr_report_key as required, api_key as optional with env var override). The description doesn't add meaning beyond what the schema provides (e.g., no examples of valid report keys or api_key usage scenarios), meeting the baseline for high schema coverage.

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 clearly states the specific action ('Get detailed information', 'Retrieves complete device event details') and resource ('FDA device event report'), distinguishing it from sibling tools like openfda_device_searcher (which searches rather than gets specific reports) and other getter tools focused on different data types (e.g., drug_getter, trial_getter).

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?

The description implies usage by specifying it retrieves details for 'a specific FDA device event report', suggesting it's for known report keys rather than searching. However, it doesn't explicitly state when to use this vs. alternatives like openfda_device_searcher or provide exclusions (e.g., not for batch retrieval).

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

openfda_device_searcherA

Search FDA device adverse event reports (MAUDE) for medical device issues.

⚠️ PREREQUISITE: Use the 'think' tool FIRST to plan your research strategy!

Searches FDA's device adverse event database for:
- Device malfunctions and failures
- Patient injuries related to devices
- Genomic test and diagnostic device issues

By default, filters to genomic/diagnostic devices relevant to precision medicine.
Set genomics_only=False to search all medical devices.
ParametersJSON Schema
NameRequiredDescriptionDefault
api_keyNoOptional OpenFDA API key (overrides OPENFDA_API_KEY env var)
deviceNoDevice name to search for
genomics_onlyNoFilter to genomic/diagnostic devices only
limitNoMaximum number of results
manufacturerNoManufacturer name
pageNoPage number (1-based)
problemNoDevice problem description
product_codeNoFDA product code

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively describes the tool's default filtering behavior (genomics/diagnostic devices), mentions the database source (FDA's MAUDE), and specifies the types of issues searched (malfunctions, failures, patient injuries). However, it doesn't mention rate limits, authentication requirements beyond the optional API key, or pagination behavior.

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

Conciseness4/5

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

The description is well-structured with clear sections: purpose statement, prerequisite warning, search scope details, and default behavior explanation. It's appropriately sized for an 8-parameter tool, though the prerequisite warning could be more concise. Every sentence adds value.

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?

Given the tool's complexity (8 parameters, no annotations, but with output schema), the description provides good context about the tool's purpose, usage guidelines, and default behavior. The presence of an output schema means the description doesn't need to explain return values. It covers the essential context but could benefit from more behavioral details like rate limits or error conditions.

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 all 8 parameters thoroughly. The description adds some context about the default genomics_only filter behavior but doesn't provide additional parameter semantics beyond what's in the schema. This meets the baseline expectation when schema coverage is high.

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 clearly states the tool searches FDA device adverse event reports (MAUDE) for medical device issues, specifying the resource (FDA database) and verb (search). It distinguishes itself from siblings by focusing specifically on device adverse events rather than other FDA data types like approvals, labels, or recalls.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit usage guidance with a prerequisite warning to use the 'think' tool first for research strategy planning. It also specifies when to use alternatives by explaining the default genomics-only filter and how to disable it for broader searches.

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

openfda_label_getterA

Get complete FDA drug label information by set ID.

Retrieves the full prescribing information including:
- Complete indications and usage text
- Detailed dosing instructions
- All warnings and precautions
- Clinical pharmacology and studies
- Manufacturing and storage information

Specify sections to retrieve specific parts, or leave empty for default key sections.
ParametersJSON Schema
NameRequiredDescriptionDefault
api_keyNoOptional OpenFDA API key (overrides OPENFDA_API_KEY env var)
sectionsNoSpecific sections to retrieve (default: key sections)
set_idYesLabel set ID

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden. It discloses that the tool retrieves 'complete' information and lists specific content types (e.g., indications, dosing), which adds useful behavioral context. However, it lacks details on potential limitations like rate limits, authentication needs (though the api_key parameter hints at this), or error handling, leaving gaps in transparency.

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?

The description is appropriately sized and front-loaded: the first sentence states the core purpose, followed by a bulleted list of content details and a final sentence on parameter usage. Every sentence adds value without redundancy, making it efficient and well-structured.

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?

Given the tool's moderate complexity (3 parameters, 1 required), no annotations, and the presence of an output schema, the description is mostly complete. It covers purpose, content details, and basic parameter guidance. However, it could be more complete by addressing authentication implications or error scenarios, which are relevant given the api_key parameter and lack of annotations.

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 all parameters (set_id, sections, api_key) well. The description adds minimal value beyond the schema: it mentions that sections can be specified to retrieve specific parts or left empty for default, which slightly elaborates on the schema's 'default: key sections'. This meets the baseline of 3 when schema coverage is high.

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 clearly states the verb ('Get', 'Retrieves') and resource ('complete FDA drug label information by set ID'), making the purpose specific and unambiguous. It distinguishes itself from sibling tools like 'openfda_label_searcher' by focusing on retrieval of full label data for a given set ID rather than searching across labels.

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?

The description provides clear context for usage: it specifies that this tool is for retrieving full label information by set ID, implying it should be used when you have a specific label set ID. However, it does not explicitly state when not to use it or name alternatives (e.g., 'openfda_label_searcher' for searching instead of direct retrieval), which prevents a score of 5.

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

openfda_label_searcherA

Search FDA drug product labels (SPL) for prescribing information.

⚠️ PREREQUISITE: Use the 'think' tool FIRST to plan your research strategy!

Searches official FDA drug labels for:
- Approved indications and usage
- Dosage and administration guidelines
- Contraindications and warnings
- Drug interactions and adverse reactions
- Special population considerations

Label sections include: indications, dosage, contraindications, warnings,
adverse, interactions, pregnancy, pediatric, geriatric, overdose
ParametersJSON Schema
NameRequiredDescriptionDefault
api_keyNoOptional OpenFDA API key (overrides OPENFDA_API_KEY env var)
boxed_warningNoFilter for drugs with boxed warnings
indicationNoSearch for drugs indicated for this condition
limitNoMaximum number of results
nameNoDrug name to search for
pageNoPage number (1-based)
sectionNoSpecific label section (e.g., 'contraindications', 'warnings')

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.4/5.0
Behavior4/5

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

With no annotations provided, the description carries full burden for behavioral disclosure. It effectively describes the tool's function and content scope, including specific label sections searched. However, it lacks details on rate limits, authentication requirements (beyond the api_key parameter), error handling, or response format. The prerequisite warning adds useful context but doesn't fully cover behavioral traits.

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?

The description is well-structured and front-loaded with the core purpose and critical prerequisite. Each sentence adds value: the first states the purpose, the second gives essential usage guidance, and the subsequent bullets and list clarify searchable content without redundancy. No wasted words.

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?

Given the tool's complexity (7 parameters, search functionality) and the presence of an output schema (which handles return values), the description is largely complete. It covers purpose, usage guidance, and content scope effectively. However, with no annotations, it could better address behavioral aspects like rate limits or authentication nuances, leaving minor gaps.

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 all 7 parameters thoroughly. The description adds no specific parameter information beyond implying searchable content areas (e.g., 'indications', 'dosage') that align with some parameters. It provides marginal value over the schema, meeting the baseline for high coverage.

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 clearly states the tool's purpose as searching FDA drug product labels for prescribing information, specifying the resource (FDA drug labels) and verb (search). It distinguishes itself from siblings like 'openfda_label_getter' by focusing on search functionality rather than retrieval, and lists specific content areas (e.g., indications, dosage) to clarify scope.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit usage guidance with a prerequisite warning to use the 'think' tool first for research strategy planning. It also implicitly distinguishes from siblings by focusing on label search (vs. adverse events, approvals, etc.), though it doesn't name specific alternatives. The guidance is clear and actionable.

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

openfda_recall_getterA

Get detailed FDA drug recall information for a specific recall.

Returns complete recall details including:
- Full product description and code information
- Complete reason for recall
- Distribution pattern and locations
- Quantity of product recalled
- Firm information and actions taken
- Timeline of recall events
ParametersJSON Schema
NameRequiredDescriptionDefault
api_keyNoOptional OpenFDA API key (overrides OPENFDA_API_KEY env var)
recall_numberYesFDA recall number

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It discloses that the tool returns 'complete recall details' with a bulleted list of data types, which adds useful context about output behavior. However, it does not mention authentication needs (e.g., API key usage), rate limits, or error handling, leaving gaps in behavioral transparency.

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?

The description is appropriately sized and front-loaded: the first sentence states the core purpose, followed by a bulleted list of return details. Every sentence earns its place by adding value without redundancy or waste.

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?

Given that an output schema exists (context signals indicate 'Has output schema: true'), the description does not need to explain return values in detail. It provides a high-level overview of returned data, which is sufficient. However, for a tool with no annotations and two parameters, it could benefit from more behavioral context (e.g., authentication or error handling) to be fully complete.

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 both parameters ('recall_number' and 'api_key') with descriptions. The description does not add any parameter-specific information beyond what the schema provides, such as format examples or constraints, meeting the baseline for high schema coverage.

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 clearly states the tool's purpose with specific verb+resource: 'Get detailed FDA drug recall information for a specific recall.' It distinguishes from its sibling 'openfda_recall_searcher' by focusing on retrieving details for a specific recall rather than searching.

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?

The description implies usage context by specifying 'for a specific recall,' but does not explicitly state when to use this tool versus alternatives like 'openfda_recall_searcher' or other FDA-related tools. It provides clear context but lacks explicit exclusions or named alternatives.

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

openfda_recall_searcherA

Search FDA drug recall records from the Enforcement database.

⚠️ PREREQUISITE: Use the 'think' tool FIRST to plan your research strategy!

Returns recall information including:
- Classification (Class I, II, or III)
- Recall reason and description
- Product identification
- Distribution information
- Recalling firm details
- Current status

Class I = most serious (death/serious harm)
Class II = moderate (temporary/reversible harm)
Class III = least serious (unlikely to cause harm)
ParametersJSON Schema
NameRequiredDescriptionDefault
api_keyNoOptional OpenFDA API key (overrides OPENFDA_API_KEY env var)
drugNoDrug name to search for recalls
limitNoMaximum number of results
pageNoPage number (1-based)
reasonNoSearch text in recall reason
recall_classNoRecall classification (1=most serious, 2=moderate, 3=least serious)
since_dateNoShow recalls after this date (YYYYMMDD format)
statusNoRecall status (ongoing, completed, terminated)

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior4/5

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

With no annotations provided, the description carries full burden. It effectively discloses key behavioral traits: it's a search/read operation (implied by 'Search' and 'Returns'), provides detailed information about what data is returned (6 specific data points), and explains the classification system with severity levels. However, it doesn't mention rate limits, authentication requirements, or pagination behavior beyond what's in the schema.

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

Conciseness4/5

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

The description is well-structured with clear sections: purpose statement, prerequisite warning, return data listing, and classification explanation. It's appropriately sized for the tool's complexity. Minor deduction because the classification explanation could be slightly more concise, but overall it's efficient with no wasted sentences.

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?

Given the tool has an output schema (so return values don't need description), 100% schema coverage, and no annotations, the description does well by providing prerequisite guidance, behavioral context about what data is returned, and classification explanations. It could slightly improve by mentioning authentication (api_key parameter) or rate limits, but covers most essential context for a search tool.

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 fully documents all 8 parameters. The description adds no parameter-specific information beyond what's in the schema. It provides general context about recall classifications but doesn't enhance understanding of individual parameters like 'drug', 'reason', or 'since_date'. Baseline 3 is appropriate when schema does all the parameter documentation work.

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 clearly states the specific action ('Search FDA drug recall records') and resource ('Enforcement database'), distinguishing it from sibling tools like openfda_adverse_searcher or openfda_device_searcher. It provides a focused scope that differentiates it from generic search tools in the list.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly provides a prerequisite ('Use the 'think' tool FIRST to plan your research strategy!') with a clear warning symbol. This gives specific guidance on when to use this tool versus jumping directly into searching, addressing a common agent workflow issue.

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

openfda_shortage_getterA

Get detailed FDA drug shortage information for a specific drug.

Returns comprehensive shortage details including:
- Complete timeline of shortage
- Detailed reason for shortage
- All affected manufacturers
- Alternative products if available
- Resolution status and estimates
- Additional notes and recommendations

Data is updated periodically from FDA shortage database.
ParametersJSON Schema
NameRequiredDescriptionDefault
api_keyNoOptional OpenFDA API key (overrides OPENFDA_API_KEY env var)
drugYesDrug name (generic or brand)

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.1/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively describes the tool's behavior by specifying the comprehensive details returned (e.g., timeline, reason, manufacturers), data source (FDA shortage database), and update frequency (periodically), though it lacks information on rate limits or authentication requirements beyond the optional API key.

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?

The description is appropriately sized and front-loaded, starting with the core purpose, followed by a bulleted list of return details and a note on data updates. Every sentence adds value without redundancy, making it efficient and well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's moderate complexity, no annotations, and the presence of an output schema (which handles return values), the description is complete enough. It covers purpose, return details, and data source, providing sufficient context for an agent to understand and use the tool effectively.

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?

The schema description coverage is 100%, so the schema already documents both parameters ('drug' and 'api_key'). The description adds no additional parameter semantics beyond what the schema provides, such as examples or constraints, meeting the baseline for high schema coverage.

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 clearly states the tool's purpose with a specific verb ('Get') and resource ('FDA drug shortage information for a specific drug'), distinguishing it from siblings like 'openfda_shortage_searcher' by focusing on detailed information retrieval rather than searching.

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?

The description implies usage for obtaining detailed shortage information for a specific drug, but does not explicitly state when to use this tool versus alternatives like 'openfda_shortage_searcher' or other FDA-related tools, leaving the context somewhat ambiguous.

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

openfda_shortage_searcherA

Search FDA drug shortage records.

⚠️ PREREQUISITE: Use the 'think' tool FIRST to plan your research strategy!

Returns shortage information including:
- Current shortage status
- Shortage start and resolution dates
- Reason for shortage
- Therapeutic category
- Manufacturer information
- Estimated resolution timeline

Note: Shortage data is cached and updated periodically.
Check FDA.gov for most current information.
ParametersJSON Schema
NameRequiredDescriptionDefault
api_keyNoOptional OpenFDA API key (overrides OPENFDA_API_KEY env var)
drugNoDrug name (generic or brand) to search
limitNoMaximum number of results
pageNoPage number (1-based)
statusNoShortage status (current or resolved)
therapeutic_categoryNoTherapeutic category (e.g., Oncology, Anti-infective)

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively describes key behaviors: it's a search tool (implying read-only, non-destructive), returns structured shortage information, notes that data is 'cached and updated periodically' (important for freshness), and advises checking FDA.gov for current info. It doesn't mention rate limits or authentication needs, but covers most critical aspects well.

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

Conciseness4/5

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

The description is well-structured and appropriately sized. It starts with the core purpose, then provides a prerequisite warning, lists return fields, and ends with important caveats. Every sentence adds value, though the list of return fields is somewhat detailed. It could be slightly more concise but remains efficient.

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?

Given the tool's complexity (search with 6 parameters), no annotations, but with 100% schema coverage and an output schema, the description is quite complete. It covers purpose, prerequisite, return content, and data freshness caveats. The output schema likely handles return value details, so the description doesn't need to explain those. Minor gaps include lack of error handling or pagination context.

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 all 6 parameters thoroughly. The description doesn't add any parameter-specific information beyond what's in the schema. It lists return fields but doesn't explain how parameters map to those returns. This meets the baseline of 3 when schema coverage is complete.

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 clearly states the tool's purpose: 'Search FDA drug shortage records.' It specifies the verb ('Search'), resource ('FDA drug shortage records'), and distinguishes it from sibling tools like 'openfda_shortage_getter' by focusing on searching rather than getting specific records. This is specific and unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit usage guidance: '⚠️ PREREQUISITE: Use the 'think' tool FIRST to plan your research strategy!' It also mentions 'Check FDA.gov for most current information' as a caveat. While it doesn't explicitly contrast with all sibling tools, the prerequisite and caveat offer clear operational context for when and how to use this tool.

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

thinkA

REQUIRED FIRST STEP: Perform structured sequential thinking for ANY biomedical research task.

🚨 IMPORTANT: You MUST use this tool BEFORE any search or fetch operations when:
- Researching ANY biomedical topic (genes, diseases, variants, trials)
- Planning to use multiple BioMCP tools
- Answering questions that require analysis or synthesis
- Comparing information from different sources
- Making recommendations or drawing conclusions

⚠️ FAILURE TO USE THIS TOOL FIRST will result in:
- Incomplete or poorly structured analysis
- Missing important connections between data
- Suboptimal search strategies
- Overlooked critical information

Sequential thinking ensures you:
1. Fully understand the research question
2. Plan an optimal search strategy
3. Identify all relevant data sources
4. Structure your analysis properly
5. Deliver comprehensive, well-reasoned results

## Usage Pattern:
1. Start with thoughtNumber=1 to initiate analysis
2. Progress through numbered thoughts sequentially
3. Adjust totalThoughts estimate as understanding develops
4. Set nextThoughtNeeded=False only when analysis is complete

## Example:
```python
# Initial analysis
await think(
    thought="Breaking down the relationship between BRAF mutations and melanoma treatment resistance...",
    thoughtNumber=1,
    totalThoughts=5,
    nextThoughtNeeded=True
)

# Continue analysis
await think(
    thought="Examining specific BRAF V600E mutation mechanisms...",
    thoughtNumber=2,
    totalThoughts=5,
    nextThoughtNeeded=True
)

# Final thought
await think(
    thought="Synthesizing findings and proposing research directions...",
    thoughtNumber=5,
    totalThoughts=5,
    nextThoughtNeeded=False
)
```

## Important Notes:
- Each thought builds on previous ones within a session
- State is maintained throughout the MCP session
- Use thoughtful, detailed analysis in each step
- Revisions and branching are supported through the underlying implementation
ParametersJSON Schema
NameRequiredDescriptionDefault
nextThoughtNeededNoWhether more thinking steps are needed after this one
thoughtYesCurrent thinking step for analysis
thoughtNumberYesCurrent thought number, starting at 1
totalThoughtsYesEstimated total thoughts needed for complete analysis

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively describes key behavioral traits: it's a stateful tool ('State is maintained throughout the MCP session'), supports sequential and branching analysis ('Revisions and branching are supported'), and outlines the consequences of misuse ('FAILURE TO USE THIS TOOL FIRST will result in...'). It doesn't cover rate limits or authentication needs, but provides substantial operational context.

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 description is appropriately structured with clear sections (importance, usage pattern, example, notes), but it's verbose with repetitive emphasis on mandatory usage. Sentences like 'Sequential thinking ensures you:' with a numbered list could be more concise. The front-loaded 'REQUIRED FIRST STEP' is effective, but some content could be trimmed without losing value.

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?

Given the tool's complexity (stateful thinking process) and lack of annotations/output schema, the description does a good job explaining the tool's role, workflow, and behavioral characteristics. It covers the thinking process, session state, and integration with other tools. The main gap is the absence of output information, but for a thinking tool, the description adequately compensates with usage guidance and examples.

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 all parameters. The description adds some context about parameter usage (e.g., 'Start with thoughtNumber=1', 'Adjust totalThoughts estimate as understanding develops'), but doesn't provide significant semantic meaning beyond what's in the schema descriptions. The example illustrates usage patterns but doesn't clarify parameter meanings further.

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 explicitly states the tool's purpose as 'Perform structured sequential thinking for ANY biomedical research task,' specifying the verb (structured sequential thinking) and resource (biomedical research tasks). It clearly distinguishes this from sibling tools by emphasizing it's a prerequisite thinking step before using any search/fetch operations, unlike the data retrieval siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit guidance on when to use this tool (e.g., 'BEFORE any search or fetch operations when researching ANY biomedical topic') and when not to use it (implied: not for direct data retrieval). It mentions alternatives indirectly by listing sibling tools that should follow this thinking step, establishing a clear workflow hierarchy.

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

trial_getterA

Fetch comprehensive details for a specific clinical trial.

Retrieves all available information for a clinical trial by its NCT ID.
This includes protocol details, locations, outcomes, and references.

For specific sections only, use the specialized getter tools:
- trial_protocol_getter: Core protocol information
- trial_locations_getter: Site locations and contacts
- trial_outcomes_getter: Primary/secondary outcomes and results
- trial_references_getter: Publications and references
ParametersJSON Schema
NameRequiredDescriptionDefault
nct_idYesNCT ID (e.g., 'NCT06524388')

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It discloses that the tool 'retrieves' information (implying read-only behavior) and specifies what information is included (protocol details, locations, outcomes, references). However, it doesn't mention potential limitations like rate limits, authentication requirements, or error conditions. The description doesn't contradict any annotations.

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?

The description is well-structured and appropriately sized. The first sentence states the core purpose, the second elaborates on scope, and the remaining sentences provide clear usage guidelines. Every sentence adds value with zero wasted words, and the information is front-loaded effectively.

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?

Given the tool has a single parameter with 100% schema coverage and an output schema exists, the description provides good contextual completeness. It clearly explains the tool's purpose, scope, and relationship to alternatives. The main gap is lack of behavioral details like rate limits or error handling, but the output schema reduces the need to describe return values.

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 the single parameter (nct_id) with its description and example. The description adds minimal value beyond the schema by mentioning 'NCT ID' in context, but doesn't provide additional syntax or format details. With high schema coverage, baseline 3 is appropriate.

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 clearly states the tool's purpose with specific verbs ('fetch comprehensive details', 'retrieves all available information') and identifies the resource ('clinical trial by its NCT ID'). It distinguishes itself from sibling tools by emphasizing it provides 'comprehensive details' versus specialized getters for specific sections.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit guidance on when to use this tool versus alternatives. It states this tool is for 'comprehensive details' and lists four specialized getter tools for 'specific sections only', naming each alternative (trial_protocol_getter, trial_locations_getter, trial_outcomes_getter, trial_references_getter).

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

trial_locations_getterA

Fetch contact and location details for a clinical trial.

Retrieves all study locations including:
- Facility names and addresses
- Principal investigator information
- Contact details (when recruiting)
- Recruitment status by site

Useful for finding trials near specific locations or contacting study teams.
ParametersJSON Schema
NameRequiredDescriptionDefault
nct_idYesNCT ID (e.g., 'NCT06524388')

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It describes what data is retrieved (facility details, investigator info, contact details, recruitment status) which adds behavioral context beyond the input schema. However, it doesn't mention potential limitations like rate limits, authentication needs, or error conditions.

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?

The description is well-structured with a clear purpose statement, bulleted details, and a usage note. Every sentence adds value without redundancy, and it's appropriately sized for the tool's complexity.

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?

Given that there's an output schema (which handles return values), no annotations, and simple parameters, the description is reasonably complete. It explains what the tool does and when to use it, though it could benefit from more behavioral details like data freshness or limitations.

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 the single parameter (nct_id) with its format. The description doesn't add any parameter-specific information beyond what's in the schema, maintaining the baseline score of 3 when schema coverage is high.

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 clearly states the specific action ('Fetch contact and location details') and resource ('for a clinical trial'), with a bulleted list of what's retrieved. It distinguishes from siblings like trial_getter or trial_searcher by focusing on location-specific details rather than general trial information or search capabilities.

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?

The description provides clear context for when to use it ('Useful for finding trials near specific locations or contacting study teams'), but doesn't explicitly state when not to use it or name specific alternatives among the sibling tools (e.g., trial_getter for general trial info).

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

trial_outcomes_getterA

Fetch outcome measures and results for a clinical trial.

Retrieves detailed outcome information including:
- Primary outcome measures
- Secondary outcome measures
- Results data (if available)
- Adverse events (if reported)

Note: Results are only available for completed trials that have posted data.
ParametersJSON Schema
NameRequiredDescriptionDefault
nct_idYesNCT ID (e.g., 'NCT06524388')

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden. It discloses that this is a read operation ('fetch', 'retrieves') and adds important behavioral context about data availability constraints ('Results are only available for completed trials that have posted data'), but doesn't mention other traits like rate limits, authentication needs, or error conditions.

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?

The description is appropriately sized and front-loaded with the core purpose in the first sentence. The bullet points efficiently detail what information is retrieved, and the note provides crucial context without unnecessary elaboration. Every sentence earns its place.

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?

Given the tool's moderate complexity, no annotations, and the presence of an output schema (which handles return values), the description is reasonably complete. It covers purpose, scope, and data availability constraints, though it could benefit from more behavioral context about how the tool handles edge cases or errors.

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?

The input schema has 100% description coverage, so the schema already documents the single parameter (nct_id) adequately. The description doesn't add any parameter-specific information beyond what's in the schema, which is acceptable given the high schema coverage.

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 clearly states the tool's purpose with specific verbs ('fetch', 'retrieves') and resource ('outcome measures and results for a clinical trial'), and distinguishes it from sibling tools like trial_getter or trial_searcher by focusing specifically on outcomes and results data.

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?

The description provides clear context about when results are available ('only available for completed trials that have posted data'), which helps guide usage. However, it doesn't explicitly mention when to use this tool versus alternatives like trial_getter or trial_searcher, which might provide overlapping or different information.

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

trial_protocol_getterB

Fetch core protocol information for a clinical trial.

Retrieves essential protocol details including:
- Official title and brief summary
- Study status and sponsor information
- Study design (type, phase, allocation, masking)
- Eligibility criteria
- Primary completion date
ParametersJSON Schema
NameRequiredDescriptionDefault
nct_idYesNCT ID (e.g., 'NCT06524388')

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. While it indicates this is a read operation ('Fetch', 'Retrieves'), it doesn't mention authentication requirements, rate limits, error conditions, or response format details. The description adds some context about what data is returned but lacks critical behavioral traits.

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?

The description is well-structured and appropriately sized. It starts with a clear purpose statement, then uses a bulleted list to efficiently detail the specific information retrieved. Every sentence earns its place with no redundant information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given that there's an output schema (which should document return values) and 100% schema coverage for the single parameter, the description provides adequate context for a read-only tool. However, without annotations and with multiple similar sibling tools, it could benefit from more differentiation and behavioral details to be fully complete.

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 fully documents the single parameter (nct_id). The description doesn't add any parameter-specific information beyond what's in the schema, such as format examples or constraints. The baseline score of 3 reflects adequate coverage through the schema alone.

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?

The description clearly states the tool's purpose with a specific verb ('Fetch') and resource ('core protocol information for a clinical trial'), and lists key data elements retrieved. However, it doesn't explicitly distinguish this tool from sibling tools like 'trial_getter' or 'trial_searcher', which likely handle different aspects of trial data.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. With multiple sibling tools related to trials (e.g., trial_getter, trial_searcher, trial_locations_getter), there's no indication of how this tool differs in scope or when it should be preferred over others.

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

trial_references_getterA

Fetch publications and references for a clinical trial.

Retrieves all linked publications including:
- Published results papers
- Background literature
- Protocol publications
- Related analyses

Includes PubMed IDs when available for easy cross-referencing.
ParametersJSON Schema
NameRequiredDescriptionDefault
nct_idYesNCT ID (e.g., 'NCT06524388')

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior3/5

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

With no annotations provided, the description carries full burden. It discloses that the tool retrieves 'all linked publications' and lists specific types (results papers, background literature, etc.), which adds behavioral context. However, it doesn't mention whether this is a read-only operation, potential rate limits, authentication needs, or what happens when no publications exist for a given trial.

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?

The description is well-structured and appropriately sized. The first sentence clearly states the purpose, followed by a bulleted list of what's included, and ends with additional useful information about PubMed IDs. Every sentence earns its place with no wasted words.

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?

Given the tool has an output schema (which handles return values), no annotations, and a simple single-parameter input schema with full coverage, the description provides good contextual completeness. It explains what types of publications are retrieved and includes the PubMed ID detail, which adds value beyond what structured fields provide. The main gap is lack of behavioral transparency about operational constraints.

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 description coverage is 100%, so the schema already documents the single parameter. The description doesn't add specific parameter semantics beyond what's in the schema, but with only one parameter and high schema coverage, the baseline is appropriately high. The description does imply the parameter's purpose by stating the tool fetches publications 'for a clinical trial'.

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 clearly states the tool's purpose with specific verb ('Fetch') and resource ('publications and references for a clinical trial'), and distinguishes it from siblings like 'trial_getter' or 'trial_searcher' by focusing specifically on publications and references rather than general trial information or search capabilities.

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?

The description implies usage context (when you need publications for a clinical trial) but doesn't explicitly state when to use this tool versus alternatives like 'article_getter' or 'article_searcher'. No guidance is provided about when NOT to use this tool or about prerequisites beyond the required NCT ID parameter.

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

trial_searcherA

Search ClinicalTrials.gov for clinical studies.

⚠️ PREREQUISITE: Use the 'think' tool FIRST to plan your research strategy!

Comprehensive search tool for finding clinical trials based on multiple criteria.
Supports filtering by conditions, interventions, location, phase, and eligibility.

Location search notes:
- Use either location term OR lat/long coordinates, not both
- For city-based searches, AI agents should geocode to lat/long first
- Distance parameter only works with lat/long coordinates

Returns a formatted list of matching trials with key details.
ParametersJSON Schema
NameRequiredDescriptionDefault
age_groupNoFilter by age group
conditionsNoMedical conditions to search for
distanceNoDistance in miles from lat/long coordinates
funder_typeNoFilter by funding source
healthy_volunteersNoFilter by healthy volunteer eligibility
interventionsNoTreatment interventions to search for
latNoLatitude for location-based search. AI agents should geocode city names before using.
locationNoLocation term for geographic filtering
longNoLongitude for location-based search. AI agents should geocode city names before using.
other_termsNoAdditional search terms
pageNoPage number (1-based)
page_sizeNoResults per page
phaseNoFilter by clinical trial phase
recruiting_statusNoFilter by recruiting status
sexNoFilter by biological sex
study_typeNoFilter by study type

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.9/5.0
Behavior4/5

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

With no annotations provided, the description carries full burden for behavioral disclosure. It does well by specifying prerequisites, location search constraints (mutual exclusivity, geocoding requirement, distance parameter dependency), and return format (formatted list with key details). However, it doesn't mention rate limits, authentication needs, or potential errors.

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

Conciseness4/5

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

The description is well-structured with a clear purpose statement, prerequisite warning, parameter categories, location notes, and return format - all in 6 sentences. It's appropriately sized for a complex tool with 16 parameters, though the location notes could be slightly more concise.

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?

Given the tool's complexity (16 parameters, no annotations, but with output schema), the description provides good contextual coverage. It explains the tool's purpose, prerequisites, parameter categories, location constraints, and return format. The output schema existence means the description doesn't need to detail return values, making this reasonably complete.

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 all 16 parameters thoroughly. The description adds some value by grouping parameters into categories (conditions, interventions, location, phase, eligibility) and providing location-specific semantics, but doesn't significantly enhance understanding beyond what the schema provides.

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?

The description clearly states the tool searches ClinicalTrials.gov for clinical studies based on multiple criteria, which is a specific verb+resource combination. However, it doesn't explicitly differentiate from sibling tools like 'trial_getter' or 'search', which might have overlapping functionality.

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?

The description provides a clear prerequisite to use the 'think' tool first for planning research strategy, which is excellent guidance. It also mentions location search constraints (use either term or coordinates, not both). However, it doesn't explicitly state when to use this tool versus alternatives like 'trial_getter' or 'search' among the siblings.

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

variant_getterA

Fetch comprehensive details for a specific genetic variant.

Retrieves all available information for a variant including:
- Gene location and consequences
- Population frequencies across databases
- Clinical significance from ClinVar
- Functional predictions
- External annotations (TCGA cancer data, conservation scores)

Accepts various ID formats:
- HGVS: NM_004333.4:c.1799T>A
- rsID: rs113488022
- MyVariant ID: chr7:g.140753336A>T
ParametersJSON Schema
NameRequiredDescriptionDefault
include_externalNoInclude external annotations (TCGA, 1000 Genomes, functional predictions)
variant_idYesVariant ID (HGVS, rsID, or MyVariant ID like 'chr7:g.140753336A>T')

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It describes what information is retrieved (gene location, population frequencies, clinical significance, etc.) and mentions the tool accepts multiple ID formats, which adds useful context. However, it doesn't disclose important behavioral traits like rate limits, authentication requirements, error conditions, or whether this is a read-only operation.

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?

The description is perfectly structured and concise. It starts with a clear purpose statement, then provides a bulleted list of what information is retrieved, and ends with specific ID format examples. Every sentence earns its place with no wasted words, and information is front-loaded effectively.

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?

Given that an output schema exists (so return values don't need explanation in the description), the description provides good context about what information is retrieved and how to format inputs. However, for a tool with no annotations and potentially complex genetic data, it could benefit from more behavioral context about limitations, data sources, or typical use cases.

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?

The schema description coverage is 100%, so the schema already documents both parameters well. The description adds meaningful context by listing the specific ID formats accepted (HGVS, rsID, MyVariant ID) and mentioning what 'external annotations' include (TCGA cancer data, conservation scores), which provides additional semantic understanding beyond the schema's technical descriptions.

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 clearly states the tool's purpose with specific verbs ('fetch comprehensive details', 'retrieves all available information') and identifies the resource ('specific genetic variant'). It distinguishes itself from sibling 'variant_searcher' by focusing on detailed retrieval for a single variant rather than searching.

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?

The description provides clear context for when to use this tool (to get comprehensive details for a specific variant) and implies when not to use it (for searching multiple variants, which would use 'variant_searcher'). However, it doesn't explicitly name alternatives or provide exclusion criteria beyond the implied distinction.

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

variant_searcherA

Search MyVariant.info for genetic variant DATABASE RECORDS.

⚠️ PREREQUISITE: Use the 'think' tool FIRST to plan your research strategy!

Important: This searches for variant DATABASE RECORDS (frequency, significance, etc.),
NOT articles about variants. For articles about variants, use article_searcher.

Searches the comprehensive variant database including:
- Population frequencies (gnomAD, 1000 Genomes, etc.)
- Clinical significance (ClinVar)
- Functional predictions (SIFT, PolyPhen, CADD)
- Gene and protein consequences

Search by various identifiers or filter by clinical/functional criteria.
ParametersJSON Schema
NameRequiredDescriptionDefault
cadd_score_minNoMinimum CADD score for pathogenicity
consequenceNoVariant consequence (e.g., 'missense_variant')
frequency_maxNoMaximum allele frequency
frequency_minNoMinimum allele frequency
geneNoGene symbol (e.g., 'BRAF', 'TP53')
hgvsNoHGVS notation (genomic, coding, or protein)
hgvscNoCoding sequence change (e.g., 'c.1799T>A')
hgvspNoProtein change in HGVS format (e.g., 'p.V600E')
include_cbioportalNoInclude cBioPortal cancer genomics summary when searching by gene
pageNoPage number (1-based)
page_sizeNoResults per page
polyphen_predictionNoPolyPhen-2 functional prediction
regionNoGenomic region (e.g., 'chr7:140753336-140753337')
rsidNodbSNP rsID (e.g., 'rs113488022')
sift_predictionNoSIFT functional prediction
significanceNoClinical significance filter

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively describes what the tool searches (variant database records with specific data types like population frequencies and clinical significance) and mentions a prerequisite. However, it doesn't disclose potential limitations like rate limits, authentication needs, or pagination behavior (though pagination parameters exist in the schema).

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

Conciseness4/5

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

The description is well-structured with clear sections: purpose, prerequisite, distinction from alternatives, and search scope. It uses bullet points effectively to list data categories. While slightly longer than minimal, every sentence adds value (prerequisite warning, sibling differentiation, scope clarification). The warning emoji draws attention appropriately.

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?

Given the tool's complexity (16 parameters, no annotations, but with output schema), the description does a good job covering purpose, usage context, and behavioral aspects. The output schema existence means return values don't need explanation. The main gap is lack of explicit behavioral constraints (rate limits, auth), but the prerequisite warning and scope clarification provide substantial context.

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 all 16 parameters thoroughly. The description adds some context by listing categories of searchable data (population frequencies, clinical significance, etc.) which maps to parameter groups, but doesn't provide additional syntax or format details beyond what the schema provides. This meets the baseline for high schema coverage.

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 clearly states the tool searches MyVariant.info for genetic variant database records, specifying it retrieves frequency, significance, and functional data rather than articles. It explicitly distinguishes from the sibling tool 'article_searcher' by stating 'NOT articles about variants.' The verb 'search' is specific and the resource 'MyVariant.info' is named.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit usage guidance: it includes a prerequisite ('Use the 'think' tool FIRST to plan your research strategy!'), clarifies when NOT to use this tool ('NOT articles about variants'), and names the alternative tool ('article_searcher'). This gives clear context for when to use this tool versus other options.

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

TDQS

A3.6/5.0
Disambiguation3/5

The tool set has clear domain separation (articles, trials, variants, etc.) but significant overlap exists between general and specialized tools. For example, 'fetch' overlaps with all the individual getters (article_getter, trial_getter, etc.), and 'search' overlaps with domain-specific searchers (article_searcher, trial_searcher, etc.). Descriptions help clarify, but agents may struggle to choose between overlapping tools.

Naming Consistency4/5

Most tools follow a consistent verb_noun pattern (e.g., article_getter, trial_searcher, variant_getter), with verbs like 'get', 'search', and 'fetch'. However, there are deviations: 'think' and 'fetch' are single words, and 'alphagenome_predictor' uses a noun_verb pattern. Overall, naming is mostly predictable but not perfectly uniform.

Tool Count2/5

With 35 tools, the count is excessive for a single server, leading to redundancy and complexity. Many tools could be consolidated (e.g., merging getters and searchers into fewer tools with parameters). This large number may overwhelm agents and increase the risk of misselection, especially given the overlapping functionalities.

Completeness5/5

The tool set provides comprehensive coverage across biomedical domains, including articles, trials, variants, genes, drugs, diseases, FDA data, and NCI resources. Each domain has both search and fetch capabilities, with detailed lifecycle support. No obvious gaps are present; the surface is well-rounded for biomedical research tasks.

Maintenance

ActivityActive
ResponsivenessResponsive

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    B
    quality
    D
    maintenance
    A comprehensive Model Context Protocol server that enables advanced PubMed literature search, citation formatting, and research analysis through natural language interactions.
    12
    10
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Integrates Taiwan-specific medical data including ICD-10 codes, FDA drug databases, and nutrition information into the Model Context Protocol. It enables AI models to query clinical guidelines, verify medical codes, and convert health data into FHIR R4 standardized formats.
    MIT
  • A
    license
    Not graded
    quality
    A
    maintenance
    A unified biomedical graph database that integrates 50+ primary data sources — genes, proteins, compounds, diseases, pathways, and clinical data — into a single queryable graph with billions of cross-reference edges. Its native MCP server gives LLMs direct access to structured, authoritative biomedical data, complementing their reasoning with reliable identifiers and up-to-date database content.
    20
    AGPL 3.0

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/genomoncology/biomcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server