Skip to main content

NutriClarity MCP 🥗

CI PyPI Python License: MIT

An open-source Model Context Protocol server that gives any LLM access to food nutrition data — look up products by barcode, search by name, read Nutri-Score / NOVA / Eco-Score ratings, and compare products side by side.

Powered by Open Food Facts, a free, open, crowd-sourced food products database. No API key required.

Tools

Tool Description
get_product_by_barcode(barcode) Full nutrition facts, scores, allergens & ingredients for a barcode (EAN/UPC).
search_products(query, page_size=5) Search products by name or brand; returns barcodes + a nutrition summary.
get_nutrition_scores(barcode) Nutri-Score (A–E), NOVA processing group (1–4), and Eco-Score for a product.
compare_products(barcodes) Side-by-side per-100g comparison table for 2+ products.
find_healthier_alternative(barcode, limit=5) Suggest same-category products with a better Nutri-Score.
add_or_update_product(...) Optional / opt-in. Create or edit a product. Only enabled when credentials are set (see below).

Reading needs no API key or account — it's open data. Only the optional write tool requires an Open Food Facts login.

Quick start

The easiest way to run it is with uvx (no install, no clone):

uvx nutriclarity-mcp

Claude Desktop / Cursor / any MCP client

Add this to your MCP config (e.g. claude_desktop_config.json):

{
  "mcpServers": {
    "nutriclarity": {
      "command": "uvx",
      "args": ["nutriclarity-mcp"]
    }
  }
}

Then ask things like:

  • "What's the nutrition of barcode 3017620422003?"
  • "Search for oat milk and show me the healthiest option."
  • "Compare Coke and Pepsi nutrition."

Docker

docker run -i --rm ghcr.io/nitishkp001/nutriclarity-mcp

MCP config:

{
  "mcpServers": {
    "nutriclarity": {
      "command": "docker",
      "args": ["run", "-i", "--rm", "ghcr.io/nitishkp001/nutriclarity-mcp"]
    }
  }
}

Optional: write support (adding/editing products)

By default the server is read-only — no account, no risk. If you want the LLM to be able to contribute or correct product data, enable the add_or_update_product tool by providing an Open Food Facts account:

Env var Description
OFF_USERNAME Your account username (not your email). Enables writes when set with the password.
OFF_PASSWORD Your account password.
OFF_ENVIRONMENT sandbox (default) or production.

Writes go to the sandbox by default, so you can test safely without touching the real database. Set OFF_ENVIRONMENT=production only when you deliberately want to edit the live, public database. Sandbox accounts are separate from production accounts — register on each site you target.

{
  "mcpServers": {
    "nutriclarity": {
      "command": "uvx",
      "args": ["nutriclarity-mcp"],
      "env": {
        "OFF_USERNAME": "your-username",
        "OFF_PASSWORD": "your-password",
        "OFF_ENVIRONMENT": "sandbox"
      }
    }
  }
}

⚠️ Open Food Facts is a shared, public database used by millions. If you enable production writes, make sure the data you submit is accurate and taken from the real product label. The tool changes only the fields you pass.

Local development

Requires uv.

git clone https://github.com/nitishkp001/nutriclarity-mcp
cd nutriclarity-mcp
uv sync --extra dev        # install deps
uv run nutriclarity-mcp    # run the server over stdio
uv run pytest              # run tests
uv run ruff check .        # lint

To inspect the tools interactively, use the MCP Inspector:

npx @modelcontextprotocol/inspector uv run nutriclarity-mcp

How it works

  • Built with FastMCP.
  • Calls the Open Food Facts REST API (/api/v2/product/{barcode} and /cgi/search.pl).
  • Sends a descriptive User-Agent as Open Food Facts requests, and asks only for the fields it needs to keep responses small.

Data & attribution

Product data comes from Open Food Facts and is made available under the Open Database License (ODbL). Individual contents are under the Database Contents License. Nutrition data is crowd-sourced and may be incomplete or inaccurate — do not rely on it for medical decisions.

License

MIT © 2026 — see LICENSE. This project is not affiliated with or endorsed by Open Food Facts.

Metadata

Release files for nutriclarity-mcp 0.3.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for nutriclarity-mcp 0.3.0
File Size Uploaded Provenance Actions
nutriclarity_mcp-0.3.0.tar.gz 15.0 kB With provenance Details for nutriclarity_mcp-0.3.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for nutriclarity-mcp 0.3.0
File Interpreter ABI Platform Actions
nutriclarity_mcp-0.3.0-py3-none-any.whl Python 3 none any Details for nutriclarity_mcp-0.3.0-py3-none-any.whl

Total release size: 29.7 kB

Release files / nutriclarity_mcp-0.3.0.tar.gz

Download URL nutriclarity_mcp-0.3.0.tar.gz
Size 15.0 kB
Tags Source
SHA-256 checksum
How to use checksums
0e9f6c998417f57754853f51ceeeb6a6e5c8444fa2a2736bff522dd16878ff59
BLAKE2b-256 checksum
How to use checksums
152ac63d57fac4a7c72011ffe897757ecd9f38f7dc64044592d4bc84af34e5f5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 15, 2026.

Transparency log

Release files / nutriclarity_mcp-0.3.0-py3-none-any.whl

Download URL nutriclarity_mcp-0.3.0-py3-none-any.whl
Size 14.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
61570e91900eb01e66a0255e3797a052ce9bc29424a626912995d0cecbc20cf6
BLAKE2b-256 checksum
How to use checksums
8691b317c9252cc6e5e2716c1c2a914d55f73395834b4c9dd81311cc6974c0e3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 15, 2026.

Transparency log

Security for nutriclarity-mcp 0.3.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for nutriclarity_mcp-0.3.0.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 15, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page