Canada's Food Guide

A nutrition analysis platform integrating Canada's Food Guide recipes with Health Canada's official nutrition databases.

🍲 Canada's Food Guide - MCP Server

📝 Description

The FoodGuide MCP Server bundles three powerful Health Canada resources into a single toolset for comprehensive nutritional analysis:

ExampleVideo
Find Themed recipes for a week themed-recipe-spedup
Suggest recipes from an image of your groceries from-image-to-show-recipes-spedup
Calculate your estimated macros intake and energy requirements calculate-eer-spedup
Calculate Macros for a recipecalculate-macros-spedup

Two setup modes:

ModeTools availableDB/Storage?Best for
HTTP (remote/self-hosted)Scraping + calculation tools (24 tools)NoMost users -- nutrition lookups, recipe search, EER/DRI calculations
stdio (full)All tools incl. SQLite (46 tools)YesPower users -- recipe macro analysis, favorites, user profiles

Check IMPLEMENTATIONS.MD if you'd like to contribute or collaborate! Always looking for suggestions!

You can use this google sheet to verify EER and CNF calculations shown in the trailer videos in the current repository.

📑 Table of Contents

📥 Installation

  1. Prerequisites:

    • Python 3.10 or higher
    • pip (Python package installer)
  2. Clone the repository:

    git clone https://github.com/Aryan-Jhaveri/mcp-foodguidecanada
    cd mcp-foodguidecanada
    
  3. Install dependencies:

    pip3 install -r requirements.txt
    
  4. Find your Python path (needed for client config):

    which python3
    
  5. Get the absolute path to the project:

    pwd
    

HTTP mode -- scraping + calculation, no DB (24 tools)

Start the server in a terminal and leave it running:

python3 src/server.py --transport http --port 8000
# Server running at http://0.0.0.0:8000/mcp

Then configure your client to connect to http://localhost:8000/mcp -- see Setup by Client below.

Full mode -- all tools incl. SQLite (46 tools)

Run via stdio -- no separate server process needed. Configure your client with the stdio snippets in Setup by Client.


🚀 Setup by Client

ModeDB tools?Tools available
HTTP (start server first)NoScraping + calculation (24 tools)
stdio (full)YesAll tools incl. SQLite (46 tools)

HTTP mode -- scraping + calculation (no DB)

Before configuring your client: start the server in a separate terminal:

python3 src/server.py --transport http --port 8000

Keep it running while using your client.

Most clients use mcp-proxy to bridge stdio to HTTP. Claude Code connects natively.

Claude Desktop

Navigate to: Claude Desktop → Settings (⌘,) → Developer → Edit Config

{
  "mcpServers": {
    "FoodGuideSousChef": {
      "command": "uvx",
      "args": ["mcp-proxy", "--transport", "streamablehttp", "http://localhost:8000/mcp"]
    }
  }
}

Restart Claude Desktop after saving.

Claude Code

claude mcp add FoodGuideSousChef --transport http http://localhost:8000/mcp

Cursor

In .cursor/mcp.json (project) or ~/.cursor/mcp.json (global):

{
  "mcpServers": {
    "FoodGuideSousChef": {
      "command": "uvx",
      "args": ["mcp-proxy", "--transport", "streamablehttp", "http://localhost:8000/mcp"]
    }
  }
}

VS Code (GitHub Copilot)

In .vscode/mcp.json:

{
  "servers": {
    "FoodGuideSousChef": {
      "type": "stdio",
      "command": "uvx",
      "args": ["mcp-proxy", "--transport", "streamablehttp", "http://localhost:8000/mcp"]
    }
  }
}

Full mode -- all tools incl. SQLite DB

No separate server process needed. The client launches the server directly via stdio.

Replace <python-path> and <project-path> with your actual paths from the Installation steps.

Common Python paths by system:

  • Homebrew (Mac): /opt/homebrew/bin/python3
  • System Python (Mac): /usr/bin/python3
  • Anaconda: /opt/anaconda3/bin/python3
  • Linux: /usr/bin/python3

Claude Desktop

Navigate to: Claude Desktop → Settings (⌘,) → Developer → Edit Config

{
  "mcpServers": {
    "FoodGuideSousChef": {
      "command": "<python-path>",
      "args": ["<project-path>/src/server.py"],
      "cwd": "<project-path>"
    }
  }
}

Restart Claude Desktop after saving.

Claude Code

claude mcp add FoodGuideSousChef -- <python-path> <project-path>/src/server.py

Cursor

In .cursor/mcp.json (project) or ~/.cursor/mcp.json (global):

{
  "mcpServers": {
    "FoodGuideSousChef": {
      "command": "<python-path>",
      "args": ["<project-path>/src/server.py"],
      "cwd": "<project-path>"
    }
  }
}

VS Code (GitHub Copilot)

In .vscode/mcp.json:

{
  "servers": {
    "FoodGuideSousChef": {
      "type": "stdio",
      "command": "<python-path>",
      "args": ["<project-path>/src/server.py"],
      "cwd": "<project-path>"
    }
  }
}

Optional flags

# HTTP mode with custom port
python3 src/server.py --transport http --port 9000 --host 0.0.0.0

# Environment variable alternative (for deployment)
MCP_TRANSPORT=http PORT=8000 python3 src/server.py

Troubleshooting

  • If the server doesn't appear, check the Claude Desktop logs for error messages
  • Verify Python 3.10+ is installed: python3 --version
  • For HTTP mode, verify the server is running: curl http://localhost:8000/mcp/

Related Servers