Skip to main content
Glama

Server Details

A unified biomedical graph database that integrates 50+ primary data sources — genes, proteins, compounds, diseases, pathways, and clinical data — into a single queryable graph with billions of cross-reference edges. Its native MCP server gives LLMs direct access to structured, authoritative biomedical data, complementing their reasoning with reliable identifiers and up-to-date database content.

Status
Healthy
Last Tested
Transport
Streamable HTTP
URL

Glama MCP Gateway

Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.

MCP client
Glama
MCP server

Full call logging

Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.

Tool access control

Enable or disable individual tools per connector, so you decide what your agents can and cannot do.

Managed credentials

Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.

Usage analytics

See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.

100% free. Your data is private.
Tool DescriptionsA

Average 4.5/5 across 4 of 4 tools scored.

Server CoherenceA
Disambiguation5/5

Each tool has a distinct role: atlas for curated summaries, entry for full entry details, map for identifier mapping, and search for cross-database discovery. The descriptions clearly delineate when to use each, with workflow examples reducing any potential confusion.

Naming Consistency4/5

All tool names share the 'biobtree_' prefix and use lower_snake_case. The suffixes mix nouns (atlas, entry) and verbs (map, search), but this is consistent with their function and does not hinder readability or predictability.

Tool Count5/5

Four tools provide a well-scoped abstraction over 70+ databases. Each tool covers a distinct necessity: discovery, mapping, detailed lookup, and curated summaries. This is a solid, minimal set for the stated purpose.

Completeness5/5

The tool surface covers the full lifecycle of biological data exploration: search to find identifiers, map to translate between databases, entry to inspect connections and attributes, and atlas for citable summaries. No obvious dead ends; the workflow examples ensure agents can traverse the data graph effectively.

Available Tools

4 tools
biobtree_atlasAInspect

