Skip to main content
Glama
kmaneesh

BioPython MCP Server

by kmaneesh

clinvar_variant_lookup

Search ClinVar for genetic variants and their clinical interpretations using variant notation, gene symbols, or condition filters to retrieve clinical significance data.

Instructions

Search ClinVar for genetic variants and their clinical interpretations.

This specialized wrapper combines entrez_search and entrez_summary for convenient ClinVar queries.

Args: variant: Variant notation (e.g., "rs80357906", "NM_000059.3:c.1521_1523del") gene: Gene symbol (e.g., "BRCA1", "TP53") condition: Condition/phenotype (e.g., "breast cancer", "Lynch syndrome") significance: Clinical significance filter: - "pathogenic" - "likely_pathogenic" - "benign" - "likely_benign" - "uncertain" max_results: Maximum results to return (default: 20) use_cache: Whether to use cached results (default: True)

Returns: Dictionary containing: - variants: List of variant dictionaries with clinical information - count: Number of variants returned - total_found: Total matches in ClinVar - query_terms: Dictionary of search terms used - cached: Whether result was from cache (if use_cache=True)

Examples: >>> clinvar_variant_lookup(gene="BRCA1", significance="pathogenic", max_results=5) >>> clinvar_variant_lookup(variant="rs80357906") >>> clinvar_variant_lookup(gene="TP53", condition="cancer", max_results=10)

Notes: - At least one search parameter must be provided - Multiple parameters are combined with AND logic - Rate limited (3 req/sec or 10 req/sec with API key) - Cached results inherit TTL from underlying entrez_search and entrez_summary calls

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
variantNo
geneNo
conditionNo
significanceNo
max_resultsNo
use_cacheNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Behavior5/5

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

With no annotations provided, the description carries the full burden and does an excellent job. It discloses rate limits (3 req/sec or 10 req/sec with API key), caching behavior (use_cache parameter and cached results), AND logic for multiple parameters, minimum parameter requirements (at least one search parameter must be provided), and TTL inheritance for cached results. This provides comprehensive behavioral context beyond basic functionality.

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

Conciseness4/5

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

The description is well-structured with clear sections (purpose, args, returns, examples, notes) and efficiently organized. Most sentences earn their place by providing necessary information. However, the notes section could be slightly more concise, and some redundancy exists between the parameter descriptions and examples.

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 (6 parameters, no annotations, but has output schema), the description is remarkably complete. It covers purpose, all parameters with semantics, return structure, usage examples, behavioral constraints (rate limits, caching, logic), and prerequisites. The output schema exists, so the description appropriately focuses on explaining the return dictionary's content rather than duplicating schema details.

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?

With 0% schema description coverage and 6 parameters, the description fully compensates by providing detailed semantic information for all parameters. Each parameter gets clear explanations with examples (e.g., variant notation formats, gene symbols, condition examples, significance filter options with enumerated values, default values for max_results and use_cache). This adds substantial value beyond the bare schema.

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

Purpose4/5

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

The description clearly states the tool searches ClinVar for genetic variants and clinical interpretations, specifying the resource (ClinVar) and action (search). It distinguishes itself from sibling tools like entrez_search and entrez_summary by being a specialized wrapper combining both for convenient ClinVar queries. However, it doesn't explicitly differentiate from variant_literature_link, which might be a related sibling tool.

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

Usage Guidelines4/5

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

The description provides clear context for when to use this tool: for ClinVar-specific queries combining search and summary functionality. It mentions this is a specialized wrapper for ClinVar, implying alternatives like using entrez_search or entrez_summary directly for non-ClinVar queries. However, it doesn't explicitly state when NOT to use it or provide detailed comparisons with all sibling tools.

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

Install Server

Other Tools

Latest Blog Posts

MCP directory API

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

curl -X GET 'https://glama.ai/api/mcp/v1/servers/kmaneesh/biopython-mcp'

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