Find pharmacogenomics guidelines, translate diplotypes, and retrieve prescribing recommendations.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Retrieve guideline coverage by source ID, exact gene symbol or exact drug name/ID. Default summary pages complete guideline records with exact drugCount/pairCount. view=drugs or pairs requires by=id and pages only that related collection, retaining its guideline descriptor. Ambiguous drug names page candidates for retry with drugId. Follow page.nextOffset; the 24,000-byte soft budget cuts only between complete rows, with oversizedRow for an indivisible exception. Missing coverage is found=false. Consult linked guidelines before clinical use.
id requires guidelineId; gene requires geneSymbol; drug requires exactly one exact drugName or drugId. Other selectors must be omitted.
Summary pages guideline descriptors; drugs or pairs requires by=id and pages only that related collection.
Positive safe-integer row limit; values above 100 are clamped to 100 with a notice (default 25).
Exact drugId returned by pgx_search_pairs; blank means unset.
Zero-based offset; use nextOffset to continue (default 0).
Exact case-insensitive source drug name for by=drug; blank means unset.
Gene symbol for by=gene; blank means unset.
Positive source guideline ID from pgx_get_guideline by=gene or by=drug results; no valid ID range is inferred.
Retrieve guideline coverage by source ID, exact gene symbol or exact drug name/ID. Default summary pages complete guideline records with exact drugCount/pairCount. view=drugs or pairs requires by=id and pages only that related collection, retaining its guideline descriptor. Ambiguous drug names page candidates for retry with drugId. Follow page.nextOffset; the 24,000-byte soft budget cuts only between complete rows, with oversizedRow for an indivisible exception. Missing coverage is found=false. Consult linked guidelines before clinical use.
| Argument | Type | Description |
|---|---|---|
| by* | string | id requires guidelineId; gene requires geneSymbol; drug requires exactly one exact drugName or drugId. Other selectors must be omitted. |
| view | string | Summary pages guideline descriptors; drugs or pairs requires by=id and pages only that related collection. |
| limit | integer | Positive safe-integer row limit; values above 100 are clamped to 100 with a notice (default 25). |
| drugId | string | Exact drugId returned by pgx_search_pairs; blank means unset. |
| offset | integer | Zero-based offset; use nextOffset to continue (default 0). |
| drugName | string | Exact case-insensitive source drug name for by=drug; blank means unset. |
| geneSymbol | string | Gene symbol for by=gene; blank means unset. |
| guidelineId | integer | Positive source guideline ID from pgx_get_guideline by=gene or by=drug results; no valid ID range is inferred. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"by"
],
"properties": {
"by": {
"enum": [
"id",
"gene",
"drug"
],
"type": "string",
"description": "id requires guidelineId; gene requires geneSymbol; drug requires exactly one exact drugName or drugId. Other selectors must be omitted."
},
"view": {
"enum": [
"summary",
"drugs",
"pairs"
],
"type": "string",
"default": "summary",
"description": "Summary pages guideline descriptors; drugs or pairs requires by=id and pages only that related collection."
},
"limit": {
"type": "integer",
"default": 25,
"maximum": 9007199254740991,
"minimum": 1,
"description": "Positive safe-integer row limit; values above 100 are clamped to 100 with a notice (default 25)."
},
"drugId": {
"type": "string",
"maxLength": 200,
"description": "Exact drugId returned by pgx_search_pairs; blank means unset."
},
"offset": {
"type": "integer",
"default": 0,
"maximum": 9007199254740991,
"minimum": 0,
"description": "Zero-based offset; use nextOffset to continue (default 0)."
},
"drugName": {
"type": "string",
"maxLength": 200,
"description": "Exact case-insensitive source drug name for by=drug; blank means unset."
},
"geneSymbol": {
"type": "string",
"maxLength": 100,
"description": "Gene symbol for by=gene; blank means unset."
},
"guidelineId": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Positive source guideline ID from pgx_get_guideline by=gene or by=drug results; no valid ID range is inferred.",
"exclusiveMinimum": 0
}
},
"additionalProperties": false
}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.
| Argument | Type | Description |
|---|---|---|
| mode* | string | drug requires one drugName or drugId; genotype requires genotype; results requires geneResults or geneSymbol with phenotype/activityScore. Genotype/results optionally accept one drug selector. |
| view | string | Select source recommendations (default) or example CDS test alerts with the same selectors and independent paging. |
| limit | integer | Positive safe-integer recommendation limit; values above 50 are clamped to 50 with a notice (default 10). |
| drugId | string | Exact drugId returned by pgx_search_pairs; blank means unset. |
| offset |
Inspect gene symbols, gene-specific source results, CPIC levels, ClinPGx testing labels, recommendation classifications and input formats. phenotypes requires geneSymbol and preserves distinct activity-score rows, frequencies and consultation text. Live genes/phenotypes support paging; static topics return their complete vocabulary without upstream requests. Use returned values in subsequent discovery, diplotype and recommendation calls.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Positive safe-integer row limit; values above 100 are clamped to 100 with a notice (default 25). |
| topic* | string | genes lists source gene records; phenotypes requires geneSymbol and lists full gene-result rows; other topics return verified static vocabulary. |
| offset | integer | Zero-based offset; use nextOffset to continue (default 0). |
| geneSymbol | string | Exact gene symbol; required for phenotypes, optional for genes, omit for static topics. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"topic"
],
"properties": {
"limit": {
"type": "integer",
"default": 25,
"maximum": 9007199254740991,
"minimum": 1,
"description": "Positive safe-integer row limit; values above 100 are clamped to 100 with a notice (default 25)."
},
"topic": {
"enum": [
"genes",
"phenotypes",
"cpic_levels",
"pgx_testing",
"classifications",
"input_formats"
],
"type": "string",
"description": "genes lists source gene records; phenotypes requires geneSymbol and lists full gene-result rows; other topics return verified static vocabulary."
},
"offset": {
"type": "integer",
"default": 0,
"maximum": 9007199254740991,
"minimum": 0,
"description": "Zero-based offset; use nextOffset to continue (default 0)."
},
"geneSymbol": {
"type": "string",
"maxLength": 100,
"description": "Exact gene symbol; required for phenotypes, optional for genes, omit for static topics."
}
},
"additionalProperties": false
}Translate a CPIC-supported diplotype or allele-status result for one gene. Supply geneSymbol and exact diplotype notation, including star alleles, named HLA positive/negative statuses, or non-star sequences; use pgx_search_alleles and pgx_list_reference with topic phenotypes to inspect supported values. Exact lookup precedes bounded reverse-order or status aliases. Multiple source rows remain ambiguous; no activity score or missing gene result is inferred.
| Argument | Type | Description |
|---|---|---|
| diplotype* | string | Exact source diplotype or allele-specific status, such as *1/*2 or *15:02 positive. |
| geneSymbol* | string | Gene symbol, such as CYP2C19 or HLA-B; outer whitespace is ignored. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"geneSymbol",
"diplotype"
],
"properties": {
"diplotype": {
"type": "string",
"maxLength": 500,
"minLength": 1,
"description": "Exact source diplotype or allele-specific status, such as *1/*2 or *15:02 positive."
},
"geneSymbol": {
"type": "string",
"maxLength": 100,
"minLength": 1,
"description": "Gene symbol, such as CYP2C19 or HLA-B; outer whitespace is ignored."
}
},
"additionalProperties": false
}Inspect CPIC allele function, evidence, definition metadata and complete population frequencies for geneSymbol. Name matches literally first, then a matching gene prefix before a star allele may be removed; clinicalFunctionalStatus matches literal text case-insensitively. Discover genes with pgx_list_reference. Definitions are metadata, not variant interpretation. Frequencies are source fractions; inferred frequencies are not observations and do not establish individual risk. Pages have a 24,000-byte complete-result soft budget; an indivisible exception sets oversizedRow. Continue with page.nextOffset.
| Argument | Type | Description |
|---|---|---|
| name | string | Exact source allele name; blank means unset. |
| limit | integer | Positive safe-integer row limit; values above 100 are clamped to 100 with a notice (default 25). |
| offset | integer | Zero-based offset; use nextOffset to continue (default 0). |
| geneSymbol* | string | Gene symbol, such as CYP2C19 or HLA-B; outer whitespace is ignored. |
| clinicalFunctionalStatus | string | Case-insensitive literal source clinical functional status; blank means unset. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"geneSymbol"
],
"properties": {
"name": {
"type": "string",
"maxLength": 500,
"description": "Exact source allele name; blank means unset."
},
"limit": {
"type": "integer",
"default": 25,
"maximum": 9007199254740991,
"minimum": 1,
"description": "Positive safe-integer row limit; values above 100 are clamped to 100 with a notice (default 25)."
},
"offset": {
"type": "integer",
"default": 0,
"maximum": 9007199254740991,
"minimum": 0,
"description": "Zero-based offset; use nextOffset to continue (default 0)."
},
"geneSymbol": {
"type": "string",
"maxLength": 100,
"minLength": 1,
"description": "Gene symbol, such as CYP2C19 or HLA-B; outer whitespace is ignored."
},
"clinicalFunctionalStatus": {
"type": "string",
"maxLength": 100,
"description": "Case-insensitive literal source clinical functional status; blank means unset."
}
},
"additionalProperties": false
}Search evaluated gene–drug pairs by gene, literal drug-name substring, exact drug/RxNorm/ATC identifiers, evaluation level or testing label. Filters combine with AND; identifiers never fall back to name-only search. Results include source drug identifiers and guideline links for pgx_get_guideline. A pair evaluation is not a prescribing recommendation. Follow nextOffset to continue.
| Argument | Type | Description |
|---|---|---|
| atcId | string | Exact ATC code (1–7 letters/digits) in any casing, optionally prefixed ATC: in any casing; outer whitespace is ignored and blank means unset. |
| limit | integer | Positive safe-integer row limit; values above 100 are clamped to 100 with a notice (default 25). |
| drugId | string | Exact drugId returned by pgx_search_pairs; blank means unset. |
| offset | integer | Zero-based offset; use nextOffset to continue (default 0). |
| drugName | string | Literal case-insensitive drug-name substring; blank means unset. |
| rxnormId | string | Decimal RxNorm ID, optionally prefixed RxNorm: in any casing; outer whitespace is ignored and blank means unset. |
| cpicLevel | string | Exact source CPIC evaluation level, not a prescribing recommendation. |
| integer |
| Zero-based offset; use nextOffset to continue (default 0). |
| drugName | string | Exact case-insensitive drug name; obtain names with pgx_search_pairs. Blank means unset. |
| genotype | object | Required in genotype mode: 1–10 explicit gene/diplotype entries. Every entry must resolve uniquely before lookup. |
| phenotype | string | Source phenotype for geneSymbol; inspect pgx_list_reference topic phenotypes. Excludes activityScore and geneResults. |
| geneSymbol | string | Gene for a scalar result or exploratory gene filter. Required for a scalar result when the drug has multiple genes. |
| population | string | Exact source population after outer whitespace trimming; all matching rows are retained. |
| geneResults | object | Explicit results for 1–10 genes; excludes scalar geneSymbol, phenotype, activityScore and genotype. |
| activityScore | any | Source activity score for geneSymbol; excludes phenotype and geneResults. |
| incompleteLimit | integer | Positive safe-integer incomplete diagnostic limit; values above 100 are clamped to 100 with a notice (default 25). |
| incompleteOffset | integer | Independent zero-based incomplete diagnostic offset; follow incompletePage.nextOffset. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"mode"
],
"properties": {
"mode": {
"enum": [
"drug",
"genotype",
"results"
],
"type": "string",
"description": "drug requires one drugName or drugId; genotype requires genotype; results requires geneResults or geneSymbol with phenotype/activityScore. Genotype/results optionally accept one drug selector."
},
"view": {
"enum": [
"recommendations",
"test_alerts"
],
"type": "string",
"description": "Select source recommendations (default) or example CDS test alerts with the same selectors and independent paging."
},
"limit": {
"type": "integer",
"default": 10,
"maximum": 9007199254740991,
"minimum": 1,
"description": "Positive safe-integer recommendation limit; values above 50 are clamped to 50 with a notice (default 10)."
},
"drugId": {
"type": "string",
"maxLength": 200,
"description": "Exact drugId returned by pgx_search_pairs; blank means unset."
},
"offset": {
"type": "integer",
"default": 0,
"maximum": 9007199254740991,
"minimum": 0,
"description": "Zero-based offset; use nextOffset to continue (default 0)."
},
"drugName": {
"type": "string",
"maxLength": 200,
"description": "Exact case-insensitive drug name; obtain names with pgx_search_pairs. Blank means unset."
},
"genotype": {
"type": "object",
"description": "Required in genotype mode: 1–10 explicit gene/diplotype entries. Every entry must resolve uniquely before lookup.",
"propertyNames": {
"type": "string",
"maxLength": 100,
"minLength": 1,
"description": "Gene symbol, normalized to uppercase."
},
"additionalProperties": {
"type": "string",
"maxLength": 500,
"minLength": 1,
"description": "Source-supported diplotype or named allele-status notation."
}
},
"phenotype": {
"type": "string",
"maxLength": 500,
"description": "Source phenotype for geneSymbol; inspect pgx_list_reference topic phenotypes. Excludes activityScore and geneResults."
},
"geneSymbol": {
"type": "string",
"maxLength": 100,
"description": "Gene for a scalar result or exploratory gene filter. Required for a scalar result when the drug has multiple genes."
},
"population": {
"type": "string",
"maxLength": 200,
"description": "Exact source population after outer whitespace trimming; all matching rows are retained."
},
"geneResults": {
"type": "object",
"description": "Explicit results for 1–10 genes; excludes scalar geneSymbol, phenotype, activityScore and genotype.",
"propertyNames": {
"type": "string",
"maxLength": 100,
"minLength": 1,
"description": "Gene symbol, normalized to uppercase."
},
"additionalProperties": {
"oneOf": [
{
"type": "object",
"required": [
"kind",
"value"
],
"properties": {
"kind": {
"type": "string",
"const": "phenotype",
"description": "Match the source phenotype, retaining every matching score."
},
"value": {
"type": "string",
"maxLength": 500,
"minLength": 1,
"description": "Exact source result or activity-score string; outer whitespace is ignored."
}
},
"additionalProperties": false
},
{
"type": "object",
"required": [
"kind",
"value"
],
"properties": {
"kind": {
"type": "string",
"const": "activityScore",
"description": "Match a source activity score by exact decimal equivalence."
},
"value": {
"type": "string",
"maxLength": 500,
"minLength": 1,
"description": "Exact source result or activity-score string; outer whitespace is ignored."
}
},
"additionalProperties": false
},
{
"type": "object",
"required": [
"kind",
"value"
],
"properties": {
"kind": {
"type": "string",
"const": "alleleStatus",
"description": "Match one named allele status, including its allele identity."
},
"value": {
"type": "string",
"maxLength": 500,
"minLength": 1,
"description": "Exact source result or activity-score string; outer whitespace is ignored."
}
},
"additionalProperties": false
}
],
"description": "Source gene semantics determine allowed kinds: PHENOTYPE permits phenotype; ACTIVITY_SCORE permits phenotype or activityScore; ALLELE_STATUS permits alleleStatus. Kinds are never converted."
}
},
"activityScore": {
"anyOf": [
{
"type": "string",
"maxLength": 500,
"description": "Exact source decimal or nonnumeric score label; blank means unset."
},
{
"type": "number",
"description": "A supplied numeric source score; no score is calculated."
}
],
"description": "Source activity score for geneSymbol; excludes phenotype and geneResults."
},
"incompleteLimit": {
"type": "integer",
"default": 25,
"maximum": 9007199254740991,
"minimum": 1,
"description": "Positive safe-integer incomplete diagnostic limit; values above 100 are clamped to 100 with a notice (default 25)."
},
"incompleteOffset": {
"type": "integer",
"default": 0,
"maximum": 9007199254740991,
"minimum": 0,
"description": "Independent zero-based incomplete diagnostic offset; follow incompletePage.nextOffset."
}
},
"additionalProperties": false
}| geneSymbol | string | Exact gene symbol, case-insensitive input; blank means unset. |
| pgxTesting | string | ClinPGx label-annotation testing level; not an FDA label. |
| provisional | boolean | Filter by source provisional flag. |
| includeRetired | boolean | Include Retired pairs; also included when cpicLevel is Retired. |
| usedForRecommendation | string | Whether the source marks the pair as used for a recommendation. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"atcId": {
"type": "string",
"pattern": "^(?:\\s*|\\s*(?:[Aa][Tt][Cc]:)?[A-Za-z\\d]{1,7}\\s*)$",
"description": "Exact ATC code (1–7 letters/digits) in any casing, optionally prefixed ATC: in any casing; outer whitespace is ignored and blank means unset."
},
"limit": {
"type": "integer",
"default": 25,
"maximum": 9007199254740991,
"minimum": 1,
"description": "Positive safe-integer row limit; values above 100 are clamped to 100 with a notice (default 25)."
},
"drugId": {
"type": "string",
"maxLength": 200,
"description": "Exact drugId returned by pgx_search_pairs; blank means unset."
},
"offset": {
"type": "integer",
"default": 0,
"maximum": 9007199254740991,
"minimum": 0,
"description": "Zero-based offset; use nextOffset to continue (default 0)."
},
"drugName": {
"type": "string",
"maxLength": 200,
"description": "Literal case-insensitive drug-name substring; blank means unset."
},
"rxnormId": {
"type": "string",
"pattern": "^(?:\\s*|\\s*(?:[Rr][Xx][Nn][Oo][Rr][Mm]:)?\\d+\\s*)$",
"description": "Decimal RxNorm ID, optionally prefixed RxNorm: in any casing; outer whitespace is ignored and blank means unset."
},
"cpicLevel": {
"enum": [
"A",
"A/B",
"B",
"B/C",
"C",
"C/D",
"D",
"Retired"
],
"type": "string",
"description": "Exact source CPIC evaluation level, not a prescribing recommendation."
},
"geneSymbol": {
"type": "string",
"maxLength": 100,
"description": "Exact gene symbol, case-insensitive input; blank means unset."
},
"pgxTesting": {
"enum": [
"Actionable PGx",
"Informative PGx",
"No Clinical PGx",
"Testing Recommended",
"Testing Required"
],
"type": "string",
"description": "ClinPGx label-annotation testing level; not an FDA label."
},
"provisional": {
"type": "boolean",
"description": "Filter by source provisional flag."
},
"includeRetired": {
"type": "boolean",
"default": false,
"description": "Include Retired pairs; also included when cpicLevel is Retired."
},
"usedForRecommendation": {
"enum": [
"Yes",
"No"
],
"type": "string",
"description": "Whether the source marks the pair as used for a recommendation."
}
},
"additionalProperties": false
}