gnomad-mcp

gnomad-mcp

0

The gnomAD MCP Server provides a unified interface to access genomic data from the Genome Aggregation Database via its API. It supports various API versions and offers a consistent, programmatic way to retrieve genetic information, catering to research and data needs with an evolving feature set.

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.

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 TypeDescriptionv2v3v4
get_gene_infoRetrieve gene metadata and constraint metrics (direct lookup by gene_id/gene_symbol)āŒāŒāœ…
get_region_infoRetrieve variant and summary information for a genomic regionāŒāŒāœ…
get_variant_infoRetrieve variant metadata and population frequency data (by variantId)āœ…āœ…āœ…
get_clinvar_variant_infoRetrieve ClinVar variant data and clinical significanceāœ…āœ…āœ…
get_mitochondrial_variant_infoRetrieve mitochondrial variant data and population frequenciesāŒāŒāœ…
get_structural_variant_infoRetrieve structural variant (SV) data and population frequenciesāœ…āŒāœ…
get_copy_number_variant_infoRetrieve copy number variant (CNV) data and population frequenciesāŒāŒāœ…
search_for_genesSearch for genes by symbol or name (no direct gene_id lookup in v2/v3)āœ…āœ…āœ…
search_for_variantsSearch for variants by ID, gene, or regionāœ…āœ…āœ…
get_str_infoRetrieve short tandem repeat (STR) data and population frequenciesāŒāŒāœ…
get_all_strsRetrieve all STRs in the datasetāŒāŒāœ…
get_variant_liftoverRetrieve liftover mapping for a variant between genomesāœ…āŒāŒ
get_metadataRetrieve gnomAD browser metadata and API version infoāœ…āœ…āœ…
  • āœ… = Supported in this version
  • āŒ = Not supported in this version

Dependencies

  • Python >= 3.13
  • aiohttp >= 3.11.18
  • fastmcp >= 2.2.1
  • gql >= 3.5.2
  • httpx >= 0.28.1
  • mcp[cli] >= 1.6.0
  • nest-asyncio >= 1.6.0
  • pytest >= 8.3.5
  • pytest-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 documentation

Setup

Install dependencies

uv sync

Activate the virtual environment

. .venv/bin/activate

Test the server

uv --directory ./ run mcp dev server.py

Add 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

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 and
    • 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 file for details.

This project uses the gnomAD API. Please ensure you cite gnomAD when using this tool or its outputs.

Acknowledgements