tooluniverse-pharmacovigilance
Analyze drug safety signals from FDA adverse event reports, label warnings, and pharmacogenomic data. Calculates disproportionality measures (PRR, ROR), identifies serious adverse events, assesses pharmacogenomic risk variants. Use when asked about drug safety, adverse events, post-market surveillance, or risk-benefit assessment.
Install
mkdir -p .claude/skills/tooluniverse-pharmacovigilance && curl -L -o skill.zip "https://mcp.directory/api/skills/download/1769" && unzip -o skill.zip -d .claude/skills/tooluniverse-pharmacovigilance && rm skill.zipInstalls to .claude/skills/tooluniverse-pharmacovigilance
About this skill
Pharmacovigilance Safety Analyzer
Systematic drug safety analysis using FAERS adverse event data, FDA labeling, PharmGKB pharmacogenomics, and clinical trial safety signals.
KEY PRINCIPLES:
- Report-first approach - Create report file FIRST, update progressively
- Signal quantification - Use disproportionality measures (PRR, ROR)
- Severity stratification - Prioritize serious/fatal events
- Multi-source triangulation - FAERS, labels, trials, literature
- Pharmacogenomic context - Include genetic risk factors
- Actionable output - Risk-benefit summary with recommendations
- English-first queries - Always use English drug names and search terms in tool calls, even if the user writes in another language. Only try original-language terms as a fallback. Respond in the user's language
When to Use
Apply when user asks:
- "What are the safety concerns for [drug]?"
- "What adverse events are associated with [drug]?"
- "Is [drug] safe? What are the risks?"
- "Should I be concerned about [specific adverse event] with [drug]?"
- "Compare safety profiles of [drug A] vs [drug B]"
- "Pharmacovigilance analysis for [drug]"
Critical Workflow Requirements
1. Report-First Approach (MANDATORY)
-
Create the report file FIRST:
- File name:
[DRUG]_safety_report.md - Initialize with all section headers
- Add placeholder text:
[Researching...]
- File name:
-
Progressively update as you gather data
-
Output separate data files:
[DRUG]_adverse_events.csv- Ranked AEs with counts/signals[DRUG]_pharmacogenomics.csv- PGx variants and recommendations
2. Citation Requirements (MANDATORY)
Every safety signal MUST include source:
### Signal: Hepatotoxicity
- **PRR**: 3.2 (95% CI: 2.8-3.7)
- **Cases**: 1,247 reports
- **Serious**: 892 (71.5%)
- **Fatal**: 23
*Source: FAERS via `FAERS_count_reactions_by_drug_event` (Q1 2020 - Q4 2025)*
Phase 0: Tool Verification
CRITICAL: Verify tool parameters before calling.
Known Parameter Corrections
| Tool | WRONG Parameter | CORRECT Parameter |
|---|---|---|
FAERS_count_reactions_by_drug_event | drug | drug_name |
DailyMed_search_spls | name | drug_name |
PharmGKB_search_drug | drug | query |
OpenFDA_get_drug_events | drug_name | search |
Workflow Overview
Phase 1: Drug Disambiguation
├── Resolve drug name (brand → generic)
├── Get identifiers (RxCUI, ChEMBL, DrugBank)
└── Identify drug class and mechanism
↓
Phase 2: Adverse Event Profiling (FAERS)
├── Query FAERS for drug-event pairs
├── Calculate disproportionality (PRR, ROR)
├── Stratify by seriousness
└── OUTPUT: Ranked AE table
↓
Phase 3: Label Warning Extraction
├── DailyMed boxed warnings
├── Contraindications
├── Warnings and precautions
└── OUTPUT: Label safety summary
↓
Phase 4: Pharmacogenomic Risk
├── PharmGKB clinical annotations
├── High-risk genotypes
├── Dosing recommendations
└── OUTPUT: PGx risk table
↓
Phase 5: Clinical Trial Safety
├── ClinicalTrials.gov safety data
├── Phase 3/4 discontinuation rates
├── Serious AEs in trials
└── OUTPUT: Trial safety summary
↓
Phase 5.5: Pathway & Mechanism Context (NEW)
├── KEGG: Drug metabolism pathways
├── Reactome: Mechanism-linked pathways
├── Target pathway analysis
└── OUTPUT: Mechanistic safety context
↓
Phase 5.6: Literature Intelligence (ENHANCED)
├── PubMed: Published safety studies
├── BioRxiv/MedRxiv: Recent preprints
├── OpenAlex: Citation analysis
└── OUTPUT: Literature evidence
↓
Phase 6: Signal Prioritization
├── Rank by PRR × severity × frequency
├── Identify actionable signals
├── Risk-benefit assessment
└── OUTPUT: Prioritized signal list
↓
Phase 7: Report Synthesis
Phase 1: Drug Disambiguation
1.1 Resolve Drug Identity
def resolve_drug(tu, drug_query):
"""Resolve drug name to standardized identifiers."""
identifiers = {}
# DailyMed for NDC and SPL
dailymed = tu.tools.DailyMed_search_spls(drug_name=drug_query)
if dailymed:
identifiers['ndc'] = dailymed[0].get('ndc')
identifiers['setid'] = dailymed[0].get('setid')
identifiers['generic_name'] = dailymed[0].get('generic_name')
# ChEMBL for molecule data
chembl = tu.tools.ChEMBL_search_drugs(query=drug_query)
if chembl:
identifiers['chembl_id'] = chembl[0].get('molecule_chembl_id')
identifiers['max_phase'] = chembl[0].get('max_phase')
return identifiers
1.2 Output for Report
## 1. Drug Identification
| Property | Value |
|----------|-------|
| **Generic Name** | Metformin |
| **Brand Names** | Glucophage, Fortamet, Glumetza |
| **Drug Class** | Biguanide antidiabetic |
| **ChEMBL ID** | CHEMBL1431 |
| **Mechanism** | AMPK activator, hepatic gluconeogenesis inhibitor |
| **First Approved** | 1994 (US) |
*Source: DailyMed via `DailyMed_search_spls`, ChEMBL*
Phase 2: Adverse Event Profiling
2.1 FAERS Query Strategy
def get_faers_events(tu, drug_name, top_n=50):
"""Query FAERS for adverse events."""
# Get event counts
events = tu.tools.FAERS_count_reactions_by_drug_event(
drug_name=drug_name,
limit=top_n
)
# For each event, get detailed breakdown
detailed_events = []
for event in events:
detail = tu.tools.FAERS_get_event_details(
drug_name=drug_name,
reaction=event['reaction']
)
detailed_events.append({
'reaction': event['reaction'],
'count': event['count'],
'serious': detail.get('serious_count', 0),
'fatal': detail.get('death_count', 0),
'hospitalization': detail.get('hospitalization_count', 0)
})
return detailed_events
2.2 Disproportionality Analysis
Proportional Reporting Ratio (PRR):
PRR = (A/B) / (C/D)
Where:
A = Reports of drug X with event Y
B = Reports of drug X with any event
C = Reports of event Y with any drug (excluding X)
D = Total reports (excluding drug X)
Signal Thresholds:
| Measure | Signal Threshold | Strong Signal |
|---|---|---|
| PRR | >2.0 | >3.0 |
| Chi-squared | >4.0 | >10.0 |
| N (case count) | ≥3 | ≥10 |
2.3 Severity Classification
| Category | Definition | Priority |
|---|---|---|
| Fatal | Death outcome | Highest |
| Life-threatening | Immediate death risk | Very High |
| Hospitalization | Required/prolonged hospitalization | High |
| Disability | Persistent impairment | High |
| Congenital anomaly | Birth defect | High |
| Other serious | Medical intervention required | Medium |
| Non-serious | No serious criteria | Low |
2.4 Output for Report
## 2. Adverse Event Profile (FAERS)
**Data Period**: Q1 2020 - Q4 2025
**Total Reports for Drug**: 45,234
### 2.1 Top Adverse Events by Frequency
| Rank | Adverse Event | Reports | PRR | 95% CI | Serious (%) | Fatal |
|------|---------------|---------|-----|--------|-------------|-------|
| 1 | Diarrhea | 8,234 | 2.3 | 2.1-2.5 | 12% | 3 |
| 2 | Nausea | 6,892 | 1.8 | 1.6-2.0 | 8% | 0 |
| 3 | Lactic acidosis | 1,247 | 15.2 | 12.8-17.9 | 89% ⚠️ | 156 ⚠️ |
| 4 | Hypoglycemia | 2,341 | 2.1 | 1.9-2.4 | 34% | 8 |
| 5 | Vitamin B12 deficiency | 892 | 8.4 | 7.2-9.8 | 23% | 0 |
### 2.2 Serious Adverse Events Only
| Adverse Event | Serious Reports | Fatal | PRR | Signal |
|---------------|-----------------|-------|-----|--------|
| Lactic acidosis | 1,110 | 156 | 15.2 | **STRONG** ⚠️ |
| Acute kidney injury | 678 | 34 | 4.2 | Moderate |
| Hepatotoxicity | 234 | 12 | 3.1 | Moderate |
### 2.3 Signal Interpretation
**Strong Signal: Lactic Acidosis** ⚠️
- PRR of 15.2 indicates 15x higher reporting rate than expected
- 89% classified as serious
- 156 fatalities (12.5% case fatality)
- **Known class effect of biguanides**
- Risk factors: renal impairment, hypoxia, contrast agents
*Source: FAERS via `FAERS_count_reactions_by_drug_event`*
Phase 3: Label Warning Extraction
3.1 DailyMed Query
def extract_label_warnings(tu, setid):
"""Extract safety sections from FDA label."""
label = tu.tools.DailyMed_get_spl_by_set_id(setid=setid)
warnings = {
'boxed_warning': label.get('boxed_warning'),
'contraindications': label.get('contraindications'),
'warnings_precautions': label.get('warnings_and_precautions'),
'adverse_reactions': label.get('adverse_reactions'),
'drug_interactions': label.get('drug_interactions')
}
return warnings
3.2 Warning Severity Categories
| Category | Symbol | Description |
|---|---|---|
| Boxed Warning | ⬛ | Most serious, life-threatening |
| Contraindication | 🔴 | Must not use |
| Warning | 🟠 | Significant risk |
| Precaution | 🟡 | Use caution |
3.3 Output for Report
## 3. FDA Label Safety Information
### 3.1 Boxed Warning ⬛
**LACTIC ACIDOSIS**
> Metformin can cause lactic acidosis, a rare but serious complication.
> Risk increases with renal impairment, sepsis, dehydration, excessive
> alcohol intake, hepatic impairment, and acute heart failure.
>
> **Contraindicated in patients with eGFR <30 mL/min/1.73m²**
### 3.2 Contraindications 🔴
| Contraindication | Rationale |
|------------------|-----------|
| eGFR <30 mL/min/1.73m² | Lactic acidosis risk |
| Acute/chronic metabolic acidosis | May worsen acidosis |
| Hypersensitivity to metformin | Allergic reaction |
### 3.3 Warnings and Precautions 🟠
| Warning | Clinical Action |
|---------|-----------------|
| Vitamin B12 deficiency | Monitor B12 levels annually |
| Hypoglycemia with insulin | Reduce insulin dose |
| Radiologic contrast | Hold 48h around procedure |
| Surgical procedures | Hold day of surgery
---
*Content truncated.*
More by mims-harvard
View all skills by mims-harvard →You might also like
flutter-development
aj-geddes
Build beautiful cross-platform mobile apps with Flutter and Dart. Covers widgets, state management with Provider/BLoC, navigation, API integration, and material design.
ui-ux-pro-max
nextlevelbuilder
"UI/UX design intelligence. 50 styles, 21 palettes, 50 font pairings, 20 charts, 8 stacks (React, Next.js, Vue, Svelte, SwiftUI, React Native, Flutter, Tailwind). Actions: plan, build, create, design, implement, review, fix, improve, optimize, enhance, refactor, check UI/UX code. Projects: website, landing page, dashboard, admin panel, e-commerce, SaaS, portfolio, blog, mobile app, .html, .tsx, .vue, .svelte. Elements: button, modal, navbar, sidebar, card, table, form, chart. Styles: glassmorphism, claymorphism, minimalism, brutalism, neumorphism, bento grid, dark mode, responsive, skeuomorphism, flat design. Topics: color palette, accessibility, animation, layout, typography, font pairing, spacing, hover, shadow, gradient."
drawio-diagrams-enhanced
jgtolentino
Create professional draw.io (diagrams.net) diagrams in XML format (.drawio files) with integrated PMP/PMBOK methodologies, extensive visual asset libraries, and industry-standard professional templates. Use this skill when users ask to create flowcharts, swimlane diagrams, cross-functional flowcharts, org charts, network diagrams, UML diagrams, BPMN, project management diagrams (WBS, Gantt, PERT, RACI), risk matrices, stakeholder maps, or any other visual diagram in draw.io format. This skill includes access to custom shape libraries for icons, clipart, and professional symbols.
godot
bfollington
This skill should be used when working on Godot Engine projects. It provides specialized knowledge of Godot's file formats (.gd, .tscn, .tres), architecture patterns (component-based, signal-driven, resource-based), common pitfalls, validation tools, code templates, and CLI workflows. The `godot` command is available for running the game, validating scripts, importing resources, and exporting builds. Use this skill for tasks involving Godot game development, debugging scene/resource files, implementing game systems, or creating new Godot components.
nano-banana-pro
garg-aayush
Generate and edit images using Google's Nano Banana Pro (Gemini 3 Pro Image) API. Use when the user asks to generate, create, edit, modify, change, alter, or update images. Also use when user references an existing image file and asks to modify it in any way (e.g., "modify this image", "change the background", "replace X with Y"). Supports both text-to-image generation and image-to-image editing with configurable resolution (1K default, 2K, or 4K for high resolution). DO NOT read the image file first - use this skill directly with the --input-image parameter.
pdf-to-markdown
aliceisjustplaying
Convert entire PDF documents to clean, structured Markdown for full context loading. Use this skill when the user wants to extract ALL text from a PDF into context (not grep/search), when discussing or analyzing PDF content in full, when the user mentions "load the whole PDF", "bring the PDF into context", "read the entire PDF", or when partial extraction/grepping would miss important context. This is the preferred method for PDF text extraction over page-by-page or grep approaches.
Related MCP Servers
Browse all serversAccess FDA drug info, faers data, and adverse event reports with OpenFDA’s robust tools for faers, vaers, and NDC valida
AI safety toolkit: care scoring, threat detection, burnout analysis, relationship prediction, and Care Membrane framewor
Enhance online safety with Perspective API—AI-powered content moderation for Reddit, YouTube, and more. Detect toxicity
Optimize your codebase for AI with Repomix—transform, compress, and secure repos for easier analysis with modern AI tool
MCP server for Ghidra reverse engineering. Enables AI assistants to decompile binaries, analyze functions, rename variab
Convert almost anything to Markdown. Transforms PDFs, images, web pages, DOCX, XLSX, and other formats into clean Markdo
Stay ahead of the MCP ecosystem
Get weekly updates on new skills and servers.