Skip to main content
Glama

AlphaFold Sovereign MCP

Answering a structural-biology or variant question usually means querying many public databases by hand — AlphaFold DB, Open Targets, ClinVar, gnomAD, and more — and reconciling their formats. This server wraps those sources behind one set of MCP tool calls that run as a local process on your own machine, with no hosted service of ours in the path, no telemetry, and a local SQLite knowledge graph that never leaves your disk. In the default online mode the tools query those public upstreams directly, so the identifiers you look up are sent to them (and one, DisGeNET, needs its own free API key); set ALPHAFOLD_OFFLINE=1 to refuse outbound requests before any socket opens, so no identifier leaves the machine (the knowledge-graph tools still answer from local data; the upstream tools report their source as unavailable). "Sovereign" here means local-first — your compute and stored results stay on your machine — not that the server runs without a network.

A Model Context Protocol server — an AlphaFold MCP server — that wraps AlphaFold DB and 8 other public biomedical data sources behind a set of MCP tool calls, backed by a local SQLite knowledge graph with query and export tools (results can be persisted through its API; automatic per-invocation persistence is not yet wired).

This is an unfunded, independent open-source project. It is not a service, not certified for any regulated use, and its outputs are research aids that should be reviewed by qualified humans before any clinical or regulatory use.

This project is not affiliated with, endorsed by, or sponsored by Google DeepMind or EMBL-EBI. "AlphaFold" is a trademark of its respective owner and is used here only to describe the public data (the AlphaFold DB API) that this software consumes.

CI Docs OpenSSF Scorecard Release PyPI PyPI downloads/30d License: Apache 2.0 Python 3.10+ MCP Spec 2025-06-18 Coverage ORCID DOI Glama score Awesome MCP Servers

Status: Beta. Engineering-validated (100% line and branch coverage). Not yet scientifically validated by independent domain experts; not yet deployed in production. See STATUS.md and LIMITATIONS.md.


What this is

A Python MCP server that:

  • Wraps AlphaFold DB, MONDO, HPO, Open Targets, ClinVar, gnomAD, DisGeNET, ChEMBL, and Ensembl behind MCP tool calls. Each call is a thin orchestration over those upstreams; the server does not add scientific judgement.

  • Composes upstreams into multi-source workflows: variant cross-reference reports, disease–target landscape summaries, heuristic target-druggability scoring, drug-repurposing candidate ranking, and cross-species structural-distance computation.

  • Ships a local SQLite knowledge graph (storage/knowledge_graph.py) with query, export, and traversal tools. It loads a curated boot seed automatically when empty (storage/seed.py, 16 entities and 15 relationships; disable with AFSMCP_DISABLE_KG_SEED=1) and can be extended by writing through the knowledge-graph API. There is no automatic per-invocation persistence: the analysis tools do not write to the store on their own.

  • Includes a topological-data-analysis (TDA) module that computes persistent-homology fingerprints (Betti numbers β₀, β₁, β₂) over Vietoris-Rips filtrations of Cα coordinates, and an L2-distance comparator between those fingerprint vectors. The full persistent-homology features require the optional [tda] extra (gudhi).

It targets mcp-spec 2025-06-18 and runs on Python 3.10–3.13.

Related MCP server: OrigeneMCP

What this is not

  • It is not a hosted service or a SaaS.

  • It is not certified for any regulated use (HIPAA, GxP, 21 CFR Part 11, FedRAMP, FIPS, SOC 2). The code structures audit logging in a way that could later support such a certification, but no such audit has been performed.

  • It does not train, fine-tune, or publish AlphaFold models — it consumes AlphaFold DB's public REST API.

  • The "ACMG/AMP criteria" that generate_variant_clinical_report produces are a draft surface of the upstream evidence the server can fetch automatically. They are not a substitute for clinical-laboratory variant review.

  • The "druggability tier" that assess_target_druggability returns is a heuristic built from drug-precedent counts, Open Targets tractability labels, pLDDT, and gnomAD constraint. It is not a validated prediction.

  • "Structural distance" between proteins is an L2 distance on length-normalised TDA fingerprint vectors. It measures topological similarity of the Cα point cloud. It is not a sequence similarity, RMSD, optimal-transport Wasserstein distance, or functional-equivalence measure.

  • The AlphaFold structures consumed here are predicted models with per-residue pLDDT confidence, not experimental structures. Low-pLDDT regions are unreliable; some proteins (BRCA1 among them) are largely low-confidence, and structural inference over those regions should be treated with caution.

For a complete, itemised list of known limitations (with module references, impact, and planned resolution), see LIMITATIONS.md. For the high-level posture — what is engineering-validated vs. what is not yet scientifically validated — see STATUS.md.


Install

pip install alphafold-sovereign-mcp

Or run it without installing using uvx:

uvx alphafold-sovereign-mcp

Every release on PyPI is built by the release.yml workflow under OIDC Trusted Publishing and attached to a signed GitHub Release with Sigstore (cosign) signature bundles, a CycloneDX SBOM, and a Zenodo DOI mirror. SLSA L3 build provenance is generated in CI by slsa-github-generator; attaching the attestation to each release is a roadmap item. scripts/replicate.sh downloads the exact published wheel and sdist, recomputes their PyPI SHA-256 digests, verifies the GitHub Release Sigstore bundles against those bytes and this repository's release workflow identity, and independently verifies that the released CycloneDX SBOM is bound to the downloaded wheel. If SLSA provenance is attached to a future release, the same script verifies it against the wheel when slsa-verifier is installed.

From source

git clone https://github.com/smaniches/alphafold-sovereign-mcp
cd alphafold-sovereign-mcp
uv pip install -e .
# With persistent-homology TDA (requires gudhi):
# uv pip install -e ".[tda]"

Verify the install

$ alphafold-sovereign --version
1.4.9
$ alphafold-sovereign --self-test
SELF-TEST PASS - ACMG helpers behave as expected on the BRCA1 c.5266dupC fixture.

If you ran it via uvx without installing, use uvx alphafold-sovereign-mcp --self-test instead (the bare alphafold-sovereign script is only on PATH after a pip/uv install).

--self-test runs fully offline: it checks the deterministic ACMG-evidence helpers (VEP, gnomAD, and AlphaMissense mapped to ACMG criteria) against a built-in BRCA1:c.5266dupC fixture. Returns exit code 0 on PASS, non-zero on FAIL. No network calls, no credentials required.

Configure Claude Desktop

Add to claude_desktop_config.json:

{
  "mcpServers": {
    "alphafold-sovereign": {
      "command": "alphafold-sovereign-mcp",
      "args": []
    }
  }
}

Restart Claude Desktop and the tools become available in conversations. Try asking, for example: "Triage BRCA1 c.5266dupC" or "Assess EGFR as a drug target". See the examples/ directory for three end-to-end illustrations of what a session looks like.

Offline mode

ALPHAFOLD_OFFLINE=1 alphafold-sovereign-mcp

Refuses outbound HTTP before a socket is opened (raising AirGapError), except to hosts you explicitly allowlist via ALPHAFOLD_ALLOW_HOSTS. The knowledge-graph query and export tools still answer from the local SQLite store. The upstream-querying tools have no local cache and report their source as unavailable; note that the structure tools currently surface this as a "no AlphaFold model" result rather than an explicit offline error.


Tool inventory

The server exposes 30 MCP tools across four modules. Each tool's input schema is a Pydantic model; results are JSON.

Disease & ontology (tools/disease.py)

Tool

What it does

lookup_disease

MONDO record + hierarchy + ICD cross-references

search_diseases

Full-text MONDO ontology search

lookup_phenotype

HPO term + associated diseases

get_gene_phenotype_profile

HPO phenotypes + gnomAD constraint for a gene

get_disease_targets

Top drug targets for a MONDO disease (Open Targets)

get_target_diseases

Top diseases for a UniProt target (Open Targets)

get_common_disease_targets

Parallel profiling across curated MONDO diseases

triage_variant_3d

HGVS → ClinVar + gnomAD constraint (disease/structure context: pointer notes)

phenotype_to_structures

HPO → diseases → OT targets → UniProt IDs

get_orphan_disease_atlas

Orphanet → MONDO → HPO + OT targets

compare_disease_target_overlap

Jaccard similarity of target sets for two diseases

resolve_icd10_to_mondo

ICD-10 code → MONDO disease record

Precision medicine (tools/precision_medicine.py)

Tool

What it does

generate_variant_clinical_report

HGVS → multi-source report + draft ACMG/AMP criteria

assess_target_druggability

UniProt → HOT/WARM/COLD/NOT_DRUGGABLE tier

synthesize_protein_dossier

UniProt → multi-source briefing

map_disease_drug_landscape

MONDO → approved drugs + pipeline + ChEMBL phase counts

classify_variant_acmg

HGVS → ACMG/AMP criteria checklist (PVS1, PM2, PP3, BP4, BP7, BS1, PP5)

find_drug_repurposing_candidates

MONDO → candidates ranked by OT evidence × ChEMBL phase

The ACMG/AMP criteria produced are a draft: they reflect the upstream evidence the server can fetch automatically, and they are not a substitute for clinical-laboratory review.

Structure intelligence (tools/structure_intelligence.py)

Tool

What it does

analyze_structural_confidence

mean pLDDT + confidence tier + PAE-derived domain boundaries

compute_topology_fingerprint

64-dim TDA fingerprint (Betti numbers β₀ β₁ β₂)

compare_proteins_topologically

Pairwise L2 fingerprint-distance matrix for 2–10 proteins

find_evolutionary_structural_shifts

Cross-species structural divergence (TDA + Ensembl orthologs)

score_binding_pocket_geometry

Geometric pocket detection + heuristic druggability index

detect_intrinsically_disordered

IDR map (linkers, tails, long IDRs)

get_protein_structure

Retrieve an AlphaFold model: metadata, download URLs, optional coordinates

Knowledge graph (tools/knowledge_graph_tools.py)

Tool

What it does

query_variant_database

Search locally stored variant triage results

query_protein_database

Search locally stored protein assessments

get_knowledge_graph_stats

Database size, entity counts, last activity

export_research_dataset

Export tables to JSON for pandas/ML pipelines

