Skip to main content
Glama

Quickstart β€’ Architecture Guide β€’ API Reference β€’ Roadmap β€’ Citation


🧬 What is BioContext?

Biological nomenclature is notoriously messy: historical aliases, deprecated identifiers, non-standard spelling, and taxon confusions (e.g., HER2 $\rightarrow$ ERBB2, p53 $\rightarrow$ TP53, p27 $\rightarrow$ CDKN1B, Trp53 in mouse vs. TP53 in human). When LLMs or naive API wrappers directly query downstream clinical/genomic endpoints, these ambiguities cause zero-hit failures, mismatched literature, or clinical false positives.

BioContext solves this fundamentally by providing a Deterministic Entity Disambiguation and Contextual Intelligence Engine. Instead of raw pass-through search, BioContext resolves messy user inputs into canonical reference standards with explicit confidence scores, persistent caching, and explainable audit trails before traversing downstream pathways and functional annotations.


Related MCP server: GenomeMCP

✨ Key Capabilities

  • Multi-Authority Resolution Hierarchy:

    • Human Genes (HGNC Primary): Direct symbol resolution and historical alias traversal with protein-coding prioritization (e.g., HER2 $\rightarrow$ ERBB2, p16 $\rightarrow$ CDKN2A, p21 $\rightarrow$ CDKN1A).

    • NCBI Entrez Integration: Direct Entrez Gene ID lookup (7157 $\rightarrow$ TP53) and cross-species identifier translation.

    • UniProtKB Mapping: Direct accession resolution (P04637 $\rightarrow$ TP53) and protein structural metadata enrichment.

    • Ensembl Genome & Transcripts: Ensembl Gene ID resolution, transcript mapping, canonical identification, and cross-species orthology.

    • Mouse Genome Informatics (MGI): Direct MGI ID resolution (MGI:98834 $\rightarrow$ Trp53) and mouse gene models.

  • Systems Biology & Functional Intelligence:

    • Gene Ontology (QuickGO): Automated functional annotation enrichment (Molecular Functions, Biological Processes, Cellular Components) with evidence codes and ECO mappings.

    • Reactome Pathways: Systems-level mechanism mapping, hierarchical pathway structures, and pathway summations.

  • High-Throughput Batch Engine:

    • Concurrent batch resolution bounded by asyncio.Semaphore with strict rate-limiting compliance.

    • Dual output modes: Interactive terminal stdout or formatted CSV exports.

    • Auto-detecting CSV/TSV input parser.

  • Production-Grade Persistence & Reliability:

    • Embedded SQLite cache with Write-Ahead Logging (WAL) and configurable TTL to minimize latency and eliminate redundant network calls.

    • Exponential backoff, jitter, and graceful degradation for resilient uptime.

  • Zero-Hallucination Guarantee:

    • Every resolution result includes exact matching rules, confidence scores ($0.0 - 1.0$), and authoritative source citations. No imaginary biological data.

  • Model Context Protocol (MCP):

    • Native stdio server compliant with MCP 2.x for instant connection to Cursor, Antigravity IDE, Claude Desktop, Claude Code, and Goose.


πŸš€ Quickstart & Installation

BioContext is distributed via PyPI as biocontext-mcp.

Installation

# Using pip
pip install biocontext-mcp

# Using uv (Recommended for isolated CLI tool usage)
uv tool install biocontext-mcp

Zero-Install AI Assistant Integration (MCP)

To connect BioContext directly to Cursor, Antigravity IDE, or Claude Desktop, add the following snippet to your editor's mcpServers configuration:

{
  "mcpServers": {
    "biocontext": {
      "command": "uvx",
      "args": ["biocontext-mcp", "serve"]
    }
  }
}
  • For step-by-step setup guides across Claude Desktop, Cursor, Antigravity IDE, Claude Code, and Goose, see docs/QUICKSTART.md.

  • For containerized microservice execution, see Docker Setup:

    docker run -i --rm -v biocontext_cache:/data ghcr.io/core-lab-research/biocontext:latest

πŸ› οΈ Command-Line Interface (CLI)

BioContext includes an interactive CLI for testing, terminal research, and workflow automation:

# 1. Resolve a gene symbol, historical alias, or database ID
biocontext resolve TP53
biocontext resolve HER2       # Resolves to ERBB2 (confidence 0.95)
biocontext resolve 7157       # Entrez Gene ID
biocontext resolve P04637     # UniProtKB primary accession

# 2. Genomic disambiguation using chromosome or locus hints
biocontext resolve TP53 --chrom 17 --locus-type protein-coding

# 3. Model organism resolution (e.g. Mus musculus - taxon 10090)
biocontext resolve Trp53 --taxon 10090
biocontext mouse MGI:98834

# 4. High-throughput concurrent batch resolution
biocontext batch TP53 EGFR BRCA1 KRAS BRAF
biocontext batch --file gene_list.csv --output results.csv --concurrency 8

# 5. Functional Gene Ontology enrichment
biocontext annotate TP53 --limit 5
biocontext go GO:0006915

# 6. Reactome biological pathway retrieval
biocontext pathway TP53
biocontext pathway-info R-HSA-5357801

# 7. Local persistent cache inspection
biocontext cache stats
biocontext cache clear

πŸ”Œ Available MCP Tools

When connected via MCP, BioContext exposes 12 production-ready biological, clinical & literature tools:

MCP Tool

Signature & Parameters

Description

resolve_gene

query: str, taxon_id: int = 9606, chromosome: str = None, locus_type: str = None

Resolves symbols, aliases, Entrez IDs, UniProt accessions, or MGI IDs with contextual scoring adjustments.

