Skip to main content
Glama

pharmacogenomics-guidelines-mcp-server

Get recommendations

pgx_get_recommendations
Read-onlyIdempotent

Browse CPIC recommendations in drug mode with one exact drugName or drugId. Match across drugs in results mode with geneResults or geneSymbol plus phenotype/activityScore, or genotype mode with 1–10 uniquely resolved gene/diplotype entries. Both matching modes accept an optional drug. Optional view=test_alerts selects complete example CDS alerts instead of recommendations, without joins; default view=recommendations. Alert records retain ordered alerttext, No CDS and n/a. Use pgx_list_reference topic phenotypes for source values. Every matched prerequisite must be explicit; omitted genes are never normal, negative or No Result. Preserve populations, scores, classifications and source text. Follow page.nextOffset and incompletePage.nextOffset independently for the selected collection and missing-gene diagnostics; consult source guidelines before clinical use.

Input Schema

NameRequiredDescriptionDefault
modeYesdrug requires one drugName or drugId; genotype requires genotype; results requires geneResults or geneSymbol with phenotype/activityScore. Genotype/results optionally accept one drug selector.
viewNoSelect source recommendations (default) or example CDS test alerts with the same selectors and independent paging.
limitNoPositive safe-integer recommendation limit; values above 50 are clamped to 50 with a notice (default 10).
drugIdNoExact drugId returned by pgx_search_pairs; blank means unset.
offsetNoZero-based offset; use nextOffset to continue (default 0).
drugNameNoExact case-insensitive drug name; obtain names with pgx_search_pairs. Blank means unset.
genotypeNoRequired in genotype mode: 1–10 explicit gene/diplotype entries. Every entry must resolve uniquely before lookup.
phenotypeNoSource phenotype for geneSymbol; inspect pgx_list_reference topic phenotypes. Excludes activityScore and geneResults.
geneSymbolNoGene for a scalar result or exploratory gene filter. Required for a scalar result when the drug has multiple genes.
populationNoExact source population after outer whitespace trimming; all matching rows are retained.
geneResultsNoExplicit results for 1–10 genes; excludes scalar geneSymbol, phenotype, activityScore and genotype.
activityScoreNoSource activity score for geneSymbol; excludes phenotype and geneResults.
incompleteLimitNoPositive safe-integer incomplete diagnostic limit; values above 100 are clamped to 100 with a notice (default 25).
incompleteOffsetNoIndependent zero-based incomplete diagnostic offset; follow incompletePage.nextOffset.

Output Schema

NameRequiredDescriptionDefault
capNoEffective public page limit.
pageNoSource pagination metadata.
errorNoPresent when the call failed. Absent on success.
itemsNoComplete source records; matched rows have every required gene result explicitly supplied.
shownNoNumber of returned rows, equal to page.returned.
alertsNoComplete source alerts in test_alerts view only; recommendation items remain empty.
statusNoExploratory browsing, complete genetic match, no match, missing prerequisites, or unresolved genotype.
noticesNoNotices about this result; empty when none apply.
truncatedNoWhether more matching rows remain after this page.
provenanceNoLive source attribution and retrieval details.
clinicalCaveatNoSource limitations and required clinical qualification.
effectiveQueryNoNormalized selectors and effective page defaults.
incompletePageNoIndependent page of incomplete prerequisite diagnostics; totals computed before either page.
geneResolutionsNoPer-gene genotype diagnostics, including ambiguity and source records.
incompleteAlertsNoIndependently paged incomplete alerts in test_alerts view only.
incompleteMatchesNoReference possibilities requiring additional results; never matched prescribing advice.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only declare read-only/idempotent/open-world, but the description adds real behavioral rules: omitted genes are never treated as normal/negative/No Result, every prerequisite must be explicit, source text/populations/classifications are preserved, and recommendation vs incomplete-diagnostic paging advance independently. It also warns to consult source guidelines before clinical use. Minor deduction because some added clauses ('without joins', 'retain ordered alerttext, No CDS and n/a') are cryptic rather than clarifying.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded correctly: drug mode first, then the matching modes, then the view toggle, then invariants, paging, and the clinical caveat. Dense but nearly every sentence carries operational content for a 14-parameter, three-mode tool. A few compressed phrases cost clarity without saving much space.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, return values need not be explained, yet the description still points to page.nextOffset and incompletePage.nextOffset, showing awareness of the result shape. Given three modes, nested objects, and 14 parameters, it covers selection, invariants, and paging well; it says nothing about failure modes when a selector is ambiguous or unmatched, which is the remaining gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents every parameter including the mode/view enums and nested genotype/geneResults shapes. The description reinforces the mode-to-selector coupling and the 'uniquely resolved' genotype constraint but introduces almost no syntax or format detail beyond what is already structured. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Browse CPIC recommendations') and then partitions it into three named modes with the exact selector each requires. It also names sibling tools (pgx_search_pairs for drug identifiers, pgx_list_reference for phenotypes), so an agent can locate this tool in the family without opening schemas.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives explicit selection logic per mode and for the view toggle ('view=test_alerts selects complete example CDS alerts instead of recommendations'). It routes the agent to pgx_list_reference for valid phenotype values. It stops short of stating when to prefer pgx_get_guideline or pgx_lookup_diplotype instead, so exclusions are incomplete.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.