<< All versions
Skill v1.0.1
currentAutomated scan100/100internscience/scp/ensembl-sequence-retrieval
1 files
──Details
PublishedJune 14, 2026 at 01:01 AM
Content Hashsha256:ec8b1d7b6bf77b85...
Git SHAcea539856403
Bump Typepatch
──Files
Files (1 file, 2.9 KB)
SKILL.md2.9 KBactive
SKILL.md · 113 lines · 2.9 KB
version: "1.0.1" name: ensembl-sequence-retrieval description: Retrieve genomic sequences from Ensembl database using transcript or gene IDs to obtain nucleotide and protein sequences. license: MIT license metadata: skill-author: PJLab
Ensembl Sequence Retrieval
Usage
1. MCP Server Definition
python
import asyncioimport jsonfrom mcp.client.streamable_http import streamablehttp_clientfrom mcp import ClientSessionclass OrigeneClient:"""Origene-Ensembl MCP Client"""def __init__(self, server_url: str, api_key: str):self.server_url = server_urlself.api_key = api_keyself.session = Noneasync def connect(self):try:self.transport = streamablehttp_client(url=self.server_url,headers={"SCP-HUB-API-KEY": self.api_key})self.read, self.write, self.get_session_id = await self.transport.__aenter__()self.session_ctx = ClientSession(self.read, self.write)self.session = await self.session_ctx.__aenter__()await self.session.initialize()return Trueexcept Exception as e:print(f"✗ connect failure: {e}")return Falseasync def disconnect(self):try:if self.session:await self.session_ctx.__aexit__(None, None, None)if hasattr(self, 'transport'):await self.transport.__aexit__(None, None, None)except Exception as e:print(f"✗ disconnect error: {e}")def parse_result(self, result):if isinstance(result, dict):content_list = result.get("content") or []else:content_list = getattr(result, "content", []) or []texts = []for item in content_list:if isinstance(item, dict):if item.get("type") == "text":texts.append(item.get("text") or "")else:if getattr(item, "type", None) == "text":texts.append(getattr(item, "text", "") or "")return "".join(texts)
2. Sequence Retrieval Workflow
Implementation:
python
## Initialize clientclient = OrigeneClient("https://scp.intern-ai.org.cn/api/v1/mcp/12/Origene-Ensembl","<your-api-key>")if not await client.connect():print("connection failed")exit()## Retrieve sequence by Ensembl IDresult = await client.session.call_tool("get_sequence_id",arguments={"id": "ENST00000380152"})result_data = client.parse_result(result)print(result_data)await client.disconnect()
Tool Descriptions
Origene-Ensembl Server:
get_sequence_id: Retrieve sequence by Ensembl ID- Args:
id(str): Ensembl transcript or gene ID- Returns: Genomic or protein sequence
Use Cases
- Genome annotation
- Comparative genomics
- Transcript analysis
- Protein sequence retrieval