🚀 🧬 Ensembl API MCP Server
このサーバーは、EnsemblのREST APIを公開する、機能豊富なModel Context Protocol (MCP)サーバーです。TypeScript MCP SDKを使用して構築されています。
- 網羅的なカバレッジ – 100以上の個別のエンドポイントではなく、10のツールが機能領域にマッピングされ、ほぼすべてのAPIを公開します。
- 本番環境での使用に耐える – 全体をTypeScriptで記述し、堅牢なエラーハンドリングと整然としたAPIクライアント層を備えています。
- 生物学者にやさしい – 低レベルのRESTパスではなく、生物学的なタスク(遺伝子、変異、比較ゲノミクスなど)でグループ化されています。
📜 掲載先:
🚀 クイックスタート
このサーバーは、EnsemblのREST APIを簡単に利用できるようにするためのMCPサーバーです。以下にいくつかの使用例を示します。
📋 使用例:
- 🧬 遺伝子情報 – IDまたはシンボルで詳細を取得
- 🔍 遺伝子検索 – 任意の種の遺伝子をスキャン
- 🧬 配列取得 – 任意のゲノム領域のDNAを取得
- 🔬 変異データ – 変異とその注釈を探索
- 📊 転写産物情報 – 転写産物とアイソフォームを調査
- 🌍 複数種 – Ensemblに登録されているすべての種が利用可能
- 🔗 相互参照 – 1回の呼び出しで外部データベースにアクセス
- ⚡ レート制限 – 組み込みのスロットリングにより、Ensemblの制限内で利用できます。
📦 インストール
好みのインストール方法を選択してください。
オプション1: Smithery経由
- Smithery - Ensembl MCP Serverにアクセスします。最も一般的なプラットフォームオプションは以下の通りです。
npx -y @smithery/cli@latest install @effieklimi/ensembl-mcp-server --client claude --key your-smithery-secret-key
npx -y @smithery/cli@latest install @effieklimi/ensembl-mcp-server --client cursor --key your-smithery-secret-key
npx -y @smithery/cli@latest install @effieklimi/ensembl-mcp-server --client vscode --key your-smithery-secret-key
npx -y @smithery/cli@latest install @effieklimi/ensembl-mcp-server --client windsurf --key your-smithery-secret-key
MCPのSmitheryリンクを確認して、追加のプラットフォームオプションを確認してください。
オプション2: ローカル開発環境のセットアップ
開発またはカスタムセットアップの場合は、以下の手順を実行します。
-
リポジトリをクローンし、依存関係をインストールします。
git clone https://github.com/effieklimi/ensembl-mcp-server.git
cd ensembl-mcp-server
npm install
-
Claude Desktopを手動で設定します。
設定ファイルを編集します。
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json
- Windows:
%APPDATA%/Claude/claude_desktop_config.json
以下のサーバー設定を追加します。
{
"mcpServers": {
"ensembl": {
"command": "npm",
"args": ["run", "start"],
"cwd": "/absolute/path/to/ensembl-mcp-server"
}
}
}
-
Claude Desktopを再起動します – Ensemblのツールが利用可能なツールに表示されます。
開発環境のセットアップ
npm run dev
npm test
npm run build
npm run start:prod
🔧 技術詳細
10のツール(エンドポイント付き)
1 · ensembl_feature_overlap
領域または別の機能と重複する遺伝子、転写産物、または調節要素を見つけます。
GET /overlap/region/:species/:region
GET /overlap/id/:id
典型的な問い合わせ: “chr17:43 - 44 Mbにある遺伝子はどれですか?” – “BRCA1と重複するものは何ですか?”
2 · ensembl_regulatory
調節機能、結合マトリックス、および関連する注釈。
GET /overlap/region/:species/:region (with regulatory filters)
GET /overlap/translation/:id (regulatory features on proteins)
GET /species/:species/binding_matrix/:binding_matrix_stable_id
使用例: 転写因子結合部位、調節注釈。
3 · ensembl_protein_features
タンパク質レベルのドメインと機能部位。
GET /overlap/translation/:id
使用例: タンパク質ドメイン、シグナルペプチド、触媒残基。
4 · ensembl_meta
サーバーのメタデータ、種のリスト、リリース情報、および診断情報。
GET /info/ping
GET /info/rest
GET /info/software
GET /info/data
GET /info/species
GET /info/divisions
GET /info/assembly/:species
GET /info/biotypes/:species
GET /info/analysis/:species
GET /info/external_dbs/:species
GET /info/variation/:species
GET /archive/id/:id
POST /archive/id
典型的な問い合わせ: “ヒトについて利用可能なアセンブリはどれですか?” – サーバーの健全性チェック。
5 · ensembl_lookup
IDとシンボルを相互変換し、相互参照を取得し、変異を再コードします。
GET /lookup/id/:id
GET /lookup/symbol/:species/:symbol
POST /lookup/id
POST /lookup/symbol
GET /xrefs/id/:id
GET /xrefs/symbol/:species/:symbol
GET /xrefs/name/:species/:name
GET /variant_recoder/:species/:id
POST /variant_recoder/:species
使用例: “BRCA1のEnsembl IDは何ですか?” – UniProtとの相互参照。
6 · ensembl_sequence
DNA、RNA、またはタンパク質配列を取得します。
GET /sequence/id/:id
GET /sequence/region/:species/:region
POST /sequence/id
POST /sequence/region
使用例: 遺伝子のFASTA、転写産物のcDNA、ゲノム領域。
7 · ensembl_mapping
座標変換(ゲノム ↔ cDNA/CDS/タンパク質)とアセンブリのリフトオーバー。
GET /map/cdna/:id/:region
GET /map/cds/:id/:region
GET /map/translation/:id/:region
GET /map/:species/:asm_one/:region/:asm_two
使用例: CDSをGRCh38にマッピング、タンパク質座標をゲノム座標に変換。
8 · ensembl_compara
比較ゲノミクス—相同性、遺伝子ツリー、アラインメント。
GET /homology/id/:species/:id
GET /homology/symbol/:species/:symbol
GET /genetree/id/:id
GET /genetree/member/symbol/:species/:symbol
GET /genetree/member/id/:species/:id
GET /cafe/genetree/id/:id
GET /cafe/genetree/member/symbol/:species/:symbol
GET /cafe/genetree/member/id/:species/:id
GET /alignment/region/:species/:region
使用例: オルソログを見つける、系統樹を構築する、種のアラインメントを取得する。
9 · ensembl_variation
変異の検索、VEPの結果、連鎖不平衡(LD)、表現型マッピング。
GET /variation/:species/:id
GET /variation/:species/pmcid/:pmcid
GET /variation/:species/pmid/:pmid
POST /variation/:species
GET /vep/:species/hgvs/:hgvs_notation
POST /vep/:species/hgvs
GET /vep/:species/id/:id
POST /vep/:species/id
GET /vep/:species/region/:region/:allele
POST /vep/:species/region
GET /ld/:species/:id/:population_name
GET /phenotype/variant/:species/:id
GET /phenotype/region/:species/:region
GET /transcript_haplotypes/:species/:id
使用例: VEPの予測、LDブロック、表現型の関連付け。
10 · ensembl_ontotax
オントロジー用語の検索とNCBI分類学のトラバーサル。
GET /ontology/id/:id
GET /ontology/name/:name
GET /taxonomy/id/:id
GET /taxonomy/name/:name
使用例: GO用語の検索、表現型オントロジー、分類学的分類。
Smithery経由でのインストール
Smitheryを通じてClaude Desktop用のensembl - mcp - serverを自動的にインストールするには、以下のコマンドを実行します。
npx -y @smithery/cli install @effieklimi/ensembl-mcp-server --client claude
🤝 コントリビュート
ご協力いただけると幸いです!以下は、始める方法です。
簡単な連絡先
- 開発者にメールを送る: effie@effie.bio
開発ワークフロー
- リポジトリをフォークします
- フォークをクローンします:
git clone https://github.com/YOUR_USERNAME/ensembl-mcp-server.git
cd ensembl-mcp-server
- 依存関係をインストールします:
npm install
- すべてが正常に動作することを確認するためにテストを実行します:
npm test
- 開発サーバーを起動します:
npm run dev
- 変更を加え、十分にテストします
- プルリクエストを送信します
利用可能なスクリプト
npm run dev
- ホットリロードで開発
npm run start
- サーバーを起動
npm test
- すべてのテストを実行
npm run build
- TypeScriptをコンパイル(オプション)
npm run start:prod
- コンパイルされたバージョンを実行