OpenFoodFacts-MCP

JagjeevanAK/OpenFoodFacts-MCP

3.3

If you are the rightful owner of OpenFoodFacts-MCP and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to dayong@mcphub.com.

This is a Model Context Protocol (MCP) server implementation for the Open Food Facts project, providing contextual information about food products to AI-powered development tools.

Open Food Facts MCP Server

This is a Model Context Protocol (MCP) server implementation for Open Food Facts. It enables AI assistants to access food product information, providing nutritional analysis, product comparisons, and recipe suggestions using the official Model Context Protocol specification.

Benefits for Food-Aware Consumers

This MCP server enables:

  1. Nutritional Intelligence: Get AI-powered analysis of food products and their health implications
  2. Informed Choices: Compare products to make better dietary decisions
  3. Recipe Ideas: Discover recipes based on products you have
  4. Dietary Support: Understand allergens, additives, and dietary compatibility

Available Tools

Core Product Tools

  • searchProducts: Search for products in the Open Food Facts database by name, brand, category, or other keywords
  • getProductByBarcode: Get detailed information about a product by its barcode (EAN, UPC, etc.)
  • analyzeProduct: Get AI-powered nutritional analysis of a food product
  • compareProducts: Compare two products with AI-powered insights
  • suggestRecipes: Get AI-powered recipe suggestions using a product

Category & Search Tools

  • searchByCategory: Search products within a specific food category (e.g., beverages, snacks, dairy, cereals)
  • searchByBrand: Find all products from a specific brand
  • advancedSearch: Advanced product search with multiple filters including category, brand, Nutri-Score, Eco-Score, NOVA group, allergen-free options, labels, and country
  • autocomplete: Get autocomplete suggestions for categories, brands, labels, ingredients, allergens, or additives

Nutrition & Health Tools

  • getNutriScore: Get the Nutri-Score grade (A-E) for a product - quick health assessment at a glance
  • getEcoScore: Get the Eco-Score (environmental impact rating A-E) for a product
  • getAdditivesInfo: List all additives in a product with their E-numbers and NOVA processing level
  • getAllergenCheck: Check if a product contains a specific allergen (gluten, milk, eggs, nuts, peanuts, soy, fish, shellfish, etc.)
  • checkMultipleAllergens: Check if a product contains any of multiple allergens at once

AI Insights Tools

  • getProductAIQuestions: Get AI-generated questions about a product that need human verification
  • getRandomAIQuestions: Get random AI-generated questions from Robotoff that need human verification - great for community contribution
  • getProductInsights: Get AI-generated insights about products (detected labels, categories, ingredients issues, etc.)
  • getInsightTypes: Get a summary of available AI insight types in Robotoff

Price Tools

  • getProductPrices: Get price history and current prices for a product from Open Prices
  • searchPrices: Search for prices with filters (currency, country, date range)
  • getRecentPrices: Get recently added prices to discover what's available

Getting Started

Prerequisites

  • Node.js (v16.x or higher)
  • npm or yarn

Installation

  1. Clone or download this repository

  2. Install dependencies:

npm install
  1. Build the server:
npm run build
  1. Start the server:
npm start

Using with AI Assistants

Claude Desktop

  1. Start the MCP server:
npm start
  1. Add to your Claude Desktop configuration (~/Library/Application Support/Claude/claude_desktop_config.json on macOS):
{
  "mcpServers": {
    "openfoodfacts": {
      "command": "node",
      "args": ["/path/to/OpenFoodFacts-MCP/dist/index.js"],
      "env": {
        "TRANSPORT": "stdio"
      }
    }
  }
}

VS Code with GitHub Copilot

  1. Install the "Model Context Protocol" extension for VS Code

  2. Create .vscode/mcp.json:

{
  "servers": {
    "openfoodfacts": {
      "command": "node",
      "args": ["${workspaceFolder}/dist/cli.js"],
      "env": {
        "TRANSPORT": "stdio"
      }
    }
  }
}

Other AI Tools

The server supports HTTP/SSE transport for browser-based AI tools:

TRANSPORT=http PORT=3000 npm start

Then connect your AI tool to http://localhost:3000/sse

Example Conversations

Here are natural ways to ask your AI assistant to use the Open Food Facts tools:

Searching for Products

  • "Search for chocolate cereals in the Open Food Facts database"
  • "Find products that contain almond milk"
  • "Look for organic yogurt products"

Getting Product Details

  • "Get information about the product with barcode 3017620422003"
  • "What's in the product with EAN 5000159407236?"
  • "Show me nutritional data for barcode 8076809513326"

Analyzing Products

  • "Can you analyze Nutella nutritionally?"
  • "Analyze Cheerios cereal and tell me if it's healthy"
  • "Give me a health analysis of Oreo cookies"
  • "Is the product with barcode 3017620422003 healthy?"

Comparing Products

  • "Compare Nutella and Nocciolata"
  • "Which is healthier: Coke or Pepsi?"
  • "Compare almond milk and soy milk nutritionally"
  • "Compare the products with barcodes 3017620422003 and 5000159407236"

Recipe Suggestions

  • "What can I make with Greek yogurt?"
  • "Suggest some recipes using chickpeas"
  • "Give me recipe ideas for quinoa"
  • "What recipes can I make with the product 3017620422003?"

