NIH supplement checks: upper limits, drug and herb interactions, FDA recalls, with citations.
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.
Which vitamins and minerals interact with given medications (generic or brand names, e.g. "warfarin", "Synthroid") or conditions, per the NIH Office of Dietary Supplements fact sheets, with timing advice (e.g. take levothyroxine 4 hours apart from calcium). No product list needed; to check an actual stack, pass medications to stack_analyze instead. Not exhaustive.
Optional: only report interactions involving these nutrients or botanicals (IDs or names, e.g. "vitamin-k", "magnesium", "St. John's wort")
Conditions that change how NIH reads a dose: smoker (current or former, or asbestos exposure: beta-carotene), kidney_disease (potassium, magnesium, phosphorus), hemochromatosis (iron, vitamin C), lab_test_soon (biotin interferes with lab tests), cancer_treatment (antioxidant doses)
Medications the person takes, as generic or brand names ("warfarin", "Synthroid", "metformin 500 mg"). Checked against the medication interactions listed in the NIH ODS fact sheets; not exhaustive. Never logged.
Which vitamins and minerals interact with given medications (generic or brand names, e.g. "warfarin", "Synthroid") or conditions, per the NIH Office of Dietary Supplements fact sheets, with timing advice (e.g. take levothyroxine 4 hours apart from calcium). No product list needed; to check an actual stack, pass medications to stack_analyze instead. Not exhaustive.
| Argument | Type | Description |
|---|---|---|
| nutrients | array | Optional: only report interactions involving these nutrients or botanicals (IDs or names, e.g. "vitamin-k", "magnesium", "St. John's wort") |
| conditions | array | Conditions that change how NIH reads a dose: smoker (current or former, or asbestos exposure: beta-carotene), kidney_disease (potassium, magnesium, phosphorus), hemochromatosis (iron, vitamin C), lab_test_soon (biotin interferes with lab tests), cancer_treatment (antioxidant doses) |
| medications | array | Medications the person takes, as generic or brand names ("warfarin", "Synthroid", "metformin 500 mg"). Checked against the medication interactions listed in the NIH ODS fact sheets; not exhaustive. Never logged. |
{
"type": "object",
"properties": {
"nutrients": {
"type": "array",
"items": {
"type": "string",
"maxLength": 100,
"minLength": 1
},
"maxItems": 40,
"minItems": 1,
"description": "Optional: only report interactions involving these nutrients or botanicals (IDs or names, e.g. \"vitamin-k\", \"magnesium\", \"St. John's wort\")"
},
"conditions": {
"type": "array",
"items": {
"enum": [
"smoker",
"kidney_disease",
"hemochromatosis",
"lab_test_soon",
"cancer_treatment"
],
"type": "string"
},
"maxItems": 5,
"minItems": 1,
"description": "Conditions that change how NIH reads a dose: smoker (current or former, or asbestos exposure: beta-carotene), kidney_disease (potassium, magnesium, phosphorus), hemochromatosis (iron, vitamin C), lab_test_soon (biotin interferes with lab tests), cancer_treatment (antioxidant doses)"
},
"medications": {
"type": "array",
"items": {
"type": "string",
"maxLength": 100,
"minLength": 2
},
"maxItems": 30,
"minItems": 1,
"description": "Medications the person takes, as generic or brand names (\"warfarin\", \"Synthroid\", \"metformin 500 mg\"). Checked against the medication interactions listed in the NIH ODS fact sheets; not exhaustive. Never logged."
}
},
"additionalProperties": false
}NIH reference values (RDA, EAR, AI, UL) for one vitamin or mineral at a given age and sex, with what the UL protects against. Offline and instant.
| Argument | Type | Description |
|---|---|---|
| age* | number | Age in years. For infants use a fraction: 0.25 = 3 months; 0-5 and 6-11 month values apply under 1. |
| sex* | string | |
| nutrient* | string | Nutrient ID ("vitamin-d") or any synonym ("cholecalciferol") |
| life_stage | string | Pregnancy or lactation (breastfeeding) reference values; requires sex "female" and age 14-50 |
{
"type": "object",
"required": [
"nutrient",
"age",
"sex"
],
"properties": {
"age": {
"type": "number",
"maximum": 120,
"minimum": 0,
"description": "Age in years. For infants use a fraction: 0.25 = 3 months; 0-5 and 6-11 month values apply under 1."
},
"sex": {
"enum": [
"male",
"female"
],
"type": "string"
},
"nutrient": {
"type": "string",
"maxLength": 100,
"minLength": 1,
"description": "Nutrient ID (\"vitamin-d\") or any synonym (\"cholecalciferol\")"
},
"life_stage": {
"enum": [
"pregnancy",
"lactation"
],
"type": "string",
"description": "Pregnancy or lactation (breastfeeding) reference values; requires sex \"female\" and age 14-50"
}
}
}FDA recalls and adverse event reports (CAERS) for one supplement, from openFDA. Give a product name, barcode, DSLD ID, or brand and name. Recalls are listed only when they carry the barcode or the brand and every product-name word; adverse event reports are counted with their most common reactions. Reports do not show that a product caused an event.
| Argument | Type | Description |
|---|---|---|
| upc | string | UPC-A or EAN barcode digits as printed on the bottle, e.g. "031604026974" (spaces and dashes are ignored) |
| name | string | Product name as printed, used with "brand" when the product is not in DSLD |
| brand | string | Brand (with "name", or to narrow "query") |
| query | string | Product as the user named it; resolved to a DSLD label |
| dsld_id | integer | DSLD label ID, e.g. from /v1/products/search |
{
"type": "object",
"properties": {
"upc": {
"type": "string",
"maxLength": 32,
"minLength": 8,
"description": "UPC-A or EAN barcode digits as printed on the bottle, e.g. \"031604026974\" (spaces and dashes are ignored)"
},
"name": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Product name as printed, used with \"brand\" when the product is not in DSLD"
},
"brand": {
"type": "string",
"maxLength": 100,
"minLength": 2,
"description": "Brand (with \"name\", or to narrow \"query\")"
},
"query": {
"type": "string",
"maxLength": 200,
"minLength": 2,
"description": "Product as the user named it; resolved to a DSLD label"
},
"dsld_id": {
"type": "integer",
"maximum": 10000000,
"description": "DSLD label ID, e.g. from /v1/products/search",
"exclusiveMinimum": 0
}
},
"additionalProperties": false
}Full normalized supplement labels by DSLD ID (up to 10): every ingredient with label amount, converted amount, form and %DV.
| Argument | Type | Description |
|---|---|---|
| dsld_id | integer | DSLD label ID, e.g. from /v1/products/search |
| dsld_ids | array |
{
"type": "object",
"properties": {
"dsld_id": {
"type": "integer",
"maximum": 10000000,
"description": "DSLD label ID, e.g. from /v1/products/search",
"exclusiveMinimum": 0
},
"dsld_ids": {
"type": "array",
"items": {
"type": "integer",
"maximum": 10000000,
"description": "DSLD label ID, e.g. from /v1/products/search",
"exclusiveMinimum": 0
},
"maxItems": 10,
"minItems": 1
}
}
}Look up a supplement by the UPC/EAN barcode printed on the bottle. Returns the newest matching DSLD label, normalized, and any older versions.
| Argument | Type | Description |
|---|---|---|
| upc* | string | UPC-A or EAN barcode digits as printed on the bottle, e.g. "031604026974" (spaces and dashes are ignored) |
{
"type": "object",
"required": [
"upc"
],
"properties": {
"upc": {
"type": "string",
"maxLength": 32,
"minLength": 8,
"description": "UPC-A or EAN barcode digits as printed on the bottle, e.g. \"031604026974\" (spaces and dashes are ignored)"
}
},
"additionalProperties": false
}Search the NIH Dietary Supplement Label Database by product name, brand or ingredient. Returns up to 10 products (one per product; older label versions listed in other_versions) with DSLD IDs.
| Argument | Type | Description |
|---|---|---|
| brand | string | |
| limit | integer | |
| query | string | Free-text search, e.g. "vitamin d3 5000" |
| ingredient | string | Ingredient name, e.g. "cholecalciferol" |
| on_market_only | boolean | |
| dedupe_versions | boolean | Collapse label versions of the same product (same brand and name) into one result, newest first; older IDs are listed in other_versions |
{
"type": "object",
"properties": {
"brand": {
"type": "string",
"maxLength": 100,
"minLength": 1
},
"limit": {
"type": "integer",
"default": 5,
"maximum": 10,
"minimum": 1
},
"query": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Free-text search, e.g. \"vitamin d3 5000\""
},
"ingredient": {
"type": "string",
"maxLength": 100,
"minLength": 1,
"description": "Ingredient name, e.g. \"cholecalciferol\""
},
"on_market_only": {
"type": "boolean",
"default": true
},
"dedupe_versions": {
"type": "boolean",
"default": true,
"description": "Collapse label versions of the same product (same brand and name) into one result, newest first; older IDs are listed in other_versions"
}
}
}Check a list of dietary supplements for a person: per-nutrient daily totals against NIH upper limits (UL) and RDA/AI, which products overlap, what each UL protects against, and single-product changes that would bring an above-UL nutrient back under it. Products can be given as names ("Centrum Silver Women 50+"), barcodes, DSLD IDs, or custom ingredient lists; optional candidates are evaluated as additions. Pass the person's medications and conditions (smoker, kidney_disease, hemochromatosis, lab_test_soon, cancer_treatment) to check them against the interactions in the NIH fact sheets. Returns agent_summary (plain sentences to relay), resolutions, suggestions, interactions, nutrient_totals and data_gaps. Label data only; food is included only with diet "typical".
| Argument | Type | Description |
|---|---|---|
| age | number | Age in years. For infants use a fraction: 0.25 = 3 months; 0-5 and 6-11 month values apply under 1. |
| sex | string | |
| diet | string | "typical" adds the US average intake from food and drinks for this age and sex (NHANES) to estimate total intake; see with_typical_diet |
| lang | string | "es" writes agent_summary in Spanish (the English text is kept in agent_summary_en); other fields stay in English |
| foods | array | Optional, up to 30: what the person eats in a day, e.g. [{"query":"spinach cooked","amount":1,"unit":"cup"},{"query":"whole milk","grams":488}]. Added to the supplement totals in nutrient_totals[].with_foods (USDA SR28, offline). Use instead of diet "typical". |
| detail | string | "summary" returns only what an agent needs to answer (agent_summary, flagged nutrients, suggestions, resolutions, candidate verdicts), about 1-3 KB instead of 20-40 KB |
| products* | array | 1-15 products. Each is one of: {"dsld_id"}, {"query"} (a product name, resolved server-side), {"upc"} (barcode), or a custom product {"name","ingredients"}. Add "servings_per_day" to any of them. |
| candidates | array | Optional, up to 5: products the user is considering adding. Each is evaluated as an addition to the stack in candidate_results[]; they are not included in nutrient_totals. |
| conditions | array | Conditions that change how NIH reads a dose: smoker (current or former, or asbestos exposure: beta-carotene), kidney_disease (potassium, magnesium, phosphorus), hemochromatosis (iron, vitamin C), lab_test_soon (biotin interferes with lab tests), cancer_treatment (antioxidant doses) |
| life_stage | string | Pregnancy or lactation (breastfeeding) reference values; requires sex "female" and age 14-50 |
| medications | array | Medications the person takes, as generic or brand names ("warfarin", "Synthroid", "metformin 500 mg"). Checked against the medication interactions listed in the NIH ODS fact sheets; not exhaustive. Never logged. |
{
"type": "object",
"required": [
"products"
],
"properties": {
"age": {
"type": "number",
"maximum": 120,
"minimum": 0,
"description": "Age in years. For infants use a fraction: 0.25 = 3 months; 0-5 and 6-11 month values apply under 1."
},
"sex": {
"enum": [
"male",
"female"
],
"type": "string"
},
"diet": {
"enum": [
"none",
"typical"
],
"type": "string",
"default": "none",
"description": "\"typical\" adds the US average intake from food and drinks for this age and sex (NHANES) to estimate total intake; see with_typical_diet"
},
"lang": {
"enum": [
"en",
"es"
],
"type": "string",
"default": "en",
"description": "\"es\" writes agent_summary in Spanish (the English text is kept in agent_summary_en); other fields stay in English"
},
"foods": {
"type": "array",
"items": {
"type": "object",
"properties": {
"unit": {
"type": "string",
"maxLength": 30,
"minLength": 1,
"description": "cup, tbsp, tsp, slice, large, medium, oz, lb, kg, g, fl oz... must match a USDA portion for the food (or be a weight)"
},
"grams": {
"type": "number",
"maximum": 5000,
"description": "Amount eaten per day, in grams",
"exclusiveMinimum": 0
},
"query": {
"type": "string",
"maxLength": 120,
"minLength": 2,
"description": "Food as the user named it, e.g. \"spinach cooked\", \"whole milk\"; matched to a USDA SR28 food (see foods.items)"
},
"amount": {
"type": "number",
"maximum": 100,
"description": "Amount in \"unit\" per day, e.g. 1.5 with unit \"cup\"",
"exclusiveMinimum": 0
},
"ndb_number": {
"type": "string",
"pattern": "^\\d{4,5}$",
"description": "USDA NDB number (SR Legacy), e.g. \"11458\""
}
},
"additionalProperties": false
},
"maxItems": 30,
"minItems": 1,
"description": "Optional, up to 30: what the person eats in a day, e.g. [{\"query\":\"spinach cooked\",\"amount\":1,\"unit\":\"cup\"},{\"query\":\"whole milk\",\"grams\":488}]. Added to the supplement totals in nutrient_totals[].with_foods (USDA SR28, offline). Use instead of diet \"typical\"."
},
"detail": {
"enum": [
"summary",
"full"
],
"type": "string",
"default": "full",
"description": "\"summary\" returns only what an agent needs to answer (agent_summary, flagged nutrients, suggestions, resolutions, candidate verdicts), about 1-3 KB instead of 20-40 KB"
},
"products": {
"type": "array",
"items": {
"anyOf": [
{
"type": "object",
"required": [
"dsld_id"
],
"properties": {
"dsld_id": {
"type": "integer",
"maximum": 10000000,
"description": "DSLD label ID, e.g. from /v1/products/search",
"exclusiveMinimum": 0
},
"servings_per_day": {
"type": "number",
"maximum": 50,
"description": "Servings taken per day. Default: the label maximum daily servings, else 1.",
"exclusiveMinimum": 0
}
},
"additionalProperties": false
},
{
"type": "object",
"required": [
"query"
],
"properties": {
"brand": {
"type": "string",
"maxLength": 100,
"minLength": 1,
"description": "Brand, if known separately"
},
"query": {
"type": "string",
"maxLength": 200,
"minLength": 2,
"description": "Product as the user named it, e.g. \"Centrum Silver Women 50+\". Resolved to the best-matching DSLD label; see resolutions[]"
},
"servings_per_day": {
"type": "number",
"maximum": 50,
"description": "Servings taken per day. Default: the label maximum daily servings, else 1.",
"exclusiveMinimum": 0
}
},
"additionalProperties": false
},
{
"type": "object",
"required": [
"upc"
],
"properties": {
"upc": {
"type": "string",
"maxLength": 32,
"minLength": 8,
"description": "UPC-A or EAN barcode digits as printed on the bottle, e.g. \"031604026974\" (spaces and dashes are ignored)"
},
"servings_per_day": {
"type": "number",
"maximum": 50,
"description": "Servings taken per day. Default: the label maximum daily servings, else 1.",
"exclusiveMinimum": 0
}
},
"additionalProperties": false
},
{
"type": "object",
"required": [
"ingredients"
],
"properties": {
"name": {
"type": "string",
"maxLength": 200,
"minLength": 1
},
"ingredients": {
"type": "array",
"items": {
"type": "object",
"required": [
"name",
"amount",
"unit"
],
"properties": {
"form": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Declared form, e.g. \"folic acid\", \"retinyl palmitate\", \"d-alpha tocopherol\""
},
"name": {
"type": "string",
"maxLength": 200,
"minLength": 1
},
"unit": {
"type": "string",
"maxLength": 30,
"minLength": 1,
"description": "mg, mcg, g, IU, mcg DFE, mcg RAE, mg NE"
},
"amount": {
"type": "number",
"maximum": 10000000,
"minimum": 0
},
"nutrient_basis": {
"enum": [
"elemental",
"compound"
],
"type": "string",
"description": "For minerals: whether amount is elemental or the whole compound weight"
}
}
},
"maxItems": 50,
"minItems": 1
},
"servings_per_day": {
"type": "number",
"maximum": 50,
"description": "Servings taken per day. Default: the label maximum daily servings, else 1.",
"exclusiveMinimum": 0
}
},
"additionalProperties": false
}
]
},
"maxItems": 15,
"minItems": 1,
"description": "1-15 products. Each is one of: {\"dsld_id\"}, {\"query\"} (a product name, resolved server-side), {\"upc\"} (barcode), or a custom product {\"name\",\"ingredients\"}. Add \"servings_per_day\" to any of them."
},
"candidates": {
"type": "array",
"items": {
"anyOf": [
{
"type": "object",
"required": [
"dsld_id"
],
"properties": {
"dsld_id": {
"type": "integer",
"maximum": 10000000,
"description": "DSLD label ID, e.g. from /v1/products/search",
"exclusiveMinimum": 0
},
"servings_per_day": {
"type": "number",
"maximum": 50,
"description": "Servings taken per day. Default: the label maximum daily servings, else 1.",
"exclusiveMinimum": 0
}
},
"additionalProperties": false
},
{
"type": "object",
"required": [
"query"
],
"properties": {
"brand": {
"type": "string",
"maxLength": 100,
"minLength": 1,
"description": "Brand, if known separately"
},
"query": {
"type": "string",
"maxLength": 200,
"minLength": 2,
"description": "Product as the user named it, e.g. \"Centrum Silver Women 50+\". Resolved to the best-matching DSLD label; see resolutions[]"
},
"servings_per_day": {
"type": "number",
"maximum": 50,
"description": "Servings taken per day. Default: the label maximum daily servings, else 1.",
"exclusiveMinimum": 0
}
},
"additionalProperties": false
},
{
"type": "object",
"required": [
"upc"
],
"properties": {
"upc": {
"type": "string",
"maxLength": 32,
"minLength": 8,
"description": "UPC-A or EAN barcode digits as printed on the bottle, e.g. \"031604026974\" (spaces and dashes are ignored)"
},
"servings_per_day": {
"type": "number",
"maximum": 50,
"description": "Servings taken per day. Default: the label maximum daily servings, else 1.",
"exclusiveMinimum": 0
}
},
"additionalProperties": false
},
{
"type": "object",
"required": [
"ingredients"
],
"properties": {
"name": {
"type": "string",
"maxLength": 200,
"minLength": 1
},
"ingredients": {
"type": "array",
"items": {
"type": "object",
"required": [
"name",
"amount",
"unit"
],
"properties": {
"form": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Declared form, e.g. \"folic acid\", \"retinyl palmitate\", \"d-alpha tocopherol\""
},
"name": {
"type": "string",
"maxLength": 200,
"minLength": 1
},
"unit": {
"type": "string",
"maxLength": 30,
"minLength": 1,
"description": "mg, mcg, g, IU, mcg DFE, mcg RAE, mg NE"
},
"amount": {
"type": "number",
"maximum": 10000000,
"minimum": 0
},
"nutrient_basis": {
"enum": [
"elemental",
"compound"
],
"type": "string",
"description": "For minerals: whether amount is elemental or the whole compound weight"
}
}
},
"maxItems": 50,
"minItems": 1
},
"servings_per_day": {
"type": "number",
"maximum": 50,
"description": "Servings taken per day. Default: the label maximum daily servings, else 1.",
"exclusiveMinimum": 0
}
},
"additionalProperties": false
}
]
},
"maxItems": 5,
"minItems": 1,
"description": "Optional, up to 5: products the user is considering adding. Each is evaluated as an addition to the stack in candidate_results[]; they are not included in nutrient_totals."
},
"conditions": {
"type": "array",
"items": {
"enum": [
"smoker",
"kidney_disease",
"hemochromatosis",
"lab_test_soon",
"cancer_treatment"
],
"type": "string"
},
"maxItems": 5,
"minItems": 1,
"description": "Conditions that change how NIH reads a dose: smoker (current or former, or asbestos exposure: beta-carotene), kidney_disease (potassium, magnesium, phosphorus), hemochromatosis (iron, vitamin C), lab_test_soon (biotin interferes with lab tests), cancer_treatment (antioxidant doses)"
},
"life_stage": {
"enum": [
"pregnancy",
"lactation"
],
"type": "string",
"description": "Pregnancy or lactation (breastfeeding) reference values; requires sex \"female\" and age 14-50"
},
"medications": {
"type": "array",
"items": {
"type": "string",
"maxLength": 100,
"minLength": 2
},
"maxItems": 30,
"minItems": 1,
"description": "Medications the person takes, as generic or brand names (\"warfarin\", \"Synthroid\", \"metformin 500 mg\"). Checked against the medication interactions listed in the NIH ODS fact sheets; not exhaustive. Never logged."
}
}
}