find_drug_gene_network

Traverse the local drug–gene–disease graph


Example usage

For three documented end-to-end illustrations of a Claude Desktop session against this server — variant triage on BRCA1 c.5266dupC, target characterisation on EGFR, and a drug-discovery walk-through on Imatinib → BCR-ABL → CML — see the examples/ directory. Each example includes the user prompt, the tool calls the model issues, the server's response shape, and the model's paraphrased reply.

Clinical variant report

generate_variant_clinical_report(hgvs="BRCA1:c.181T>G")

The server resolves the HGVS, fetches ClinVar, gnomAD, AlphaMissense (via AlphaFold DB), Open Targets disease evidence, ChEMBL drug data, and Ensembl VEP consequence annotations, and returns a single JSON record with the cross-referenced fields plus the ACMG/AMP criteria that the available evidence supports.

Drug repurposing

find_drug_repurposing_candidates(disease_mondo_id="MONDO:0007739")

Returns drugs whose Open Targets evidence connects them to the disease, ranked by a composite of OT evidence score × the maximum ChEMBL clinical phase reached against the target.

Cross-species structural divergence

find_evolutionary_structural_shifts(
    gene_symbol="ACE2",
    target_species=["mus_musculus", "rhinolophus_ferrumequinum"]
)

For each species: fetches the ortholog (Ensembl), the AlphaFold structure, computes the TDA fingerprint, and returns the L2 fingerprint distance from the human structure along with sequence identity.


Data sources

Source

What we use

License

AlphaFold DB v6 (EBI/DeepMind)

Structures, pLDDT, PAE, AlphaMissense

CC BY 4.0

MONDO (OLS4)

Disease ontology, ICD cross-refs

CC BY 4.0

HPO (JAX)

Phenotype terms, gene-disease links

HPO license (free for all use)

Open Targets

Disease–target evidence

CC0 1.0 (data)

ClinVar (NCBI)

Variant pathogenicity

Public domain

gnomAD v4

Population allele frequencies

CC0 1.0

DisGeNET

Gene–disease association scores

Free academic tier / commercial (MedBioinformatics)

ChEMBL v37 (EMBL-EBI)

Drug bioactivity, MoA, ADMET

CC BY-SA 3.0

Ensembl (EMBL-EBI)

VEP, orthologs, gene lookup

No restrictions (data); Apache 2.0 (code)

UniProt accessions are used throughout as protein identifiers — they key AlphaFold structures and Open Targets cross-references — but the UniProt API itself is not queried as a data source. Domain (InterPro), Gene Ontology, experimental-structure (RCSB PDB), and tissue-expression (Human Protein Atlas) lookups are not integrated in this release.

See NOTICE for full attributions.


Architecture

clients/_base.py
  ├── Air-gap enforcement (refuses sockets when ALPHAFOLD_OFFLINE=1)
  ├── Token-bucket rate limiting (aiolimiter)
  ├── Exponential backoff with jitter (tenacity)
  ├── Circuit breaker (CLOSED / OPEN / HALF_OPEN)
  └── HTTP/2 transport with connection pooling and keep-alive (httpx)

storage/knowledge_graph.py
  ├── SQLite WAL mode (embedded, ACID)
  ├── 6 entity tables: proteins, variants, diseases, drugs, genes, phenotypes
  ├── 4 relationship tables: protein_disease, protein_drug, variant_disease, gene_phenotype
  ├── tool_invocations audit table (SHA-256 of input + output, timestamps)
  └── Analytical views: variant_summary, drug_landscape

domain/disease.py
  └── Pure Python frozen dataclasses (PathogenicityClass, VariantReport, ...)

domain/druggability.py
  └── Pure, I/O-free target-druggability heuristic (named/cited weights and
      cut-offs, plus confidence / data-completeness / borderline reporting)

See ARCHITECTURE.md for the full module map.


Testing & quality

  • A comprehensive offline unit-test suite (respx-mocked upstreams, including parametrised expansions); the full suite runs hermetically in under a minute on a laptop.

  • Coverage on the shipped surface (src/alphafold_sovereign/clients, domain, storage, server, tools): 100% line + branch, every shipped module at 100%.

  • Lint: ruff (full ruleset). Type checking: mypy --strict on the full source tree.

  • Security: bandit plus CodeQL security-extended.

  • Supply chain: release CI builds and attests the distributions, generates a wheel-bound CycloneDX SBOM from the installed runtime dependency closure, and signs release artifacts with Sigstore. scripts/replicate.sh independently downloads the published wheel and sdist, verifies their PyPI hashes and Sigstore bundles, and checks the released CycloneDX binding. SLSA provenance is generated in CI; attaching it to each GitHub Release remains a roadmap item.

The full CI matrix (Python 3.10, 3.11, 3.12, 3.13 × Ubuntu, macOS) runs on every push. The coverage percentage above is the number a git clone && uv run nox -s cov produces on the current HEAD; if you find a divergence, please open an issue.


Contributing

DCO sign-off required (git commit -s). No copyright assignment. Coverage gate: CI enforces 100% line and branch coverage on the shipped surface (nox -s cov). Full guide: CONTRIBUTING.md.


  • uniprot-mcp — Model Context Protocol server for UniProt Swiss-Prot and TrEMBL (pip install uniprot-mcp-server).

  • semantic-scholar-mcp — Semantic Scholar MCP server, 200M+ academic papers (pip install s2-mcp-server).


Citation

Machine-readable metadata: CITATION.cff (GitHub renders a "Cite this repository" button in the sidebar that consumes this file).

