mcpbeat Sign in

Openfoodfacts MCP Server

answering

Openfoodfacts MCP Server is answering right now. Last checked 1 min ago. 792 installs a week from npm. It exposes 4 tools. Last commit 1 Nov 2026.

Barcode lookup, nutrition search, and product comparison for 3M+ crowd-sourced food products.

Installs per day peak 328 · avg 48 · +595% w/w
a month agotoday
Uptime history 91 days of history · worst day 0%
91 days agonow
100.0%
Uptime 24h
92 of 92 checks
4
Tools
read from the server
563 ms
Response time
average over 24h
792
Installs / week
npm and PyPI

What changed 43

Every tool that appeared, vanished or quietly changed what it asks for. Recorded since 25 August 2026. No other catalogue keeps this.

1 Nov 3 tool descriptions were rewritten off_compare_products, off_get_product, off_search_products
1 Nov a tool changed the parameters it asks for off_search_products
1 Nov a tool changed version
31 Oct 3 tools changed the parameters they ask for off_browse_taxonomy, off_get_product, off_search_products
31 Oct 2 tool descriptions were rewritten off_compare_products, off_get_product
31 Oct a tool changed version
28 Oct a tool changed version
25 Oct a tool changed version
13 Oct 3 tool descriptions were rewritten off_compare_products, off_get_product, off_search_products
13 Oct 3 tools changed the parameters they ask for off_browse_taxonomy, off_compare_products, off_search_products
and 24 more, back to 25 August 2026

What the code does

We read the source, 21 h ago · tools taken from the live server · rules 995398eba69f

Capabilities

