Lab results, FDA recalls and additive rules for US packaged foods, with sources; never a grade.
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.
Returns where an additive is allowed, restricted, banned or requires a warning (US FDA, EU, and US states such as California, West Virginia, Texas and Louisiana), each with its law and effective date, plus how many products list it and examples.
Additive name or slug, e.g. "titanium dioxide" or "red-3"
Returns where an additive is allowed, restricted, banned or requires a warning (US FDA, EU, and US states such as California, West Virginia, Texas and Louisiana), each with its law and effective date, plus how many products list it and examples.
| Argument | Type | Description |
|---|---|---|
| additive* | string | Additive name or slug, e.g. "titanium dioxide" or "red-3" |
{
"type": "object",
"required": [
"additive"
],
"properties": {
"additive": {
"type": "string",
"description": "Additive name or slug, e.g. \"titanium dioxide\" or \"red-3\""
}
}
}Looks up one US packaged food by barcode (UPC/EAN/GTIN), id, or name, and returns what is known about it: lab results by chemical (with kind of evidence, sample counts, median and highest values in ppb, lots, dates and sources), FDA recalls naming its barcode, restricted additives in its ingredients with each jurisdiction's rule, FDA's typical levels for its kind of food, same-brand products that were tested, the chemical families never tested in it, and a front-of-pack photo from Open Food Facts when one passed our checks (show it with its credit and CC BY-SA 3.0 licence). result_type is match (one product), candidates (a name fit several; call again with id), or no_match.
| Argument | Type | Description |
|---|---|---|
| id | string | A product id from an earlier candidates result |
| query | string | Product name with brand, e.g. "clover organic whole milk" |
| barcode | string | UPC, EAN or GTIN digits, e.g. 070852000121 |
{
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "A product id from an earlier candidates result"
},
"query": {
"type": "string",
"description": "Product name with brand, e.g. \"clover organic whole milk\""
},
"barcode": {
"type": "string",
"description": "UPC, EAN or GTIN digits, e.g. 070852000121"
}
}
}For one contaminant (lead, cadmium, mercury, arsenic-total, arsenic-inorganic, perchlorate, a phthalate such as dehp or dbp, a substitute such as deht, or a bisphenol such as bpa), returns the everyday foods where FDA's Total Diet Study found the highest typical levels (with samples, detections, averages and years), named products with lab results (highest median first), recent FDA recalls naming it, and a note on drinking water where it matters.
| Argument | Type | Description |
|---|---|---|
| chemical* | string | Chemical name or slug, e.g. "perchlorate" or "lead" |
{
"type": "object",
"required": [
"chemical"
],
"properties": {
"chemical": {
"type": "string",
"description": "Chemical name or slug, e.g. \"perchlorate\" or \"lead\""
}
}
}Lines up two to five products (by id) chemical by chemical, using each product's own lab results where they exist and FDA's typical level for its kind of food otherwise (marked as typical), plus restricted additives and recall counts.
| Argument | Type | Description |
|---|---|---|
| ids* | string | Comma-separated product ids from check_product |
{
"type": "object",
"required": [
"ids"
],
"properties": {
"ids": {
"type": "string",
"description": "Comma-separated product ids from check_product"
}
}
}For a kind of food (a category slug such as milk, rice, baby-infant-foods-beverages, cereal, water), returns FDA's typical levels of metals and perchlorate, whether FDA's foods are a close or rough stand-in, and the products in that category with lab results: the 50 lowest in the most-tested chemical by default (products below the lab's limit first), with tested_total giving the full count. Pass sort to rank by another chemical, order=high for highest first, and all=true for every tested product.
| Argument | Type | Description |
|---|---|---|
| all | boolean | Optional: true returns every tested product instead of the first 50 |
| sort | string | Optional chemical slug to rank by, e.g. "lead" (default: the chemical tested in the most products) |
| order | string | Optional: "high" for highest first (default lowest first) |
| category* | string | Category slug, e.g. "milk" |
{
"type": "object",
"required": [
"category"
],
"properties": {
"all": {
"type": "boolean",
"description": "Optional: true returns every tested product instead of the first 50"
},
"sort": {
"type": "string",
"description": "Optional chemical slug to rank by, e.g. \"lead\" (default: the chemical tested in the most products)"
},
"order": {
"type": "string",
"description": "Optional: \"high\" for highest first (default lowest first)"
},
"category": {
"type": "string",
"description": "Category slug, e.g. \"milk\""
}
}
}Places a person's urine or blood test result among CDC NHANES population percentiles (newest survey cycle loaded), for everyone or one age group, and says in words how high it is. tier.level is below_median, median_to_95th, top_5_percent or far_above (at least twice the 95th percentile; CDC's tables stop at the 95th, so times_95th_percentile gives the multiple); a far_above result carries clear_line, e.g. "This is far above typical. Talk to your clinician soon." ("right away" for blood lead at CDC's 45 ug/dL children's step, or OSHA's 50 for adults). unit_check is set when the value is more than 10 times the highest 95th percentile in CDC's tables, which can mean a unit mix-up (ug/L typed as ug/dL); show it to the person. For blood lead, official_guidance gives CDC's follow-up steps for children (2025) and, for adults (no CDC schedule), what NIOSH lists from agencies and medical groups (2024), each with its source; age 20+ returns only the adult guidance, under 12 only the children's. official_limits includes CDC's 3.5 ug/dL blood lead reference value. context gives cited lines on what the test shows, e.g. urine perchlorate reflects about the last day of food and water. Pass unit as printed on the report: ug/L (same as ng/mL), ug/dL, or ug/g creatinine for creatinine-adjusted urine results (CDC's creatinine tables); ug/L and ug/dL are converted into the table's unit and entered shows what was typed. Context only, not a diagnosis.
| Argument | Type | Description |
|---|---|---|
| age | string | Who to compare with: all (default), young (under 6), 6-11, 12-19, 20+, or an age in years |
| unit | string | Unit printed on the report: ug/L (or ng/mL), ug/dL, or ug/g creatinine (urine only). Omit to use the unit listed for the key. |
| value* | number |
| The result as printed on the report (a number; a numeric string also works) |
| chemical* | string | Analyte key: a chemical slug for its first analyte, or chemical:NHANES code. Loaded keys: lead or lead:LBXBPB (Lead, µg/dL); mercury or mercury:LBXTHG (Total Mercury, µg/L); arsenic-total or arsenic-total:URXUAS (Total Arsenic, µg/L or ug/g creatinine); perchlorate or perchlorate:URXUP8 (Perchlorate, µg/L or ug/g creatinine); dehp or dehp:URXMHH (Mono-(2-ethyl-5-hydroxyhexyl) phthalate (MEHHP), µg/L or ug/g creatinine); dehp:URXECP (Mono-(2-ethyl-5-carboxypentyl) phthalate (MECPP), µg/L or ug/g creatinine); dehp:URXMOH (Mono-(2-ethyl-5-oxohexyl) phthalate (MEOHP), µg/L or ug/g creatinine); dehp:URXMHP (Mono-2-ethylhexyl phthalate (MEHP), µg/L or ug/g creatinine); dbp or dbp:URXMBP (Mono-n-butyl phthalate (MnBP), µg/L or ug/g creatinine); dibp or dibp:URXMIB (Mono-isobutyl phthalate (MiBP), µg/L or ug/g creatinine); bbp or bbp:URXMZP (Mono-benzyl phthalate (MBzP), µg/L or ug/g creatinine); dep or dep:URXMEP (Mono-ethyl phthalate (MEP), µg/L or ug/g creatinine); bpa or bpa:URXBPH (Bisphenol A, µg/L or ug/g creatinine) |
{
"type": "object",
"required": [
"chemical",
"value"
],
"properties": {
"age": {
"type": "string",
"description": "Who to compare with: all (default), young (under 6), 6-11, 12-19, 20+, or an age in years"
},
"unit": {
"type": "string",
"description": "Unit printed on the report: ug/L (or ng/mL), ug/dL, or ug/g creatinine (urine only). Omit to use the unit listed for the key."
},
"value": {
"type": "number",
"description": "The result as printed on the report (a number; a numeric string also works)"
},
"chemical": {
"type": "string",
"description": "Analyte key: a chemical slug for its first analyte, or chemical:NHANES code. Loaded keys: lead or lead:LBXBPB (Lead, µg/dL); mercury or mercury:LBXTHG (Total Mercury, µg/L); arsenic-total or arsenic-total:URXUAS (Total Arsenic, µg/L or ug/g creatinine); perchlorate or perchlorate:URXUP8 (Perchlorate, µg/L or ug/g creatinine); dehp or dehp:URXMHH (Mono-(2-ethyl-5-hydroxyhexyl) phthalate (MEHHP), µg/L or ug/g creatinine); dehp:URXECP (Mono-(2-ethyl-5-carboxypentyl) phthalate (MECPP), µg/L or ug/g creatinine); dehp:URXMOH (Mono-(2-ethyl-5-oxohexyl) phthalate (MEOHP), µg/L or ug/g creatinine); dehp:URXMHP (Mono-2-ethylhexyl phthalate (MEHP), µg/L or ug/g creatinine); dbp or dbp:URXMBP (Mono-n-butyl phthalate (MnBP), µg/L or ug/g creatinine); dibp or dibp:URXMIB (Mono-isobutyl phthalate (MiBP), µg/L or ug/g creatinine); bbp or bbp:URXMZP (Mono-benzyl phthalate (MBzP), µg/L or ug/g creatinine); dep or dep:URXMEP (Mono-ethyl phthalate (MEP), µg/L or ug/g creatinine); bpa or bpa:URXBPH (Bisphenol A, µg/L or ug/g creatinine)"
}
}
}