<< All versions
Skill v1.0.0
currentAutomated scan100/100internscience/scp/gene-comprehensive-lookup
──Details
PublishedJune 16, 2026 at 11:17 PM
Content Hashsha256:1fbed8fb2418390f...
Git SHAcea539856403
──Files
Files (1 file, 4.4 KB)
SKILL.md4.4 KBactive
SKILL.md · 116 lines · 4.4 KB
version: "1.0.0" name: gene_comprehensive_lookup description: "Gene Comprehensive Lookup - Comprehensive gene lookup: NCBI gene data, Ensembl gene info, UniProt protein data, and KEGG pathway links. Use this skill for bioinformatics tasks involving get gene metadata by gene name get lookup symbol get general info by protein or gene name kegg find. Combines 4 tools from 4 SCP server(s)."
Gene Comprehensive Lookup
Discipline: Bioinformatics | Tools Used: 4 | Servers: 4
Description
Comprehensive gene lookup: NCBI gene data, Ensembl gene info, UniProt protein data, and KEGG pathway links.
Tools Used
- `get_gene_metadata_by_gene_name` from
ncbi-server(streamable-http) -https://scp.intern-ai.org.cn/api/v1/mcp/9/Origene-NCBI - `get_lookup_symbol` from
ensembl-server(streamable-http) -https://scp.intern-ai.org.cn/api/v1/mcp/12/Origene-Ensembl - `get_general_info_by_protein_or_gene_name` from
uniprot-server(streamable-http) -https://scp.intern-ai.org.cn/api/v1/mcp/10/Origene-UniProt - `kegg_find` from
kegg-server(streamable-http) -https://scp.intern-ai.org.cn/api/v1/mcp/5/Origene-KEGG
Workflow
- Get NCBI gene metadata
- Look up in Ensembl
- Get UniProt protein info
- Find in KEGG
Test Case
Input
json
{"gene_name": "BRCA1","species": "homo_sapiens"}
Expected Steps
- Get NCBI gene metadata
- Look up in Ensembl
- Get UniProt protein info
- Find in KEGG
Usage Example
Note: Replace<YOUR_SCP_HUB_API_KEY>with your own SCP Hub API Key. You can obtain one from the SCP Platform.
python
import asyncioimport jsonfrom mcp import ClientSessionfrom mcp.client.streamable_http import streamablehttp_clientfrom mcp.client.sse import sse_clientSERVERS = {"ncbi-server": "https://scp.intern-ai.org.cn/api/v1/mcp/9/Origene-NCBI","ensembl-server": "https://scp.intern-ai.org.cn/api/v1/mcp/12/Origene-Ensembl","uniprot-server": "https://scp.intern-ai.org.cn/api/v1/mcp/10/Origene-UniProt","kegg-server": "https://scp.intern-ai.org.cn/api/v1/mcp/5/Origene-KEGG"}async def connect(url, transport_type):transport = streamablehttp_client(url=url, headers={"SCP-HUB-API-KEY": "<YOUR_SCP_HUB_API_KEY>"})read, write, _ = await transport.__aenter__()ctx = ClientSession(read, write)session = await ctx.__aenter__()await session.initialize()return session, ctx, transportdef parse(result):try:if hasattr(result, 'content') and result.content:c = result.content[0]if hasattr(c, 'text'):try: return json.loads(c.text)except: return c.textreturn str(result)except: return str(result)async def main():# Connect to required serverssessions = {}sessions["ncbi-server"], _, _ = await connect("https://scp.intern-ai.org.cn/api/v1/mcp/9/Origene-NCBI", "streamable-http")sessions["ensembl-server"], _, _ = await connect("https://scp.intern-ai.org.cn/api/v1/mcp/12/Origene-Ensembl", "streamable-http")sessions["uniprot-server"], _, _ = await connect("https://scp.intern-ai.org.cn/api/v1/mcp/10/Origene-UniProt", "streamable-http")sessions["kegg-server"], _, _ = await connect("https://scp.intern-ai.org.cn/api/v1/mcp/5/Origene-KEGG", "streamable-http")# Execute workflow steps# Step 1: Get NCBI gene metadataresult_1 = await sessions["ncbi-server"].call_tool("get_gene_metadata_by_gene_name", arguments={})data_1 = parse(result_1)print(f"Step 1 result: {json.dumps(data_1, indent=2, ensure_ascii=False)[:500]}")# Step 2: Look up in Ensemblresult_2 = await sessions["ensembl-server"].call_tool("get_lookup_symbol", arguments={})data_2 = parse(result_2)print(f"Step 2 result: {json.dumps(data_2, indent=2, ensure_ascii=False)[:500]}")# Step 3: Get UniProt protein inforesult_3 = await sessions["uniprot-server"].call_tool("get_general_info_by_protein_or_gene_name", arguments={})data_3 = parse(result_3)print(f"Step 3 result: {json.dumps(data_3, indent=2, ensure_ascii=False)[:500]}")# Step 4: Find in KEGGresult_4 = await sessions["kegg-server"].call_tool("kegg_find", arguments={})data_4 = parse(result_4)print(f"Step 4 result: {json.dumps(data_4, indent=2, ensure_ascii=False)[:500]}")# Cleanupprint("Workflow complete!")if __name__ == "__main__":asyncio.run(main())