batch_resolve_genes

queries: list[str], taxon_id: int = 9606, concurrency: int = 5

High-throughput concurrent resolution engine with execution metrics.

get_protein

accession: str

Retrieves structured protein metadata from UniProtKB by primary accession (e.g. P04637).

annotate_function

query: str, taxon_id: int = 9606, aspect: str = None, limit: int = 10

Fetches Gene Ontology terms with evidence codes from EMBL-EBI QuickGO.

get_go_term

go_id: str

Inspects a specific Gene Ontology term definition and aspect.

get_pathways

query: str, taxon_id: int = 9606, species: str = "Homo sapiens", limit: int = 10

Maps genes/proteins to biological pathways via Reactome.

get_pathway_details

st_id: str

Retrieves descriptive summary and metadata for a Reactome pathway.

resolve_disease

query: str, limit: int = 5

Resolves disease names, synonyms, or IDs to canonical MONDO Disease Ontology entities.

get_target_diseases

gene: str, limit: int = 10

Retrieves evidence-backed therapeutic target-disease associations from Open Targets Platform.

get_supporting_publications

query: str, limit: int = 5

Retrieves peer-reviewed supporting scientific publications and citations from Europe PMC / PubMed.

get_publication_details

identifier: str

Fetches detailed publication metadata, abstract, and citation counts by PMID, PMCID, or DOI.

get_mouse_gene

mgi_id: str

Direct lookup of mouse gene models from MGI.


πŸ“Š Empirical Accuracy Benchmark

BioContext is deterministically validated against a curated biological test suite covering human cancer drivers, clinical aliases, protein accessions, and model organisms:

uv run pytest tests/test_benchmark.py -v
  • Accuracy: 100% Pass Rate across 100 benchmark cases.

  • Test Suite: 130 passed, 5 skipped (due to external Ensembl REST service migration).

  • Multi-Layer Pipeline: End-to-end integration verified in tests/test_e2e_pipeline.py (Entity Disambiguation $\rightarrow$ QuickGO Functional Annotations $\rightarrow$ Reactome Pathways).


πŸ—ΊοΈ Roadmap & Phase Evolution

BioContext follows a strict, data-driven evolution roadmap:

  • Phase 1 (v0.5.0 - Completed & Released): Core molecular adapters (HGNC, NCBI, UniProt, Ensembl, MGI, GO, Reactome), SQLite caching, 100 passing benchmark test cases.

  • Phase 1.5 (v0.5.1 β†’ v0.7.0 - In Progress): Disease & clinical grounding (MONDO Disease Ontology, Open Targets Platform, PubMed / Europe PMC literature intelligence).

  • Phase 2 (v0.8.0 β†’ v1.0.0 - Production GA): Ontological Knowledge Graph foundation, multi-hop relationship traversal, FastMCP hardening, and public REST API v1.

  • Phase 2.5 (v1.1.0 β†’ v1.7.0 - Systematic Expansion): Ingestion of 57 curated biomedical sources across 7 functional categories (ClinVar, CTGov v2, ChEMBL, PubTator3, cBioPortal, CPIC, etc. β€” specified in PRD-35).

  • Phase 3 (v2.0.0 - Clinical & Translational AI): Autonomous Clinical Reasoning, automated variant pathogenicity interpretation, biomarker actionability matching, and in silico hypothesis synthesis.

Read the full roadmap at PRD/ROADMAP.md.


πŸ“š Documentation & Developer Resources


πŸ“„ Citation

If you use BioContext in your scientific research or software workflows, please cite:

