BioMCP
BioMCP enables AI systems to access and analyze specialized biomedical data with precision and depth through natural language queries and structured workflows.
Core Capabilities:
Search Across Biomedical Domains: Query literature (PubMed, preprints), clinical trials (ClinicalTrials.gov, NCI), and genetic variants (MyVariant.info) using unified query language or domain-specific filters
Retrieve Detailed Records: Fetch comprehensive information for articles, trials, and variants using identifiers (PMID, DOI, NCT ID, HGVS/dbSNP)
Systematic Research Workflow: Utilize the mandatory
thinktool for structured problem-solving and multi-step research approachesSpecialized Data Access: Direct access to gene information (MyGene.info), diseases (MyDisease.info), drugs/chemicals (MyChem.info), and NCI databases
Advanced Features:
Multiple Data Sources: Integrate with authoritative platforms including PubMed/PubTator3, bioRxiv/medRxiv, TCGA/GDC, 1000 Genomes, cBioPortal, and OpenFDA
Variant Effect Prediction: Optional AlphaGenome predictor for assessing regulatory effects on gene expression and splicing
Flexible Deployment: Run locally (STDIO), via HTTP, Docker, or CLI for various integration scenarios
AI Assistant Integration: Function as a certified MCP server for AI assistants like Claude Desktop
Enterprise Extension: OncoMCP offers HIPAA-compliant deployments with real-time trial matching and healthcare integration
Enables searching and retrieval of biomedical literature from PubMed/PMC including article search and full text access through the PubTator3 API.
Offers a comprehensive CLI for direct interaction with biomedical databases through Python, allowing users to search for articles, clinical trials, and variants via command line.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@BioMCPsearch for clinical trials on BRAF inhibitors in melanoma"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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 articlefans 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 listshows shipped worked examples so you can open the matchingbiomcp skill <slug>workflow.Analyze studies locally:
studycommands 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, andarticle entitiesturn one known paper into a broader evidence map.Enrich and batch: use
biomcp enrichfor top-level g:Profiler enrichment andbiomcp batchfor up to 10 focusedgetcalls 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 hpaInstallation
Binary install
curl -fsSL https://biomcp.org/install.sh | bashPyPI tool install
uv tool install biomcp-cli
# or: pip install biomcp-cliPyPI package warning: install
biomcp-cli, notbiomcp. ThebiomcpPyPI 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 biomcpThe 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 serveUse 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@biomcpThe 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 serveClaude 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 --forceMCP clients
{
"mcpServers": {
"biomcp": {
"command": "biomcp",
"args": ["serve"]
}
}
}Remote HTTP server
For shared or remote deployments:
biomcp serve-http --host 127.0.0.1 --port 8080Remote 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.pySee Remote HTTP Server for the newcomer guide.
From source
make install
"$HOME/.local/bin/biomcp" --versionFor 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 orientationEntities 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 |
|
variant | MyVariant.info, ClinVar, direct gnomAD v4 population data, CIViC, Cancer Genome Interpreter, OncoKB, cBioPortal, GWAS Catalog, AlphaGenome |
|
article | PubMed, PubTator3, Europe PMC, PMC OA, NCBI ID Converter, Semantic Scholar (optional auth; |
|
trial | ClinicalTrials.gov API v2, NCI CTS API |
|
diagnostic | NCBI Genetic Testing Registry local bulk bundle + WHO IVD local CSV + optional OpenFDA device overlay |
|
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 |
|
disease | MyDisease.info, Monarch Initiative, MONDO, OpenTargets, Reactome, CIViC, SEER Explorer, NIH Reporter, DisGeNET, GTR/WHO IVD diagnostics pivot |
|
pathway | Reactome, KEGG, WikiPathways, g:Profiler, Enrichr-backed enrichment sections |
|
protein | UniProt, InterPro, STRING, ComplexPortal, PDB, AlphaFold |
|
adverse-event | OpenFDA FAERS/MAUDE/recalls plus CDC WONDER VAERS aggregate vaccine search |
|
pgx | CPIC, PharmGKB |
|
Search-only entities
Entity | Upstream providers used by BioMCP | Example |
gwas | GWAS Catalog |
|
phenotype | Monarch Initiative (HPO semantic similarity) |
|
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 3Gene-set enrichment
biomcp enrich BRAF,KRAS,NRAS --limit 10Top-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 outcomesIn 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 predictionsearch 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 |
| Enables |
DisGeNET API Key |
| Enables scored DisGeNET sections on gene and disease lookups |
Semantic Scholar 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.orgLoopback 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 --forceSee 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 svSee 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/binSupport
GitHub issues: https://github.com/genomoncology/biomcp/issues
Troubleshooting: docs/troubleshooting.md
Full documentation: https://biomcp.org/
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 toolsalphagenome_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.
| Name | Required | Description | Default |
|---|---|---|---|
| alternate | Yes | Alternate allele(s) (e.g., 'T', 'A') | |
| api_key | No | AlphaGenome 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. | |
| chromosome | Yes | Chromosome (e.g., 'chr7', 'chrX') | |
| interval_size | No | Size of genomic interval to analyze in bp (max 1,000,000) | |
| position | Yes | 1-based genomic position of the variant | |
| reference | Yes | Reference allele(s) (e.g., 'A', 'ATG') | |
| significance_threshold | No | Threshold for significant log2 fold changes (default: 0.5) | |
| tissue_types | No | UBERON ontology terms for tissue-specific predictions (e.g., 'UBERON:0002367' for external ear) |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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)
| Name | Required | Description | Default |
|---|---|---|---|
| pmid | Yes | Article identifier - either a PubMed ID (e.g., '38768446' or 'PMC11193658') or DOI (e.g., '10.1101/2024.01.20.23288905') |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| chemicals | No | Chemical/drug names to search for | |
| diseases | No | Disease names to search for | |
| genes | No | Gene symbols to search for | |
| include_cbioportal | No | Include cBioPortal cancer genomics summary when searching by gene | |
| include_preprints | No | Include preprints from bioRxiv/medRxiv | |
| keywords | No | Free-text keywords to search for | |
| page | No | Page number (1-based) | |
| page_size | No | Results per page | |
| variants | No | Variant strings to search for (e.g., 'V600E', 'p.D277Y') |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| disease_id_or_name | Yes | Disease name (e.g., 'melanoma', 'lung cancer') or ontology ID (e.g., 'MONDO:0016575', 'DOID:1909') |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| drug_id_or_name | Yes | Drug name (e.g., 'aspirin', 'imatinib') or ID (e.g., 'DB00945', 'CHEMBL941') |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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"
)
```
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No | NCI 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_benefit | No | Brief explanation of why this fetch is being performed and expected benefit. Helps provide context for analytics and improves result relevance. | |
| detail | No | ||
| domain | No | Domain of the record (auto-detected if not provided) | |
| id | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| gene_id_or_symbol | Yes | Gene symbol (e.g., 'TP53', 'BRAF') or Entrez ID (e.g., '7157') |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No | NCI 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_type | No | Type of biomarker ('reference_gene' or 'branch') | |
| name | No | Biomarker name to search for (e.g., 'PD-L1', 'EGFR mutation') | |
| page | No | Page number (1-based) | |
| page_size | No | Results per page |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No | NCI 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. | |
| category | No | Disease category/type filter | |
| include_synonyms | No | Include synonym matches in search | |
| name | No | Disease name to search for (partial match) | |
| page | No | Page number (1-based) | |
| page_size | No | Results per page |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No | NCI 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_id | Yes | NCI intervention ID (e.g., 'INT123456') |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No | NCI 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_type | No | Type of intervention: 'Drug', 'Device', 'Biological', 'Procedure', 'Radiation', 'Behavioral', 'Genetic', 'Dietary', 'Other' | |
| name | No | Intervention name to search for (e.g., 'pembrolizumab') | |
| page | No | Page number (1-based) | |
| page_size | No | Results per page. If not specified, returns all matching results. | |
| synonyms | No | Include synonym matches in search |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No | NCI 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_id | Yes | NCI organization ID (e.g., 'NCI-2011-03337') |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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)
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No | NCI 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. | |
| city | No | City where organization is located. IMPORTANT: Always use with state to avoid API errors | |
| name | No | Organization name to search for (partial match supported) | |
| organization_type | No | Type of organization (e.g., 'Academic', 'Industry', 'Government') | |
| page | No | Page number (1-based) | |
| page_size | No | Results per page | |
| state | No | State/province code (e.g., 'CA', 'NY'). IMPORTANT: Always use with city to avoid API errors |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No | Optional OpenFDA API key (overrides OPENFDA_API_KEY env var) | |
| report_id | Yes | Safety report ID |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No | Optional OpenFDA API key (overrides OPENFDA_API_KEY env var) | |
| drug | No | Drug name to search for adverse events | |
| limit | No | Maximum number of results | |
| page | No | Page number (1-based) | |
| reaction | No | Adverse reaction term to search for | |
| serious | No | Filter for serious events only |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No | Optional OpenFDA API key (overrides OPENFDA_API_KEY env var) | |
| application_number | Yes | NDA or BLA application number |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No | Optional OpenFDA API key (overrides OPENFDA_API_KEY env var) | |
| application_number | No | NDA or BLA application number | |
| approval_year | No | Year of approval (YYYY format) | |
| drug | No | Drug name (brand or generic) to search for | |
| limit | No | Maximum number of results | |
| page | No | Page number (1-based) |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No | Optional OpenFDA API key (overrides OPENFDA_API_KEY env var) | |
| mdr_report_key | Yes | MDR report key |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No | Optional OpenFDA API key (overrides OPENFDA_API_KEY env var) | |
| device | No | Device name to search for | |
| genomics_only | No | Filter to genomic/diagnostic devices only | |
| limit | No | Maximum number of results | |
| manufacturer | No | Manufacturer name | |
| page | No | Page number (1-based) | |
| problem | No | Device problem description | |
| product_code | No | FDA product code |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No | Optional OpenFDA API key (overrides OPENFDA_API_KEY env var) | |
| sections | No | Specific sections to retrieve (default: key sections) | |
| set_id | Yes | Label set ID |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No | Optional OpenFDA API key (overrides OPENFDA_API_KEY env var) | |
| boxed_warning | No | Filter for drugs with boxed warnings | |
| indication | No | Search for drugs indicated for this condition | |
| limit | No | Maximum number of results | |
| name | No | Drug name to search for | |
| page | No | Page number (1-based) | |
| section | No | Specific label section (e.g., 'contraindications', 'warnings') |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No | Optional OpenFDA API key (overrides OPENFDA_API_KEY env var) | |
| recall_number | Yes | FDA recall number |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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)
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No | Optional OpenFDA API key (overrides OPENFDA_API_KEY env var) | |
| drug | No | Drug name to search for recalls | |
| limit | No | Maximum number of results | |
| page | No | Page number (1-based) | |
| reason | No | Search text in recall reason | |
| recall_class | No | Recall classification (1=most serious, 2=moderate, 3=least serious) | |
| since_date | No | Show recalls after this date (YYYYMMDD format) | |
| status | No | Recall status (ongoing, completed, terminated) |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No | Optional OpenFDA API key (overrides OPENFDA_API_KEY env var) | |
| drug | Yes | Drug name (generic or brand) |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No | Optional OpenFDA API key (overrides OPENFDA_API_KEY env var) | |
| drug | No | Drug name (generic or brand) to search | |
| limit | No | Maximum number of results | |
| page | No | Page number (1-based) | |
| status | No | Shortage status (current or resolved) | |
| therapeutic_category | No | Therapeutic category (e.g., Oncology, Anti-infective) |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
searchA
Search biomedical literature, clinical trials, genetic variants, genes, drugs, and diseases.
⚠️ IMPORTANT: Have you used the 'think' tool first? If not, STOP and use it NOW!
The 'think' tool is REQUIRED for proper research planning and should be your FIRST step.
This tool provides access to biomedical data from PubMed/PubTator3, ClinicalTrials.gov,
MyVariant.info, and the BioThings suite (MyGene.info, MyChem.info, MyDisease.info).
It supports two search modes:
## 1. UNIFIED QUERY LANGUAGE
Use the 'query' parameter with field-based syntax for precise cross-domain searches.
Syntax:
- Basic: "gene:BRAF"
- AND logic: "gene:BRAF AND disease:melanoma"
- OR logic: "gene:PTEN AND (R173 OR Arg173 OR 'position 173')"
- Domain-specific: "trials.condition:melanoma AND trials.phase:3"
Common fields:
- Cross-domain: gene, disease, variant, chemical/drug
- Articles: pmid, title, abstract, journal, author
- Trials: trials.condition, trials.intervention, trials.phase, trials.status
- Variants: variants.hgvs, variants.rsid, variants.significance
Example:
```
await search(
query="gene:BRAF AND disease:melanoma AND trials.phase:3",
max_results_per_domain=20
)
```
## 2. DOMAIN-SPECIFIC SEARCH
Use the 'domain' parameter with specific filters for targeted searches.
Domains:
- "article": Search PubMed/PubTator3 for research articles and preprints ABOUT genes, variants, diseases, or chemicals
- "trial": Search ClinicalTrials.gov for clinical studies
- "variant": Search MyVariant.info for genetic variant DATABASE RECORDS (population frequency, clinical significance, etc.) - NOT for articles about variants!
- "gene": Search MyGene.info for gene information (symbol, name, function, aliases)
- "drug": Search MyChem.info for drug/chemical information (names, formulas, indications)
- "disease": Search MyDisease.info for disease information (names, definitions, synonyms)
- "nci_organization": Search NCI database for cancer centers, hospitals, and research sponsors (requires API key)
- "nci_intervention": Search NCI database for drugs, devices, procedures used in cancer trials (requires API key)
- "nci_biomarker": Search NCI database for biomarkers used in trial eligibility criteria (requires API key)
- "nci_disease": Search NCI controlled vocabulary for cancer conditions and terms (requires API key)
Example:
```
await search(
domain="article",
genes=["BRAF", "NRAS"],
diseases=["melanoma"],
page_size=50
)
```
## DOMAIN SELECTION EXAMPLES:
- To find ARTICLES about BRAF V600E mutation: domain="article", genes=["BRAF"], variants=["V600E"]
- To find VARIANT DATA for BRAF mutations: domain="variant", gene="BRAF"
- To find articles about ERBB2 p.D277Y: domain="article", genes=["ERBB2"], variants=["p.D277Y"]
- Common mistake: Using domain="variant" when you want articles about a variant
## IMPORTANT NOTES:
- For complex research questions, use the separate 'think' tool for systematic analysis
- The tool returns results in OpenAI MCP format: {"results": [{"id", "title", "text", "url"}, ...]}
- Search results do NOT include metadata (per OpenAI MCP specification)
- Use the fetch tool to get detailed metadata for specific records
- Use get_schema=True to explore available search fields
- Use explain_query=True to understand query parsing (unified mode)
- Domain-specific searches use AND logic for multiple values
- For OR logic, use the unified query language
- NEW: Article search keywords support OR with pipe separator: "R173|Arg173|p.R173"
- Remember: domain="article" finds LITERATURE, domain="variant" finds DATABASE RECORDS
## RETURN FORMAT:
All search modes return results in this format:
```json
{
"results": [
{
"id": "unique_identifier",
"title": "Human-readable title",
"text": "Summary or snippet of content",
"url": "Link to full resource"
}
]
}
```
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No | NCI API key for searching NCI domains (nci_organization, nci_intervention, nci_biomarker, nci_disease). Required for NCI searches. Get a free key at: https://clinicaltrialsapi.cancer.gov/ | |
| call_benefit | No | Brief explanation of why this search is being performed and expected benefit. Helps improve search accuracy and provides context for analytics. Highly recommended for better results. | |
| chemicals | No | ||
| conditions | No | ||
| diseases | No | ||
| distance | No | ||
| domain | No | Domain to search: 'article' for papers/literature ABOUT genes/variants/diseases, 'trial' for clinical studies, 'variant' for genetic variant DATABASE RECORDS, 'gene' for gene information from MyGene.info, 'drug' for drug/chemical information from MyChem.info, 'disease' for disease information from MyDisease.info, 'nci_organization' for NCI cancer centers/sponsors, 'nci_intervention' for NCI drugs/devices/procedures, 'nci_biomarker' for NCI trial eligibility biomarkers, 'nci_disease' for NCI cancer vocabulary, 'fda_adverse' for FDA adverse event reports, 'fda_label' for FDA drug labels, 'fda_device' for FDA device events, 'fda_approval' for FDA drug approvals, 'fda_recall' for FDA drug recalls, 'fda_shortage' for FDA drug shortages | |
| explain_query | No | ||
| genes | No | ||
| get_schema | No | ||
| interventions | No | ||
| keywords | No | ||
| lat | No | ||
| long | No | ||
| max_results_per_domain | No | ||
| page | No | ||
| page_size | No | ||
| phase | No | ||
| query | Yes | ||
| recruiting_status | No | ||
| significance | No | ||
| variants | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden and does an excellent job disclosing behavioral traits: it explains the two search modes, return format (OpenAI MCP format without metadata), logic rules (AND for domain-specific, OR with unified query), API key requirements for NCI domains, and recommendations like using 'fetch' for metadata. It could improve by mentioning rate limits or error handling, but covers most critical aspects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with sections and bullet points, but it is overly long and includes some redundant information (e.g., repeating return format details). While most content is valuable, it could be more front-loaded and condensed, as some examples and notes could be streamlined without losing clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (22 parameters, no annotations, no output schema), the description is highly complete: it covers purpose, usage guidelines, behavioral traits, parameter semantics, and return format. It addresses the lack of structured data by providing comprehensive textual explanations, making it sufficient for an agent to use the tool effectively despite the sparse schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Given the low schema description coverage (14%), the description compensates extensively by explaining parameter semantics beyond the schema: it details the 'query' parameter syntax with examples, clarifies the 'domain' parameter with all possible values and use cases, and provides context for parameters like 'max_results_per_domain', 'page_size', 'get_schema', and 'explain_query'. It adds significant value over the minimal schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool searches biomedical literature, clinical trials, genetic variants, genes, drugs, and diseases, specifying the verb 'search' and the resources. It distinguishes from siblings by explaining this is a unified search tool that can access multiple domains, unlike specialized getter/searcher tools like 'article_searcher' or 'variant_searcher'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 vs alternatives: it mandates using the 'think' tool first for research planning, distinguishes between unified query language and domain-specific search modes, and gives clear examples of when to use specific domains (e.g., 'domain="article"' for literature vs 'domain="variant"' for database records). It also warns against common mistakes like using the wrong domain.
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
| Name | Required | Description | Default |
|---|---|---|---|
| nextThoughtNeeded | No | Whether more thinking steps are needed after this one | |
| thought | Yes | Current thinking step for analysis | |
| thoughtNumber | Yes | Current thought number, starting at 1 | |
| totalThoughts | Yes | Estimated total thoughts needed for complete analysis |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| nct_id | Yes | NCT ID (e.g., 'NCT06524388') |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| nct_id | Yes | NCT ID (e.g., 'NCT06524388') |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| nct_id | Yes | NCT ID (e.g., 'NCT06524388') |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| nct_id | Yes | NCT ID (e.g., 'NCT06524388') |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| nct_id | Yes | NCT ID (e.g., 'NCT06524388') |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| age_group | No | Filter by age group | |
| conditions | No | Medical conditions to search for | |
| distance | No | Distance in miles from lat/long coordinates | |
| funder_type | No | Filter by funding source | |
| healthy_volunteers | No | Filter by healthy volunteer eligibility | |
| interventions | No | Treatment interventions to search for | |
| lat | No | Latitude for location-based search. AI agents should geocode city names before using. | |
| location | No | Location term for geographic filtering | |
| long | No | Longitude for location-based search. AI agents should geocode city names before using. | |
| other_terms | No | Additional search terms | |
| page | No | Page number (1-based) | |
| page_size | No | Results per page | |
| phase | No | Filter by clinical trial phase | |
| recruiting_status | No | Filter by recruiting status | |
| sex | No | Filter by biological sex | |
| study_type | No | Filter by study type |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| include_external | No | Include external annotations (TCGA, 1000 Genomes, functional predictions) | |
| variant_id | Yes | Variant ID (HGVS, rsID, or MyVariant ID like 'chr7:g.140753336A>T') |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| cadd_score_min | No | Minimum CADD score for pathogenicity | |
| consequence | No | Variant consequence (e.g., 'missense_variant') | |
| frequency_max | No | Maximum allele frequency | |
| frequency_min | No | Minimum allele frequency | |
| gene | No | Gene symbol (e.g., 'BRAF', 'TP53') | |
| hgvs | No | HGVS notation (genomic, coding, or protein) | |
| hgvsc | No | Coding sequence change (e.g., 'c.1799T>A') | |
| hgvsp | No | Protein change in HGVS format (e.g., 'p.V600E') | |
| include_cbioportal | No | Include cBioPortal cancer genomics summary when searching by gene | |
| page | No | Page number (1-based) | |
| page_size | No | Results per page | |
| polyphen_prediction | No | PolyPhen-2 functional prediction | |
| region | No | Genomic region (e.g., 'chr7:140753336-140753337') | |
| rsid | No | dbSNP rsID (e.g., 'rs113488022') | |
| sift_prediction | No | SIFT functional prediction | |
| significance | No | Clinical significance filter |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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
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.
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.
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.
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
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
Connect AI clients to biomedical data and tools.
Search 36M+ PubMed biomedical articles and ClinicalTrials.gov studies.
Medical RAG: semantic search for clinical guidelines, drug interactions, diagnoses & EHR data.
Medical RAG: semantic search for clinical guidelines, drug interactions, diagnoses & EHR data.
Related MCP Servers
- AlicenseBqualityDmaintenanceA comprehensive Model Context Protocol server that enables advanced PubMed literature search, citation formatting, and research analysis through natural language interactions.1210MIT
- AlicenseAqualityBmaintenanceEmpowers AI agents with direct access to the official ClinicalTrials.gov database, enabling programmatic searching, retrieval, and analysis of clinical study data through a Model Context Protocol interface.72,71591Apache 2.0
- AlicenseNot gradedqualityDmaintenanceIntegrates 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
- AlicenseNot gradedqualityAmaintenanceA 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.20AGPL 3.0
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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