Adaptive Risk Intelligence for Polypharmacy Assessment — MCP server providing clinical decision support tools for drug interaction analysis, appropriateness screening, renal dosing, temporal cascade modeling, and deprescribing recommendations
ARIA MCP server has 12 well-intentioned clinical tools with clear domain focus (drug interactions, deprescribing, FHIR integration). Naming is strong (verb-noun pattern: check_interactions, explain_mechanism, score_risk). Descriptions are present and substantive (avg ~150 chars, well above 20-char floor). However, input schemas are INFERRED from the feature list rather than directly visible in source code, only tool names and brief descriptions appear in main.rs; actual JSON Schema definitions are not shown. Parameter types are documented in the feature summary but not verifiable in the provided code excerpt. Output schemas are completely undocumented, no indication of what these tools return. Error handling and recovery guidance are absent. Security considerations for FHIR token handling are mentioned in agent code but not reflected in tool definitions. The fhir_patient_medications tool accepts optional bearer tokens as a parameter, violating secret-injection pattern.
Deterministic CKD/eGFR-aware renal dose-adjustment flags. Rule-based assessment (not LLM) for clinical safety. Estimates eGFR from CKD stage and flags drugs requiring renal adjustment.
Build a network graph of drug interactions showing nodes (drugs), edges (interactions), hub drugs, and emergent multi-drug interactions
Check for drug-drug interactions in a medication list with optional patient context
Compute medication burden scores for anticholinergic, sedation, and QT prolongation risk across the drug list
Explain the mechanistic basis of a drug-drug interaction including pathways and clinical consequences
Read a patient's active medications from a FHIR R4 endpoint. All arguments optional; falls back to FHIR_BASE_URL and FHIR_DEFAULT_PATIENT_ID environment variables. Empty bearer token means no Authorization header (works for public HAPI sandbox; production requires token).
Input schemas not directly visible in source code, tool definitions inferred from feature list only. Cannot verify JSON Schema structure, type constraints, or parameter validation rules. Per HARD SCORING RULE, caps schema scores at 35 max.
Output schemas completely undocumented. No indication of what fields tools return, data types, or structure. LLMs cannot plan downstream tool calls or extract required data without documented return types.
Inferred effective spec: 2026-07-28+.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 56 | 2026-07-28+ | v2 |
Generate a prioritized deprescribing plan with steps, monitoring, expected risk reduction, and timeline
Generate a comprehensive clinical report summarizing patient, medications, interactions, risk scores, burden, temporal model, deprescribing plan, and evidence citations
Model temporal cascade of drug interactions over a timeline (default 14 days) showing daily risk scores, peak risk day, and intervention windows
Score the clinical risk of a drug interaction adjusted for patient phenotype (age, sex, renal function, hepatic impairment, smoking, alcohol use)
Geriatric prescribing-appropriateness screen — deterministic, rule-based assessment against AGS Beers and STOPP/START criteria. Flags potentially inappropriate medications (PIMs) and prescribing omissions. Screening applies at/above age 65; below that age returns not screened.
Suggest alternative medications for a given drug based on clinical reason and patient context
fhir_patient_medications accepts 'fhir_bearer_token' as a parameter, violating secret-injection pattern. Credentials must never appear as tool parameters, use server-side secret injection via environment variables. Agent traces log all parameters, leaking secrets into logs.
No error handling or recovery guidance documented. Tools lack descriptions of failure modes, retryability, or actionable error messages. LLMs cannot determine what to do when a tool fails.
Complex nested input objects (e.g., 'analysis' param in generate_deprescribing_plan and generate_report) lack field-level documentation. LLMs cannot determine which fields are required, their types, or valid values without detailed schema.