Skip to main content

drug-indication-mapping

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).

Source facts

Repository
InternScience/scp
Last source activity
March 3, 2026 at 09:51
Detected SKILL.md language
English
Stars
173
Forks
10

Install options

The review-first prompt is selected by default. You can switch to a direct command or download a local copy.

Review the source files

Read SKILL.md and any companion files shown by SkillsMP before deciding whether to install.

Showing SKILL.md

SKILL.md
Source instructions · Read-only preview
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 1. Get ChEMBL indication data 2. Get FDA indications 3. Get OpenTargets drug associations 4. Search PubMed for evidence ## Test Case ### Input ```json { "drug_name": "imatinib", "drugind_id": 1 } ``` ### Expected Steps 1. Get ChEMBL indication data 2. Get FDA indications 3. Get OpenTargets drug associations 4. 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](https://scphub.intern-ai.org.cn). ```python import asyncio import json from mcp import ClientSession from mcp.client.streamable_http import streamablehttp_client from mcp.client.sse import sse_client SERVERS = { "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, transport def 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.text return str(result) except: return str(result) async def main(): # Connect to required servers sessions = {} 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 data result_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 indications result_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 associations result_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 evidence result_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]}") # Cleanup print("Workflow complete!") if __name__ == "__main__": asyncio.run(main()) ```
View on GitHub