gnomAD MCP Server
# gnomAD MCP Server
A Model Context Protocol (MCP) server that provides access to the gnomAD (Genome Aggregation Database) GraphQL API. This server enables AI assistants to query genetic variant data, gene constraints, and population genetics information from gnomAD.
## Features
- ๐งฌ **Gene Information**: Search and retrieve detailed gene data including constraint scores
- ๐ฌ **Variant Analysis**: Query specific variants and their population frequencies
- ๐ **Population Genetics**: Access allele frequencies across different populations
- ๐งฎ **Constraint Scores**: Get pLI, LOEUF, and other constraint metrics
- ๐ **Region Queries**: Find variants within specific genomic regions
- ๐งช **Transcript Data**: Access transcript-specific information and constraints
- ๐ **Coverage Data**: Retrieve sequencing coverage statistics
- ๐ **Structural Variants**: Query structural variant data
- ๐งฒ **Mitochondrial Variants**: Access mitochondrial genome variants
## Installation
### Prerequisites
- Node.js 18 or higher
- npm or yarn
### Install from source
```bash
git clone https://github.com/yourusername/gnomad-mcp-server.git
cd gnomad-mcp-server
npm install
npm run build
```
## Configuration
### Claude Desktop
Add to your Claude Desktop configuration file:
**macOS**: `~/Library/Application Support/Claude/claude_desktop_config.json`
**Windows**: `%APPDATA%\Claude\claude_desktop_config.json`
```json
{
"mcpServers": {
"gnomad": {
"command": "node",
"args": ["/path/to/gnomad-mcp-server/dist/index.js"]
}
}
}
```
### With MCP CLI
```bash
npx @modelcontextprotocol/cli gnomad-mcp-server
```
## Available Tools
### 1. `search`
Search for genes, variants, or regions in gnomAD.
**Parameters:**
- `query` (required): Search query (gene symbol, gene ID, variant ID, rsID)
- `reference_genome`: Reference genome (GRCh37 or GRCh38, default: GRCh38)
- `dataset`: Dataset ID (gnomad_r4, gnomad_r3, gnomad_r2_1, etc., default: gnomad_r4)
**Example:**
```json
{
"query": "TP53",
"reference_genome": "GRCh38"
}
```
### 2. `get_gene`
Get detailed information about a gene including constraint scores.
**Parameters:**
- `gene_id`: Ensembl gene ID (e.g., ENSG00000141510)
- `gene_symbol`: Gene symbol (e.g., TP53)
- `reference_genome`: Reference genome (default: GRCh38)
**Example:**
```json
{
"gene_symbol": "BRCA1",
"reference_genome": "GRCh38"
}
```
### 3. `get_variant`
Get detailed information about a specific variant.
**Parameters:**
- `variant_id` (required): Variant ID in format: chr-pos-ref-alt (eTDQS
Scored across 9 tools
Most tools have distinct purposes targeting specific genomic entities (e.g., genes, variants, regions), but some overlap exists between 'get_variants_in_gene' and 'get_region_variants' which could cause confusion when querying gene regions. The descriptions help clarify, but the boundaries aren't perfectly clear.
All tool names follow a consistent 'verb_noun' pattern with 'get_' or 'search' prefixes, using snake_case uniformly. This predictability makes it easy for agents to understand and select tools without naming confusion.
With 9 tools, this server is well-scoped for querying genomic data from gnomAD. Each tool serves a specific purpose (e.g., coverage, genes, variants), and the count aligns with the domain's complexity without being overwhelming or insufficient.
The toolset covers core query operations for genes, variants, transcripts, and regions, with a general search function. Minor gaps exist, such as no explicit tools for filtering or aggregating results, but agents can work around this using the provided tools for most workflows.