Mealie
FreeNot checkedMCP server for Mealie — manage recipes, meal plans, and shopping lists
About
MCP server for Mealie — manage recipes, meal plans, and shopping lists
README
An MCP (Model Context Protocol) server for Mealie -- the self-hosted recipe manager and meal planner. Gives LLMs full access to manage recipes, meal plans, shopping lists, and more through your Mealie instance.
Tools
Recipes
| Tool | Description |
|---|---|
get_recipes |
Search and list recipes with filtering by categories, tags, tools, and advanced query filters |
get_recipe_detailed |
Get full recipe details including ingredients, instructions, and metadata |
get_recipe_concise |
Get a summary of a recipe (name, servings, time, ingredients, rating) |
create_recipe |
Create a new recipe with name, ingredients, and instructions |
update_recipe |
Replace the ingredients and instructions of an existing recipe |
patch_recipe |
Partially update recipe metadata (name, description, times, servings, rating, etc.) |
duplicate_recipe |
Duplicate an existing recipe |
delete_recipe |
Delete a recipe permanently |
mark_recipe_last_made |
Mark a recipe as made today |
get_recipe_suggestions |
Get recipe suggestions based on available foods and tools on hand |
create_recipe_from_url |
Import a recipe by scraping it from a URL |
create_recipes_from_url_bulk |
Import multiple recipes from URLs at once |
test_scrape_url |
Preview scraped recipe data from a URL without saving |
set_recipe_image_from_url |
Set a recipe's image by scraping it from a URL |
upload_recipe_image_file |
Upload a local image file for a recipe |
upload_recipe_asset_file |
Upload a document/asset file for a recipe |
Meal Plans
| Tool | Description |
|---|---|
get_all_mealplans |
Get meal plans with optional date range filtering |
get_todays_mealplan |
Get today's meal plan entries |
get_mealplan |
Get a specific meal plan entry by ID |
create_mealplan |
Create a meal plan entry (breakfast, lunch, dinner, side, snack, drink, dessert) |
create_mealplan_bulk |
Create multiple meal plan entries at once |
create_random_mealplan |
Create a meal plan entry with a randomly selected recipe |
update_mealplan |
Update a meal plan entry |
delete_mealplan |
Delete a meal plan entry |
Shopping Lists
| Tool | Description |
|---|---|
get_shopping_lists |
Get all shopping lists |
get_shopping_list |
Get a specific shopping list with all items |
create_shopping_list |
Create a new shopping list |
delete_shopping_list |
Delete a shopping list |
add_recipe_to_shopping_list |
Add a recipe's ingredients to a shopping list |
remove_recipe_from_shopping_list |
Remove a recipe's ingredients from a shopping list |
Shopping List Items
| Tool | Description |
|---|---|
get_shopping_list_items |
Get all shopping list items with search and pagination |
get_shopping_list_item |
Get a specific shopping list item |
create_shopping_list_item |
Create a new item in a shopping list |
create_shopping_list_items_bulk |
Create multiple shopping list items at once |
update_shopping_list_item |
Update a shopping list item (check/uncheck, modify, assign label) |
update_shopping_list_items_bulk |
Update multiple shopping list items at once |
delete_shopping_list_item |
Delete a shopping list item |
delete_shopping_list_items_bulk |
Delete multiple shopping list items at once |
Categories
| Tool | Description |
|---|---|
get_categories |
Get all recipe categories |
get_category |
Get a category by ID |
get_category_by_slug |
Get a category by slug |
get_empty_categories |
Get categories with no recipes |
create_category |
Create a new category |
update_category |
Update a category |
delete_category |
Delete a category |
Tags
| Tool | Description |
|---|---|
get_tags |
Get all recipe tags |
get_tag |
Get a tag by ID |
get_tag_by_slug |
Get a tag by slug |
get_empty_tags |
Get tags with no recipes |
create_tag |
Create a new tag |
update_tag |
Update a tag |
delete_tag |
Delete a tag |
Foods
| Tool | Description |
|---|---|
get_foods |
Get all foods (ingredients in the database) |
get_food |
Get a specific food by ID |
create_food |
Create a new food |
update_food |
Update a food's details |
delete_food |
Delete a food |
merge_foods |
Merge one food into another (updates all references) |
Units
| Tool | Description |
|---|---|
get_units |
Get all measurement units |
get_unit |
Get a specific unit by ID |
create_unit |
Create a new unit |
update_unit |
Update a unit's details |
delete_unit |
Delete a unit |
merge_units |
Merge one unit into another (updates all references) |
Tools (Kitchen Equipment)
| Tool | Description |
|---|---|
get_tools |
Get all kitchen tools/equipment |
get_tool |
Get a tool by ID |
get_tool_by_slug |
Get a tool by slug |
create_tool |
Create a new tool |
update_tool |
Update a tool |
delete_tool |
Delete a tool |
Labels
| Tool | Description |
|---|---|
get_labels |
Get all multi-purpose labels (for shopping list item categorization) |
get_label |
Get a label by ID |
create_label |
Create a new label |
update_label |
Update a label's name or color |
delete_label |
Delete a label |
Cookbooks
| Tool | Description |
|---|---|
get_cookbooks |
Get all cookbooks (curated recipe collections) |
get_cookbook |
Get a cookbook by ID |
create_cookbook |
Create a new cookbook with optional query filter |
update_cookbook |
Update a cookbook |
delete_cookbook |
Delete a cookbook |
Comments
| Tool | Description |
|---|---|
get_recipe_comments |
Get all comments on a recipe |
create_comment |
Add a comment to a recipe |
update_comment |
Update a comment |
delete_comment |
Delete a comment |
Ingredient Parser
| Tool | Description |
|---|---|
parse_ingredient |
Parse a single ingredient string into structured data (quantity, unit, food) |
parse_ingredients |
Parse multiple ingredient strings at once |
User & Household
| Tool | Description |
|---|---|
get_current_user |
Get the current user's profile info |
get_user_favorites |
Get the current user's favorite recipes |
get_user_ratings |
Get the current user's recipe ratings |
add_favorite |
Add a recipe to favorites |
remove_favorite |
Remove a recipe from favorites |
set_recipe_rating |
Rate a recipe (0-5) and/or set favorite status |
get_household_statistics |
Get household stats (total recipes, categories, tags, etc.) |
Prompts
| Prompt | Description |
|---|---|
weekly_meal_plan |
Interactive weekly meal planning workflow that searches your recipes and builds a balanced 7-day plan |
Environment Variables
| Variable | Required | Description |
|---|---|---|
MEALIE_BASE_URL |
Yes | Base URL of your Mealie instance (e.g., https://mealie.example.com) |
MEALIE_API_KEY |
Yes | API key for authenticating with Mealie (generate in Mealie under User > API Tokens) |
LOG_LEVEL |
No | Logging level (default: INFO) |
MCP_TRANSPORT |
No | Transport mode: stdio (default) or sse |
Setup
Requires Python 3.12+ and uv.
# Clone the repo
git clone https://github.com/GraysonCAdams/mealie-mcp.git
cd mealie-mcp
# Install dependencies
uv sync
# Set environment variables
export MEALIE_BASE_URL="https://mealie.example.com"
export MEALIE_API_KEY="your-api-key-here"
Or create a .env file in the project root:
MEALIE_BASE_URL=https://mealie.example.com
MEALIE_API_KEY=your-api-key-here
Running
stdio mode (for direct MCP client connections)
uv run src/server.py
HTTP mode with mcp-proxy
mcp-proxy --port 8004 -- uv run src/server.py
Claude Desktop configuration
Add to your Claude Desktop config (claude_desktop_config.json):
{
"mcpServers": {
"mealie": {
"command": "uv",
"args": ["run", "--directory", "/path/to/mealie-mcp", "src/server.py"],
"env": {
"MEALIE_BASE_URL": "https://mealie.example.com",
"MEALIE_API_KEY": "your-api-key-here"
}
}
}
}
License
MIT
Installing Mealie
This server has no published package — it is built from source. Open the repository and follow its README.
▸ github.com/GraysonCAdams/mealie-mcpFAQ
Is Mealie MCP free?
Yes, Mealie MCP is free — one-click install via Unyly at no cost.
Does Mealie need an API key?
No, Mealie runs without API keys or environment variables.
Is Mealie hosted or self-hosted?
Self-hosted: the server runs locally on your machine via the install command above.
How do I install Mealie in Claude Desktop, Claude Code or Cursor?
Open Mealie on unyly.org, pick your client tab (Claude Desktop, Claude Code, Cursor) and press Install — the config is generated automatically, no JSON editing.
Related MCPs
Fetch
Web content fetching and conversion for efficient LLM usage.
AWS KB Retrieval
Retrieval from AWS Knowledge Base using Bedrock Agent Runtime.
by modelcontextprotocolSpring AI MCP Server
Provides auto-configuration for setting up an MCP server in Spring Boot applications.
llm-analysis-assistant
A very streamlined mcp client that supports calling and monitoring stdio/sse/streamableHttp, and can also view request responses through the /logs page. It also
by xuzexin-hzCompare Mealie with
Not sure what to pick?
Find your stack in 60 seconds
Author?
Embed badge for your README
Browse similar
All ai MCPs
