<< All versions
Skill v1.0.1
currentAutomated scan100/100internscience/scp/drug-indication-mapping
1 files
──Details
PublishedJune 14, 2026 at 12:59 AM
Content Hashsha256:d900f43d9b55b972...
Git SHAcea539856403
Bump Typepatch
──Files
Files (1 file, 4.6 KB)
SKILL.md4.6 KBactive
SKILL.md · 116 lines · 4.6 KB
version: "1.0.1" name: drug_indication_mapping description: "Drug-Indication Mapping - Map drug indications: ChEMBL drug indications, FDA indications, OpenTargets drug associations, and literature. Use this skill for clinical informatics tasks involving get drug indication by id get indications by drug name get associated drugs by target name pubmed search. Combines 4 tools from 4 SCP server(s)."
Drug-Indication Mapping
Discipline: Clinical Informatics | Tools Used: 4 | Servers: 4
Description
Map drug indications: ChEMBL drug indications, FDA indications, OpenTargets drug associations, and literature.
Tools Used
- `get_drug_indication_by_id` from
chembl-server(streamable-http) -https://scp.intern-ai.org.cn/api/v1/mcp/4/Origene-ChEMBL - `get_indications_by_drug_name` from
fda-drug-server(streamable-http) -https://scp.intern-ai.org.cn/api/v1/mcp/14/Origene-FDADrug - `get_associated_drugs_by_target_name` from
opentargets-server(streamable-http) -https://scp.intern-ai.org.cn/api/v1/mcp/15/Origene-OpenTargets - `pubmed_search` from
search-server(streamable-http) -https://scp.intern-ai.org.cn/api/v1/mcp/7/Origene-Search
Workflow
- Get ChEMBL indication data
- Get FDA indications
- Get OpenTargets drug associations
- Search PubMed for evidence
Test Case
Input
json
{"drug_name": "imatinib","drugind_id": 1}
Expected Steps
- Get ChEMBL indication data
- Get FDA indications
- Get OpenTargets drug associations
- Search PubMed for evidence
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 = {"chembl-server": "https://scp.intern-ai.org.cn/api/v1/mcp/4/Origene-ChEMBL","fda-drug-server": "https://scp.intern-ai.org.cn/api/v1/mcp/14/Origene-FDADrug","opentargets-server": "https://scp.intern-ai.org.cn/api/v1/mcp/15/Origene-OpenTargets","search-server": "https://scp.intern-ai.org.cn/api/v1/mcp/7/Origene-Search"}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["chembl-server"], _, _ = await connect("https://scp.intern-ai.org.cn/api/v1/mcp/4/Origene-ChEMBL", "streamable-http")sessions["fda-drug-server"], _, _ = await connect("https://scp.intern-ai.org.cn/api/v1/mcp/14/Origene-FDADrug", "streamable-http")sessions["opentargets-server"], _, _ = await connect("https://scp.intern-ai.org.cn/api/v1/mcp/15/Origene-OpenTargets", "streamable-http")sessions["search-server"], _, _ = await connect("https://scp.intern-ai.org.cn/api/v1/mcp/7/Origene-Search", "streamable-http")# Execute workflow steps# Step 1: Get ChEMBL indication dataresult_1 = await sessions["chembl-server"].call_tool("get_drug_indication_by_id", arguments={})data_1 = parse(result_1)print(f"Step 1 result: {json.dumps(data_1, indent=2, ensure_ascii=False)[:500]}")# Step 2: Get FDA indicationsresult_2 = await sessions["fda-drug-server"].call_tool("get_indications_by_drug_name", arguments={})data_2 = parse(result_2)print(f"Step 2 result: {json.dumps(data_2, indent=2, ensure_ascii=False)[:500]}")# Step 3: Get OpenTargets drug associationsresult_3 = await sessions["opentargets-server"].call_tool("get_associated_drugs_by_target_name", arguments={})data_3 = parse(result_3)print(f"Step 3 result: {json.dumps(data_3, indent=2, ensure_ascii=False)[:500]}")# Step 4: Search PubMed for evidenceresult_4 = await sessions["search-server"].call_tool("pubmed_search", 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())