Openfoodfacts MCP Server
UnclaimedLook up food products by barcode, search by ingredient or nutrition filter, compare products side-by-side, and browse the canonical tag vocabulary via MCP. STDIO or Streamable HTTP.
Install
docker run --rm -p 3010:3010 openfoodfacts-mcp-serverUnclaimed listing
Is this your MCP server?
This listing was auto-indexed from the public record. Claim it to edit the page, set compatibility and unlock growth tools. Takes under two minutes.
Claim this serverTools (10)
additives_tag
filters only on searches with no text query — the text backend does not index additives, so pairing the two is rejected up front rather than returning an empty result set that looks like "no such product"
failed
list identifies barcodes whose fetch failed, with the per-barcode reason — kept separate from notfound, which claims the opposite. A failed barcode never blocks the rows that resolved
limit
controls results returned (1–100, default 20). There is no offset or page input — the upstream endpoint offers no cursor, so narrow the term instead
not_found
list identifies barcodes with no contributor record (partial results are not an error)
nova_groups
and nutritiongrades are closed vocabularies answered offline and returned complete. Their IDs are bare (1–4, a–e), matching what offsearchproducts accepts
off_browse_taxonomy
Resolve a human term to the canonical tag ID (categories, labels, allergens, additives, countries, NOVA groups, Nutri-Score grades) that offsearchproducts filters on, against the live Open Food Facts taxonomy.
off_compare_products
Side-by-side nutrition and scoring comparison for 2–10 products by barcode. Returns a normalized table of energy, macros, salt, Nutri-Score, NOVA, and Green-Score.
off_get_product
Fetch a packaged food product by barcode. Returns name, brand, quantity, ingredients, allergens, additives, Nutri-Score, NOVA group, Green-Score, nutrition per 100g/serving, categories, labels, and data completeness.
off_search_products
Search by text query and/or structured tag filters (category, brand, label, allergen, additive, Nutri-Score grade, NOVA group, country). Returns summary rows with barcodes for follow-up lookups.
total
is exact on tag-only searches. Text searches stop counting at 10,000 matches, and when that ceiling is hit the response says so with totalislowerbound: true and renders the count as 10000+ — add filters for an exact figure