<< All versions
Skill v1.0.1
currentAutomated scan100/100internscience/scp/disease-knowledge-graph
1 files
──Details
PublishedJune 14, 2026 at 12:58 AM
Content Hashsha256:5b2cf5faf18f2762...
Git SHAcea539856403
Bump Typepatch
──Files
Files (1 file, 4.0 KB)
SKILL.md4.0 KBactive
SKILL.md · 109 lines · 4.0 KB
version: "1.0.1" name: disease_knowledge_graph description: "Disease Knowledge Graph - Build disease knowledge graph: OpenTargets targets, drugs, publications, and phenotypes. Use this skill for disease informatics tasks involving get associated targets by disease efoId get associated drugs by target name get publications by drug name get associated phenotypes by disease efoId. Combines 4 tools from 1 SCP server(s)."
Disease Knowledge Graph
Discipline: Disease Informatics | Tools Used: 4 | Servers: 1
Description
Build disease knowledge graph: OpenTargets targets, drugs, publications, and phenotypes.
Tools Used
- `get_associated_targets_by_disease_efoId` from
opentargets-server(streamable-http) -https://scp.intern-ai.org.cn/api/v1/mcp/15/Origene-OpenTargets - `get_associated_drugs_by_target_name` from
opentargets-server(streamable-http) -https://scp.intern-ai.org.cn/api/v1/mcp/15/Origene-OpenTargets - `get_publications_by_drug_name` from
opentargets-server(streamable-http) -https://scp.intern-ai.org.cn/api/v1/mcp/15/Origene-OpenTargets - `get_associated_phenotypes_by_disease_efoId` from
opentargets-server(streamable-http) -https://scp.intern-ai.org.cn/api/v1/mcp/15/Origene-OpenTargets
Workflow
- Get associated targets
- Get drugs for top target
- Get publications for top drug
- Get associated phenotypes
Test Case
Input
json
{"disease_efo": "EFO_0000311"}
Expected Steps
- Get associated targets
- Get drugs for top target
- Get publications for top drug
- Get associated phenotypes
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 = {"opentargets-server": "https://scp.intern-ai.org.cn/api/v1/mcp/15/Origene-OpenTargets"}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["opentargets-server"], _, _ = await connect("https://scp.intern-ai.org.cn/api/v1/mcp/15/Origene-OpenTargets", "streamable-http")# Execute workflow steps# Step 1: Get associated targetsresult_1 = await sessions["opentargets-server"].call_tool("get_associated_targets_by_disease_efoId", arguments={})data_1 = parse(result_1)print(f"Step 1 result: {json.dumps(data_1, indent=2, ensure_ascii=False)[:500]}")# Step 2: Get drugs for top targetresult_2 = await sessions["opentargets-server"].call_tool("get_associated_drugs_by_target_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 publications for top drugresult_3 = await sessions["opentargets-server"].call_tool("get_publications_by_drug_name", arguments={})data_3 = parse(result_3)print(f"Step 3 result: {json.dumps(data_3, indent=2, ensure_ascii=False)[:500]}")# Step 4: Get associated phenotypesresult_4 = await sessions["opentargets-server"].call_tool("get_associated_phenotypes_by_disease_efoId", 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())