MCP Server that provides real-time drug interaction checking via the openFDA API. Replaces hardcoded interaction dictionary with dynamically-queried, evidence-based FDA adverse event reports and drug label data.
SafeRx has three well-named, read-only tools with clear descriptions (avg 180 chars, within baseline 194). All tools have input schemas with typed parameters and descriptions. However, output schemas are not documented in the visible code, and error handling lacks recovery guidance. Parameter descriptions are adequate but could specify constraints (e.g., drug name format, report threshold rationale). No tool annotations (readOnlyHint, etc.) despite all being read-only. Naming follows verb_noun pattern well (check_, get_, search_). Missing: output schema documentation, error classification, and actionable error messages.
Check for drug-drug interactions using FDA adverse event reports. Queries the openFDA adverse event database for reports where both the new medication and each existing medication were co-administered. A high number of reports suggests a clinically significant interaction.
Retrieve official drug-label interaction warnings from FDA. Queries the openFDA drug labeling database for the formal "drug_interactions" section of the medication's FDA-approved label. This provides authoritative, manufacturer-documented interaction data.
Normalize a drug name and find its FDA registration info. Useful for standardizing free-text medication names before further processing. Returns generic name, brand names, and drug class.
Output schemas not documented. LLMs cannot plan downstream calls or extract fields without knowing response structure (e.g., does check_drug_interactions return report_count, severity_level, interaction_list?). Baseline: 100% of A+ tools document return types.
Error handling lacks recovery guidance. Code calls openFDA API with 15s timeout but no visible error classification (retryable vs fatal) or actionable messages. E.g., 'API timeout' vs 'API timeout. Retry in 30s or try a simpler query.'
No tool annotations despite all tools being read-only. Missing readOnlyHint in tool definitions. Agents cannot distinguish safe tools from destructive ones without explicit hints.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 60 | <=2025-11-25 | v2 |
Parameter descriptions lack format/constraint details. 'drug_name' and 'new_medication' accept free-form strings with no guidance on case sensitivity, brand vs generic, or expected format. Baseline: descriptions should state 'The project key (2-10 uppercase letters, e.g. PROJ)'.
No pagination or result limits documented. check_drug_interactions returns 'existing_medications' array with no stated max length. If an agent passes 50 drugs, response could be huge. Baseline: tools returning lists should accept limit and return total count.