Category & Brand Searches

  • "Show me all products in the beverages category"
  • "Find all Nestlé products"
  • "Search for organic products with Nutri-Score A"
  • "Find vegan snacks with good Eco-Score"

Allergen Checks

  • "Does Nutella contain gluten?"
  • "Check if this product is safe for someone allergic to milk and eggs"
  • "Is barcode 3017620422003 peanut-free?"
  • "What allergens are in Cheerios?"

Price Lookups

  • "What's the current price of Nutella?"
  • "Show me recent prices for products in France"
  • "Compare prices for barcode 3017620422003"

Resources and Prompts

The MCP server provides helpful resources and prompts:

Resources

The server provides educational resources to help you understand food data:

  • Quick Help Guide: How to use the Open Food Facts tools - quick reference
  • Nutri-Score Guide: Understanding Nutri-Score health ratings (A-E)
  • Eco-Score Guide: Understanding Eco-Score environmental ratings (A-E)
  • Allergens Reference: Common food allergens and where they hide
  • Food Additives Guide: Understanding E-numbers and food additives
  • NOVA Processing Guide: Understanding food processing levels (1-4)

Prompts

Pre-configured prompts help you get started quickly:

  • analyze-product: Get detailed nutritional analysis
  • compare-products: Compare two products side-by-side
  • find-healthy-alternatives: Find healthier alternatives to a product
  • check-allergens: Check if a product is safe for your allergies
  • whats-for-dinner: Get recipe ideas using a product

How It Works

The MCP server acts as a bridge between AI assistants and the Open Food Facts database:

  1. Your Question: You ask your AI assistant about food products
  2. Tool Detection: The AI recognizes it needs Open Food Facts data
  3. MCP Request: The AI calls the appropriate MCP tool
  4. Data Retrieval: The server fetches data from Open Food Facts
  5. AI Analysis: The AI processes the data and responds to you

Example Workflows

Making Healthier Choices

You: "Is Nutella healthy?"

AI Assistant uses:
1. searchProducts to find Nutella
2. getProductByBarcode with the barcode
3. analyzeProduct for nutritional assessment

Response: Detailed analysis of Nutella's nutritional profile,
health scores, ingredients, and dietary considerations

Comparing Options

You: "Which is better for me, Nutella or almond butter?"

AI Assistant uses:
1. searchProducts for both products
2. compareProducts with both barcodes

Response: Side-by-side comparison with recommendations
based on your dietary needs

Recipe Planning

You: "What can I make with Greek yogurt?"

AI Assistant uses:
1. searchProducts to find Greek yogurt
2. suggestRecipes with the product

Response: Recipe suggestions that use Greek yogurt
as an ingredient

Technical Details

Server Architecture

The server follows a modular architecture for maintainability and scalability:

Core Server

  • src/index.ts: Entry point
  • src/server.ts: Core MCP server implementation with resource and prompt registration
  • src/cli.ts: CLI interface for development

Tools (Modular Design)

  • src/tools/index.ts: Tool registration orchestrator and core product tools
  • src/tools/product-search.ts: Product search and barcode lookup utilities
  • src/tools/category-tools.ts: Category and brand search tools
  • src/tools/nutrition-tools.ts: Nutrition scores, allergen checks, and additive information
  • src/tools/insights-tools.ts: AI-generated insights from Robotoff
  • src/tools/price-tools.ts: Product pricing data from Open Prices
  • src/tools/types.ts: Shared type definitions and interfaces
  • src/tools/helpers.ts: Reusable helper functions for all tools

Resources & Services

  • src/resources/: Resource handlers for guides and documentation
    • resource-registry.ts: Resource registration system
    • static-resources.ts: Static resource content (guides, references)
  • src/sampling/: AI model integration for analysis and recipe generation
    • sampling-service.ts: MCP sampling integration for AI-powered features

Infrastructure

  • src/transport/: Communication layer (stdio for CLI/editors, HTTP for browsers)
  • src/config/: Server configuration

Data Source

All product data comes from Open Food Facts, a free, open, collaborative database of food products from around the world.

Troubleshooting

Server Won't Start

  • Ensure Node.js v16+ is installed
  • Run npm install to install dependencies
  • Check that port 3000 is available (for HTTP mode)

AI Can't Find Tools

  • Verify the MCP server is running
  • Check your AI assistant's MCP configuration
  • Ensure the transport type matches (stdio vs HTTP)

Product Not Found

  • Try searching first with searchProducts
  • Verify the barcode is correct (8-14 digits)
  • Some products may not be in the database yet

Slow Responses

  • The server fetches real-time data from Open Food Facts
  • First requests may be slower as data is retrieved
  • Internet connection speed affects performance

Contributing

We welcome contributions! You can help by:

  • Adding support for more food databases
  • Improving AI analysis prompts
  • Enhancing error handling
  • Adding new tools for dietary tracking
  • Improving documentation

About Open Food Facts

Open Food Facts is a food products database made by everyone, for everyone. It's a collaborative project that collects information about food products from around the world, including:

  • Ingredients
  • Nutritional facts
  • Allergens
  • Environmental impact
  • Health scores (Nutri-Score, NOVA)

Learn more at https://world.openfoodfacts.org/

License

This project is licensed under the GNU Affero General Public License v3.0, consistent with the Open Food Facts project.

Support


Made with care for food-aware consumers everywhere