eds3028

mealie-mcp

Community eds3028
Updated

mealie-mcp

A Model Context Protocol server that exposesMealie — a self-hosted recipe manager — as a set ofLLM-callable tools. It lets Claude Desktop / Claude Code (or any MCP client)search recipes, fetch details, manage the meal plan, and edit shopping lists onyour own Mealie instance.

Tools

Tool Purpose
search_recipes(query?, tags?, limit?) Search recipes; returns slug, name, description, tags, categories
get_recipe(slug) Full recipe JSON for a slug
list_meal_plan(start_date, end_date) Meal plan entries between two ISO dates
list_shopping_lists() IDs and names of all shopping lists
add_shopping_list_items(list_id, items[]) Add free-text items to a list
create_recipe(name) Create a blank recipe; returns generated slug
create_meal_plan_entry(date, entry_type, recipe_slug?, title?) Add a meal plan entry

Requirements

  • Python 3.11+
  • A running Mealie instance (self-hosted; tested against Mealie v2)
  • A long-lived Mealie API token (User Profile → API Tokens in the Mealie UI)

Configuration

Copy .env.example to .env and fill in the values:

cp .env.example .env
Variable Required Default Description
MEALIE_URL yes Base URL of your Mealie instance (e.g. http://localhost:9011 or http://mealie:9000)
MEALIE_API_TOKEN yes Long-lived bearer token from Mealie
MCP_TRANSPORT no sse stdio for local subprocess, sse for HTTP streaming
MCP_HOST no 0.0.0.0 Bind address for SSE mode
MCP_PORT no 8000 Bind port for SSE mode

Install & run locally

pip install -e .
# stdio mode (for Claude Desktop):
MCP_TRANSPORT=stdio mealie-mcp
# sse/http mode (for docker-compose / remote clients):
MCP_TRANSPORT=sse MCP_PORT=8000 mealie-mcp

The SSE endpoint is served at http://<host>:<port>/sse.

Claude Desktop configuration

Edit Claude Desktop's config file (macOS:~/Library/Application Support/Claude/claude_desktop_config.json):

{
  "mcpServers": {
    "mealie": {
      "command": "mealie-mcp",
      "env": {
        "MEALIE_URL": "http://localhost:9011",
        "MEALIE_API_TOKEN": "paste-your-token-here",
        "MCP_TRANSPORT": "stdio"
      }
    }
  }
}

If mealie-mcp is not on your PATH, point command at the full binary path(e.g. /Users/you/.venvs/mealie-mcp/bin/mealie-mcp) or invoke via Python:

{
  "mcpServers": {
    "mealie": {
      "command": "python",
      "args": ["-m", "mealie_mcp"],
      "env": {
        "MEALIE_URL": "http://localhost:9011",
        "MEALIE_API_TOKEN": "paste-your-token-here",
        "MCP_TRANSPORT": "stdio"
      }
    }
  }
}

Restart Claude Desktop after editing the config.

Docker / docker-compose

A Dockerfile is included. To run standalone:

docker build -t mealie-mcp .
docker run --rm -p 8765:8000 \
  -e MEALIE_URL=http://host.docker.internal:9011 \
  -e MEALIE_API_TOKEN=your-token \
  mealie-mcp

To add the server to an existing Mealie stack, seedocker-compose.snippet.yml:

services:
  mealie-mcp:
    build:
      context: ./mealie-mcp
    depends_on:
      - mealie
    environment:
      MEALIE_URL: "http://mealie:9000"
      MEALIE_API_TOKEN: "${MEALIE_API_TOKEN}"
      MCP_TRANSPORT: "sse"
      MCP_HOST: "0.0.0.0"
      MCP_PORT: "8000"
    ports:
      - "8765:8000"

Point your MCP client at http://<docker-host>:8765/sse.

Testing the server manually

With the server running in SSE mode, confirm it is reachable:

curl -N http://localhost:8000/sse

You should see an SSE event stream open. For stdio mode, Claude Desktop handlesthe handshake — there is no HTTP endpoint.

Project layout

mealie-mcp/
├── pyproject.toml
├── Dockerfile
├── docker-compose.snippet.yml
├── .env.example
├── README.md
└── src/mealie_mcp/
    ├── __init__.py
    ├── __main__.py        # CLI entry point (loads .env, dispatches transport)
    ├── server.py          # FastMCP server + tool definitions
    └── client.py          # Async httpx wrapper for the Mealie REST API

License

MIT

MCP Server · Populars

MCP Server · New

    Battam1111

    Myco

    Self-evolving cognitive organism for AI agents — eternal devouring, eternal evolution.

    Community Battam1111
    MLS-Tech-Inc

    Shortlist MCP Server

    MCP server for Shortlist — search, queue, and auto-apply to jobs from Claude Code

    Community MLS-Tech-Inc
    tomtom-international

    TomTom MCP Server

    A Model Context Protocol (MCP) server providing TomTom's location services, search, routing, and traffic data to AI agents.

    metabase

    Metabase

    The easy-to-use open source Business Intelligence and Embedded Analytics tool that lets everyone work with data :bar_chart:

    Community metabase
    syncable-dev

    Memtrace

    The missing memory layer for coding agents

    Community syncable-dev