gnomAD MCP Server について
gnomAD MCP Serverは、生物情報学の利用者や後続ツール向けに、gnomAD APIへの統一されたプログラムインターフェースを提供します。3つのAPIバージョンに対応し、フィールドやスキーマの違いを吸収します。
主な機能
- 01gnomAD v2.1.1、v3.1.2、v4.1.0に対応
- 02遺伝子とバリアントの検索
- 03バリアントと集団頻度データの取得
- 04ClinVarと構造バリアントの照会
- 05バージョン別のクエリ対応状況
活用シーン
- 01gnomADの複数バージョンでバリアント詳細を確認
- 02ID、遺伝子、領域を指定した検索
- 03ClinVarの臨床的意義と頻度データの取得
MCP 対応
gnomADへのクエリをMCPツールとしてクライアントに公開します。バージョンごとに対応するAPI操作を提供します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
gnomAD MCP サーバー
概要
この MCP サーバーは、Genome Aggregation Database(gnomAD)API へのプログラム可能なインターフェースを提供し、複数の API バージョン(v2.1.1、v3.1.2、v4.1.0)に対応しています。
バージョン固有のフィールドやスキーマの違いを抽象化し、後続のツールやユーザー向けに統一された API を公開します。
ステータス
🚧 現在開発中 🚧
このプロジェクトは現在開発中です。API や機能は予告なく変更される場合があります。
対応する gnomAD API バージョン
- v4.1.0(
gnomad_r4) - v3.1.2(
gnomad_r3) - v2.1.1(
gnomad_r2_1)
バージョン別の対応クエリ
次の表は、各 gnomAD API バージョンで利用可能なクエリをまとめたものです。
| クエリタイプ | 説明 | v2 | v3 | v4 |
|---|---|---|---|---|
| get_gene_info | 遺伝子のメタデータと制約指標を取得します(gene_id/gene_symbol による直接検索) | ❌ | ❌ | ✅ |
| get_region_info | ゲノム領域のバリアント情報と要約情報を取得します | ❌ | ❌ | ✅ |
| get_variant_info | バリアントのメタデータと集団頻度データを取得します(variantId による検索) | ✅ | ✅ | ✅ |
| get_clinvar_variant_info | ClinVar のバリアントデータと臨床的意義を取得します | ✅ | ✅ | ✅ |
| get_mitochondrial_variant_info | ミトコンドリアバリアントのデータと集団頻度を取得します | ❌ | ❌ | ✅ |
| get_structural_variant_info | 構造バリアント(SV)のデータと集団頻度を取得します | ✅ | ❌ | ✅ |
| get_copy_number_variant_info | コピー数バリアント(CNV)のデータと集団頻度を取得します | ❌ | ❌ | ✅ |
| search_for_genes | シンボルまたは名前で遺伝子を検索します(v2/v3 では gene_id による直接検索はできません) | ✅ | ✅ | ✅ |
| search_for_variants | ID、遺伝子、または領域でバリアントを検索します | ✅ | ✅ | ✅ |
| get_str_info | 短鎖タンデムリピート(STR)のデータと集団頻度を取得します | ❌ | ❌ | ✅ |
| get_all_strs | データセット内のすべての STR を取得します | ❌ | ❌ | ✅ |
| get_variant_liftover | ゲノム間のバリアントのリフトオーバーマッピングを取得します | ✅ | ❌ | ❌ |
| get_metadata | gnomAD ブラウザーのメタデータと API バージョン情報を取得します | ✅ | ✅ | ✅ |
- ✅ = このバージョンで対応
- ❌ = このバージョンでは未対応
依存関係
- 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
ディレクトリ構成
.
├── 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
セットアップ
依存関係をインストールする
uv sync
仮想環境を有効化する
. .venv/bin/activate
サーバーをテストする
uv --directory ./ run mcp dev server.py
MCP サーバーを MCP サーバーリストに追加する(Claude、Cursor など)
{
"mcpServers": {
"gnomad": {
"command": "uv",
"args": ["--directory", "where you cloned the repo", "run", "server.py"],
"env": {}
}
}
}
テストを実行する
README_tests.md を参照してください。
クエリと API の設計
- バージョン固有の GraphQL クエリテンプレートを管理するために、QueryTemplateEngine パターンを使用します。
- 現在、クエリは固定されています。(
./gnomad/queries) を参照してください。- クエリは schema_fetcher.py と schema_analyzer.py を使用して取得しました。
- TODO:動的クエリ
- MCP ツールのエンドポイントには、パラメーターと出力の詳細な説明が記載されています。
ライセンス
この MCP サーバー自体は Apache License 2.0 のもとでライセンスされています。詳細は LICENSE ファイルを参照してください。
このプロジェクトは gnomAD API を使用しています。このツールまたはその出力を使用する際は、gnomAD を引用してください。
謝辞
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。