What this server is able to do. For an MCP server this is often the job itself — a terminal server runs commands because that is what it is for. Listed so you know what you are plugging in, not as an accusation.

  const child = spawn(process.execPath, [...process.execArgv, entry], {
Builds a database query by concatenation src/services/mirror/record-builder.ts:459
      delete legacy[nid + suffix];

Is this your server and something here is wrong? Tell us — corrections are free and do not require a plan.

This code can reach further than it looks

We found places where it runs commands, builds paths or queries from values it is given. None of that is a flaw by itself — it becomes one when the code changes, and code changes quietly between releases. We re-read it on every one.

Three servers free · no card

Connect this server

Endpoint below is the one we actually reach during checks — not the one copied from a README. Last verified 1 min ago.

run in your terminal
claude mcp add openfoodfacts-mcp-server --transport http https://openfoodfacts.caseyjhand.com/mcp
Settings → Connectors → Add custom connector, then paste this address
https://openfoodfacts.caseyjhand.com/mcp
~/.codex/config.toml
[mcp_servers.openfoodfacts-mcp-server]
url = "https://openfoodfacts.caseyjhand.com/mcp"
.cursor/mcp.json
{
  "mcpServers": {
    "openfoodfacts-mcp-server": {
      "url": "https://openfoodfacts.caseyjhand.com/mcp"
    }
  }
}
.vscode/mcp.json
{
  "servers": {
    "openfoodfacts-mcp-server": {
      "type": "http",
      "url": "https://openfoodfacts.caseyjhand.com/mcp"
    }
  }
}

Available tools 4

Read directly from the server with tools/list, grouped by what they act on. If a tool disappears, we record the date.

off
off_browse_taxonomy
Resolve a human term to the canonical Open Food Facts tag ID that off_search_products filters on. Covers categories, labels/certifications, allergens, additives, countries, NOVA groups, and Nutri-Score grades. Pass a search term to resolve against the Open Food Facts vocabulary, which holds tens of thousands of tags; omitting it returns only a small reference list for each facet except NOVA groups and Nutri-Score grades, which are complete. Most tag IDs use the "en:" prefix (e.g. "en:organic", "en:no-gluten", "en:crustaceans"); NOVA groups return bare digits "1"-"4" and Nutri-Score grades bare letters "a"-"e". Pass the id through to off_search_products exactly as returned. Category tags are frequently plural ("kombucha" resolves to "en:kombuchas"), so use the returned id rather than constructing one.
off_compare_products
Side-by-side nutrition and scoring comparison for 2–10 products per call by barcode; a repeated barcode is compared once, so two identical barcodes yield one row, and barcodes past the 10th distinct one are listed in unprocessed rather than fetched. Returns a normalized table of energy (kcal), fat, saturated fat, carbohydrates, sugars, salt, protein, and fiber per 100 g, or per 100 ml for liquids, plus Nutri-Score, NOVA group, and Green-Score. Open Food Facts returns one preparation state per read, so figures for the prepared product arrive in a prepared object on the row, with the same columns and basis, and never fill an as-sold field; a row whose read returned only prepared figures gets one more product read, of the as-sold set its record stores, once the read of every barcode has settled, with stored_as_sold saying how it went. Designed for "which of these cereals is healthiest?" or "compare these pasta brands" workflows. Missing nutrition data for any product is preserved as absent — comparisons are not imputed. A batch is not all-or-nothing: barcodes that resolve are returned even when others fail, with confirmed-missing barcodes listed in not_found and failed fetches listed separately in failed. Scores carry regional formula caveats. Data under ODbL 1.0 — cite Open Food Facts in downstream use.
off_get_product
Fetch a packaged food product by barcode (4–40 digits: EAN-13, EAN-8, UPC, and the shorter and longer codes Open Food Facts also holds) from Open Food Facts. Returns the product name, brand, quantity, ingredients (raw text and parsed list), declared allergens, trace allergens the label warns about, additives, the product-level vegan/vegetarian/palm-oil analysis, computed scores (Nutri-Score a–e, NOVA 1–4, Green-Score), nutrition per serving and per 100 g, or per 100 ml for liquids, categories, labels, packaging, origins, countries of sale, image URL, and data completeness. Open Food Facts is a crowd-sourced database — a missing field means "not yet entered by contributors," not that the attribute is absent from the actual product. Nutrition is the exception: Open Food Facts returns one preparation state per read, so a read of prepared figures (_prepared keys under nutriments) omits as-sold figures the record can still hold; when that happens, one more product read fetches the as-sold set the record stores into the as-sold fields, and nutriments.stored_as_sold says whether it was read, the record stores none, or it could not be read. Computed scores carry regional formula caveats and are indicators, not absolute rankings. Data is under ODbL 1.0 — cite Open Food Facts in downstream use.
off_search_products
Search Open Food Facts by full-text query, structured tag filters, or both at once. Returns a summary list with barcodes, product names, brands, Nutri-Score, NOVA group, and categories — enough for triage and selection, not full label data. Use off_get_product on the returned barcodes for complete details. A text query and tag filters combine: every word of the query must match the product name, generic name, categories, labels, or brand, and every filter provided must hold (e.g. query "dark chocolate" with labels_tag "en:organic" and countries_tag "en:france" returns organic chocolate sold in France); numeric nutrient_filters express thresholds per 100 g, or per 100 ml for liquids, such as sugars below 8 g, and combine the same way, and each row then carries the indexed values the thresholds were checked against; additives_tag is the one exception, filtering only on searches carrying neither query nor nutrient_filters. Tag filter values are canonical tag IDs (e.g. "en:organic", "en:no-gluten") — use off_browse_taxonomy to resolve human terms to tag IDs. A case variant, synonym, or singular of a tag is resolved to its canonical ID where Open Food Facts recognizes it; anything else is matched exactly. exclude_allergens and exclude_traces drop products that declare an allergen or a "may contain" trace, but a product with no allergen or trace data entered passes them, so confirm a candidate with off_get_product before relying on it. At least one search parameter is required. The two paths read different indexes: a search carrying query is answered by the text index, a snapshot that lags the live database, while a tag-only search reads the live database and is current, or, where this server keeps a local copy of the Open Food Facts export, can be served from that copy, which source and mirror_as_of then report and whose default order and popularity_key or unique_scans_n sort follow the values stored with each record, so they can differ from a live search, which ranks by its current scan counts — so a recently contributed product can be missing from a text search and present in the same search without query. Data is crowd-sourced; result count reflects contributed products, not all products in the market. Data under ODbL 1.0 — cite Open Food Facts in downstream use.

Endpoints

URLTransportStateLatencyChecked
https://openfoodfacts.caseyjhand.com/mcp streamable-http answering 511 ms 1 min ago

Alternatives to Openfoodfacts MCP Server

same job, measured the same way
F
Food & Nutrition
by memoryapi

Food and nutrition data: search, macros, and comparisons

3 tools answering
Food Facts
by openkrill

Look up a packaged food by barcode, search and compare products, and check listed allergens.

6 tools answering
Open Food Facts MCP
by mrfentmen

Use this MCP server to Open Food Facts product, ingredient, allergen, and nutrition lookup....

66 installs/wk local only
Forage Shopping
by jalexspringer

AI shopping comparison — search 50M+ products, compare prices, find deals

7 tools answering
Myfigurecollection API
by ssskay

Read MyFigureCollection.net: search figures, JAN barcode lookup, shop prices, collections and clubs.

59 installs/wk local only
Open Food Facts MCP by UnClick
by malamutemayhem

Search food products, ingredients, nutrition, brands, and categories. No API key. By UnClick.

40 installs/wk local only
Kaupia
by kaupia

An Amazon for AI agents: search, compare and buy real products from real stores.

8 tools answering
Sphere
by getsphere

Log meals, check calories and macros, set up a nutrition plan, and search foods.

answering

Openfoodfacts MCP Server — questions

Answers built from our own checks of this server.

What can Openfoodfacts MCP Server do?
It exposes 4 tools, read directly from the server on our last check. Among them: off_browse_taxonomy, off_compare_products, off_get_product, off_search_products. The full list with descriptions is on this page — we take it from the server itself via tools/list, not from a README. How MCP servers expose tools in the first place →
Is Openfoodfacts MCP Server working right now?
We send a real MCP handshake every 15 minutes. Over the last 24 hours 92 of 92 checks got a reply (100.0%), average response time 563 ms. The bar chart above shows every period we have measured.
How do I connect Openfoodfacts MCP Server?
Copy the ready config from this page. We generate it for Claude Code, Claude Desktop, Codex, Cursor and VS Code, each in the form that client actually reads. It is a remote server, so there is nothing to install — the client connects to the address.
Does Openfoodfacts MCP Server need an API key?
No. Openfoodfacts MCP Server completed a full MCP handshake with us as an anonymous client and listed its tools without asking for anything. All 4 of them are readable on this page. This is what we observed, not what the docs claim.
How fast is Openfoodfacts MCP Server?
It answers our handshake in 563 ms on average, which is faster than 21% of all working MCP servers we measure. That is on the slow side — worth knowing if the tool sits inside an interactive loop. The comparison comes from our own checks across the whole registry, every 15 minutes.
How many people use Openfoodfacts MCP Server?
The npm package @cyanheads/openfoodfacts-mcp-server was installed 792 times in the last week. Week over week that is +595%. We show installs rather than GitHub stars on purpose: a star is a bookmark, an install is someone actually running it.
Is Openfoodfacts MCP Server open source?
The code is open source: it is published under the Apache-2.0 licence, written in TypeScript, 1 stars on GitHub and 2 open issues. The licence covers the code in the repository, not the hosted service at openfoodfacts.caseyjhand.com, which runs on its operator's own terms.