gnomAD MCP Server
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@gnomAD MCP Server show me population frequencies for variant 12-120931006-G-A in v4"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
gnomAD MCP Server
Overview
This MCP server provides a programmatic interface to the Genome Aggregation Database (gnomAD) API, supporting multiple API versions (v2.1.1, v3.1.2, v4.1.0).
It abstracts version-specific field and schema differences, exposing a unified API for downstream tools and users.
Related MCP server: UCSC Genome Browser MCP Server
Status
š§ Under Active Development š§
This project is under active development. APIs and features may change without notice.
Supported gnomAD API Versions
v4.1.0 (
gnomad_r4)v3.1.2 (
gnomad_r3)v2.1.1 (
gnomad_r2_1)
Supported Queries by Version
The following table summarizes which queries are available for each gnomAD API version:
Query Type | Description | v2 | v3 | v4 |
get_gene_info | Retrieve gene metadata and constraint metrics (direct lookup by gene_id/gene_symbol) | ā | ā | ā |
get_region_info | Retrieve variant and summary information for a genomic region | ā | ā | ā |
get_variant_info | Retrieve variant metadata and population frequency data (by variantId) | ā | ā | ā |
get_clinvar_variant_info | Retrieve ClinVar variant data and clinical significance | ā | ā | ā |
get_mitochondrial_variant_info | Retrieve mitochondrial variant data and population frequencies | ā | ā | ā |
get_structural_variant_info | Retrieve structural variant (SV) data and population frequencies | ā | ā | ā |
get_copy_number_variant_info | Retrieve copy number variant (CNV) data and population frequencies | ā | ā | ā |
search_for_genes | Search for genes by symbol or name (no direct gene_id lookup in v2/v3) | ā | ā | ā |
search_for_variants | Search for variants by ID, gene, or region | ā | ā | ā |
get_str_info | Retrieve short tandem repeat (STR) data and population frequencies | ā | ā | ā |
get_all_strs | Retrieve all STRs in the dataset | ā | ā | ā |
get_variant_liftover | Retrieve liftover mapping for a variant between genomes | ā | ā | ā |
get_metadata | Retrieve gnomAD browser metadata and API version info | ā | ā | ā |
ā = Supported in this version
ā = Not supported in this version
Dependencies
Python >= 3.13
aiohttp >= 3.11.18fastmcp >= 2.2.1gql >= 3.5.2httpx >= 0.28.1mcp[cli] >= 1.6.0nest-asyncio >= 1.6.0pytest >= 8.3.5pytest-asyncio >= 0.26.0
Directory Structure
.
āāā gnomad/ # Main package
ā āāā __init__.py
ā āāā types.py # Type definitions
ā āāā queries/ # GraphQL query templates
ā ā āāā v2/ # v2.1 specific queries
ā ā āāā v3/ # v3 specific queries
ā ā āāā v4/ # v4 specific queries
ā āāā schemas/ # Versioned schema files
āāā tests/ # Test code and data
ā āāā input/ # Test input data
ā ā āāā analyzed_schemas/ # Analyzed schema data
ā ā āāā schema2query/ # Schema to query conversion
ā ā āāā schemas/ # Raw schema files
ā āāā output/ # Test output data
ā ā āāā server/ # Server test outputs
ā ā āāā v2/ # v2.1 test outputs
ā ā āāā v3/ # v3 test outputs
ā ā āāā v4/ # v4 test outputs
ā āāā scripts/ # Test utility scripts
ā āāā tests/ # Additional test modules
āāā server.py # FastMCP server entrypoint
āāā pyproject.toml # Project metadata
āāā README.md # This file
āāā README_tests.md # Testing documentationSetup
Install dependencies
uv syncActivate the virtual environment
. .venv/bin/activateTest the server
uv --directory ./ run mcp dev server.pyAdd the MCP server to your MCP server list (Claude, Cursor, etc.)
{
"mcpServers": {
"gnomad": {
"command": "uv",
"args": ["--directory", "where you cloned the repo", "run", "server.py"],
"env": {}
}
}
}Run tests
Please see README_tests.md
Query & API Design
Uses the QueryTemplateEngine pattern to manage version-specific GraphQL query templates.
Currently, queries are fixed; see (
./gnomad/queries)The queries were obtained using schema_fetcher.py and schema_analyzer.py
TODO: Dynamic queries
MCP tool endpoints are documented with detailed parameter and output descriptions.
License
This MCP server itself is licensed under the Apache License 2.0 - see the LICENSE file for details.
This project uses the gnomAD API. Please ensure you cite gnomAD when using this tool or its outputs.
Acknowledgements
Available Tools
12 toolsget_clinvar_variant_infoB
[gnomAD API] Retrieve ClinVar variant info (v2/v3/v4) Args: dataset (str): gnomAD dataset ID (gnomad_r4/gnomad_r3/gnomad_r2_1) reference_genome (str): Reference genome (GRCh37 or GRCh38) variant_id (str): Variant ID Returns: dict: ClinVar info
Inputs: dataset (required), reference_genome (required), variant_id (required). Returns: object
get_copy_number_variant_infoB
[gnomAD API] Retrieve copy number variant info (v4 only) Args: reference_genome (str): Reference genome (GRCh38) variantId (str): CNV ID (e.g. 18714__DUP) Returns: dict: CNV info Note: Not supported in v2/v3.
Inputs: reference_genome (required), variantId (required), dataset. Returns: object
get_gene_infoB
[gnomAD API] Retrieve gene information (v4 only) Args: gene_id (str, optional): Ensembl gene ID (e.g. ENSG00000139618) gene_symbol (str, optional): Gene symbol (e.g. PCSK9) Returns: dict: gene info Note: Not supported in v2/v3. Use search_for_genes instead.
Inputs: gene_id, gene_symbol, dataset, reference_genome. Returns: object
get_metadataC
[gnomAD API] Retrieve metadata (v2/v3/v4) Args: dataset (str): gnomAD dataset ID (gnomad_r4/gnomad_r3/gnomad_r2_1) Returns: dict: metadata
Inputs: dataset (required), reference_genome (required). Returns: object
get_mitochondrial_variant_infoA
[gnomAD API] Retrieve mitochondrial variant info (v4 only) Args: reference_genome (str): Reference genome (GRCh37 or GRCh38) variant_id (str): Mitochondrial variant ID (e.g. M-8602-T-C). Build must be GRCh38. Returns: dict: mito variant info Note: Not supported in v2/v3.
Inputs: reference_genome (required), variant_id (required), dataset. Returns: object
get_region_infoC
[gnomAD API] Retrieve region information (v4 only) Args: reference_genome (str): Reference genome (GRCh38) chrom (str): Chromosome start (int): Start position. Build must be GRCh38. stop (int): End position. Build must be GRCh38. Returns: dict: region info Note: Not supported in v2/v3.
Inputs: reference_genome (required), chrom (required), start (required), stop (required), +1 more. Returns: object
get_str_infoB
[gnomAD API] Retrieve STR info (v4 only) Args: reference_genome (str): Reference genome (GRCh38) id (str): STR ID (e.g. ATXN1) Returns: dict: STR info Note: Not supported in v2/v3.
Inputs: reference_genome (required), id (required), dataset. Returns: object
get_structural_variant_infoC
[gnomAD API] Retrieve structural variant info (v2/v4) Args: dataset (str): SV dataset ID (gnomad_sv_r4/gnomad_sv_r2_1) reference_genome (str): Reference genome (GRCh37 or GRCh38) variantId (str): Structural variant ID Returns: dict: SV info
Inputs: dataset (required), reference_genome (required), variantId (required). Returns: object
get_variant_infoC
[gnomAD API] Retrieve variant information (v2/v3/v4) Args: dataset (str): gnomAD dataset ID (gnomad_r4/gnomad_r3/gnomad_r2_1) reference_genome (str): Reference genome (GRCh37 or GRCh38) variantId (str): Variant ID (e.g. 1-55051215-G-GA) Returns: dict: variant info
Inputs: dataset (required), reference_genome (required), variantId (required). Returns: object
get_variant_liftoverB
[gnomAD API] Retrieve liftover info (v2 only) Args: reference_genome (str): Reference genome (GRCh37 or GRCh38) source_variant_id (str, optional): Source variant ID (e.g. 12-112241766-G-A on GRCh37) liftover_variant_id (str, optional): Lifted over variant ID (e.g. 12-111803962-G-A on GRCh38) Returns: dict: liftover info Note: Not supported in v3/v4.
Inputs: reference_genome (required), source_variant_id, liftover_variant_id, dataset. Returns: object
search_for_genesC
[gnomAD API] Search for genes (v2/v3/v4) Args: dataset (str): gnomAD dataset ID (gnomad_r3/gnomad_r2_1) reference_genome (str, optional): Reference genome (GRCh37 or GRCh38) query (str): Search string Returns: dict: search results
Inputs: dataset (required), reference_genome (required), query (required). Returns: object
search_for_variantsB
[gnomAD API] Search for variants (v2/v3/v4) Args: dataset (str): gnomAD dataset ID (gnomad_r4/gnomad_r3/gnomad_r2_1) reference_genome (str): Reference genome (GRCh37 or GRCh38) query (str): Search string (variant_id) Returns: dict: search results (variant_id)
Inputs: dataset (required), reference_genome (required), query (required). Returns: object
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelogā¦
TDQS
Scored across 12 tools
Each tool has a clearly distinct purpose targeting specific genomic data types (ClinVar variants, copy number variants, genes, metadata, mitochondrial variants, regions, STRs, structural variants, general variants, liftover, gene search, variant search). The descriptions clearly differentiate what each tool retrieves, with no apparent overlap in functionality.
Most tools follow a consistent 'get_*_info' or 'search_for_*' pattern, but there are minor deviations: 'get_copy_number_variant_info' uses 'variantId' while 'get_variant_info' uses 'variantId' (both camelCase), and 'get_structural_variant_info' uses 'variantId' while others use 'variant_id' (snake_case). The overall pattern is clear and readable despite these inconsistencies.
12 tools is well-scoped for a genomic database API server covering multiple data types (variants, genes, regions, etc.) across different gnomAD versions. Each tool serves a specific purpose in retrieving different genomic entities, with no obvious redundancy.
The toolset provides comprehensive retrieval capabilities for the gnomAD domain, covering all major genomic data types with both specific lookup and search functionality. The only minor gap is the version compatibility limitations noted in tool descriptions (some tools only work with specific gnomAD versions), but agents can work around this by checking metadata or using alternative tools.
Maintenance
Related MCP Connectors
Ancestry allele frequencies, LoF constraint, variant lists, and coverage from gnomAD, with ClinVar.
gnomAD MCP ā Broad Institute Genome Aggregation Database (GraphQL).
Annotate and classify human genetic variants with GeneBe (ACMG, gnomAD, ClinVar). Research use only.
Find pharmacogenomics guidelines, translate diplotypes, and retrieve prescribing recommendations.
Related MCP Servers
- AlicenseBqualityDmaintenanceEnables AI assistants to query genetic variant data, gene constraints, and population genetics information from the gnomAD (Genome Aggregation Database) through its GraphQL API. Supports searching for genes and variants, retrieving constraint scores, analyzing population frequencies, and accessing genomic coverage data.910MIT
- AlicenseBqualityDmaintenanceProvides comprehensive access to the UCSC Genome Browser API, enabling queries of genomic data, DNA sequences, gene annotations, variants, and metadata across multiple species and assemblies.127MIT
- FlicenseAqualityDmaintenanceProvides interpretable variant effect predictions for 4.2 million ClinVar variants using the EVEE API. Enables searching, comparing, and analyzing genetic variants with AI-generated mechanistic interpretations and disruption profiles.618-
- AlicenseNot gradedqualityBmaintenanceFederates 13 gene-related MCP backends (gnomAD, GTEx, etc.) behind a single Streamable HTTP endpoint with collision-free namespacing and search-based tool discovery.7MIT