Connects Claude to the Open Food Facts database with both read and write access. You can search products by name or barcode, filter by nutrition grades like Nutri-Score, and pull detailed ingredient and nutrition data. The server also supports write operations if you provide credentials, letting you add or update product entries and upload images directly from your conversations. Useful when you need nutritional lookups, want to compare food products, or need to contribute data to the open database. Ships with both standard search filters and Lucene syntax for complex queries, plus autocomplete for brands and categories.
MCP server for the Open Food Facts API - search, read, and contribute to the world's largest open food database.
Look up a product by name: "How many calories in a Sainsbury's buffalo chicken wrap?" -> searches by name, finds the product, and returns nutrition data.
Look up a product by barcode: "What's in this product with barcode 3017620422003?" -> fetches Nutella's ingredients, Nutri-Score, and nutrition data.
Find healthy options: "Search for breakfast cereals with Nutri-Score A" -> searches with category and nutrition grade filters.
Contribute data: "Add the product name and brand for barcode 12345678" -> creates or updates a product entry on Open Food Facts.
Explore the database: "What brands of organic chocolate are in the database?" -> uses autocomplete and search to explore.
claude mcp add openfoodfacts-mcp -e OFF_USER_AGENT="openfoodfacts-mcp/1.2.0 (you@example.com)" -- npx -y openfoodfacts-mcp
For write operations (adding/editing products, uploading images), also set:
claude mcp add openfoodfacts-mcp \
-e OFF_USER_AGENT="openfoodfacts-mcp/1.2.0 (you@example.com)" \
-e OFF_USER_ID="your-username" \
-e OFF_PASSWORD="your-password" \
-- npx -y openfoodfacts-mcp
Or with HTTP transport:
# Start the server
MCP_TRANSPORT=http PORT=3000 OFF_USER_AGENT="openfoodfacts-mcp/1.2.0 (you@example.com)" npx -y openfoodfacts-mcp
# Add to Claude
claude mcp add --transport http openfoodfacts-mcp http://localhost:3000/mcp
| Variable | Required | Description |
|---|---|---|
OFF_USER_AGENT | Yes | User-Agent string, e.g. "AppName/1.0 (email@example.com)" |
OFF_USER_ID | No | Open Food Facts username (for write operations) |
OFF_PASSWORD | No | Open Food Facts password (for write operations) |
OFF_COUNTRY | No | Country subdomain (default: world) |
| Tool | Description | Auth |
|---|---|---|
get_product | Get product info by barcode | No |
search_products_standard | Search with structured filters (brand, category, Nutri-Score) | No |
search_products_lucene | Search with Lucene syntax, negation, and boolean logic | No |
autocomplete | Autocomplete brands, categories, labels, etc. | No |
add_or_edit_product | Add or update a product | Yes |
upload_image | Upload a product image | Yes |
select_image | Select, crop, and rotate an image | Yes |
call_api | Call any OFF API endpoint directly | Depends |
get_api_docs | Get OFF API documentation | No |
Pull requests are welcomed on GitHub! To get started:
npm installnpm run test to run testsnpm run buildVersions follow the semantic versioning spec.
To release:
npm version <major | minor | patch> to bump the versiongit push --follow-tags to push with tagsOFF_USER_AGENT*User-Agent string in format 'AppName/Version (email)'. Required by the Open Food Facts API.
OFF_USER_IDOpen Food Facts user ID (optional, needed for write operations).
OFF_PASSWORDsecretOpen Food Facts password (optional, needed for write operations).
OFF_COUNTRYCountry subdomain (default: 'world').
MCP_TRANSPORT*Transport type.
hovecapital/read-only-local-postgres-mcp-server
cocaxcode/database-mcp
io.github.infoinlet-marketplace/mcp-mysql
io.github.cybeleri/database-admin
io.github.yash-0620/postgres-mcp-secured