@software{maniches_alphafold_sovereign_mcp,
  author    = {Maniches, Santiago},
  title     = {AlphaFold Sovereign MCP},
  year      = {2026},
  version   = {1.4.9},
  url       = {https://github.com/smaniches/alphafold-sovereign-mcp},
  license   = {Apache-2.0},
  orcid     = {0009-0005-6480-1987},
  doi       = {10.5281/zenodo.20134773}
}

When citing results derived from this software, please also cite the upstream data sources (AlphaFold DB, Open Targets, ChEMBL, Ensembl, ClinVar, gnomAD, MONDO, HPO, DisGeNET) according to their own citation requirements.

License

Copyright 2024–2026 Santiago Maniches.

Licensed under the Apache License, Version 2.0. See LICENSE.

Patent reservation: see PATENTS.md. Trademark policy: see TRADEMARKS.md.

Available Tools

30 tools
analyze_structural_confidenceAnalyze Structural Confidence (pLDDT + PAE)A
Read-onlyIdempotent

Analyze AlphaFold structural confidence using pLDDT and PAE.

Returns a structural reliability summary (not a per-residue profile):

  • pLDDT: the model's mean confidence (AlphaFold DB globalMetricValue) plus a coarse confidence tier

  • PAE (predicted aligned error): mean and max inter-residue uncertainty and PAE-derived domain boundaries

  • Druggability pre-screen: an ordered-fraction estimate and a structure-based-drug-design suitability flag

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already indicate readOnly, idempotent, and openWorld. The description adds behavioral details beyond annotations, such as the return being a summary (not per-residue) and the inclusion of a druggability pre-screen. It does not mention rate limits or authorization needs, but goes beyond the structured annotations.

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

Conciseness5/5

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

The description is concise, using bullet points for clarity and front-loading the main purpose. Every sentence adds value, and there is no extraneous or redundant information.

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

Completeness4/5

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

Given the presence of an output schema (documenting return values), the description provides sufficient context for a one-parameter tool. It clarifies that the output is a summary, not per-residue, and includes the druggability component. Minor omission: no mention of limitations like species specificity or data source, but overall complete for the task.

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

Parameters3/5

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

The input schema already provides a thorough description and pattern for the uniprot_id parameter, serving as a 100% description coverage despite the context indicating 0%. The tool description does not add any additional meaning beyond what the schema already offers, so it meets the baseline for schema-rich tools.

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 analyzes AlphaFold structural confidence using pLDDT and PAE, listing specific output components (pLDDT summary, PAE, druggability pre-screen). It distinguishes this tool from siblings like score_binding_pocket_geometry or detect_intrinsically_disordered.

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 does not provide any guidance on when to use this tool versus alternatives, nor does it specify contexts where it should be avoided. There is no mention of prerequisites or when alternatives like compare_disease_target_overlap might be more appropriate.

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

assess_target_druggabilityAssess Target DruggabilityA
Read-onlyIdempotent

Comprehensive druggability assessment for a protein target.

Integrates four independent druggability signals into a HOT/WARM/COLD/NOT_DRUGGABLE classification:

  1. Drug precedent — ChEMBL approved drugs + clinical compounds

  2. Tractability — Open Targets tractability labels (small-molecule, antibody, PROTAC)

  3. Structural confidence — AF2 pLDDT (ordered → analysable binding pockets)

  4. Population constraint — gnomAD LOEUF (highly constrained → safety risk on inhibition)

It assembles existing public-database evidence into one tier; it does not add scientific judgement and is not a validated predictive model.

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and openWorldHint. The description adds valuable context: it integrates four signals, does not add scientific judgement, and is not a validated predictive model. This goes beyond annotations and clarifies 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 description is well-structured with bullet points and clear sections. It is concise but includes necessary details about the four signals and their sources. 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 tool's complexity (integrating multiple signals) and the presence of an output schema, the description adequately covers what the tool does and its limitations. It could mention expected output format or compare to sibling tools, but it is mostly complete.

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

Parameters2/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 provide parameter explanations. The description mentions signals that involve drugs and clinical compounds, which relates to include_clinical_stage, but it does not explicitly describe the parameters or their usage. Neither uniprot_id nor include_clinical_stage are explained.

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 that the tool provides a comprehensive druggability assessment for a protein target, outputting a HOT/WARM/COLD/NOT_DRUGGABLE classification. It details the four integrated signals, distinguishing it from sibling tools that focus on individual aspects like structural confidence or disease targets.

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 explains what the tool does but does not explicitly state when to use it versus alternatives. It mentions that it assembles existing public-database evidence and does not add scientific judgement, implying it is for simple evidence gathering rather than deep analysis, but this is not explicit.

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

classify_variant_acmgDraft ACMG/AMP Variant ClassificationA
Read-onlyIdempotent

Generate a draft ACMG/AMP variant classification framework.

Populates ACMG/AMP 2015 criteria (Richards et al.) automatically from computational evidence. Designed to pre-populate variant interpretation forms for clinical laboratory review — NOT a substitute for expert review.

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already provide readOnlyHint, idempotentHint, openWorldHint. Description adds that it uses ACMG/AMP 2015 criteria and computational evidence, and clarifies it is a draft not a final review. No contradictions with annotations.

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

Conciseness5/5

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

Description is only three lines, each sentence adds value. First sentence states purpose, second details method, third provides usage caveat. No wasted words.

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

Completeness4/5

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

Given complexity of variant classification, description covers purpose, method, and usage context. Output schema exists to document return values. Could mention input validation, but schema handles it. Overall sufficient.

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?

Input schema already has detailed descriptions for both parameters (hgvs with example, inheritance_pattern with enum meanings). The description does not add new parameter-specific information, so baseline of 3 is appropriate.

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

Purpose5/5

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

Starts with 'Generate a draft ACMG/AMP variant classification framework' - specific verb and resource. Clearly describes populating ACMG/AMP 2015 criteria from computational evidence, differentiating it from sibling tools like 'triage_variant_3d' and 'generate_variant_clinical_report'.

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?

States 'Designed to pre-populate variant interpretation forms for clinical laboratory review — NOT a substitute for expert review.' Provides context for when to use (drafting) and a caution against misuse, but does not explicitly list alternatives or when not to use.

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

compare_disease_target_overlapCross-Disease Structural Target OverlapA
Read-onlyIdempotent

Compare the protein target landscapes of two diseases.

Identifies shared and unique targets between two diseases — a key analysis for drug repurposing, identifying shared mechanisms, and understanding comorbidity.

Returns:

  • Shared targets (present in both disease target sets)

  • Unique to Disease A / Disease B

  • Jaccard similarity score of target sets

Example: compare_disease_target_overlap( mondo_id_a='MONDO:0004975', # Alzheimer disease mondo_id_b='MONDO:0005180', # Parkinson disease )

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior4/5

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

Annotations indicate readOnlyHint, openWorldHint, and idempotentHint, and the description's verb 'identifies' and 'returns' confirms non-destructive behavior. The description adds transparency by detailing the return structure (shared, unique, Jaccard score), which goes beyond annotations.

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

Conciseness5/5

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

The description is well-structured with a clear first sentence, bullet points for outputs, and a code example. Every sentence adds value, no filler, and the format is easy to parse.

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

Completeness5/5

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

Given the tool's moderate complexity (two disease inputs, multiple outputs including Jaccard score) and the presence of an output schema, the description covers all necessary aspects: purpose, use cases, outputs, and an example. It is thorough without being redundant.

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

Parameters3/5

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

The input schema already includes detailed descriptions for all three parameters (mondo_id_a, mondo_id_b, target_limit). The description provides an example with inline comments but adds little new semantic information beyond the schema. Baseline 3 is appropriate given high schema coverage.

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

Purpose5/5

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

The description clearly states it compares protein target landscapes of two diseases, lists specific outputs (shared targets, unique to each, Jaccard similarity), and provides an example with comments. It distinguishes itself from siblings like get_common_disease_targets by its specific analysis and return types.

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 explicitly mentions use cases such as drug repurposing, identifying shared mechanisms, and understanding comorbidity, guiding the agent on appropriate use. However, it does not explicitly state when not to use or compare with sibling tools, slightly reducing clarity.

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

compare_proteins_topologicallyCompare Proteins Topologically (TDA Fingerprint Distance)A
Read-onlyIdempotent

Compare multiple proteins using a TDA-fingerprint distance.

Computes a pairwise distance matrix between the TDA fingerprints of the provided proteins. Distance metric: L2 distance between length-normalised 64-dimensional fingerprint vectors (see _fingerprint_distance). Distance = 0 means identical fingerprints; larger values mean more divergent fingerprints. This is not a Wasserstein distance between persistence diagrams.

Applications: Possible uses (all of which require independent validation before any downstream use):

  • Drug-repurposing triage: proteins with low fingerprint distance may share gross topology.

  • Off-target screening: family members with near-zero distance.

  • Cross-species comparison of the same gene's structure.

None of these are direct functional or sequence-similarity measures.

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already indicate readOnlyHint and idempotentHint, reducing the burden. The description adds value by explaining the output is a pairwise distance matrix, the metric details, and emphasizing it is not Wasserstein. No contradiction with annotations, and it provides useful behavioral context beyond them.

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 concise (approx. 150 words), well-structured with purpose, metric details, applications, and caveats. Each sentence adds value, front-loaded with the core action. No redundancy or filler.

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 complexity, presence of output schema, and annotations, the description covers purpose, metric, applications, and limitations thoroughly. It provides sufficient context for an agent to decide when to use it and interpret results, without needing to replicate schema or output details.

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

Parameters2/5

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

Schema description coverage is 0% per context, so the description should compensate. It mentions 'provided proteins' but adds no details about uniprot_ids beyond what the schema already states (list of UniProt accessions, 2-10). Without additional format or validation info, it fails to compensate for low schema coverage.

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

Purpose5/5

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

The description explicitly states the tool compares multiple proteins using TDA-fingerprint distance, specifies the distance metric (L2 on 64-dim vectors), and contrasts with Wasserstein distance. It distinguishes from sibling tools like compute_topology_fingerprint by focusing on pairwise comparison. This is specific, with a clear verb and resource.

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 lists applications (drug-repurposing triage, off-target screening, cross-species comparison) and states it is not a functional or sequence-similarity measure, guiding appropriate use. However, it does not explicitly advise against using it for other purposes or compare with specific sibling tools, missing some discrimination.

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

compute_topology_fingerprintCompute Topological Fingerprint (TDA)A
Read-onlyIdempotent

Compute a rotation-invariant topological fingerprint of a protein's fold.

Fetches the AlphaFold model for uniprot_id and runs persistent homology (a Vietoris-Rips filtration over the Cα point cloud) to produce a 64-dimensional fingerprint vector plus Betti numbers β₀, β₁, β₂. Use it as the per-protein input to structure-similarity comparisons: compare_proteins_topologically and find_evolutionary_structural_shifts consume these fingerprints.

The Betti numbers summarise fold topology: β₀ counts connected components (single- vs multi-domain or fragmented chains), β₁ counts loops/holes (β-barrels, large macrocycles), β₂ counts enclosed voids (cavities). Because they are invariant to rotation and translation, two orientations of the same fold produce the same fingerprint.

Returns the fingerprint vector, the Betti numbers, the residue count, and which method ran. Full persistent homology needs the optional [tda] extra (gudhi); without it a coarse fallback runs that does NOT compute persistent homology, and the result flags this. Returns a no-structure result when AlphaFold DB has no model for the accession. This is a coarse, geometry-only summary — not a substitute for sequence alignment, RMSD, or functional-homology assessment.

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.8/5.0
Behavior5/5

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

Discloses behavior beyond annotations: fetches AlphaFold model, runs persistent homology (with fallback if gudhi missing), returns no-structure result when model absent, explains Betti numbers and invariance. Annotations already indicate readOnly and idempotent, but description adds rich behavioral context.

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?

Description is well-structured with clear paragraphs and front-loaded purpose. While slightly long, every sentence provides valuable information about behavior, use cases, and limitations. Could be trimmed slightly but is justified.

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 existence of an output schema, description still explains return values (fingerprint vector, Betti numbers, residue count, method flag) and edge cases (no-structure result, fallback). Covers all necessary context for a complex tool.

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 has one parameter 'uniprot_id' with description and regex pattern. Description adds context by explaining it is used to fetch AlphaFold model, which provides meaning beyond the schema description. However, schema coverage is already good, so marginal added value.

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?

Description clearly states 'Compute a rotation-invariant topological fingerprint of a protein's fold.' It uses specific verb (compute), resource (topological fingerprint), and domain (protein). Mentions sibling tools that consume these fingerprints, distinguishing it from other structure-related tools.

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?

Explicitly says 'Use it as the per-protein input to structure-similarity comparisons: compare_proteins_topologically and find_evolutionary_structural_shifts consume these fingerprints.' Also states what it is not a substitute for (sequence alignment, RMSD, functional-homology), providing clear when-to-use and when-not-to-use guidance.

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

detect_intrinsically_disorderedDetect Intrinsically Disordered RegionsA
Read-onlyIdempotent

Map intrinsically disordered regions (IDRs) using pLDDT as proxy.

IDRs with pLDDT < 50 are predicted to be disordered in isolation by AlphaFold. This pLDDT-as-disorder-proxy approach is consistent with Ruff & Pappu (2021) and scales to the full human proteome from precomputed AlphaFold confidence.

IDR functional categories returned:

  • Linkers: short (< 20 aa) disordered regions between domains

  • Tails: N/C terminal IDRs

  • Long IDRs: candidate intrinsically disordered protein (IDP) segments

Clinical relevance:

  • IDRs are enriched for disease-causing mutations

  • IDRs host post-translational modification sites (phosphorylation, ubiquitination)

  • Long IDRs are emerging drug targets (targeted covalent inhibitors, phase separation modulators)

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.7/5.0
Behavior4/5

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

The description adds significant behavioral context beyond annotations: the pLDDT proxy method, threshold <50, functional categories, and clinical relevance. Annotations already indicate read-only and idempotent, no contradiction. Could mention data source limitations.

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 with sections and bullet points. Some clinical relevance details may be secondary but do not significantly impair conciseness. Could be slightly shorter but efficiently organized.

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

Completeness4/5

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

Given the tool's complexity and existence of an output schema, the description covers purpose, method, output categories, and relevance. It does not explain the output schema format but that is handled by the schema itself. Sufficient for understanding.

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

Parameters3/5

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

Schema description coverage is 0%, but the input schema itself describes the uniprot_id parameter with an example. The tool description does not add parameter details beyond what the schema provides, so baseline score of 3 is appropriate.

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

Purpose4/5

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

The description clearly states the tool maps intrinsically disordered regions using pLDDT as proxy. It specifies the verb 'map' and resource 'IDRs', and distinguishes itself from siblings by focusing on disorder prediction, but does not explicitly contrast with other structural analysis tools.

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

Usage Guidelines3/5

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

The description implies usage for IDR detection with clinical relevance examples, but lacks explicit guidance on when to use this tool versus alternatives like analyze_structural_confidence. No 'when not to use' information is provided.

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

export_research_datasetExport Research DatasetA
Read-onlyIdempotent

Export the stored knowledge-graph data for downstream analysis.

Returns all stored entities as JSON-serialisable dicts, suitable for:

  • Loading into pandas DataFrames for ML feature engineering

  • Importing into R or Julia for statistical analysis

  • Feeding into downstream bioinformatics pipelines

Example (Python)::

import pandas as pd
result = await export_research_dataset(ExportInput(tables=["variants"]))
df = pd.DataFrame(result["data"]["variants"])
high_tier = df[df["clinical_tier"] == "HIGH"]
ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.9/5.0
Behavior3/5

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

Annotations already declare readOnlyHint and idempotentHint. The description adds return format and example usage, but does not disclose pagination, error handling, or auth requirements. Adds modest value beyond annotations.

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 concise with a clear front-loaded purpose statement, bullet lists, and a helpful code example. Slightly longer due to example but earns its place.

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

Completeness4/5

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

Given the tool's complexity (nested params, output schema exists), the description covers purpose, use cases, and provides an example. It does not need to detail return values since output schema exists. Adequately complete.

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

Parameters3/5

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

Schema already provides descriptions for both parameters (tables and limit_per_table). The description includes an example using the 'tables' parameter but adds no new semantic meaning. Baseline 3 applies as schema coverage is sufficient.

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 exports knowledge-graph data for downstream analysis, with specific verb 'Export' and resource 'knowledge-graph data'. It distinguishes from sibling lookup/query tools by focusing on bulk export.

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

Usage Guidelines4/5

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

The description provides explicit use cases (loading into pandas, R, etc.) implying when to use. However, it does not explicitly state when not to use or name alternative tools, though sibling tools are distinct.

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

find_drug_gene_networkFind Drug-Gene-Disease NetworkA
Read-onlyIdempotent

Traverse the local knowledge graph from a seed entity.

Given a seed (UniProt ID, gene symbol, or MONDO disease ID), expands its immediate neighbourhood in the stored drug-gene-disease graph: a gene symbol resolves to its encoded proteins and reported variants, a UniProt accession resolves to its stored protein record, and a MONDO disease resolves to drugs with an indication for it. The store is populated by the curated boot seed and by explicit writes through the storage API.

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and idempotentHint=true. The description adds context about the graph traversal and store population, explaining that the tool is non-destructive and does not modify data. It also clarifies the resolution behavior for each seed type.

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 main action and then elaborates on seed types and store population. It is well-structured and concise, though the second paragraph could be slightly more compact.

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

Completeness5/5

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

Given the tool's complexity (2 parameters, output schema exists) and the presence of sibling tools, the description provides sufficient context for an agent to understand the tool's purpose, usage, and behavior. It covers seed resolution and data source, making it complete.

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

Parameters3/5

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

The input schema already describes both parameters (seed and max_hops). The description adds context about seed resolution but does not add significant meaning beyond what the schema provides. Since schema coverage is effectively 100%, baseline score of 3 is appropriate.

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

Purpose5/5

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

The description clearly states the verb 'Traverse the local knowledge graph from a seed entity' and specifies the resource (local knowledge graph). It explains the behavior for different seed types (gene symbol, UniProt ID, MONDO disease ID), distinguishing it from sibling tools that may query specific entities.

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

Usage Guidelines4/5

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

The description provides explicit usage context: for a given seed type, it resolves to specific entities (proteins, variants, drugs). It also mentions the store is populated by curated data and explicit writes, but does not explicitly exclude sibling tools or provide when-not-to-use guidance.

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

find_drug_repurposing_candidatesFind Drug Repurposing CandidatesA
Read-onlyIdempotent

Rank existing clinical-stage drugs as repurposing candidates for a disease.

Surfaces approved or trial-stage drugs whose target carries genetic/association evidence for the disease — i.e. drug-repurposing hypotheses. For the full approved-plus-pipeline drug picture of a disease (not only repurposing candidates), use map_disease_drug_landscape instead.

How it works: take the top target_limit Open Targets evidence-scored targets for the disease; for each, fetch its ChEMBL drugs at or above min_phase; drop duplicate molecules; rank by composite_repurposing_score = OT evidence score × (max ChEMBL phase / 4). Ranking uses clinical and association evidence only — no protein structure.

Returns a JSON record whose candidates list holds up to 20 drugs (each with ChEMBL ID, name, max phase, target gene/UniProt, OT evidence score, composite score, and mechanism), plus the candidate count and the methodology string. Returns an empty candidates list with a message when the disease has no Open Targets associations. The composite score is a prioritisation aid, not an efficacy prediction — validate mechanistically before acting on it.

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.6/5.0
Behavior5/5

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

The description goes well beyond the annotations (readOnlyHint, openWorldHint, idempotentHint) by detailing the ranking algorithm, scoring formula, candidate list size, empty result behavior, and caveats about the composite score. This provides comprehensive behavioral insight.

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

Conciseness4/5

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

The description is well-structured and front-loaded with the core purpose. While it is relatively long, every sentence adds value given the tool's complexity. There is no redundancy, so it earns a 4.

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

Completeness5/5

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

Given the tool's complexity and the presence of an output schema, the description is remarkably complete. It covers purpose, usage, algorithm, return structure, edge cases, and caveats, ensuring the agent has all necessary context.

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

Parameters3/5

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

The input schema already provides clear descriptions for all three parameters with defaults and constraints. The tool description does not add new parameter-level semantics; it only references parameters in the algorithm. With schema coverage at 0% (description adds no param info), the baseline of 3 is appropriate.

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

Purpose5/5

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

The description clearly states it ranks clinical-stage drugs as repurposing candidates for a disease, and explicitly distinguishes from the sibling tool map_disease_drug_landscape. This meets the criteria for a specific verb+resource+scope with sibling differentiation.

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

Usage Guidelines5/5

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

The description provides explicit guidance: use this tool for repurposing candidates; for the full drug picture use map_disease_drug_landscape instead. This qualifies as explicit when/when-not/alternatives.

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

find_evolutionary_structural_shiftsFind Evolutionary Structural ShiftsA
Read-only

Quantify cross-species structural and sequence divergence for a gene.

For each ortholog, attempts to fetch the AlphaFold structure and compute a TDA fingerprint distance against the human structure. When an ortholog structure is available in AlphaFold DB, the divergence_method is tda_fingerprint and the distance is the L2 distance between length-normalised fingerprint vectors. When the ortholog has no AlphaFold model, the method falls back to sequence_identity (1 - identity/100).

AlphaFold DB coverage of non-human proteomes is partial: model organisms (mouse, rat, zebrafish) are well-covered; others may not be. The divergence_method field on each result tells you which method was used.

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior5/5

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

The description goes beyond annotations by detailing the fallback mechanism (tda_fingerprint vs sequence_identity), the partial coverage of AlphaFold DB, and the output field divergence_method. This provides rich behavioral insight that annotations alone (readOnlyHint, openWorldHint) do not cover.

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

Conciseness4/5

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

The description is well-structured with an initial clear sentence, then details about methodology and caveats. It is informative but slightly verbose; some sentences could be tightened without losing clarity.

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

Completeness5/5

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

Given the tool's complexity (cross-species, two methods, fallback) and the presence of an output schema and annotations, the description covers all essential aspects: purpose, methodology, coverage caveats, and result interpretation. No critical information is missing.

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

Parameters3/5

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

The input schema already provides descriptions for both parameters (gene_symbol, target_species). The tool description adds context about the overall process but does not elaborate on the parameters themselves, offering minimal added meaning beyond the schema.

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 starts with a clear verb and resource: 'Quantify cross-species structural and sequence divergence for a gene.' It goes into specific methods (TDA fingerprint distance, sequence identity), distinguishing it from sibling tools that focus on single-protein analysis or other aspects.

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 does not explicitly state when to use this tool versus alternatives. It explains the process and coverage limitations but lacks direct guidance on when a user should choose this over similar tools like compute_topology_fingerprint or compare_proteins_topologically.

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

generate_variant_clinical_reportGenerate Precision Medicine Variant ReportA
Read-onlyIdempotent

Generate a multi-source variant interpretation report.

Cross-references evidence from up to seven upstream databases for a single HGVS variant into one structured report. The report is a research aid: it surfaces the upstream evidence and the ACMG/AMP criteria that the available evidence supports, but it is not a clinical interpretation and must not be used as a diagnostic without independent review by a qualified clinical laboratory.

  1. Ensembl VEP — functional consequence, SIFT/PolyPhen/CADD predictions

  2. ClinVar — clinical pathogenicity classifications and review status

  3. gnomAD v4 — population allele frequencies (gnomAD v4, ~807k individuals)

  4. AlphaMissense — deep-learning missense pathogenicity (Cheng et al. 2023)

  5. Open Targets — disease-gene evidence scores

  6. DisGeNET — curated gene-disease association scores

  7. ChEMBL — approved drugs acting on the gene product

The report includes a draft ACMG/AMP criteria checklist with evidence mapping, a structural impact summary, and an actionability statement.

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.3/5.0
Behavior5/5

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

Annotations already indicate read-only and idempotent behavior, and the description adds valuable detail on report content, data sources, and the non-clinical nature. No contradictions.

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 with a clear opening sentence, important disclaimer, and organized numbered list. Slightly lengthy but every sentence adds value.

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

Completeness4/5

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

Given the tool's complexity and the presence of an output schema, the description explains the report contents, data sources, and warnings adequately. Could mention output format briefly but acceptable.

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 description does not elaborate on parameters beyond the input schema, which already provides clear descriptions for all three parameters. Baseline of 3 is appropriate as schema coverage is thorough.

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?

Clearly states the tool generates a multi-source variant interpretation report, lists the seven databases cross-referenced, and distinguishes from siblings like classify_variant_acmg which focuses on ACMG classification alone.

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?

Provides context that the report is a research aid and not for clinical use without review, and lists the databases included. Does not explicitly state when to use alternatives, but the detailed database list implies when this comprehensive tool is appropriate.

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

get_common_disease_targetsCommon Disease Target ProfileA
Read-onlyIdempotent

Profile the top drug targets for a curated set of common diseases in one call.

Use this for a fast landscape scan across a whole disease area: given a category (e.g. 'oncology'), it looks up the curated MONDO diseases in that category and returns each one's top Open Targets evidence-scored targets, in parallel. To profile a single disease you already have a MONDO ID for, use get_disease_targets instead — this tool is its category-level, multi-disease counterpart and does not accept a raw MONDO ID.

Queries Open Targets live. Returns a JSON string with the category, the number of diseases profiled, and a profile object mapping each disease to its MONDO ID and top targets (per-disease errors are reported inline, not raised). Returns a JSON error object listing the valid values when the category — or a disease_name filter within it — is not recognised.

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.7/5.0
Behavior5/5

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

Annotations already provide readOnlyHint and idempotentHint. The description adds that it queries Open Targets live, returns a JSON string with error handling (per-disease errors inline, not raised), and returns a JSON error object for invalid categories or filters. No contradiction with annotations.

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

Conciseness5/5

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

The description is concise and well-structured. The first sentence states the core purpose, followed by usage guidelines, limitations, and behavior. Every sentence adds value without redundancy.

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 existing annotations and output schema (not shown but present), the description is complete. It explains the return format (JSON string with category, disease count, profile object), error behavior, and alternative tools, leaving no critical gaps for agent usage.

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

Parameters3/5

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

The input schema already provides descriptions for all three parameters, so the description doesn't need to add much. It mentions the 'category' parameter with an example and the 'disease_name' filter, but does not add new syntax or format details beyond the schema. Baseline 3 is appropriate given high schema coverage.

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

Purpose5/5

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

The description clearly states the tool profiles top drug targets for a curated set of common diseases in one call, using verb 'profile' and specifying the resource. It distinguishes itself from the sibling tool 'get_disease_targets' by noting it is the category-level multi-disease counterpart.

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?

Explicitly says 'Use this for a fast landscape scan across a whole disease area' and contrasts with 'get_disease_targets' for single diseases. It also states what not to do: 'does not accept a raw MONDO ID', providing clear when-to-use and when-not-to-use guidance.

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

get_disease_targetsDisease Target EvidenceA
Read-onlyIdempotent

Return top protein targets for a disease with Open Targets evidence scores.

Evidence score breakdown (0–1 per data type):

  • genetic_association: GWAS + rare-variant signals

  • somatic_mutation: Cancer somatic variant evidence

  • known_drug: Approved or clinical-stage drugs

  • affected_pathway: Pathway membership (Reactome, SIGNOR)

  • literature: Text-mining evidence (Europe PMC)

  • animal_model: Knockout / model organism phenotypes

  • rna_expression: Differential expression evidence

Example: get_disease_targets(disease_id='MONDO:0007254', limit=15) returns top 15 targets for breast carcinoma.

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and openWorldHint. The description adds concrete behavioral details by listing evidence score types (e.g., genetic_association, somatic_mutation) and their data sources, going beyond the high-level hints. No contradiction with annotations.

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

Conciseness4/5

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

The description is well-structured: first sentence states purpose, followed by a bullet list of evidence scores, and ends with an example. It is concise and front-loaded, with no wasted words. Slight reduction for not being even more succinct, but still very good.

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

Completeness3/5

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

With an output schema available, the description does not need to detail return values. It covers evidence score breakdown and provides an example, but lacks guidance on parameter tuning (e.g., when to adjust min_score) or error handling. Adequate but not fully comprehensive.

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

Parameters3/5

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

The input schema already provides detailed descriptions for each parameter, including examples (e.g., disease_id 'MONDO:0007254'). The description adds minimal parameter information beyond the schema, only showing an example call. Baseline 3 is appropriate given high schema coverage.

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

Purpose5/5

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

The description clearly states the tool's action ('Return top protein targets for a disease') with a specific source ('Open Targets evidence scores'). The title 'Disease Target Evidence' reinforces the resource. It distinguishes from sibling tools like lookup_disease or search_diseases, which focus on diseases rather than targets.

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 through an example and evidence score breakdown but does not explicitly state when to use this tool over alternatives like get_target_diseases or get_common_disease_targets. No direct comparisons or exclusions are provided.

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

get_gene_phenotype_profileGene Phenotype ProfileA
Read-onlyIdempotent

Return all HPO phenotypes associated with a gene, plus gnomAD constraint.

Useful for understanding the clinical consequences of variants in a gene before requesting structural context.

Returns:

  • HPO phenotypes linked to the gene (from HPO association database)

  • gnomAD LOEUF / pLI constraint scores

  • Interpretation of constraint (haploinsufficient / tolerant / moderate)

Example: get_gene_phenotype_profile(gene_symbol='SCN1A')

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and openWorldHint, so the safety profile is clear. The description adds behavioral detail about the output (HPO phenotypes, constraint scores, interpretation) beyond what annotations provide.

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?

Description is structured with a clear first sentence, a usage sentence, a bullet list of returns, and an example. It is relatively concise but the bullet list partially repeats the first sentence.

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 presence of annotations and output schema, the description covers purpose, usage context, and output structure. It omits explicit mention of the boolean parameter's default behavior (though schema covers it) and does not clarify the return format.

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

Parameters3/5

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

Schema already describes gene_symbol with examples and include_constraint with default and description, so parameter semantics are well-covered. The description adds only a code example, which is helpful but does not significantly increase understanding beyond the schema.

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?

Description states 'Return all HPO phenotypes associated with a gene, plus gnomAD constraint.' This is a specific verb+resource combination that clearly distinguishes it from sibling tools like lookup_phenotype or search_diseases.

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?

Description includes 'Useful for understanding the clinical consequences of variants in a gene before requesting structural context,' which provides clear context and workflow positioning. However, it does not explicitly mention when not to use the tool or list alternatives.

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

get_knowledge_graph_statsGet Knowledge Graph StatisticsA
Read-onlyIdempotent

Return statistics about the local knowledge graph.

Shows entity counts, database size, and last activity — useful for understanding the current contents and coverage of the local store.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint and idempotentHint. Description adds useful specifics about what statistics are returned (entity counts, size, activity) without contradicting annotations.

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

Conciseness5/5

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

Two sentences, front-loaded with purpose, no wasted words. Every sentence earns its place.

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?

No parameters, annotations cover safety and idempotency, output schema covers return values. Description adds the remaining context about what stats are included, making it fully complete.

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?

No parameters exist, baseline 4. Description adds meaning by specifying what the returned statistics cover, which is valuable for understanding the tool's output.

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?

Description clearly states it returns statistics about the local knowledge graph, listing entity counts, database size, and last activity. This distinguishes it from sibling tools which perform more specific analyses or queries.

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?

Description indicates usefulness for understanding current contents and coverage, providing clear context for when to use. Does not explicitly state when not to use, but no sibling serves the same stats purpose.

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

get_orphan_disease_atlasOrphan Disease Structural AtlasA
Read-onlyIdempotent

Map an Orphanet rare disease to its MONDO record, HPO phenotypes, and protein targets.

Rare / orphan diseases are often under-studied because their small patient populations make large trials impractical. This tool aggregates the available structural and clinical intelligence into one report to accelerate research.

Returns:

  • MONDO record with ICD-10 coding

  • HPO phenotype profile of the disease

  • Open Targets protein target evidence scores

  • UniProt IDs for AlphaFold structural retrieval

Example: get_orphan_disease_atlas(orphanet_id='79318') returns the Gaucher disease atlas.

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYes

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?

Annotations already include readOnlyHint=true, idempotentHint=true, and openWorldHint=true, indicating safe, read-only behavior. The description lists the return fields (MONDO, HPO, targets, UniProt) but does not add significant behavioral context beyond what annotations and the output schema provide. No annotation contradiction.

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

Conciseness4/5

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

The description is well-structured: a clear lead sentence, a brief context paragraph, a bulleted list of return fields, and an example. It is concise but the context paragraph could be slightly tighter without losing value. Overall, it is easy to parse and front-loaded with the main action.

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 presence of an output schema that likely details return formats, the description covers the tool's purpose, inputs, and outputs comprehensively. It explains the rationale for the tool (under-studied rare diseases) and provides a concrete example. The sample call and return structure make it complete for an AI agent to understand invocation.

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

Parameters3/5

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

The input schema includes a description for 'orphanet_id' ('Orphanet disease ID, e.g. '79318' (Gaucher disease).'), matching the example in the tool description. The description does not add new semantic meaning beyond the schema, so it meets the baseline (3) for a well-documented parameter.

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

Purpose5/5

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

The description clearly states the verb 'map' and the resource 'Orphanet rare disease to its MONDO record, HPO phenotypes, and protein targets'. It distinguishes from sibling tools like 'get_disease_targets' and 'lookup_disease' by focusing on rare diseases and providing a comprehensive structural atlas. The title 'Orphan Disease Structural Atlas' further reinforces the specific purpose.

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

Usage Guidelines4/5

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

The description provides context on when to use the tool: for rare diseases that are under-studied, and it returns a consolidated report. It includes an example ('get_orphan_disease_atlas(orphanet_id='79318')'). However, it does not explicitly state when not to use it or mention alternative tools, which would improve guidance.

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

get_protein_structureRetrieve AlphaFold Protein StructureA
Read-onlyIdempotent

Retrieve a protein's AlphaFold model: metadata, download URLs, optional coordinates.

The single entry point for getting the predicted structure itself. Returns the AlphaFold DB entry metadata — entry ID, model version and creation date, organism, gene, UniProt description, the amino-acid sequence and its length, and the model's mean pLDDT — plus stable download URLs for the PDB and mmCIF coordinate files, the PAE matrix and image, and the AlphaMissense substitutions CSV. Set include_coordinates to embed the full PDB coordinate text directly.

Use the sibling structure tools for interpretation rather than retrieval, so their scopes don't overlap: analyze_structural_confidence for a pLDDT/PAE confidence read, score_binding_pocket_geometry for pockets, compute_topology_fingerprint for fold topology, and detect_intrinsically_disordered for disorder. This tool hands you the structure and its handles; it does not score or interpret the model.

Returns structure_available: false with an explanatory note when AlphaFold DB has no model for the accession — an expected coverage gap, not a server fault.

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.9/5.0
Behavior5/5

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

Annotations (readOnlyHint, idempotentHint) are present. The description adds detailed behavioral context: returns stable download URLs, can embed coordinates if include_coordinates is true, and explains the no-model scenario. No contradictions.

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

Conciseness4/5

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

The description is well-structured with a clear first sentence and bullet-style details. It is informative but slightly verbose; every sentence adds value, though it could be more concise. Still, very good for a complex tool.

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

Completeness5/5

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

Given the tool's complexity and presence of an output schema, the description covers all necessary aspects: metadata fields, optional coordinates, sibling tool differentiation, and an edge case for missing models. No gaps remain.

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?

While the schema already has descriptions for both parameters, the tool description adds extra context: the effect of include_coordinates (large response size) and the note about 'structure_available: false'. This enriches understanding beyond the schema.

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 it retrieves an AlphaFold model: metadata, download URLs, and optional coordinates. It uses specific verb 'Retrieve' and resource 'AlphaFold Protein Structure', and distinguishes from sibling interpretation tools.

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?

Explicitly calls it the 'single entry point' for getting the structure, and lists sibling tools for interpretation. It also notes the 'structure_available: false' case when no model, providing clear guidance on when and why the tool should be used.

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

get_target_diseasesTarget Disease AssociationsA
Read-onlyIdempotent

Return all diseases associated with a protein target via Open Targets.

Accepts a UniProt accession and returns the full disease landscape for that target — essential for target-validation and indication-expansion.

Example: get_target_diseases(uniprot_id='P04637') returns all diseases associated with TP53 / p53.

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, and openWorld hints. The description adds that it uses Open Targets and returns a 'full disease landscape,' but does not clarify that the 'limit' parameter may restrict results (creating a minor inconsistency). Overall, behavioral traits are well communicated.

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 three sentences: purpose, use case, and example. It is concise, front-loaded, and every sentence adds value.

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

Completeness4/5

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

With output schema and annotations, the description covers key aspects: input, output, and example. However, it does not address the 'limit' parameter's effect on completeness (calling it 'full' but limit applies), which is a minor gap.

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

Parameters3/5

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

The input schema provides detailed descriptions for each parameter (e.g., limit, ensembl_id, uniprot_id), so the description does not need to repeat. The description adds a usage example but no extra semantic value. Baseline of 3 is appropriate due to high schema coverage.

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

Purpose5/5

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

The description clearly states the tool's function: 'Return all diseases associated with a protein target via Open Targets.' It specifies the input (UniProt accession) and output ('full disease landscape'), and distinguishes it from siblings like get_disease_targets by focusing on target-to-disease mapping.

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 indicates usage context: 'essential for target-validation and indication-expansion.' While it does not explicitly compare to alternatives or state when not to use, the purpose is clear enough to guide appropriate selection.

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

lookup_diseaseMONDO Disease LookupA
Read-onlyIdempotent

Retrieve a disease record from the MONDO unified disease ontology.

Returns the canonical MONDO entry with:

  • Disease name, definition, synonyms

  • ICD-10 / ICD-11 codes (for clinical coding / EHR integration)

  • OMIM, Orphanet, MeSH, DOID cross-references

  • Immediate parent and child terms in the MONDO hierarchy

Example: lookup_disease(mondo_id='MONDO:0004995') returns the record for coronary artery disease.

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYes

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?

Annotations already declare readOnlyHint and idempotentHint. Description adds detail on return content (canonical MONDO entry with specific fields, cross-references, hierarchy), which is consistent. No contradictions or omissions about side effects or auth needs.

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 concise: a single introductory sentence, a bullet list of return fields, and an example. No redundant information; each sentence serves a purpose.

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 presence of an output schema, the description adequately covers the return structure. It mentions hierarchy (which is not fully detailed in schema) and cross-references. Minor omission: no mention of error cases or behavior for invalid MONDO IDs.

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

Parameters3/5

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

The input schema already provides descriptions for both parameters (mondo_id and include_hierarchy). The description adds no additional meaning beyond the example usage. With schema coverage high, 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?

Description explicitly states the tool retrieves a disease record from the MONDO ontology, specifies return fields (name, definitions, cross-references, hierarchy), and gives an example. This clearly differentiates from sibling tools like search_diseases (search by name) and lookup_phenotype (phenotype lookup).

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

Usage Guidelines3/5

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

The description implies usage for exact MONDO ID lookups via the example, but does not explicitly state when to use this tool vs alternatives (e.g., search_diseases for name-based search). No guidance on when not to use it or required prerequisites.

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

lookup_phenotypeHPO Phenotype LookupA
Read-onlyIdempotent

Retrieve an HPO phenotype term with associated disease annotations.

Returns:

  • Phenotype label, definition, synonyms

  • Diseases annotated with this phenotype (from HPO + OMIM + Orphanet)

  • Parent phenotype terms

Example: lookup_phenotype(hpo_id='HP:0001250') returns the Seizure phenotype with ~400 associated diseases.

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, openWorldHint, and idempotentHint, which cover core behavioral expectations (safe, idempotent, open-ended results). The description adds useful context about returned content (phenotype label, definition, diseases, parent terms) and an approximate result size. However, it does not disclose any potential limitations, rate limits, or authentication requirements, leaving the agent to infer from annotations alone.

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 extremely concise: three sentences of core info plus a concrete example. No redundant or vague language. It front-loads the purpose and then lists return fields in a clear bullet-like manner. Every sentence earns its place.

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

Completeness4/5

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

Given that the tool has an output schema (not shown but indicated), the description need not detail return format. It covers the main return categories (phenotype label, definition, synonyms, diseases, parent terms) and provides an illustrative example. However, it omits error handling (invalid HPO ID) or pagination details for disease_limit, which would enhance completeness for an agent.

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

Parameters3/5

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

The input schema provides descriptions for all three parameters (hpo_id, disease_limit, include_diseases) with types, defaults, and constraints. Since schema description coverage is effectively 100%, the description adds no extra semantic value for parameters beyond the example usage. Per guidelines, baseline is 3, and the description does not enhance beyond that.

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 action ('Retrieve an HPO phenotype term') and the resource ('with associated disease annotations'), and lists specific return fields. The example with a concrete HPO ID and expected result ('~400 associated diseases') solidifies understanding. It naturally distinguishes itself from sibling tools like lookup_disease or search_diseases.

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 you have an HPO ID and want phenotype details plus associated diseases. However, it provides no explicit guidance on when to choose this tool over alternatives (e.g., lookup_disease, search_diseases), nor does it mention prerequisites or exclusion criteria. The default disease_limit and parameters hint at typical use, but direct comparison is absent.

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

map_disease_drug_landscapeMap Disease Drug LandscapeA
Read-onlyIdempotent

Map the complete therapeutic landscape for a disease.

Returns approved drugs, pipeline agents, top druggable targets, and an investability summary for a given MONDO disease.

Combines Open Targets evidence with ChEMBL drug indications and MONDO disease hierarchy to produce a comprehensive landscape report used in business development, competitive intelligence, and R&D portfolio decisions.

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already provide readOnlyHint, idempotentHint, openWorldHint. The description adds that it combines Open Targets, ChEMBL, and MONDO, enriching understanding of data sources and behavior. No contradictions.

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?

Three well-structured sentences: purpose, output, use cases. No unnecessary words, front-loaded information.

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

Completeness4/5

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

Given the presence of an output schema, the description adequately covers the tool's function and use cases. It could mention limitations or more precise data freshness, but overall it is complete for an agent to decide usage.

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

Parameters2/5

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

Schema description coverage is 0%, meaning the only parameter description is 'MONDO disease ID.' The tool description does not elaborate on the parameter beyond that, failing to add value beyond the schema for a single parameter.

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 maps the complete therapeutic landscape for a disease, specifying outputs (approved drugs, pipeline agents, druggable targets, investability summary) and input (MONDO disease ID). This distinguishes it from siblings like get_disease_targets.

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 mentions the tool is 'used in business development, competitive intelligence, and R&D portfolio decisions,' providing context. However, it lacks explicit guidance on when not to use it or comparison to alternatives.

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

phenotype_to_structuresPhenotype to Protein StructuresA
Read-onlyIdempotent

Map a clinical phenotype to the protein structures of its disease targets.

Pipeline:

  1. Resolve HPO term → associated diseases

  2. For each disease → top protein targets (Open Targets)

  3. For each target → UniProt ID (for AlphaFold retrieval)

Use the returned UniProt IDs with analyze_structural_confidence to retrieve AlphaFold structural confidence (pLDDT/PAE).

Example: phenotype_to_structures(hpo_id='HP:0002621') maps Atherosclerosis → disease targets → UniProt IDs.

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior4/5

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

Annotations indicate readOnlyHint, openWorldHint, idempotentHint. Description adds behavioral context: pipeline steps, resolution from phenotype to diseases to targets, and that it returns UniProt IDs for AlphaFold retrieval. Consistent with annotations. Could mention potential time/network dependency but not required.

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?

Reasonably concise with bullet points and an example. No wasted sentences, but could be slightly tightened (e.g., combine first two lines). Still very usable.

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

Completeness5/5

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

Given the tool's complexity (multi-step pipeline, three parameters, output schema exists), the description explains the complete workflow, provides an example, and references a follow-up tool. Output details are covered by output schema. No gaps.

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 descriptions already cover all parameters (hpo_id format, disease_limit and targets_per_disease ranges). Description adds value by showing how parameters fit into the pipeline and provides a concrete example, making the interaction understandable beyond raw schema.

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?

Clearly states the tool maps a clinical phenotype to protein structures of disease targets. The pipeline explanation (HPO → diseases → targets → UniProt IDs) makes the specific verb and resource unambiguous. Distinguished from siblings by its multi-step mapping nature.

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?

Provides an example and mentions using the returned UniProt IDs with analyze_structural_confidence, but does not explicitly state when to use this tool versus alternatives like lookup_disease or get_disease_targets. No when-not-to-use guidance for the many sibling tools.

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

query_protein_databaseQuery Protein Research DatabaseA
Read-onlyIdempotent

Recall proteins already stored in the local knowledge graph.

This is a local-recall query, not a live lookup: it returns only proteins that have previously been written to the local SQLite store (the curated boot seed, plus anything added through the knowledge-graph storage API). No upstream API is called. To assess a protein that may not be stored yet, use assess_target_druggability (druggability tier) or analyze_structural_confidence (pLDDT), which query live sources.

Filters are combined with AND; omit a filter to leave that dimension unconstrained. Returns a JSON record with the applied query, a result_count, and the matching proteins rows. The list is empty when nothing stored matches — common when only the boot seed is loaded, so a broad filter returning few rows usually means the store is small, not that no such protein exists.

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.9/5.0
Behavior5/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true. Description adds that no upstream API is called, describes underlying SQLite store, and explains that empty results are common when only boot seed is loaded, providing useful behavioral context beyond annotations.

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

Conciseness5/5

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

Description is well-structured with clear purpose first, then behavior, then usage notes. Every sentence adds value, no redundancy. Length is appropriate for the tool's complexity.

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

Completeness5/5

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

Given the tool has an output schema (implied), the description covers all necessary context: local-only nature, storage source, filter semantics, and interpretation of empty results. Completely adequate for an agent to use 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 already has descriptive parameter descriptions (e.g., min/max for limit, enum for druggability_tier). Description adds semantics about AND combination of filters and the meaning of omitting filters, which is not in schema. Slightly above baseline of 3 due to added filter logic insight.

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?

Description clearly states it recalls proteins from a local knowledge graph, uses specific verb 'recall' and resource 'proteins already stored'. Distinguishes from live-lookup siblings by naming alternatives and contrasting local vs live.

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?

Explicitly states when to use (local recall) and when not (for proteins not yet stored), provides alternatives (assess_target_druggability, analyze_structural_confidence), and explains filter combination behavior and interpretation of empty results.

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

query_variant_databaseQuery Variant Research DatabaseA
Read-onlyIdempotent

Search the local knowledge graph for stored variants.

Returns variants matching the filter criteria. No upstream API calls are made — all data is served from the local SQLite knowledge graph, which is populated by the curated boot seed and by any explicit writes through the knowledge-graph storage API (the analysis tools do not write to it on their own).

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and idempotentHint=true. The description adds context about the data source (local SQLite knowledge graph) and that analysis tools do not write to it, which is helpful beyond annotations.

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

Conciseness5/5

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

The description is concise with three sentences, front-loaded with the core purpose, and every sentence provides useful information without repetition.

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 read-only nature, detailed schema, and existence of an output schema, the description sufficiently explains what the tool does and its data source. No gaps remain for a query 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 input schema already provides detailed descriptions for each parameter (e.g., gene, tier, limit). The tool description does not add any parameter information, so it adds no value beyond the schema.

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

Purpose5/5

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

The description clearly states the tool searches for stored variants in a local knowledge graph, using a specific verb and resource. It distinguishes itself from sibling tools like lookup_disease or search_diseases by focusing on variants and local data.

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

Usage Guidelines4/5

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

The description explains that no upstream API calls are made and data is served from a local SQLite graph, implying it's for quick local queries. However, it does not explicitly state when to use this tool versus alternatives or when not to use it.

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

resolve_icd10_to_mondoICD-10 to MONDO ResolverA
Read-onlyIdempotent

Resolve an ICD-10 clinical code to MONDO disease ontology terms.

Enables integration between clinical / EHR data (which uses ICD-10) and the research-grade MONDO ontology used by Open Targets, HPO, and this MCP.

Example: resolve_icd10_to_mondo(icd10_code='I21.0') maps ST-elevation MI (ICD-10) to MONDO coronary disease terms.

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYes

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?

Annotations already declare readOnlyHint=true, idempotentHint=true, and openWorldHint=true. The description adds context about the mapping purpose and provides an example, but does not disclose any additional behavioral traits such as error behavior or rate limits. With strong annotations, the description is adequate.

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 4 sentences, starting with the core purpose, followed by context and an example. It is appropriately sized with no superfluous text, though the example could be more compactly integrated.

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 presence of an output schema (not shown but indicated as true), the description does not need to explain return values. It covers purpose, integration context, and usage example. It lacks information about error handling or code format validation, but for a simple mapping tool with annotations, it is sufficiently complete.

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

Parameters3/5

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

The input schema already includes a description for 'icd10_code' with format and example values. The description reinforces this with an example call but does not add new meaning beyond the schema. Schema coverage is effectively high due to the inline description.

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 action ('Resolve'), the source resource ('ICD-10 clinical code'), and the target resource ('MONDO disease ontology terms'). It distinguishes itself from sibling tools which focus on other disease/target/phenotype operations like 'analyze_structural_confidence' or 'search_diseases'.

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 explains the context of use: 'integration between clinical / EHR data (which uses ICD-10) and the research-grade MONDO ontology'. It does not explicitly state when not to use or mention alternatives, but the sibling list provides implicit differentiation.

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

score_binding_pocket_geometryScore Binding Pocket GeometryA
Read-onlyIdempotent

Identify and score putative binding pockets from AlphaFold geometry.

Detects pockets with a geometry-only heuristic. Residues in the inner 60 percent of the structure by distance from the centroid are taken as the pocket-forming core, then grown greedily into clusters within an 8 Angstrom radius. A cluster is kept as a putative pocket when it has at least min_pocket_residues members and a mean pLDDT of at least 50.

Each pocket reports a radius of gyration (compactness of the pocket residues), a centroid offset (distance of the pocket centroid from the structure centroid; larger means more peripheral — a solvent-accessible cleft rather than a dead-central cavity, and NOT a measure of solvent burial), a mean pLDDT, and a druggability index. The druggability index runs 0 to 100 and is the sum of four equally weighted 0 to 25 sub-scores: residue count, radius of gyration, mean pLDDT, and centroid offset.

This is a fast, dependency-free pre-screen, not a substitute for a validated pocket detector such as fpocket or P2Rank. It needs no ML model, is fully reproducible from AlphaFold coordinates, and runs in air-gapped deployments.

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.6/5.0
Behavior5/5

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

Beyond annotations (readOnlyHint, idempotentHint), the description elaborates on the detection algorithm (centroid distance, greedy clustering, pLDDT threshold), output metrics (radius of gyration, centroid offset, druggability index), and limitations. This provides comprehensive behavioral context.

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

Conciseness4/5

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

The description is well-structured with a clear first sentence, followed by algorithm details, output metrics, and caveats. It is concise (~150 words) but packs essential information. Minor improvements could include front-loading the output metrics more directly.

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

Completeness5/5

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

Given the tool's complexity and presence of an output schema, the description covers the algorithm, output metrics, limitations, and ideal use cases. It fully enables an agent to understand the tool's behavior and output without missing critical details.

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

Parameters3/5

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

The description does not explicitly explain the parameters 'uniprot_id' or 'min_pocket_residues', though the latter is mentioned in the algorithm. With schema description coverage at 0%, the description could provide more parameter context, but the schema itself includes minimal descriptions. The tool's algorithm description indirectly clarifies 'min_pocket_residues' usage.

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

Purpose5/5

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

The description explicitly states the tool's purpose: 'Identify and score putative binding pockets from AlphaFold geometry.' It details the heuristic method and distinguishes itself from validated detectors like fpocket or P2Rank, ensuring no confusion with sibling tools.

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 clearly specifies when to use this tool ('fast, dependency-free pre-screen') and when not to ('not a substitute for a validated pocket detector'). It also highlights ideal use cases: air-gapped deployments and scenarios needing reproducibility from AlphaFold coordinates.

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

search_diseasesSearch Diseases (MONDO)A
Read-onlyIdempotent

Search for diseases by name or keyword using the MONDO ontology.

Returns a ranked list of matching diseases with MONDO IDs and cross-references. Useful for resolving a clinical term to a canonical identifier before querying targets or phenotypes.

Example: search_diseases(query='breast cancer', limit=5)

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.5/5.0
Behavior4/5

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

Annotations declare readOnlyHint=true, idempotentHint=true, openWorldHint=true. Description adds that results are ranked and include MONDO IDs and cross-references, providing useful behavioral context beyond annotations.

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

Conciseness5/5

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

Three sentences and an example, no wasted words. Front-loaded with purpose, then use case, then example. Highly efficient.

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 simple search tool with two well-described parameters and an output schema (implied), the description explains return format (ranked list, MONDO IDs, cross-references) and use case, making it fully adequate.

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?

Input schema descriptions cover both parameters fully (query and limit), but the description adds an example call with typical values, which aids understanding. Schema coverage is high, so baseline is 3; the example provides additional value.

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?

Clearly states the tool searches for diseases by name or keyword using the MONDO ontology, distinguishing it from lookup_disease which likely requires an exact ID. The verb 'search' and resource 'diseases (MONDO)' are specific.

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?

Provides explicit use case: 'resolving a clinical term to a canonical identifier before querying targets or phenotypes.' Does not explicitly state when not to use or list alternatives, but context is clear.

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

synthesize_protein_dossierSynthesize Protein Intelligence DossierA
Read-only

Generate a complete protein intelligence dossier from 7 data sources.

It assembles disease associations, drug precedent, population constraint, ClinVar variants, and cross-species orthologs for one protein into a single structured record. It composes upstream databases; it does not add scientific judgement.

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.9/5.0
Behavior4/5

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

Discloses it is a read-only compilation tool that does not add scientific judgement. Annotations confirm readOnlyHint=true. Adds context about data sources and assembly, though no details on rate limits 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.

Conciseness5/5

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

Two concise sentences followed by a clarifying statement. Front-loaded with action and scope, no redundant information.

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

Completeness4/5

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

Covers output structure (types of data included) and has output schema. Input requirements are in schema. Missing mention of optional depth parameter but acceptable given schema presence.

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

Parameters2/5

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

Tool description does not elaborate on parameters; relies on schema descriptions. Given 0% schema description coverage, the description should compensate but does not mention uniprot_id, gene_symbol, or depth beyond general dossier concept.

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?

Description clearly states it generates a complete protein intelligence dossier from 7 data sources, specifying the types of data assembled. Distinguishes from siblings like assess_target_druggability by noting it composes upstream databases without scientific judgement.

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?

Implied usage for gathering comprehensive protein data, but no explicit when-to-use or when-not-to-use guidance. Sibling tools exist for analysis, but no direct comparison or exclusion criteria provided.

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

triage_variant_3dVariant 3-D Structural TriageA
Read-onlyIdempotent

Comprehensive clinical triage for a missense variant.

Fuses the upstream signals this tool currently wires into a single prioritised report:

  1. Pathogenicity — ClinVar interpretation + review status. The alphamissense_score / alphamissense_interpretation fields are always null / "Not available" here: AlphaMissense is not wired into this tool. For an AlphaMissense pathogenicity score use generate_variant_clinical_report.

  2. Population genetics — gnomAD LOEUF / pLI gene-constraint scores. Per-variant allele frequencies and the per-ancestry breakdown are not wired into this tool.

  3. Disease associations — a placeholder note pointing at get_target_diseases(); the Open Targets / MONDO traversal is a roadmap (Wave-3) item.

  4. Structural context — a text note pointing at analyze_structural_confidence (resolve the gene to a UniProt accession first); the AlphaFold pLDDT / PAE join into this report is a roadmap (Wave-3) item.

Returns a pathogenicity_tier: HIGH / MEDIUM / LOW / UNKNOWN (derived from ClinVar; the AlphaMissense input is always absent here).

Example: triage_variant_3d(hgvs='BRCA1:c.181T>G')

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.6/5.0
Behavior5/5

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

Annotations (readOnlyHint, idempotentHint, openWorldHint) are consistent with a read-only analysis tool. The description adds transparency by disclosing that specific fields (alphamissense_score, alphamissense_interpretation) are always null/not available, and that several features are roadmap items (not implemented). No contradiction with annotations.

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

Conciseness4/5

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

The description is well-structured with bullet points and clear sections, front-loading the purpose. It is longer than minimal but every sentence adds value by specifying limitations and cross-referencing siblings. Could be slightly more concise, but overall good.

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

Completeness5/5

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

Given the tool's complexity (multi-source triage) and the presence of an output schema, the description is complete. It explains what the tool does, what it does not do, what it returns (pathogenicity_tier), and provides an example. No significant gaps for an agent to misinterpret.

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

Parameters3/5

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

The input schema already provides comprehensive descriptions for all parameters. The tool description adds some contextual background (e.g., why include_structure points to structural analysis), but the schema descriptions are sufficient. Given the schema descriptions are detailed, the description's added value for parameter semantics is minimal, so baseline score of 3 is appropriate.

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

Purpose5/5

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

The description clearly states it performs 'comprehensive clinical triage for a missense variant' and lists the fused components (pathogenicity, population genetics, disease associations, structural context). It distinguishes from sibling tools by explicitly noting that AlphaMissense scores are not available here and directing to generate_variant_clinical_report for that, and to analyze_structural_confidence for structural analysis.

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?

Provides explicit when-to-use and when-not-to-use guidance: mentions that AlphaMissense is not wired and directs to generate_variant_clinical_report, notes that per-variant allele frequencies are not included, and points to analyze_structural_confidence for structural context. Also notes roadmap items that are not yet available.

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. 9 tool updatesv1.4.3
    • Changedcompare_disease_target_overlap3 fields changed
      • changedInput schema / properties / params / properties / mondo_id_a / description
        Previous value: -"First MONDO disease ID."New value: +"First MONDO disease ID, e.g. 'MONDO:0007254'."
      • changedInput schema / properties / params / properties / mondo_id_b / description
        Previous value: -"Second MONDO disease ID."New value: +"Second MONDO disease ID to compare against the first."
      • addedInput schema / properties / params / properties / target_limit / description
        Added value: +"Top targets per disease used to build the two overlap sets (1–50)."
    • Changedexport_research_dataset1 field changed
      • addedInput schema / properties / params / properties / limit_per_table / description
        Added value: +"Maximum rows to export per table (1–50000)."
    • Changedget_disease_targets1 field changed
      • addedInput schema / properties / params / properties / limit / description
        Added value: +"Maximum top targets to return (1–100)."
    • Addedget_protein_structure
    • Changedget_target_diseases1 field changed
      • addedInput schema / properties / params / properties / limit / description
        Added value: +"Maximum top diseases to return (1–100)."
    • Changedlookup_phenotype1 field changed
      • addedInput schema / properties / params / properties / disease_limit / description
        Added value: +"Maximum associated diseases to return (1–100)."
    • Changedphenotype_to_structures2 fields changed
      • addedInput schema / properties / params / properties / disease_limit / description
        Added value: +"Maximum diseases to expand from the phenotype (1–20)."
      • addedInput schema / properties / params / properties / targets_per_disease / description
        Added value: +"Maximum targets to return per disease (1–20)."
    • Changedquery_protein_database3 fields changed
      • changedInput schema / properties / params / properties / druggability_tier / description
        Previous value: -"Druggability tier filter."New value: +"Keep only stored proteins with this druggability tier; omit for any tier."
      • addedInput schema / properties / params / properties / limit / description
        Added value: +"Maximum rows to return (1–500)."
      • changedInput schema / properties / params / properties / min_plddt / description
        Previous value: -"Minimum mean pLDDT confidence score."New value: +"Minimum stored mean AlphaFold pLDDT (0–100; ≥70 = high confidence)."
    • Changedquery_variant_database1 field changed
      • addedInput schema / properties / params / properties / limit / description
        Added value: +"Maximum rows to return (1–500)."
  2. 1 tool updatev1.2.0
    • Changedtriage_variant_3d3 fields changed
      • changedInput schema / properties / params / properties / include_disease_context / description
        Previous value: -"Fetch MONDO disease + Open Targets evidence."New value: +"Add a placeholder disease-context note. The MONDO / Open Targets traversal is a Wave-3 roadmap item (stub)."
      • changedInput schema / properties / params / properties / include_gnomad / description
        Previous value: -"Fetch population allele frequencies from gnomAD."New value: +"Fetch gnomAD gene-CONSTRAINT scores (LOEUF / pLI) only. Per-variant allele frequencies are not wired into this tool."
      • changedInput schema / properties / params / properties / include_structure / description
        Previous value: -"Retrieve AlphaFold structure for context."New value: +"Add a pointer note toward structural-confidence analysis. The full AlphaFold pLDDT/PAE join is a Wave-3 roadmap item (not wired into this tool yet)."
  3. 29 tool updatesv1.1.8
    • First observedanalyze_structural_confidence
    • First observedassess_target_druggability
    • First observedclassify_variant_acmg
    • First observedcompare_disease_target_overlap
    • First observedcompare_proteins_topologically
    • First observedcompute_topology_fingerprint
    • First observeddetect_intrinsically_disordered
    • First observedexport_research_dataset
    • First observedfind_drug_gene_network
    • First observedfind_drug_repurposing_candidates
    • First observedfind_evolutionary_structural_shifts
    • First observedgenerate_variant_clinical_report
    • First observedget_common_disease_targets
    • First observedget_disease_targets
    • First observedget_gene_phenotype_profile
    • First observedget_knowledge_graph_stats
    • First observedget_orphan_disease_atlas
    • First observedget_target_diseases
    • First observedlookup_disease
    • First observedlookup_phenotype
    • First observedmap_disease_drug_landscape
    • First observedphenotype_to_structures
    • First observedquery_protein_database
    • First observedquery_variant_database
    • First observedresolve_icd10_to_mondo
    • First observedscore_binding_pocket_geometry
    • First observedsearch_diseases
    • First observedsynthesize_protein_dossier
    • First observedtriage_variant_3d

TDQS

A4/5.0

Scored across 30 tools

Disambiguation4/5

Most tools are clearly distinct in purpose, e.g., lookup vs search, local vs live queries. Minor overlaps exist among variant-focused tools (triage_variant_3d, generate_variant_clinical_report, classify_variant_acmg) but descriptions effectively differentiate them. Overall, an agent can reliably distinguish tool roles.

Naming Consistency5/5

Tool names follow a consistent pattern: lowercase with underscores, predominantly verb_noun (e.g., lookup_disease, get_disease_targets, analyze_structural_confidence). Even exceptions like phenotype_to_structures are still descriptive and fit the pattern. No mixing of styles ensures predictability.

Tool Count3/5

With 30 tools, the set is on the high side but still within a reasonable range for the broad domain (disease, variant, protein, drug). Some related tools (e.g., three topology comparison tools) could potentially be consolidated, but each serves a distinct analytical step. Slightly heavy but justified.

Completeness4/5

The tool surface is comprehensive, covering disease ontology, variant interpretation, protein structure confidence/pockets/topology, drug-target landscapes, and local knowledge graph management. Notable gaps: triage_variant_3d explicitly lacks some data sources (AlphaMissense, per-variant frequencies) that are available in other tools, creating a partial dead end. Overall, the domain is well-covered.

Maintenance

ActivityActive
ResponsivenessUnresponsive

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    An advanced integrated MCP server platform that combines 600+ tools and multiple biomedical databases to enable comprehensive information retrieval across molecules, proteins, genes, and diseases for accelerating therapeutic research.
    38
    -
  • A
    license
    Not graded
    quality
    A
    maintenance
    A unified biomedical graph database that integrates 50+ primary data sources — genes, proteins, compounds, diseases, pathways, and clinical data — into a single queryable graph with billions of cross-reference edges. Its native MCP server gives LLMs direct access to structured, authoritative biomedical data, complementing their reasoning with reliable identifiers and up-to-date database content.
    20
    AGPL 3.0
  • A
    license
    A
    quality
    B
    maintenance
    A high-performance MCP server that gives LLMs access to 25 biomedical tools federated across 50+ upstream APIs for genes, variants, drugs, diseases, literature, clinical trials, and structural biology.
    41
    522
    12
    Apache 2.0