| name | drug_warning_report |
| description | Drug Warning Intelligence Report - Generate drug warning report: ChEMBL drug warnings, FDA boxed warnings, adverse reactions, and environmental warnings. Use this skill for pharmacovigilance tasks involving get drug warning by id get boxed warning info by drug name get adverse reactions by drug name get environmental warning by drug name. Combines 4 tools from 2 SCP server(s). |
Drug Warning Intelligence Report
Discipline: Pharmacovigilance | Tools Used: 4 | Servers: 2
Description
Generate drug warning report: ChEMBL drug warnings, FDA boxed warnings, adverse reactions, and environmental warnings.
Tools Used
get_drug_warning_by_id from chembl-server (streamable-http) - https://scp.intern-ai.org.cn/api/v1/mcp/4/Origene-ChEMBL
get_boxed_warning_info_by_drug_name from fda-drug-server (streamable-http) - https://scp.intern-ai.org.cn/api/v1/mcp/14/Origene-FDADrug
get_adverse_reactions_by_drug_name from fda-drug-server (streamable-http) - https://scp.intern-ai.org.cn/api/v1/mcp/14/Origene-FDADrug
get_environmental_warning_by_drug_name from fda-drug-server (streamable-http) - https://scp.intern-ai.org.cn/api/v1/mcp/14/Origene-FDADrug
Workflow
- Get ChEMBL drug warnings
- Get FDA boxed warnings
- Get adverse reactions
- Get environmental warnings
Test Case
Input
{
"drug_name": "rosiglitazone",
"warning_id": 1
}
Expected Steps
- Get ChEMBL drug warnings
- Get FDA boxed warnings
- Get adverse reactions
- Get environmental warnings
Usage Example
Note: Replace sk-b04409a1-b32b-4511-9aeb-22980abdc05c with your own SCP Hub API Key. You can obtain one from the SCP Platform.
import asyncio
import json
from contextlib import AsyncExitStack
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"
}
async def connect(url, stack):
transport = streamablehttp_client(url=url, headers={"SCP-HUB-API-KEY": "sk-b04409a1-b32b-4511-9aeb-22980abdc05c"})
read, write, _ = await stack.enter_async_context(transport)
ctx = ClientSession(read, write)
session = await stack.enter_async_context(ctx)
await session.initialize()
return session
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)
():
AsyncExitStack() stack:
sessions = {}
sessions[] = connect(, stack)
sessions[] = connect(, stack)
result_1 = sessions[].call_tool(, arguments={})
data_1 = parse(result_1)
()
result_2 = sessions[].call_tool(, arguments={})
data_2 = parse(result_2)
()
result_3 = sessions[].call_tool(, arguments={})
data_3 = parse(result_3)
()
result_4 = sessions[].call_tool(, arguments={})
data_4 = parse(result_4)
()
()
__name__ == :
asyncio.run(main())