𧬠Ensembl API MCP Server
ããŒã«ã«ð§¬ Ensembl API MCP Server ã«ã€ããŠ
Ensembl API MCP Server ã¯ãEnsembl REST API ãç ç©¶è åãã®ã¿ã¹ã¯å¥ããŒã«ã«ãŸãšããŠããŸããéºäŒåãé åãããªã¢ã³ããæ¯èŒã²ãã ãå顿 å ±ãªã©ãæ€çŽ¢ã§ããŸãã
äž»ãªæ©èœ
- 01çš®ããŸããã éºäŒåæ€çŽ¢
- 02DNAãRNAãã¿ã³ãã¯è³ªé åã®ååŸ
- 03ããªã¢ã³ããšæ³šéã®æ€çŽ¢
- 04ã²ãã ãšè»¢åç£ç©ã®åº§æšå€æ
- 05çžåé¢ä¿ãšéºäŒåããªãŒã®æ€çŽ¢
- 06ãªã³ãããžãŒçšèªãšå顿 å ±ã®æ€çŽ¢
掻çšã·ãŒã³
- 01ID ãŸãã¯ã·ã³ãã«ããéºäŒåæ å ±ãæ€çŽ¢
- 02ã²ãã é åã® DNA é åãååŸ
- 03ããªã¢ã³ã广ãšè¡šçŸåã®é¢é£ãåæ
- 04çš®éã®çžåéºäŒåãæ¯èŒ
MCP 察å¿
Ensembl REST API ã®æ©èœãã¿ã¹ã¯å¥ã® 10 åã®ããŒã«ã«ãŸãšããMCP ã¯ã©ã€ã¢ã³ãã«éºäŒåãé åãããªã¢ã³ããæ¯èŒã²ãã ãªã©ã®æ€çŽ¢æ©èœãæäŸããŸãã
èšå®
ããŒã«ã«ãµãŒããŒã®èšå®ã¯ã©ã®ã¯ã©ã€ã¢ã³ãã§ãå ±éã§ããã³ããŒããŠã¯ã©ã€ã¢ã³ãã® MCP èšå®ãã¡ã€ã«ã«è²Œãä»ããŠãã ããã
ããŒã«
ããŒã«ã«ãµãŒããŒã®ããŒã«ã¯ãã·ã³äžã§èµ·åããŠåããŠååŸã§ããŸããã¡ã³ãããŒã¯ãŸã ããŒã«äžèЧãæäŸããŠããŸããã
詳现
𧬠Ensembl API MCP ãµãŒããŒ
Ensembl ã® REST API ãå ¬éããããã«æ©èœã® Model Context ProtocolïŒMCPïŒãµãŒããŒã§ããTypeScript MCP SDK ã䜿çšããŠæ§ç¯ãããŠããŸãã
- å æ¬çãªã«ãã¬ããž â 100 以äžã®åå¥ãšã³ããã€ã³ãã§ã¯ãªããæ©èœåéã«å¯Ÿå¿ãã 10 åã®ããŒã«ãæäŸããªãããAPI ã®ã»ãŒå šäœãå©çšã§ããŸãã
- æ¬çªç°å¢å¯Ÿå¿ â å šäœã TypeScript ã§å®è£ ããå ç¢ãªãšã©ãŒåŠçãšæŽçããã API ã¯ã©ã€ã¢ã³ãå±€ãåããŠããŸãã
- çç©åŠè ã«äœ¿ããããèšèš â äœã¬ãã«ã® REST ãã¹ã§ã¯ãªããçç©åŠçãªã¿ã¹ã¯ïŒéºäŒåãããªã¢ã³ããcompara ãªã©ïŒããšã«åé¡ããŠããŸãã
æ²èŒå ïŒ
ãŠãŒã¹ã±ãŒã¹ïŒ
- 𧬠éºäŒåæ å ± â ID ãŸãã¯ã·ã³ãã«ãã詳现ãååŸ
- ð éºäŒåæ€çŽ¢ â ããããçš®ã®éºäŒåãæ€çŽ¢
- 𧬠é åã®ååŸ â ããããã²ãã é åã® DNA ãååŸ
- ð¬ ããªã¢ã³ãããŒã¿ â ããªã¢ã³ããšãã®æ³šéã調æ»
- ð 転åç£ç©æ å ± â 転åç£ç©ãšã¢ã€ãœãã©ãŒã ã確èª
- ð è€æ°çš®ã«å¯Ÿå¿ â Ensembl ã®å šçš®ãããããå©çš
- ð çžäºåç § â 1 åã®åŒã³åºãã§å€éšããŒã¿ããŒã¹ãžç§»å
- â¡ ã¬ãŒãå¶éå¯Ÿå¿ â çµã¿èŸŒã¿ã®ã¹ããããªã³ã°ã§ Ensembl ã®å¶éãéµå®
ã€ã³ã¹ããŒã«
ã奜ã¿ã®ã€ã³ã¹ããŒã«æ¹æ³ãéžæããŠãã ããïŒ
ãªãã·ã§ã³ 1ïŒSmithery çµç±
- Smithery - Ensembl MCP Server ã«ã¢ã¯ã»ã¹ããŸããäžè¬çãªãã©ãããã©ãŒã ã®ãªãã·ã§ã³ã¯æ¬¡ã®ãšããã§ãïŒ
# claude code:
npx -y @smithery/cli@latest install @effieklimi/ensembl-mcp-server --client claude --key your-smithery-secret-key
# cursor:
npx -y @smithery/cli@latest install @effieklimi/ensembl-mcp-server --client cursor --key your-smithery-secret-key
# vscode:
npx -y @smithery/cli@latest install @effieklimi/ensembl-mcp-server --client vscode --key your-smithery-secret-key
# windsurf:
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" } } } - macOS:
-
Claude Desktop ãåèµ·åããŸã - Ensembl ããŒã«ãå©çšå¯èœãªããŒã«ã«è¡šç€ºãããŸã
éçºç°å¢ã®ã»ããã¢ãã
# Development with hot reload
npm run dev
# Run tests
npm test
# Production build (optional)
npm run build
npm run start:prod
ã³ã³ããªãã¥ãŒã·ã§ã³
ãã²ãååãã ããïŒå§ãæ¹ã¯æ¬¡ã®ãšããã§ãïŒ
ç°¡åãªé£çµ¡æ¹æ³
- éçºè ã«ã¡ãŒã«ããïŒ[email protected]
éçºã¯ãŒã¯ãããŒ
- ãªããžããªããã©ãŒã¯ããŸã
- ãã©ãŒã¯ãã¯ããŒã³ããŸãïŒ
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- ã³ã³ãã€ã«æžã¿ã®ããŒãžã§ã³ãå®è¡
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 çµç±ã§ ensembl-mcp-server ã Claude Desktop ã«èªåã€ã³ã¹ããŒã«ããã«ã¯ïŒ
npx -y @smithery/cli install @effieklimi/ensembl-mcp-server --client claude
ã³ã¡ã³ã
MCP ã¯åããŠã§ããïŒ
ãããã³ã«ã®æŠèŠããæåã®ãµãŒããŒã®å°å ¥ãŸã§ãããããçåã«ãŸãšããŠçããŸãã
AI ã¢ããªã±ãŒã·ã§ã³ãå€éšã®ããŒã«ãããŒã¿ãœãŒã¹ã«çµ±äžçãªæ¹æ³ã§æ¥ç¶ããããã®ãªãŒãã³ãªãããã³ã«ã§ããã¯ã©ã€ã¢ã³ãã¯ã¢ãã«ãšã®å¯Ÿè©±ãæ ããMCP ãµãŒããŒã¯ããŒã«ã»ãªãœãŒã¹ã»ããã³ãããã³ãã¬ãŒããæäŸããŸããæšæºã¡ãã»ãŒãžã§ããåãããããã1 ã€ã®ãµãŒããŒãè€æ°ã®ã¯ã©ã€ã¢ã³ãã§åå©çšã§ããŸãã