openfoodfacts-mcp
v1.1.0
Published
MCP server for the Open Food Facts API
Readme
openfoodfacts-mcp
MCP server for the Open Food Facts API - search, read, and contribute to the world's largest open food database.
Use Cases
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.
Setup
claude mcp add openfoodfacts-mcp -e OFF_USER_AGENT="openfoodfacts-mcp/1.1.0 ([email protected])" -- npx -y openfoodfacts-mcpFor write operations (adding/editing products, uploading images), also set:
claude mcp add openfoodfacts-mcp \
-e OFF_USER_AGENT="openfoodfacts-mcp/1.1.0 ([email protected])" \
-e OFF_USER_ID="your-username" \
-e OFF_PASSWORD="your-password" \
-- npx -y openfoodfacts-mcpOr with HTTP transport:
# Start the server
MCP_TRANSPORT=http PORT=3000 OFF_USER_AGENT="openfoodfacts-mcp/1.1.0 ([email protected])" npx -y openfoodfacts-mcp
# Add to Claude
claude mcp add --transport http openfoodfacts-mcp http://localhost:3000/mcpEnvironment Variables
| Variable | Required | Description |
|----------|----------|-------------|
| OFF_USER_AGENT | Yes | User-Agent string, e.g. "AppName/1.0 ([email protected])" |
| 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) |
Tools
| Tool | Description | Auth |
|------|-------------|------|
| get_product | Get product info by barcode | No |
| search_products | Search products by name or keyword | 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 |
Contributing
Pull requests are welcomed on GitHub! To get started:
- Install Git and Node.js
- Clone the repository
- Install dependencies with
npm install - Run
npm run testto run tests - Build with
npm run build
Releases
Versions follow the semantic versioning spec.
To release:
- Use
npm version <major | minor | patch>to bump the version - Run
git push --follow-tagsto push with tags - Wait for GitHub Actions to publish to the NPM registry.
