Skip to content

Spoon Scout - Food Contaminant Lookup

by agentlookups.ai · remote · no sign-in to list tools · v1.0.0 · published by ai.agentlookups

Lab results, FDA recalls and additive rules for US packaged foods, with sources; never a grade.

Changes · 4

6 tools: 4 change things and 2 only read.

Scanned Oct 21, 2026

No check matched anything in the tool definitions. No finding is not a safety guarantee. How the checks work.

claude mcp add --transport http spoon-scout https://food.agentlookups.ai/mcp

Tools

Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.

6 tools

Changes things 4Claude Code: ask
  • check_productLooks 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 …No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
    • readOnlyHint: true
    • title: Check a packaged food
  • chemical_sourcesFor 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),…No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
    • readOnlyHint: true
    • title: Find where a chemical comes from in food
  • food_categoryFor 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…No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
    • readOnlyHint: true
    • title: Typical contaminant levels for a kind of food
  • interpret_test_resultPlaces 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.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
    • readOnlyHint: true
    • title: Compare a test result with the US population
Only reads 2Claude Code: allow
  • additive_statusReturns 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…No findings

    Why it is in this group

    • The name "additive_status" says "status": a word for reading.
    Description, as the server wrote 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.

    Annotations the server declares

    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
    • readOnlyHint: true
    • title: Check a food additive's legal status
  • compare_productsLines 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 …No findings

    Why it is in this group

    • The name "compare_products" says "compare": a word for reading.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
    • readOnlyHint: true
    • title: Compare packaged foods

This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.

Install

Pinned to version 1.0.0. Values in angle brackets are yours to fill in.

claude mcp add --transport http spoon-scout https://food.agentlookups.ai/mcp

Run in a terminal.

Claude Code permissions

Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.

.claude/settings.json
{
  "permissions": {
    "allow": [
      "mcp__spoon-scout__compare_products",
      "mcp__spoon-scout__additive_status"
    ],
    "ask": [
      "mcp__spoon-scout__check_product",
      "mcp__spoon-scout__chemical_sources",
      "mcp__spoon-scout__food_category",
      "mcp__spoon-scout__interpret_test_result"
    ],
    "deny": []
  }
}

Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as spoon-scout. Review it before you use it.