mealie-mcp
Provides integration with Mealie's API, enabling recipe search and retrieval, recipe creation and import from URLs or plain text, meal planning, and shopping list management.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@mealie-mcpsearch my recipes for chicken and add one to tonight's dinner plan"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
mealie-mcp
An MCP server for Mealie: search and read recipes, import them from URLs or plain text, plan meals, and manage shopping lists — from claude.ai, Claude Desktop, Claude Code or any other MCP client.
Runs as a single long-lived Streamable HTTP server with OAuth 2.1 in front (any OIDC IdP; built and tested against Authentik), or over stdio for local use.
Tools (20)
Area | Tools |
Recipes |
|
Meal plan |
|
Shopping |
|
Organizers |
|
Server |
|
Deliberately not included: bulk imports, anything under /api/admin, backups, user
management. delete_recipe only removes recipes the server's own Mealie user created (its
imports and text recipes — what a model can undo of its own doing); deleting anything else is a
rare, deliberate act that belongs in the web UI.
Designed so a model fails loudly rather than quietly: unknown tag/category names in
search_recipes are an error (Mealie itself would return the whole library), importing a URL
that is already in the library returns the existing recipe, a URL with no recipe on it saves
nothing, and Mealie's Pydantic 422 bodies are compacted to field: message.
Two scopes: mealie:read and mealie:write (write implies read). Scopes are checked inside
every tool function, not just declared in metadata.
Related MCP server: Mealie MCP Server
How it fits together
MCP client ──OAuth 2.1──► mealie-mcp ──Mealie API token──► Mealie
│ login + consent │
▼ │ RFC 9728 metadata, WWW-Authenticate challenge,
your IdP (Authentik, …) │ optional RFC 7591 DCR front (OAuthProxy)Two auth boundaries. OAuth gates client → server. The server → Mealie hop always uses one
Mealie API token, ideally for a dedicated, non-admin Mealie user — everything the server does
shows up in Mealie as that user. scripts/setup_mealie_user.py creates that user and token
without ever printing them.
Quick start (stdio, local)
pip install .
export MEALIE_URL=http://127.0.0.1:9000 MEALIE_TOKEN=<api token>
mealie-mcp # speaks MCP over stdioRemote with OAuth
See docs/DEPLOY.md. In short:
MCP_TRANSPORT=http MCP_HTTP_HOST=127.0.0.1 MCP_HTTP_PORT=3011
MCP_PUBLIC_URL=https://mealie-mcp.example.com
MCP_AUTH_MODE=oauth-proxy
MCP_OAUTH_ISSUER=https://auth.example.com/application/o/mealie-mcp/
MCP_OAUTH_AUDIENCE=https://mealie-mcp.example.com/mcp
MCP_OAUTH_CLIENT_ID=… MCP_OAUTH_CLIENT_SECRET=…
MEALIE_URL=http://127.0.0.1:9000 MEALIE_TOKEN=…The HTTP transport refuses to start without OAuth unless you set
MCP_ALLOW_UNAUTHENTICATED_HTTP=1 for loopback testing.
Configuration
Variable | Meaning |
| Mealie base URL and API token (required) |
| URL for links in results, if different from |
|
|
|
|
| bind address (default |
| externally reachable base URL (required for OAuth) |
|
|
| token verification |
| this server's client at the IdP (proxy mode) |
| allow-list for MCP clients' redirect URIs (default: claude.ai/claude.com callbacks + localhost) |
| per-IP limit on |
| where the OAuth proxy persists client registrations — must survive restarts |
Development
python -m venv .venv && .venv/bin/pip install -e ".[dev]"
.venv/bin/pytestLicense
MIT. The auth and rate-limit modules are adapted from molnkontakt/odoo-mcp by the same author.
This server cannot be deployed
Maintenance
Related MCP Connectors
BakeryOS bakery-management MCP — recipes, costs, production; propose changes via OAuth.
Remote MCP server for training, nutrition, wellness, and performance data with OAuth 2.0.
Your Recipes, Beautifully Kept. weReci MCP server lets Claude and other MCP clients work with your personal weReci cookbook, the recipes you've imported from the web, social video and scanned family books. Interactive UI in the chat. weReci supports MCP Apps, so in clients that support it, tools return live views instead of plain text: recipe cards, shopping lists and your recipe graph. Clients without MCP Apps support get the same results as text. Find and read recipes: search your collection in plain language, open any recipe in full, or get an overview of what's in your cookbook. Cook with them: scale a recipe to any serving count, with cooking adjustments as well as amounts. Get substitution suggestions with ratios and caveats. Explore connections: browse your recipe graph (shared ingredients, techniques and cuisines), trace the connection between two recipes, and look up where a dish sits on the cuisine map. Themed collections: list the themed groups weReci curates from your cookbook, or ask it to reshuffle them. Shop: build a shopping list from one or more recipes, add or update items, and read the list back. Share: email a recipe to someone. Longer jobs like conceit reshuffles run in the background, with tools to check their progress. Everything is scoped to your own cookbook, or to a shared one you've joined.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceEnables AI assistants to interact with Mealie recipe databases through MCP clients like Claude Desktop.142MIT
- AlicenseNot gradedqualityCmaintenanceEnables interaction with Mealie for managing recipes, meal plans, shopping lists, foods, units, tags, categories, and more through MCP.MIT
- AlicenseNot gradedqualityCmaintenanceConnects MCP clients like Claude to your Mealie recipe manager, enabling natural language search, creation, import, and updates of recipes.132 npmMIT
- AlicenseNot gradedqualityBmaintenanceA read-only MCP server for Mealie that enables searching recipes, managing shopping lists, meal plans, and retrieving household/instance info via tools. Supports secure per-user authentication and multiple Mealie instances.MIT