@software{nandatama2026biocontext,
  author       = {Nandatama, Engki},
  title        = {BioContext: Authoritative Biological Entity Resolution & Contextual Intelligence Framework},
  month        = sep,
  year         = 2026,
  publisher    = {Zenodo},
  version      = {v0.5.0},
  doi          = {10.5281/zenodo.23023948},
  url          = {https://doi.org/10.5281/zenodo.23023948}
}

Or reference CITATION.cff.


βš–οΈ License

Distributed under the Apache License, Version 2.0.

Available Tools

16 tools
annotate_functionA

Fetch Gene Ontology functional annotations (MF, BP, CC) for a gene or protein.

Args: query: Gene symbol (e.g. 'TP53'), alias, or UniProt accession (e.g. 'P04637'). taxon_id: NCBI Taxonomy ID (default: 9606 for human). aspect: Optional filter: 'molecular_function', 'biological_process', or 'cellular_component'. limit: Maximum number of annotations per aspect (default: 25).

Returns: JSON string containing the functional profile structured into MF, BP, and CC with evidence codes.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
queryYes
aspectNo
taxon_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior3/5

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

With no annotations present, the description carries the full burden. 'Fetch' implies read-only and it discloses the return shape (MF/BP/CC JSON with evidence codes), which is useful, but it says nothing about rate limits, authentication, network/API dependencies, or behavior when the gene is unknown.

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?

Front-loaded purpose sentence followed by compact Args/Returns blocks; every line adds information. Slightly bulky for a simple fetch, but no filler.

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?

An output schema exists, so the Returns section is redundant but harmless. All four parameters are explained despite 0% schema coverage, and the aspect filter values are spelled out. The only real gap is the absence of usage routing against the many sibling finder/lookup tools.

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

Parameters4/5

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

Schema description coverage is 0%, so the description must compensate, and it largely does: it explains query accepts a symbol, alias, or UniProt accession with concrete examples, gives the default for taxon_id (9606), enumerates the three valid aspect values, and defines limit as 'maximum annotations per aspect'. This exceeds what the bare schema provides.

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

Purpose4/5

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

States a specific verb and resource ('Fetch Gene Ontology functional annotations... for a gene or protein') and scopes it to MF/BP/CC, which separates it from siblings like get_go_term (term metadata) and get_pathways. It does not name any sibling explicitly, so an agent must infer the boundary rather than being routed.

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

Usage Guidelines3/5

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

Usage is implied by the arguments (aspect filter, taxon_id, limit) rather than stated: there is no 'use this when you want X, use get_go_term when you want Y' guidance. No exclusions, no prerequisites, no mention of what to do for non-model organisms or ambiguous symbols.

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

batch_resolve_genesA

Resolve a list of gene identifiers/aliases in batch with concurrency control and performance metrics.

Args: queries: List of gene symbols or aliases (e.g. ["TP53", "HER2", "EGFR", "7157", "P04637"]). taxon_id: NCBI Taxonomy ID (default: 9606 for human). concurrency: Maximum concurrent requests (default: 10).

Returns: JSON string containing the batch resolution summary, success rate, and resolved entities.

ParametersJSON Schema
NameRequiredDescriptionDefault
queriesYes
taxon_idNo
concurrencyNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.9/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It does add useful behavioral context β€” concurrency control, performance metrics, a success rate in the return β€” which hints at partial-failure semantics. However it says nothing about rate limits, required auth, or how failed individual queries are reported.

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 one-line summary is front-loaded and the Args block is tight. The Returns section is partly redundant given an output schema exists, but it is short and states the summary/success-rate/resolved-entity shape.

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

Completeness4/5

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

For a 3-parameter tool with an output schema, the description covers inputs thoroughly and touches outcomes. The remaining gap is batch-specific failure behavior (what happens when some identifiers do not resolve), which is not addressed.

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

Parameters4/5

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

Schema description coverage is 0%, so the description must compensate, and it largely does: it documents all three parameters, explains taxon_id as an NCBI Taxonomy ID with the human default, and gives concrete query examples spanning symbols, aliases, Entrez IDs (7157) and UniProt IDs (P04637) β€” meaning the schema does not convey.

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

Purpose5/5

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

States a specific verb and resource ('resolve a list of gene identifiers/aliases in batch'), naming the batch scope that separates it from the sibling resolve_gene. An agent can route between the two without opening either schema.

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

Usage Guidelines3/5

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

Usage is implied by 'in batch' and the concurrency parameter, but there is no explicit statement of when to prefer this over resolve_gene or the other resolution siblings, nor any prerequisites. The agent must infer the batch-vs-single split.

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

build_entity_subgraphA

Construct an ontological Knowledge Subgraph centered on a biological entity (PRD-21).

Connects the seed gene across multiple biological layers:

  • Encoded proteins (UniProt)

  • Transcripts (Ensembl)

  • Reactome pathways

  • Gene Ontology terms (processes & molecular functions)

  • Disease associations with evidence scores (Open Targets)

  • Key supporting peer-reviewed publications (Europe PMC)

Args: query: Gene symbol (e.g. 'TP53', 'BRCA1', 'EGFR') or alias. taxon_id: NCBI Taxonomy ID (default: 9606 for human). include_pathways: Include Reactome pathway nodes and edges (default: True). include_go: Include Gene Ontology nodes and edges (default: True). include_diseases: Include Open Targets disease association nodes and edges (default: True). include_literature: Include Europe PMC publication nodes and edges (default: True).

Returns: JSON string representing the connected subgraph nodes, edges, weights, and provenance.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYes
taxon_idNo
include_goNo
include_diseasesNo
include_pathwaysNo
include_literatureNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.9/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It does disclose the output shape (nodes, edges, weights, provenance), which tells the agent this is a computational read rather than a mutation. However, it never states whether anything is persisted, what the relative cost/latency of the multi-source fan-out is, or how failures in one source are handled.

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?

Front-loaded purpose followed by a scannable layer list and standard Args/Returns blocks. The Args section largely restates the parameter names and repeats defaults already present in the schema, which is mild redundancy, but nothing is buried or padded.

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

Completeness4/5

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

For a six-parameter multi-source aggregation tool with an output schema present, the description covers the data provenance and each parameter's effect, so the agent knows what it will get and how to shape it. The notable gap is the absence of any runtime/cost expectation, which matters for a tool that orchestrates six external queries.

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

Parameters4/5

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

Schema description coverage is 0% and the schema carries only bare titles, so the description does the documenting work: it explains query as a gene symbol or alias with concrete examples, taxon_id as an NCBI Taxonomy ID defaulting to 9606, and states which data source each include_* flag toggles. It does not clarify how flags interact or whether disabling all of them still returns something useful.

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

Purpose5/5

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

States a specific verb (Construct) and resource (ontological Knowledge Subgraph centered on a biological entity) and enumerates exactly which layers get connected (UniProt proteins, Ensembl transcripts, Reactome pathways, GO terms, Open Targets diseases, Europe PMC literature). This distinguishes it from siblings like traverse_biological_graph or get_pathways, which retrieve slices rather than assemble a multi-layer subgraph.

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

Usage Guidelines3/5

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

Usage is implied by the layer list, but there is no explicit statement of when to use this aggregate builder versus the many narrower siblings (traverse_biological_graph, get_pathways, get_target_diseases, get_supporting_publications). No preconditions, no cost/latency warning despite this clearly fanning out to six external sources, and no exclusions.

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

find_orthologsA

Identify corresponding orthologous genes across species via Ensembl.

Args: query: Gene symbol (e.g. TP53) or Ensembl Gene ID (e.g. ENSG00000141510). target_species: Target species (default: 'mus_musculus', 'danio_rerio', etc.). source_species: Source species (default: 'homo_sapiens').

Returns: JSON string containing list of orthologous genes with identity and relation type.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYes
source_speciesNohomo_sapiens
target_speciesNomus_musculus

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.9/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full behavioral burden. It does disclose the upstream source (Ensembl) and the shape of the result (identity and relation type), but says nothing about whether the call is read-only (it is), authentication requirements, error behavior for unknown genes, or rate limits.

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?

Front-loaded purpose sentence followed by clean Args/Returns structure; nothing is padded. Minor redundancy in restating schema defaults and return values that the output schema already covers.

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

Completeness4/5

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

For a 3-parameter read tool with an output schema and no annotations, the description covers purpose, all parameters, and return semantics. What is missing is workflow guidance (when this beats resolve_gene) and failure/edge-case behavior for unrecognized gene symbols or species.

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

Parameters4/5

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

Schema description coverage is 0%, so the description must compensate, and it largely does: it explains query accepts either a gene symbol or Ensembl Gene ID with examples for both, and documents both species parameters with their defaults and example values ('mus_musculus', 'danio_rerio'). It stops short of defining the accepted naming convention or the full species list.

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

Purpose5/5

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

States a specific verb and resource ('Identify corresponding orthologous genes across species') plus the data source ('via Ensembl'). This is clearly distinct from every sibling (resolve_gene, get_transcripts, get_mouse_gene), so an agent can select it without opening the schema.

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

Usage Guidelines3/5

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

Usage is implied by the documented defaults (source homo_sapiens -> target mus_musculus), which telegraphs the typical cross-species lookup. However, there is no explicit when-to-use, when-not, or naming of alternatives such as resolve_gene or get_mouse_gene.

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

get_go_termB

Fetch metadata and functional definition for a Gene Ontology (GO) term ID.

Args: go_id: Gene Ontology identifier (e.g. 'GO:0006915').

Returns: JSON string containing term name, definition, aspect, and synonyms.

ParametersJSON Schema
NameRequiredDescriptionDefault
go_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.4/5.0
Behavior3/5

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

No annotations are provided, so the description carries the disclosure burden. 'Fetch' and the Returns section imply a safe read-only lookup with no side effects, but it does not state behavior on invalid/nonexistent GO IDs or any rate limits. Adequate but thin for a tool with zero annotation coverage.

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?

Front-loaded one-line purpose followed by compact Args/Returns sections; no wasted prose. The Returns block partially duplicates the output schema, but it is short and harmless.

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

Completeness4/5

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

For a single-parameter read lookup with an output schema, the definition covers purpose, argument format, and anticipated return content. The main gap is the absence of any usage routing against the numerous sibling tools, which is a moderate shortfall rather than a critical one.

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

Parameters4/5

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

Schema description coverage is 0% and the schema gives only a bare 'Go Id' string, so the description must compensate. It does so by naming the parameter, specifying its meaning ('Gene Ontology identifier'), and giving a concrete format example ('GO:0006915'). This meaningfully exceeds the schema.

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

Purpose4/5

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

States a specific verb ('Fetch') and resource ('Gene Ontology (GO) term ID') with the kind of data returned (metadata and functional definition). This clearly separates it from the many gene/pathway/publication siblings, which operate on different resources.

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

Usage Guidelines2/5

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

There is no guidance on when to use this tool versus alternatives such as get_pathway_details or annotate_function, and no mention of prerequisites or when it should not be used. The agent must infer usage purely from the resource name.

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

get_mouse_geneA

Resolve mouse gene details and MGI identifiers (Mus musculus).

Args: query: Mouse gene symbol (e.g. 'Trp53') or MGI ID (e.g. 'MGI:98834') or Ensembl ID.

Returns: JSON string containing the resolved mouse gene entity with MGI identifier.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.5/5.0
Behavior3/5

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

With no annotations, the description carries the full behavioral burden. It discloses that this is a resolution/lookup operation returning a JSON string containing the gene entity and MGI identifier, which is the minimum viable disclosure, but says nothing about ambiguity handling, multi-match behavior, or error cases.

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?

Front-loaded purpose sentence followed by tight Args/Returns blocks with no filler. Every line carries information an agent needs, and the example values are compact and useful.

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?

An output schema exists, so return values needn't be fully explained, and the single parameter is well covered. The one real gap is guidance on when to choose this over resolve_gene or batch_resolve_genes, which for a crowded sibling set leaves an agent guessing.

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

Parameters4/5

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

Schema description coverage is 0%, so the description must compensate, and it does: it enumerates three accepted identifier forms (gene symbol like 'Trp53', MGI ID like 'MGI:98834', or Ensembl ID). This is genuinely more informative than the bare 'Query' property in the schema.

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

Purpose4/5

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

States a specific verb (resolve) and resource (mouse gene details and MGI identifiers) with an explicit species qualifier (Mus musculus), which implicitly separates it from the human-oriented resolve_gene sibling. However, it never names that sibling, so the differentiation is inferable rather than stated.

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

Usage Guidelines2/5

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

No when-to-use or when-not-to-use guidance is given. The presence of resolve_gene, find_orthologs, and batch_resolve_genes among siblings makes a routing hint valuable, and the description provides none β€” the query-format notes are input syntax, not usage context.

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

get_pathway_detailsA

Fetch detailed information for a Reactome pathway by its stable identifier.

Args: st_id: Reactome pathway stable ID (e.g. 'R-HSA-5357801' for Programmed Cell Death).

Returns: JSON string containing pathway name, species, summary text, and diagram availability.

ParametersJSON Schema
NameRequiredDescriptionDefault
st_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior3/5

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

No annotations are provided, so the description carries the burden. It implicitly signals a read-only lookup ('Fetch') and discloses the returned fields, but says nothing about missing-ID behavior, error handling, or any access constraints. Adequate for a simple single-argument read, but thin on 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.

Conciseness4/5

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

The purpose sentence is front-loaded and the Args/Returns block is compact and scannable. The Returns section is somewhat redundant given an output schema exists, but it costs little and adds no noise.

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

Completeness4/5

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

For a one-parameter read tool with an output schema present, the definition covers purpose, argument format via example, and output shape. The only meaningful gap is the absence of routing guidance relative to get_pathways, which is a minor omission at this complexity.

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

Parameters4/5

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

Schema description coverage is 0% and the single st_id property carries no description, so the description must compensate. It does: it names the parameter, defines it as a Reactome pathway stable ID, and supplies a concrete example ('R-HSA-5357801'), which is enough to format the argument correctly.

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

Purpose4/5

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

The description states a specific verb and resource: fetch detailed info for a Reactome pathway, scoped to lookup 'by its stable identifier'. That scoping implicitly separates it from the sibling get_pathways, but the alternative is never named, so the differentiation is inferred rather than stated.

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

Usage Guidelines3/5

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

Usage is only implied: the tool takes a stable ID, so an agent can infer it is for retrieving details on an already-known pathway rather than discovering one. No explicit when-to-use, when-not-to-use, or pointer to get_pathways for lookup-by-name is given.

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

get_pathwaysB

Fetch biological pathways involving a gene or protein from Reactome.

Args: query: Gene symbol (e.g. 'TP53'), alias, or UniProt accession (e.g. 'P04637'). taxon_id: NCBI Taxonomy ID (default: 9606 for human). species: Species name (default: 'Homo sapiens'). limit: Maximum number of pathways to return (default: 20).

Returns: JSON string containing the list of pathways with names, stable IDs, and Reactome links.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
queryYes
speciesNoHomo sapiens
taxon_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.4/5.0
Behavior3/5

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

No annotations are provided, so the description bears full disclosure duty. 'Fetch' implies a read-only lookup and it describes the return payload (names, stable IDs, Reactome links), which is useful. However it says nothing about rate limits, network/auth requirements, error behavior, or pagination, leaving gaps for a tool with no annotation coverage.

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?

Front-loaded with purpose, then a clean Args/Returns structure. The formatting is verbose but every line carries information; the Args block is arguably redundant with the schema, but as plain text it remains readable and scannable.

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?

An output schema exists, so a full return description is not required, yet the summary of returned fields adds orientation. For a read-only lookup with four well-documented params, the definition covers what an agent needs, with the only real gap being usage routing relative to siblings.

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

Parameters4/5

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

Schema description coverage is 0%, so the description must carry the parameter burden, and it does: it gives the query format with concrete examples ('TP53', 'P04637'), explains taxon_id as an NCBI ID with the human default, and gives defaults for species and limit. This is more than the bare schema provides.

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

Purpose4/5

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

States a specific verb and resource ('Fetch biological pathways involving a gene or protein from Reactome'), so an agent immediately knows what it does. It does not explicitly distinguish itself from the sibling get_pathway_details (which presumably takes a pathway ID rather than a gene query), so it stops short of a 5.

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

Usage Guidelines2/5

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

The description says nothing about when to use this tool versus alternatives like resolve_gene, get_pathway_details, or annotate_function. It only documents parameters and defaults, leaving the routing decision entirely to inference.

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

get_protein_infoA

Fetch structured protein details from UniProt by primary accession.

Args: accession: UniProt accession ID (e.g. P04637).

Returns: JSON string containing protein name, gene, length, mass, and organism.

ParametersJSON Schema
NameRequiredDescriptionDefault
accessionYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.6/5.0
Behavior4/5

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

With no annotations, the description carries the behavioral disclosure burden. It states the operation, the data source, and the exact JSON return shape including protein name, gene, length, mass, and organism. It does not mention error handling for invalid accessions, but for a simple read-only retriever this is a minor gap.

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 compact and well-structured with Args and Returns sections. No sentence is wasted, and the most important informationβ€”what the tool fetches and what it returnsβ€”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?

For a single-required-parameter read-only tool with an output schema available, this description is complete. It specifies the input format, gives a realistic example, and describes the returned payload, so an agent has everything needed to select and invoke it 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?

Schema coverage is 0%, but the description fully compensates by defining the parameter as a 'UniProt accession ID' and giving a concrete example (P04637). This gives an agent enough information to construct a valid call despite the schema providing no parameter documentation.

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

Purpose5/5

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

The description uses a specific verb ('Fetch') and resource ('structured protein details from UniProt by primary accession'), which clearly distinguishes it from the sibling gene-resolution tools. It also previews the returned fields, making the 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 Guidelines4/5

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

The description makes the intended use clear: provide a UniProt primary accession and receive protein details. It does not explicitly contrast with resolve_gene or batch_resolve_genes, but the 'by primary accession' phrasing and the sibling names make the appropriate context inferable.

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

get_publication_detailsA

Fetch detailed metadata for a specific scientific paper by PMID, PMCID, or DOI.

Args: identifier: Publication identifier (e.g. PMID '30514107', PMCID 'PMC6280721', or DOI '10.1038/s41586-018-0774-4').

Returns: JSON string containing full paper metadata, abstract, and direct web links.

ParametersJSON Schema
NameRequiredDescriptionDefault
identifierYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior3/5

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

With no annotations, the description carries the full behavioral burden. It partially meets that: it discloses the result shape ('JSON string containing full paper metadata, abstract, and direct web links') and that lookup is identifier-keyed, which implies a read-only operation. It says nothing about permissions, rate limits, or what happens on an unresolved identifier (error vs. empty result), so gaps remain for a zero-annotation tool.

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

Conciseness4/5

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

The core purpose is front-loaded in a single sentence, followed by compact Args/Returns blocks. Every line contributes (identifier formats, return contents), though the Returns block partially duplicates the output schema and could be trimmed without loss.

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

Completeness4/5

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

For a one-parameter, read-only lookup with an output schema present, the essentials are covered: what is fetched, which identifier formats are valid, and the rough shape of the response. The main omission is guidance relative to the overlapping publication sibling and any failure-mode behavior, which matters because no annotations exist to fill that in.

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

Parameters4/5

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

Schema description coverage is 0%, so the description must compensate, and it does: it enumerates the three accepted identifier namespaces (PMID, PMCID, DOI) with concrete example values for each. That is meaningful semantic content the bare schema ('identifier: string') does not provide. It is docked only because it does not say whether formats are mutually exclusive or how ambiguity/invalid formats are handled.

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

Purpose4/5

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

The description states a specific verb and resource ('Fetch detailed metadata for a specific scientific paper') and names the three accepted identifier types, so the agent can immediately tell this is a publication lookup rather than a gene/pathway/disease tool. It does not, however, distinguish itself from the close sibling get_supporting_publications, which also returns paper-related data.

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

Usage Guidelines3/5

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

Usage is implied rather than stated: it is clearly the tool for retrieving one specific paper given an identifier, and the inline identifier examples make invocation conditions inferable. There is no explicit when-to-use guidance, no statement of when-not to use it, and no named alternative (e.g. get_supporting_publications) for the adjacent publication-retrieval scenario.

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

get_supporting_publicationsA

Fetch authoritative supporting scientific literature from Europe PMC / PubMed.

Args: query: Gene symbol (e.g. 'TP53'), disease name, or scientific query string. limit: Maximum number of peer-reviewed publications to return (default: 5).

Returns: JSON string containing publication titles, journal, year, authors, abstract, and citation counts.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
queryYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full behavioral-disclosure burden. It discloses the data sources (Europe PMC / PubMed) and the returned fields, but it does not mention rate limits, authentication requirements, pagination, or whether the query is substring/relevance-based. For a read-only fetch tool this is adequate but not rich.

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 front-loaded with purpose and then uses clear Args/Returns sections. It is appropriately sized with almost no waste, though the Returns section is somewhat redundant because an output schema exists.

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

Completeness4/5

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

For a simple publication-search tool with an output schema, the description gives enough information to invoke it correctly: source, parameter semantics, and return content. The main gap is the lack of sibling routing guidance, particularly versus 'get_publication_details', but that is already penalized under usage guidelines.

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?

Schema description coverage is 0%, so the description must compensate, and it does: it explains that 'query' can be a gene symbol, disease name, or scientific query string, and that 'limit' is the maximum number of peer-reviewed publications to return. Both parameters are given meaning beyond the bare schema types.

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

Purpose4/5

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

The description states a specific verb ('Fetch') and resource ('authoritative supporting scientific literature from Europe PMC / PubMed'), making the tool's basic purpose clear. It does not explicitly distinguish this tool from the sibling 'get_publication_details' or explain how the two differ in granularity or use case.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives, nor does it mention any conditions, prerequisites, or exclusions. The reader must infer that it is for literature searches simply from the tool name and purpose.

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

get_target_diseasesA

Fetch evidence-backed therapeutic target-disease associations from Open Targets Platform.

Args: gene: Gene symbol (e.g. 'TP53', 'BRAF', 'EGFR') or Ensembl Gene ID ('ENSG00000141510'). limit: Maximum number of top disease associations to return (default: 10).

Returns: JSON string containing associated diseases, evidence scores (0.0-1.0), and datatype evidence breakdowns.

ParametersJSON Schema
NameRequiredDescriptionDefault
geneYes
limitNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full behavioral burden. It discloses the return shape (diseases, 0.0-1.0 evidence scores, datatype breakdowns) and the read-only nature is implied by 'Fetch', but it says nothing about permissions, rate limits, or evidence-source details.

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?

Well-structured and front-loaded, with the purpose sentence first and Args/Returns sections clearly delineated. Slightly verbose in the Args/Returns restatement but each line earns its place by covering the 0%-coverage schema.

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

Completeness4/5

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

For a 2-parameter read tool with an output schema present, this is nearly complete: it documents both params and even summarizes returns (redundant with the output schema but harmless). The only missing piece is any guidance on selection relative to sibling tools.

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?

Schema description coverage is 0%, so the description must compensate and it does: 'gene' is explained as a symbol or Ensembl Gene ID with concrete examples ('TP53', 'BRAF', 'ENSG00000141510'), and 'limit' is defined as the maximum top associations with its default. Full coverage of both parameters.

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

Purpose5/5

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

States a specific verb (Fetch) plus a precise resource (evidence-backed therapeutic target-disease associations) and names the source (Open Targets Platform). This clearly distinguishes it from siblings like get_pathways, get_go_term, and get_supporting_publications.

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

Usage Guidelines3/5

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

Usage is implied by the purpose (retrieve disease associations for a given gene), but there is no explicit when-to-use / when-not-to-use guidance and no named alternatives among the many sibling tools. Adequate but with a clear gap.

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

get_transcriptsB

Fetch transcripts, canonical isoform, and exon structures from Ensembl.

Args: query: Ensembl Gene ID (e.g. ENSG00000141510) or gene symbol (e.g. TP53). species: Species name (default: 'homo_sapiens' or 'mus_musculus').

Returns: JSON string containing gene coordinates and transcript variants with exon models.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYes
speciesNohomo_sapiens

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.3/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full behavioral burden. 'Fetch' implies a read operation, but the description does not disclose permissions, rate limits, authentication needs, or error behavior. The return information largely duplicates the output schema.

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

Conciseness5/5

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

The description is well-structured and front-loaded: one sentence states the purpose, followed by Args and Returns sections. Every sentence is useful and there is no filler.

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 a simple two-parameter fetch tool with an output schema, the description covers the purpose, both parameters, and the return shape. The main missing piece is usage context relative to sibling tools, which prevents a perfect score.

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

Parameters4/5

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

Schema description coverage is 0%, so the description must compensate, and it does: query is documented as an Ensembl Gene ID or gene symbol with examples, and species is documented with a default and example alternatives. It stops short of clarifying whether species accepts values beyond the two mentioned.

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

Purpose4/5

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

The description uses a specific verb and resource: 'Fetch transcripts, canonical isoform, and exon structures from Ensembl.' It clearly states what data is returned. However, it does not explicitly distinguish this tool from siblings such as resolve_gene or get_protein_info, so it falls short of the top score.

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

Usage Guidelines2/5

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

There is no guidance on when to use this tool versus alternatives. It lists arguments and return format but does not mention prerequisites, when-not-to-use cases, or sibling tools like resolve_gene or find_orthologs.

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

resolve_diseaseA

Resolve a disease name, synonym, or MONDO identifier against the MONDO Disease Ontology.

Args: query: Disease name (e.g. 'Li-Fraumeni syndrome', 'Breast cancer'), synonym, or ID ('MONDO:0018875'). limit: Maximum number of matches to return (default: 5).

Returns: JSON string containing the list of resolved disease entities with MONDO IDs, definitions, and cross-references.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
queryYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.9/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full behavioral burden. It discloses the return content (MONDO IDs, definitions, cross-references), but says nothing about matching behavior (exact vs fuzzy), permissions, rate limits, or what happens with zero/ambiguous matches.

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?

Front-loaded one-line purpose followed by clearly labeled Args and Returns sections; every line earns its place. Slight redundancy in restating return values that an output schema already covers.

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

Completeness4/5

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

For a two-parameter resolution tool with a required query and an existing output schema, the description gives enough to invoke correctly. It could add ambiguity-handling behavior, which is the main remaining gap.

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

Parameters4/5

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

Schema description coverage is 0%, so the description must carry parameter meaning, and it does: it explains the query accepts a name, synonym, or MONDO ID with concrete examples, and defines limit as the maximum matches with its default of 5.

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

Purpose5/5

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

States a specific verb (resolve) and resource (disease name/synonym/MONDO ID against the MONDO ontology), which clearly separates it from the gene-oriented siblings (resolve_gene, batch_resolve_genes, get_mouse_gene). An agent can distinguish it without opening the schema.

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

Usage Guidelines3/5

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

The description implies when to use it via the query semantics (name, synonym, or ID), but never states exclusions or alternatives such as when to prefer resolve_gene or batch resolution. Usage is inferable but not explicitly guided.

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

resolve_geneA

Resolve an ambiguous gene symbol, alias, or accession to an authoritative entity.

Args: query: Gene symbol (e.g. TP53), alias (e.g. HER2, p53), or accession. taxon_id: NCBI Taxonomy ID (default: 9606 for human). chromosome: Optional chromosome hint for disambiguation (e.g. '17' or 'chr17'). locus_type: Optional biotype hint (e.g. 'protein-coding', 'pseudogene').

Returns: JSON string containing the resolved canonical gene entity, cross-references, and match audit trail.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYes
taxon_idNo
chromosomeNo
locus_typeNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior3/5

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

With no annotations, the description carries the full burden of disclosing behavior. It does explain the return format (JSON string with canonical entity, cross-references, and match audit trail), but it does not describe what happens on no match, multiple ambiguous hits, or whether the operation is read-only. This is a moderate gap for an otherwise straightforward lookup tool.

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

Conciseness4/5

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

The description is front-loaded with the purpose sentence, followed by a compact Args list and Returns line. Every sentence adds useful information and there is no filler, though the structure is slightly verbose with the docstring-style sections.

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

Completeness4/5

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

Given the tool's moderate complexity, all four parameters are documented and an output schema is present, so return structure is already covered. The description lacks explicit error/edge-case behavior and sibling differentiation, but it is otherwise complete enough for an agent to call it 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?

Schema description coverage is 0%, yet the description fully compensates by adding meaning to every parameter: query examples (TP53, HER2, p53), default taxon_id with human-specific context, chromosome format examples, and locus_type biotype examples. Each parameter is more actionable than the bare schema types provide.

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 opening sentence uses a specific verb ('Resolve') and states the exact resource and ambiguity condition: gene symbols, aliases, or accessions are mapped to an authoritative entity. This clearly differentiates the tool from batch_resolve_genes (single vs batch) and get_protein_info (resolution vs protein information).

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

Usage Guidelines3/5

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

The description implies usage when a query is ambiguous and needs authoritative resolution, and it hints at optional disambiguation arguments. However, it does not explicitly state when to prefer batch_resolve_genes for multiple queries or when get_protein_info would be more appropriate, so the guidance is implied rather than explicit.

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

traverse_biological_graphA

Enumerate graph paths from a source gene to a target entity (PRD-22).

Paths follow edges drawn from curated databases; each hop reports its source database and score if the source provides one. Scores are products of source-provided weights, not probabilities. Literature edges are keyword hits and are only used when target_type is 'publication'.

Args: source_query: Origin gene symbol or alias (e.g. 'TP53'). target_query: Target identifier (e.g. 'MONDO:0005575', 'R-HSA-69563') or a whole-phrase name (e.g. 'colorectal cancer'). max_hops: Maximum edges to traverse, 1 to 6 (default: 3). min_score: Minimum product of source-provided scores, 0.0 to 1.0 (default: 0.0). target_type: Optional node type filter: gene, protein, transcript, pathway, disease, publication, go_term.

Returns: JSON string with paths, matched targets, and warnings. On invalid input, a JSON object with an 'error' field.

ParametersJSON Schema
NameRequiredDescriptionDefault
max_hopsNo
min_scoreNo
target_typeNo
source_queryYes
target_queryYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does so well: it discloses that hops report source database and score, that scores are products of weights and NOT probabilities, and that literature edges are keyword hits. It stops short of permissions, limits, or performance characteristics, but the semantic caveats are valuable.

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?

Front-loaded purpose followed by clearly separated Args and Returns sections; each line carries information. The '(PRD-22)' tag is extraneous, but overall the structure is efficient and scannable.

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

Completeness4/5

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

For a five-parameter traversal tool with no annotations, the description covers inputs, scoring semantics, edge provenance, and the return shape. It is nearly sufficient, missing only guidance on result size/pagination and how to choose among competing graph tools.

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?

Schema description coverage is 0% for all five parameters, yet the description documents each with an example or format ('TP53', 'MONDO:0005575', 'colorectal cancer'), numeric ranges (1 to 6, 0.0 to 1.0), defaults, and the full target_type vocabulary β€” fully compensating for the empty schema.

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

Purpose4/5

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

The definition states a specific verb and resource ('Enumerate graph paths from a source gene to a target entity') with the scope of traversal clearly bounded by source and target. It is largely distinguishable from siblings such as build_entity_subgraph, though it never explicitly contrasts itself with that close alternative.

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

Usage Guidelines3/5

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

Usage is implied by the source-to-target framing, and one conditional rule is given ('Literature edges ... are only used when target_type is publication'). However, there is no explicit guidance on when to prefer this over build_entity_subgraph or other graph/pathway siblings, leaving tool selection to inference.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 2 tool updatesv1.0.1
    • Addedbuild_entity_subgraph
    • Addedtraverse_biological_graph
  2. 12 tool updatesv0.7.0
    • Addedannotate_function
    • Changedbatch_resolve_genes1 field changed
      • addedInput schema / properties / concurrency
        Added value: +{
        +  "default": 10,
        +  "title": "Concurrency",
        +  "type": "integer"
        +}
    • Addedfind_orthologs
    • Addedget_go_term
    • Addedget_mouse_gene
    • Addedget_pathway_details
    • Addedget_pathways
    • Addedget_publication_details
    • Addedget_supporting_publications
    • Addedget_target_diseases
    • Addedget_transcripts
    • Addedresolve_disease
  3. 3 tool updatesv0.1.0
    • First observedbatch_resolve_genes
    • First observedget_protein_info
    • First observedresolve_gene

TDQS

A3.9/5.0

Scored across 16 tools

Disambiguation5/5

Each tool has a clearly distinct purpose: gene resolution, protein/transcript retrieval, GO term lookup, GO annotation, pathway retrieval, disease resolution, literature search, and graph construction/traversal. The two graph tools differ in intent (build a subgraph vs. enumerate paths), and batch_resolve_genes is an explicit batch counterpart to resolve_gene. Descriptions are detailed enough to prevent misselection.

Naming Consistency5/5

All tool names use snake_case and follow a verb_noun pattern (e.g., get_go_term, resolve_gene, build_entity_subgraph). The consistent use of action verbs like get_, resolve_, build_, traverse_, find_, and annotate_ makes the set predictable and readable.

Tool Count4/5

With 16 tools, the server is slightly above the ideal 3-15 range, but the breadth of biological data sources (genes, proteins, transcripts, pathways, GO, diseases, literature, graphs) justifies each tool. No tool appears redundant or trivial.

Completeness4/5

The tool set covers core multi-omics retrieval, including gene/protein/transcript details, orthologs, GO annotations, pathways, disease associations, literature, and graph operations. Minor gaps exist, such as explicit sequence retrieval (FASTA) or variant-level annotation, but the surface is robust for most workflows.

Maintenance

ActivityMaintained
ResponsivenessResponsive

Related MCP Connectors

Related MCP Servers

  • A
    license
    C
    quality
    D
    maintenance
    Enables AI assistants to query gene annotations, expression, pathways, variants, and more via the MyGene.info API, supporting batch operations and multiple biological data sources.
    26
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI agents to query clinical genomics databases, retrieve supporting literature, analyze population genetics, and visualize biological pathways.
    18
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    Enables unified access to 110 life science APIs and databases, including genomics, proteomics, chemistry, literature, and clinical data. Users can query genes, proteins, compounds, pathways, and more through natural language.
    3
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables AI agents to look up molecular interactions from the EBI IntAct database by gene/protein name or UniProt ID, returning detection method, interaction type, organism, PubMed reference, and MI confidence score, along with fast interaction counts. It is keyless and available either through a hosted MCP endpoint, a plain HTTP API, or a local stdio server.
    17 npm
    MIT