| name | toxicity_assessment |
| description | Drug Toxicity Assessment - Comprehensive toxicity assessment: FDA adverse reactions, nonclinical toxicology, carcinogenicity data, and ADMET prediction. Use this skill for toxicology tasks involving get adverse reactions by drug name get nonclinical toxicology info by drug name get carcinogenic mutagenic fertility impairment info by drug name pred molecule admet. Combines 4 tools from 2 SCP server(s). |
Drug Toxicity Assessment
Discipline: Toxicology | Tools Used: 4 | Servers: 2
Description
Comprehensive toxicity assessment: FDA adverse reactions, nonclinical toxicology, carcinogenicity data, and ADMET prediction.
Tools Used
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_nonclinical_toxicology_info_by_drug_name from fda-drug-server (streamable-http) - https://scp.intern-ai.org.cn/api/v1/mcp/14/Origene-FDADrug
get_carcinogenic_mutagenic_fertility_impairment_info_by_drug_name from fda-drug-server (streamable-http) - https://scp.intern-ai.org.cn/api/v1/mcp/14/Origene-FDADrug
pred_molecule_admet from server-3 (streamable-http) - https://scp.intern-ai.org.cn/api/v1/mcp/3/DrugSDA-Model
Workflow
- Get FDA adverse reactions
- Get nonclinical toxicology
- Get carcinogenicity info
- Predict ADMET toxicity endpoints
Test Case
Input
{
"drug_name": "acetaminophen",
"smiles": "CC(=O)Nc1ccc(O)cc1"
}
Expected Steps
- Get FDA adverse reactions
- Get nonclinical toxicology
- Get carcinogenicity info
- Predict ADMET toxicity endpoints
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 = {
"fda-drug-server": "https://scp.intern-ai.org.cn/api/v1/mcp/14/Origene-FDADrug",
"server-3": "https://scp.intern-ai.org.cn/api/v1/mcp/3/DrugSDA-Model"
}
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())