The short answer
Point your agent or HTTP client at the free Food Facts MCP server (https://food.openkrill.app/mcp) and call lookup_barcode with an 8- to 14-digit GTIN, EAN or UPC. For barcode 3017620422003 it returned the per-100 g nutrition table, Nutri-Score E, NOVA group 4, entry completeness 89%, and the allergens milk, nuts and soybeans, all in 1,782 ms. UPCitemdb's free trial API and USDA FoodData Central both returned 0 hits on the same barcode. Barcode Lookup blocked our automated request with HTTP 403.
How 4 barcode tools handled EAN-13 3017620422003
We sent the same barcode, 3017620422003, to 4 services on 2026-10-19:
| Tool | Status and time | Nutrition per 100 g | Allergens and Nutri-Score | Result |
|---|---|---|---|---|
| Food Facts (Open Food Facts) | HTTP 200 in 1,782 ms | 539 kcal, 30.9 g fat, 10.6 g saturated fat, 57.5 g carbs, 56.3 g sugars, 0 g fibre, 6.3 g protein, 0.11 g salt, 42.8 mg sodium | Allergens: milk, nuts, soybeans. Nutri-Score E, NOVA 4 | Complete nutrition, allergens and scores in 1 call |
| USDA FoodData Central API | HTTP 200 in 1,993 ms | None (totalHits: 0) | None | US branded catalog indexes 12-digit UPCs, missing this European EAN-13 |
| UPCitemdb free trial API | HTTP 200 in 1,050 ms | None (total: 0) | None (schema carries only title, brand and store offers) | No record for this barcode, and no nutrition or allergen fields |
| Barcode Lookup web page | HTTP 403 in 226 ms | Blocked | Blocked | Cloudflare bot challenge blocked headless fetch |
What lookup_barcode returned for Nutella (3017620422003)
On 2026-10-19 at 16:38:23 UTC, lookup_barcode returned Entry completeness: 89% in data_quality_note for Ferrero Nutella (quantity: "400 g e"). Here is the per_100g breakdown from that response:
| Nutrient | Field in per_100g | Per 100 g |
|---|---|---|
| Energy | kcal | 539 kcal |
| Fat | fat | 30.9 g |
| Saturated fat | saturated_fat | 10.6 g |
| Carbohydrates | carbs | 57.5 g |
| Sugars | sugars | 56.3 g |
| Fibre | fibre | 0 g |
| Protein | protein | 6.3 g |
| Salt | salt_g | 0.11 g |
| Sodium | sodium_mg | 42.8 mg |
The English ingredient statement on the record reads: "Sugar, vegetable fat (palm), hazelnuts (13%), skimmed milk powder (8.7%), fat-reduced cocoa powder (7.4%), emulsifier: lecithins (soya), flavouring (vanillin)." From the structured Open Food Facts tags, the tool extracts three allergens in allergens: milk, nuts and soybeans, with an empty traces array.
Screening a barcode against a specific allergy list
When an agent checks a product for a household with specific food allergies, calling check_allergens separates the allergens the caller asked to avoid from the full list declared on the label. We called it on 2026-10-20 at 07:22:08 UTC for barcode 3017620422003 with avoid: ["peanuts", "gluten", "milk", "nuts"]:
{"method":"tools/call","params":{"name":"check_allergens",
"arguments":{"barcode":"3017620422003","avoid":["peanuts","gluten","milk","nuts"]}}}
The response completed in 370 ms and sorted the 4 requested allergens into structured arrays while still listing every declared allergen on the product:
contains:milk,nutsmay_contain: empty array (no trace warnings listed)not_listed:peanuts,glutenlisted_allergens:milk,nuts,soybeans
Comparing two barcodes by sugar content
To rank 2 to 5 products on one nutrient, pass their barcodes to compare_products with field set to sugars, salt or kcal. On 2026-10-20 at 07:25:07 UTC we compared Coca-Cola Original (5449000000996) and Ferrero Nutella (3017620422003) on sugars, lowest first:
| Rank | Barcode | Product and brand | Sugars per 100 g | Energy per 100 g | Nutri-Score |
|---|---|---|---|---|---|
| 1 | 5449000000996 | Coca-Cola Original (COCA-COLA SERVICES SA/NV) | 10.6 g | 42.4 kcal | E |
| 2 | 3017620422003 | Nutella, Ferrero (Testglas on 2026-10-20) | 56.3 g | 539 kcal | E |
Why the physical label still wins
Our two snapshots of barcode 3017620422003 differ. On 2026-10-19 the Open Food Facts record had name: "Nutella" and nova_group: 4. On 2026-10-20 a community edit had changed the display name to Testglas and nova_group to 3, while the nutrition numbers and the Nutella, Ferrero brand tag stayed the same. Open Food Facts is a crowd-sourced wiki, and manufacturers reformulate recipes without changing barcodes. Every response from Food Facts includes data_quality_note and a notice to check the physical package before relying on the data for an allergy. You can connect the server from the Food Facts tool page, follow the ChatGPT setup guide, or follow the Claude setup guide.
Frequently asked questions
What nutrition and allergen fields does lookup_barcode return?
In per_100g it returns energy (kcal), fat, saturated_fat, carbs, sugars, fibre, protein, salt_g and sodium_mg per 100 g. At the top level it returns quantity, ingredients_text, allergens, traces, nutriscore (A to E), nova_group (1 to 4) and data_quality_note with the entry completeness percentage.
Why did USDA FoodData Central and UPCitemdb return 0 hits for barcode 3017620422003?
3017620422003 is a European 13-digit EAN-13 code. USDA FoodData Central indexes US branded foods by 12-digit UPC. UPCitemdb's free trial endpoint had no record for this EAN-13, and it never carries nutrition or allergen fields.
Can I rely on Open Food Facts alone for a severe food allergy?
No. Open Food Facts is crowd-sourced, so entries can be incomplete or edited by community contributors, and manufacturers change recipes without changing the barcode. Always check the physical package label before eating.
Is the Food Facts MCP server free to use?
Yes. The MCP server at https://food.openkrill.app/mcp is free, needs no API key or account, and allows 60 calls a minute per network and 5,000 calls a day per server.
Sources
- Nutella barcode lookup, allergen check and sugar comparison: Food Facts MCP server (
https://food.openkrill.app/mcp), read on 2026-10-19 at 16:38 UTC and 2026-10-20 between 07:22 and 07:25 UTC. - Upstream product records: Open Food Facts 3017620422003 and Open Food Facts 5449000000996, available under the Open Database Licence (ODbL) v1.0.
- USDA benchmark query: USDA FoodData Central API (
/fdc/v1/foods/search?query=3017620422003), read on 2026-10-19. - UPCitemdb benchmark query: UPCitemdb trial lookup API (
/prod/trial/lookup?upc=3017620422003), read on 2026-10-19.