Open standard for pharmacogenomic data. Upload your DNA, ask about medications. Transforms raw genetic data into genomic intelligence using the OpenPGx standard format.
OpenPGx has 10 tools with basic naming and descriptions, but significant gaps in schema completeness and parameter documentation. Tool names follow verb_noun convention (upload_dna, load_profile, analyze_medication, get_gene_info, search_drugs, etc.), which is good. However, most tools lack detailed input parameter descriptions beyond the parameter name itself. For example, analyze_medication accepts 'drug_name' with description 'Brand or generic drug name (e.g., Zoloft, sertraline)', the example values in descriptions violate the rubric (LLMs reuse examples literally). Output schemas are not documented in the visible code. Parameter types are present (string, enum) but descriptions are minimal (10-30 chars), falling below the 72-char baseline. No error handling guidance visible. The upload_dna tool is the only one with a WRITE risk designation; others are READ_ONLY, which is appropriate. Overall, this is a fair-to-poor implementation typical of community servers (C-grade territory).
Analyze a medication for pharmacogenomic interactions based on patient's genetic profile
Get detailed information about a pharmacogene and its clinical significance
Get detailed information about a disease risk condition and SNP associations
Get personalized supplement recommendations based on genetic profile
Get detailed information about a trait and its genetic basis
Load a previously uploaded patient profile by code or patient ID
Search for drugs by name, category, or semantic similarity
Search for disease risks by condition name or category
Output schemas not documented. LLMs cannot plan downstream calls or extract required fields without knowing what each tool returns. Visible code shows internal formatting (formatRiskResult, getSupplementRec) but no schema declarations in tool registration.
Parameter descriptions contain example values (e.g., 'e.g., Zoloft, sertraline' in analyze_medication). LLMs reuse examples literally rather than adapting to context, causing failures. Replace with formal constraints (enums, patterns) or remove examples entirely.
Parameter descriptions are too brief (10-30 chars). Rubric baseline is 72 chars. Descriptions like 'Gene name' or 'Drug name' lack context for when/why to use the tool. Expand to explain what the parameter controls and expected format.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 46 | <=2025-11-25 | v2 |
Search for traits by name or category
Upload raw DNA data file (23andMe or Genera format) and extract pharmacogenomic profile
No error handling guidance visible. Tools do not document what happens on invalid input (e.g., unknown drug name, invalid gene). LLMs need recovery hints: 'If drug not found, try search_drugs() first.' or 'Valid genes: CYP2D6, CYP2C19, ...'
upload_dna accepts 'file_content' as raw string. No validation visible for file format (23andMe vs Genera), size limits, or encoding. Rubric requires early validation with actionable error messages. Code shows parseRawData() but no schema constraints on input.