clinical_trial_drug_profile

$npx mdskill add InternScience/scp/clinical_trial_drug_profile

Profiles drugs for clinical trials using FDA data

  • Solves the task of gathering clinical trial drug profiles
  • Uses four FDA drug-related APIs from a single SCP server
  • Aggregates clinical studies, contraindications, pregnancy, and geriatric data
  • Returns structured drug profile information for clinical research
SKILL.md
.github/skills/clinical_trial_drug_profileView on GitHub ↗
---
name: clinical_trial_drug_profile
description: "Clinical Trial Drug Profiling - Profile drug for clinical trials: FDA clinical studies, contraindications, pregnancy info, and geriatric use. Use this skill for clinical research tasks involving get clinical studies info by drug name get contraindications by drug name get pregnancy effects info by drug name get geriatric use info by drug name. Combines 4 tools from 1 SCP server(s)."
---

# Clinical Trial Drug Profiling

**Discipline**: Clinical Research | **Tools Used**: 4 | **Servers**: 1

## Description

Profile drug for clinical trials: FDA clinical studies, contraindications, pregnancy info, and geriatric use.

## Tools Used

- **`get_clinical_studies_info_by_drug_name`** from `fda-drug-server` (streamable-http) - `https://scp.intern-ai.org.cn/api/v1/mcp/14/Origene-FDADrug`
- **`get_contraindications_by_drug_name`** from `fda-drug-server` (streamable-http) - `https://scp.intern-ai.org.cn/api/v1/mcp/14/Origene-FDADrug`
- **`get_pregnancy_effects_info_by_drug_name`** from `fda-drug-server` (streamable-http) - `https://scp.intern-ai.org.cn/api/v1/mcp/14/Origene-FDADrug`
- **`get_geriatric_use_info_by_drug_name`** from `fda-drug-server` (streamable-http) - `https://scp.intern-ai.org.cn/api/v1/mcp/14/Origene-FDADrug`

## Workflow

1. Get clinical studies info
2. Get contraindications
3. Get pregnancy effects
4. Get geriatric use info

## Test Case

### Input
```json
{
    "drug_name": "methotrexate"
}
```

### Expected Steps
1. Get clinical studies info
2. Get contraindications
3. Get pregnancy effects
4. Get geriatric use info

## 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 = {
    "fda-drug-server": "https://scp.intern-ai.org.cn/api/v1/mcp/14/Origene-FDADrug"
}

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["fda-drug-server"], _, _ = await connect("https://scp.intern-ai.org.cn/api/v1/mcp/14/Origene-FDADrug", "streamable-http")

    # Execute workflow steps
    # Step 1: Get clinical studies info
    result_1 = await sessions["fda-drug-server"].call_tool("get_clinical_studies_info_by_drug_name", arguments={})
    data_1 = parse(result_1)
    print(f"Step 1 result: {json.dumps(data_1, indent=2, ensure_ascii=False)[:500]}")

    # Step 2: Get contraindications
    result_2 = await sessions["fda-drug-server"].call_tool("get_contraindications_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 pregnancy effects
    result_3 = await sessions["fda-drug-server"].call_tool("get_pregnancy_effects_info_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 geriatric use info
    result_4 = await sessions["fda-drug-server"].call_tool("get_geriatric_use_info_by_drug_name", 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())
```
More from InternScience/scp