Skip to main content
Glama
shukwong

gnomAD MCP Server

by shukwong
README.md
# 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 (e

TDQS

B3.1/5.0

Scored across 9 tools

Disambiguation4/5

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.

Naming Consistency5/5

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.

Tool Count5/5

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.

Completeness4/5

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.

Maintenance

ActivityInactive
ResponsivenessNo issues