Curated Sugi Atlas knowledge for genes, diseases, and drugs (built from biobtree's own data).

SYNTAX: biobtree_atlas(entities=["TP53","imatinib"])

CALL THIS FIRST for a gene/disease/drug question (what it is, its biology, disease/drug/clinical context) - returns a concise, citable digest to ground your answer. Cite the returned canonical_url.

  • Pass the entity name(s) from the question; covered entities return content + citation, uncovered ones are listed in not_covered.

  • Default returns a compact digest (Summary + Identifiers). Each result lists the page's sections (top-level and sub-sections); pass section="Disease & clinical" (use a name from sections) for one zone, or full=true for the entire page (large). For big sections, query one entity at a time; full=true and large sections across several entities may be trimmed to fit.

  • For entities not covered, or for specific ID mappings / cross-references / filters, use biobtree_map / biobtree_entry instead.

RETURNS: per entity {type, canonical_url, content, sections} + not_covered list

ParametersJSON Schema
NameRequiredDescriptionDefault
fullNoReturn the entire page (large; may exceed output limits - avoid for multiple entities)
sectionNoReturn one section instead of the digest; use a name from the result's `sections` (e.g. 'Disease & clinical')
entitiesYesGene symbols / disease names / drug names from the question
Behavior4/5

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

With no annotations provided, the description carries full responsibility and discloses key behavioral traits: returns a compact digest, lists not_covered entities, supports section/full modes, and notes potential output trimming for large requests. It could add more on error handling or rate limits, but it is notably transparent about return structure and performance caveats.

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

Conciseness5/5

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

The description is well-organized with clear labels (SYNTAX, CALL THIS FIRST, RETURNS) and front-loaded purpose. Every sentence contributes useful guidance—no filler or redundancy—while remaining compact for the complexity covered.

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

Completeness5/5

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

Despite lacking an output schema, the description explains the return format per entity, the not_covered behavior, section selection, and the trimming caveat. It also references sibling tools for fallback, making it fully self-contained for an agent to invoke correctly.

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

Parameters4/5

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

Schema coverage is 100%, so baseline is 3, but the description adds meaningful context: entities are 'gene symbols / disease names / drug names from the question', section is 'a name from the result's sections', and full is cautioned as 'large; may exceed output limits'. This enriches the bare schema definitions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool provides curated knowledge for genes, diseases, and drugs, with a specific 'CALL THIS FIRST' directive for such queries. It distinguishes itself from siblings by explicitly naming alternatives for other use cases, making purpose and scope unambiguous.

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

Usage Guidelines5/5

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

Usage guidance is explicit: 'CALL THIS FIRST for a gene/disease/drug question' and 'For entities not covered, or for specific ID mappings / cross-references / filters, use biobtree_map / biobtree_entry instead.' It also advises querying one entity at a time for large sections, reinforcing when and how to use the tool.

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

biobtree_entryAInspect

Get full details for one identifier.

SYNTAX: biobtree_entry(identifier="ID", dataset="dataset_name")

USE FOR:

  • See all attributes of an entry

  • Discover filterable fields

  • Get detailed info (sequences, scores, descriptions)

  • DISCOVER CONNECTIONS: xrefs show what datasets link to this entry

WORKFLOW: Get entry → see xrefs → check EDGES for where they lead → follow relevant paths

RETURNS: All attributes + xref counts to connected datasets

ParametersJSON Schema
NameRequiredDescriptionDefault
datasetYesThe dataset containing the entry
identifierYesThe identifier to look up
Behavior4/5

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

No annotations are provided, so the description bears full responsibility. It discloses what the tool returns ('All attributes + xref counts to connected datasets') and outlines a workflow (entry → xrefs → edges). This gives the agent a clear model of the operation's behavior, though it doesn't address error cases or permissions.

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

Conciseness4/5

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

The description is organized into clear sections (SYNTAX, USE FOR, WORKFLOW, RETURNS), making it scannable. It is concise enough for the information it conveys, with no redundant sentences.

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

Completeness4/5

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

Given the two required parameters and no output schema, the description covers usage, workflow, and return value shape. It even hints at how to use xrefs to discover connections, which is useful for an AI agent. It could be improved by mentioning error behavior, but overall it is complete for a simple lookup tool.

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

Parameters3/5

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

The schema already describes both parameters ('The dataset containing the entry' and 'The identifier to look up'); the description's syntax line adds a concrete example but no additional semantic depth. With 100% schema coverage, the baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with 'Get full details for one identifier,' clearly stating the tool's action and target. The 'USE FOR' list expands on this with specific use cases (attributes, filterable fields, detailed info, connections). While it doesn't explicitly differentiate from siblings, the purpose is unambiguous and distinct from search/map/atlas.

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

Usage Guidelines4/5

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

The 'USE FOR' section provides explicit use cases for when to employ this tool, such as seeing all attributes or discovering xref connections. However, it does not mention when to avoid this tool or name alternative tools like 'biobtree_search' for when the identifier is unknown.

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

biobtree_mapAInspect

Map identifiers between databases.

SYNTAX: biobtree_map(terms="ID", chain=">>source>>target")

  • Chain MUST start with ">>"

  • Source MUST match input ID type

ID TYPE → SOURCE:

  • ENSG* → >>ensembl

  • P*/Q*/O* → >>uniprot

  • CHEMBL* → >>chembl_molecule

  • GO:* → >>go

  • MONDO:* → >>mondo

  • HP:* → >>hpo

  • HGNC:* or gene symbols → >>hgnc

SOME DRUG EXPLORATION PATHS:

  • chembl_molecule>>chembl_target>>uniprot (drug targets)

  • pubchem>>pubchem_activity>>uniprot (bioactivity)

  • gtopdb_ligand>>gtopdb_interaction>>gtopdb>>uniprot (curated pharmacology with affinity data)

  • ensembl>>reactome>>chebi (pathway chemicals - when no direct targets)

  • Discover more via entry xrefs + EDGES

WARNING - GO terms with high xref_count (>100):

  • Don't map GO → proteins → drugs (too many results)

  • Instead: search drug class for condition → verify targets this GO term

DISEASE GENE PATTERNS:

  • mondo>>gencc>>hgnc (curated)

  • mondo>>clinvar>>hgnc (variant-based)

  • hgnc>>clingen_gene_validity (ClinGen evidence tier), >>hgnc>>clingen_dosage (haploinsufficiency), >>hgnc>>clingen_variant>>clinvar (ACMG, then dbsnp)

CANCER / CELL LINE:

  • hgnc>>intogen (cancer driver gene?), >>hgnc>>civic (clinical variant interpretations)

  • uniprot>>cellosaurus (cell lines for a protein/gene)

  • hgnc>>depmap (CRISPR essentiality / target tractability), >>hgnc>>entrez>>depmap_dependency>>cellosaurus (which lines depend on the gene)

GENE FUNCTION / LITERATURE:

  • entrez>>generif (cited one-line functional claims; >>generif>>pubmed for citations)

DISEASE → DRUG PATTERNS:

  • mesh>>chembl_molecule (MeSH disease/condition → drugs with indications)

  • mondo>>clinical_trials>>chembl_molecule (disease → trial drugs)

DISCOVERY APPROACH:

  • Use biobtree_entry to see xrefs (what's connected)

  • Use EDGES above to see where each dataset leads

  • Build chains based on what connections exist for YOUR entity

RETURNS: mapped identifiers with dataset and name

EDGES (what connects to what): ensembl: uniprot, go, transcript, exon, ortholog, paralog, hgnc, entrez, refseq, bgee, gwas, gencc, antibody, scxa, civic, intogen, hpa, hpa_antibody, pharmgkb_var_annotation, chembl_mechanism, ncrna_disease, ncrna_interaction, ncrna_drug, alliance_disease, gnomad_constraint, drugcentral, panelapp_gene hgnc: ensembl, uniprot, entrez, gencc, pharmgkb_gene, msigdb, clinvar, mim, refseq, alphafold, collectri, gwas, hpo, cellphonedb, civic, intogen, cellosaurus, clingen_gene_validity, clingen_dosage, clingen_variant, depmap, hpa, pharmgkb_var_annotation, chembl_mechanism, ncrna_disease, ncrna_interaction, ncrna_drug, alliance_disease, drugcentral, panelapp_gene, gnomad_constraint, mavedb entrez: ensembl, uniprot, refseq, go, biogrid, pubchem_activity, ctd_gene_interaction, dbsnp, civic, intogen, clingen_dosage, generif, depmap, depmap_dependency, hpa, pharmgkb_var_annotation, orthologentrez, relatedentrez, neighborentrez, mgi, rgd, zfin, wormbase, xenbase, sgd, flybase, gnomad_constraint, drugcentral orthologentrez: entrez # cross-species gene orthologs (NCBI gene_orthologs). >>entrez>>orthologentrez gives ortholog genes (filter species via taxonomy); reliable from model-organism genes (human-gene side currently incomplete) relatedentrez: entrez # related genes (bidirectional): NCBI gene_group (functional gene/pseudogene/readthrough/region) + HGNC gene-family co-members neighborentrez: entrez # genomic neighbors (left/right/overlapping); edge carries distance + side, neighbor strand/position in attrs; filter to genes via [type!="biological-region"] gnomad_constraint: ensembl, entrez, hgnc, transcript # gene LoF constraint (pLI/LOEUF/oe_lof); reach via >>ensembl>>gnomad_constraint drugcentral: chembl_molecule, pubchem, uniprot, ensembl, hgnc, entrez # approved drugs -> targets/MOA + FDA/EMA/PMDA approval; reach via name/INN/InChIKey or compound (chembl_molecule/pubchem >> drugcentral) refseq: ensembl, entrez, taxonomy, ccds, uniprot, mirdb mirdb: refseq transcript: ensembl, exon, ufeature, alphamissense, civic_variant, gnomad_constraint, mavedb uniprot: ensembl, alphafold, interpro, pfam, pdb, ufeature, intact, string, string_interaction, biogrid, biogrid_interaction, chembl_target, go, reactome, rhea, swisslipids, bindingdb, antibody, pubchem_activity, cellphonedb, jaspar, signor, diamond_similarity, esm2_similarity, alphamissense, cellosaurus, hpa, chembl_mechanism, ncrna_interaction, drugcentral, mavedb alphafold: uniprot interpro: uniprot, go, interproparent, interprochild chembl_molecule: mesh, chembl_activity, chembl_target, pubchem, chebi, clinical_trials, chembl_moleculeparent, chembl_moleculechild, chembl_mechanism, ncrna_drug, faers, drugcentral # parent=anhydrous/parent form, child=salt forms chembl_activity: chembl_molecule, chembl_assay, bao chembl_assay: chembl_activity, chembl_target, chembl_document, bao chembl_target: chembl_assay, uniprot, chembl_molecule, chembl_mechanism chembl_mechanism: chembl_molecule, chembl_target, uniprot, hgnc, ensembl # curated drug mechanism-of-action (incl. RNA therapeutics): drug >> chembl_mechanism, target/gene >> chembl_mechanism pubchem: chembl_molecule, chebi, hmdb, pubchem_activity, pubmed, patent_compound, bindingdb, ctd, pharmgkb, ncrna_drug, faers, drugcentral faers: chembl_molecule, pubchem, faers_reaction # openFDA FAERS drug->adverse-event; faers (per-drug master) -> faers_reaction children (PRR), reach via drug name or compound. NOTE co-occurrence not causation faers_reaction: faers # one per (drug,reaction): report_count, prr, serious_count, outcome; most-reported first pubchem_activity: pubchem, ensembl, uniprot chebi: pubchem, rhea, intact swisslipids: uniprot, go, chebi, uberon, cl lipidmaps: chebi, pubchem dbsnp: entrez, clinvar, pharmgkb_variant, alphamissense, spliceai, pharmgkb_var_annotation clinvar: hgnc, mondo, hpo, dbsnp, orphanet, civic_variant, cellosaurus, clingen_variant alphamissense: uniprot, transcript mavedb: uniprot, hgnc, ensembl, transcript # deep-mutational-scanning functional variant scores (ACMG PS3/BS3); reach via gene/protein >> mavedb; per-variant score + hgvs_pro + license

VARIANT-EFFECT SCORES — look up by the variant's OWN key with biobtree_entry(dataset=..), NOT via >>chains:

conservation key "chr:pos" (GRCh38) per-position phyloP / GERP / phastCons (also covers non-missense/splice positions)

gnomad_variant key "chr:pos:ref:alt" (GRCh38) gnomAD v4.1 genomes allele freq (af, grpmax, per-ancestry); also xrefs dbsnp

revel key "chr:pos:ref:alt" (GRCh38) REVEL ensemble missense pathogenicity (0-1, higher = pathogenic)

saprot key "uniprot:protein_variant" SaProt protein-LM variant effect (LLR <=0, lower = more damaging), e.g. P01116:G12D

gwas: gwas_study, efo, dbsnp, hgnc, mondo gwas_study: gwas, efo, mondo mondo: gencc, clinvar, efo, mesh, hpo, clinical_trials, antibody, cellxgene, cellxgene_celltype, orphanet, mondoparent, mondochild, gwas, gwas_study, civic, intogen, cellosaurus, doid, mim, ncit, umls, medgen, gard, sctid, icd9, icd10cm, icd10who, icd11, nando, meddra, nord, uberon, ncrna_disease, panelapp_gene # disease cross-refs + disease_has_location anatomy, from the Mondo OBO doid: mondo, alliance_disease, doidparent, doidchild # Disease Ontology (now a full ontology w/ hierarchy); reach MONDO + its disease graph via the mondo<->doid bridge alliance_disease: hgnc, mgi, rgd, zfin, sgd, wormbase, flybase, xenbase, doid, pubmed # cross-species + human gene->disease (Alliance of Genome Resources); gene >> alliance_disease >> doid, or doid >> alliance_disease >> mgi/rgd/... for model-organism genes alliance_phenotype: mgi, rgd, wormbase, xenbase, mp, wbphenotype, xpo, pubmed # model-organism gene -> OBSERVED knockout/mutant phenotypes (distinct from the upheno ontology-translation path). Reach from the model-organism gene directly: mgi/rgd/wormbase/xenbase >> alliance_phenotype >> mp gencc: mondo, hpo, hgnc, ensembl clingen_gene_validity: hgnc, entrez, ensembl, mondo # ClinGen gene-disease validity tier (Definitive..Refuted) + MOI clingen_dosage: entrez, hgnc, ensembl, mondo, mim, pubmed # ClinGen haploinsufficiency/triplosensitivity per gene clingen_variant: clinvar, hgnc, entrez, ensembl, mondo, pubmed # ClinGen VCEP ACMG variant pathogenicity (clinvar bridges to dbsnp) panelapp: panelapp_gene # Genomics England clinical gene panels (per-panel master); panel >> panelapp_gene >> hgnc for the panel's genes panelapp_gene: panelapp, hgnc, ensembl, mim, mondo # one per (panel,gene), green/amber confidence + mode-of-inheritance; a gene's panels via >>hgnc (panelapp_gene) ; the panel's disease via mondo/mim clinical_trials: mondo, chembl_molecule pharmgkb: hgnc, dbsnp, mesh, pharmgkb_gene, pharmgkb_variant, pharmgkb_clinical, pharmgkb_guideline, pharmgkb_pathway pharmgkb_variant: pharmgkb_clinical, hgnc, mesh, dbsnp pharmgkb_gene: hgnc, entrez, ensembl, pharmgkb pharmgkb_clinical: dbsnp, hgnc, mesh, pharmgkb_variant, pharmgkb # pharmgkb = reverse drug→clinical edge (drug >> pharmgkb >> pharmgkb_clinical) pharmgkb_guideline: hgnc, pharmgkb pharmgkb_pathway: hgnc, pharmgkb pharmgkb_var_annotation: hgnc, entrez, ensembl, dbsnp, pubmed # per-publication variant-annotation evidence (finding sentence, PMID, significance, study stats) beneath pharmgkb_clinical; reach via gene or rsID ctd: mesh, ctd_gene_interaction, ctd_disease_association, pubchem ctd_gene_interaction: ctd, entrez, taxonomy, pubmed ctd_disease_association: ctd, mesh, mim, pubmed intact: uniprot, chebi, rnacentral string: uniprot, string_interaction string_interaction: string, uniprot biogrid: entrez, uniprot, refseq, taxonomy bgee: ensembl, uberon, cl, taxonomy, bgee_evidence bgee_evidence: bgee, uberon, cl cellxgene: cl, uberon, mondo, efo, taxonomy cellxgene_celltype: cl, uberon, mondo scxa: cl, uberon, taxonomy, ensembl, scxa_gene_experiment scxa_expression: ensembl, scxa, scxa_gene_experiment scxa_gene_experiment: ensembl, scxa, scxa_expression, cl hpa: ensembl, uniprot, hgnc, entrez, go, uberon, hpa_expression, hpa_pathology, hpa_antibody # Human Protein Atlas gene card: subcellular location (→go), specificity calls, top tissues hpa_expression: hpa, uberon, cellosaurus # per (gene,tissue/cell-line) RNA nTPM + IHC staining; reach genes-in-a-tissue via uberon >> hpa_expression hpa_pathology: hpa # per (gene,cancer) prognostic survival association hpa_antibody: hpa, ensembl # HPA validation antibody (reliability, antigen) rnacentral: uniprot, ensembl, intact, hgnc, refseq, ena, go # go = Rfam-projected GO annotations; rfam_id/rfam_description are attrs on the entry ncrna_disease: hgnc, ensembl, mondo, efo, pubmed # curated ncRNA->disease (LncRNADisease + HMDD); reach from the ncRNA gene ncrna_interaction: hgnc, ensembl, uniprot, pubmed # experimentally-supported ncRNA->protein interactions (NPInter) ncrna_drug: hgnc, ensembl, chembl_molecule, pubchem, pubmed # ncRNA drug-resistance / drug-target (ncRNADrug) reactome: ensembl, uniprot, chebi, go, reactomeparent, reactomechild rhea: chebi, uniprot, go go: ensembl, uniprot, reactome, msigdb, swisslipids, bgee, interpro, goparent, gochild, hpa, rnacentral hpo: clinvar, gencc, mondo, msigdb, orphanet, mim, hmdb, hgnc, hpoparent, hpochild, upheno efo: gwas, mondo, cellxgene, efoparent, efochild, ncrna_disease upheno: hpo, mp, zp, xpo, wbphenotype, fypo, uphenoparent, uphenochild # cross-species phenotype hub. A GENE's model-organism phenotypes are reached THROUGH hpo (genes are NOT linked directly to mp/upheno): >>hgnc>>hpo>>upheno>>mp (mouse), >>hgnc>>hpo>>upheno>>zp (zebrafish), ...>>xpo/wbphenotype/fypo. So gene->human HP phenotypes -> their cross-species equivalents. mp: upheno, mpparent, mpchild, alliance_phenotype # Mammalian Phenotype Ontology (mouse/rat). Reach from a gene via >>hgnc>>hpo>>upheno>>mp (NOT >>hgnc>>mp); observed model phenotypes via alliance_phenotype. zp: upheno, zpparent, zpchild # Zebrafish Phenotype Ontology. Reach from a gene via >>hgnc>>hpo>>upheno>>zp. xpo: upheno, xpoparent, xpochild, alliance_phenotype # Xenopus Phenotype Ontology wbphenotype: upheno, wbphenotypeparent, wbphenotypechild, alliance_phenotype # C. elegans Phenotype Ontology fypo: upheno, fypoparent, fypochild # Fission Yeast Phenotype Ontology uberon: bgee, cellxgene, cellxgene_celltype, swisslipids, uberonparent, uberonchild, hpa, hpa_expression cl: bgee, cellxgene, cellxgene_celltype, scxa, scxa_gene_experiment, clparent, clchild taxonomy: ensembl, uniprot, bgee, biogrid, ctd_gene_interaction, taxparent, taxchild mesh: pharmgkb, ctd, ctd_disease_association, pubchem, mondo, chembl_molecule, meshparent, meshchild eco: ecoparent, ecochild antibody: ensembl, uniprot, mondo, pdb msigdb: hgnc, entrez, go, hpo orphanet: hpo, uniprot, mondo, hgnc, clinvar, mim, mesh mim: clinvar, hpo, mondo, uniprot, ctd_disease_association, panelapp_gene hmdb: pubchem, hpo, chebi, uniprot collectri: hgnc # transcription factor → target gene interactions esm2_similarity: uniprot # protein structural similarity diamond_similarity: uniprot # protein sequence similarity cellphonedb: uniprot, ensembl, hgnc, pubmed # ligand-receptor pairs for cell-cell communication spliceai: hgnc pdb: uniprot, go, interpro, pfam, taxonomy, pubmed fantom5_promoter: ensembl, hgnc, entrez, uniprot, uberon, cl fantom5_enhancer: ensembl, uberon, cl fantom5_gene: ensembl, hgnc, entrez jaspar: uniprot, pubmed, taxonomy encode_ccre: taxonomy bao: chembl_activity, chembl_assay, baoparent, baochild brenda: uniprot, pubmed, brenda_kinetics, brenda_inhibitor brenda_kinetics: brenda brenda_inhibitor: brenda gtopdb: uniprot, hgnc, gtopdb_ligand, gtopdb_interaction # drug targets (GPCRs, ion channels, enzymes) gtopdb_ligand: pubchem, chebi, chembl_molecule, gtopdb_interaction # ligands/drugs with binding data gtopdb_interaction: gtopdb, gtopdb_ligand, pubmed # target-ligand binding with affinity values civic: entrez, ensembl, civic_variant, civic_evidence, civic_assertion # clinical interpretation of cancer variants civic_variant: civic, clinvar, civic_evidence, civic_assertion, transcript civic_evidence: civic_variant, civic, mondo, chembl_molecule, pubmed, clinical_trials civic_assertion: civic_variant, civic, mondo, chembl_molecule intogen: hgnc, entrez, ensembl, mondo, pubmed # cancer driver genes cellosaurus: taxonomy, uniprot, hgnc, mondo, orphanet, clinvar, dbsnp, uberon, cl, chebi, doi, patent, pubmed, depmap_dependency, hpa_expression # cell lines (CVCL) generif: entrez, pubmed # NCBI cited per-gene functional claims (RAG grounding) depmap: entrez, hgnc, ensembl # CRISPR gene essentiality aggregate (cancer dependency / target tractability) depmap_dependency: entrez, cellosaurus # per cell-line gene dependency (effect < -0.5)

FILTER SYNTAX: >>dataset[field operator value]

OPERATORS: == equals >>dataset[field=="value"] != not equals >>dataset[field!="value"]

   greater than     >>dataset[field>value]

< less than >>dataset[field<value]

= greater or equal >>dataset[field>=value] <= less or equal >>dataset[field<=value] contains string match >>dataset[field.contains("value")]

LOGICAL OPERATORS: && AND >>dataset[field1>5 && field2<10] || OR >>dataset[field=="A" || field=="B"] ! NOT >>dataset[!field] or >>dataset[!(field=="value")]

TYPE RULES:

  • FLOAT: use decimal point (70.0 not 70)

  • INT: no decimal (2 not 2.0)

  • STRING: quote values ("Pathogenic", "PHASE3")

  • BOOL: true/false (no quotes)

EXAMPLES:

chembl_molecule[highestDevelopmentPhase==4] # approved drugs chembl_molecule[highestDevelopmentPhase>=3] # Phase 3+ clinical_trials[phase=="PHASE3"] go[type=="biological_process"] clinvar[germline_classification=="Pathogenic"] reactome[name.contains("signaling")] gtopdb[type=="gpcr"] # GPCR targets gtopdb[type=="ion_channel"] # ion channel targets gtopdb_ligand[approved==true] # approved drugs only gtopdb_interaction[endogenous==true] # endogenous ligand interactions

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPagination token
chainYesMapping chain (e.g., >>ensembl>>uniprot)
termsYesComma-separated identifiers to map
Behavior5/5

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

With no annotations, the description carries full behavioral burden. It details strict syntax requirements ('Chain MUST start with >>'), warns about large result sets (GO >100 xrefs), explains the discovery workflow, and states the return format ('mapped identifiers with dataset and name'). It even warns about relationship semantics like co-occurrence not causation for FAERS.

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

Conciseness4/5

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

The description is exceptionally long, but it is well-structured with headers and each section (SYNTAX, EDGES, FILTER SYNTAX, EXAMPLES) carries high-value information. It is not concise, but the complexity of the tool justifies the length, and key info is front-loaded.

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

Completeness5/5

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

Given the tool's high complexity (3 params, no output schema, many possible edge chains), the description is remarkably complete. It covers the input format, ID mapping rules, all edge types, filter syntax, type rules, examples, and behavioral warnings, fully equipping an agent to invoke the tool correctly.

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

Parameters5/5

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

Although schema descriptions are present (100% coverage), the description massively enriches parameter understanding. It explains what terms look like ('ENSG*', 'P*/Q*/O*', etc.) and provides a complete filter syntax and operator guide for the chain parameter, far beyond the schema's one-line example.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with 'Map identifiers between databases' and immediately provides the SYNTAX with clear examples. It distinguishes itself from sibling tools like biobtree_entry by explaining that entry is for viewing xrefs, while map is for chaining connections.

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

Usage Guidelines5/5

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

The description gives explicit when-to-use guidance through example chains for drug exploration, disease-gene patterns, cancer/cell-line, etc. It also provides exclusions like the GO terms warning ('Don't map GO → proteins → drugs'), and recommends alternatives (e.g., 'use biobtree_entry to see xrefs').

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

Discussions

No comments yet. Be the first to start the discussion!

Related MCP Servers

  • A
    license
    A
    quality
    A
    maintenance
    GTM signal intelligence suite for AI agents. Six tools: hiring signals, tech stack detection, company-to-LinkedIn resolution, ICP scoring, job board scanning, and a combined signals aggregator. Built for outbound sales workflows.
    11
    737
    1
    MIT
  • F
    license
    -
    quality
    C
    maintenance
    Browse IndustryLens's published competitive-intelligence reports and head-to-head competitor comparisons from any AI agent — real, source-backed data.

View all MCP Servers

Try in Browser

Your Connectors

Sign in to create a connector for this server.

Resources