Enables interaction with a Mealie recipe database, allowing AI assistants to access and manipulate recipe data stored in a Mealie instance.
Click on "Install 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 MCP Servershow me recipes with chicken and rice"
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 Server
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with your Mealie recipe database through clients like Claude Desktop.
β¨ Features
π½οΈ Recipe Management
CRUD Operations: Create, read, update, patch, duplicate, and delete recipes
Advanced Search: Filter by text, categories, tags, and tools with AND/OR logic
Image Management: Upload images or scrape from URLs
Asset Uploads: Attach documents and files to recipes
Metadata Tracking: Mark recipes as made, track last made dates
π Shopping Lists
List Management: Create, update, and delete shopping lists
Item Operations: Add, update, check off, and remove items
Bulk Operations: Create, update, or delete multiple items at once
Recipe Integration: Automatically add recipe ingredients to shopping lists
π·οΈ Organization
Categories: Organize recipes with categories (Breakfast, Dinner, etc.)
Tags: Tag recipes for easy filtering (Quick, Healthy, Family Favorite)
Advanced Filtering: Search and filter with full pagination support
Empty Detection: Find unused categories and tags
π Meal Planning
Meal Plans: View and manage meal plans
Bulk Creation: Add multiple meals at once
Today's Menu: Quick access to today's planned meals
Related MCP server: clickhouse-mcp-server
π Quick Start
Prerequisites
Python 3.12+
Running Mealie instance with API key
Package manager uv
Installation
Option 1: Using fastmcp (Recommended)
Install the server directly with the fastmcp command:
fastmcp install src/server.py \
--env-var MEALIE_BASE_URL=https://your-mealie-instance.com \
--env-var MEALIE_API_KEY=your-mealie-api-keyOption 2: Manual Configuration
Add the server to your claude_desktop_config.json:
{
"mcpServers": {
"mealie-mcp-server": {
"command": "uv",
"args": [
"--directory",
"/path/to/repo/src",
"run",
"server.py"
],
"env": {
"MEALIE_BASE_URL": "https://your-mealie-instance.com",
"MEALIE_API_KEY": "your-mealie-api-key"
}
}
}
}Restart Claude Desktop to load the server.
π Usage Examples
Recipe Operations
"Search for chicken recipes"
"Create a new recipe for pasta carbonara"
"Duplicate my lasagna recipe"
"Mark the meatloaf recipe as made today"
"Upload an image for the chocolate cake recipe"Shopping Lists
"Create a shopping list for this week"
"Add eggs and milk to my shopping list"
"Add all ingredients from the lasagna recipe to my shopping list"
"Check off milk on my shopping list"
"Delete all checked items from my shopping list"Organization
"Show me all my recipe categories"
"Create a new tag called 'Quick Meals'"
"Find all recipes tagged with 'healthy'"
"Show me categories that have no recipes"Advanced Filtering
"Find recipes that have both 'quick' AND 'healthy' tags"
"Search for breakfast recipes containing 'eggs'"
"Show me all vegetarian dinner recipes"π― Available Tools
Recipe Tools (13 operations)
get_recipes- List/search recipes with advanced filteringget_recipe_detailed- Get complete recipe detailsget_recipe_concise- Get recipe summarycreate_recipe- Create new recipeupdate_recipe- Update recipe (full replacement)patch_recipe- Update specific fields onlyduplicate_recipe- Clone a recipemark_recipe_last_made- Update last made timestampset_recipe_image_from_url- Set image from URLupload_recipe_image_file- Upload image fileupload_recipe_asset_file- Upload document/assetdelete_recipe- Delete recipe
Shopping List Tools (14 operations)
get_shopping_lists- List all shopping listscreate_shopping_list- Create new listget_shopping_list- Get list by IDdelete_shopping_list- Delete listadd_recipe_to_shopping_list- Add recipe ingredientsremove_recipe_from_shopping_list- Remove recipe ingredientsget_shopping_list_items- List all itemsget_shopping_list_item- Get item by IDcreate_shopping_list_item- Create single itemcreate_shopping_list_items_bulk- Create multiple itemsupdate_shopping_list_item- Update item (preserves fields)update_shopping_list_items_bulk- Update multiple itemsdelete_shopping_list_item- Delete single itemdelete_shopping_list_items_bulk- Delete multiple items
Category Tools (7 operations)
get_categories- List/search categoriesget_empty_categories- Find unused categoriescreate_category- Create new categoryget_category- Get by IDget_category_by_slug- Get by slugupdate_category- Update categorydelete_category- Delete category
Tag Tools (7 operations)
get_tags- List/search tagsget_empty_tags- Find unused tagscreate_tag- Create new tagget_tag- Get by IDget_tag_by_slug- Get by slugupdate_tag- Update tagdelete_tag- Delete tag
Meal Plan Tools (4 operations)
get_all_mealplans- List meal planscreate_mealplan- Create meal plan entrycreate_mealplan_bulk- Create multiple entriesget_todays_mealplan- Get today's meals
Total: 45 tools providing comprehensive Mealie API coverage
π§ Development
Setup
Clone the repository:
git clone <repository-url>
cd mealie-mcp-serverInstall dependencies:
uv syncConfigure environment:
cp .env.template .env
# Edit .env with your Mealie instance detailsRun MCP inspector for testing:
uv run mcp dev src/server.pyProject Structure
mealie-mcp-server/
βββ src/
β βββ mealie/ # API client mixins
β β βββ client.py # Base HTTP client
β β βββ recipe.py # Recipe operations
β β βββ shopping_list.py # Shopping list operations
β β βββ categories.py # Category operations
β β βββ tags.py # Tag operations
β β βββ mealplan.py # Meal plan operations
β β βββ __init__.py # MealieFetcher aggregator
β βββ tools/ # MCP tool definitions
β β βββ recipe_tools.py
β β βββ shopping_list_tools.py
β β βββ categories_tools.py
β β βββ tags_tools.py
β β βββ mealplan_tools.py
β β βββ __init__.py
β βββ models/ # Pydantic models
β βββ server.py # MCP server entry point
β βββ prompts.py # Server prompts
βββ CHANGELOG.md # Version history
βββ README.mdπ Important Notes
Filtering by Tags/Categories
When filtering recipes, you must use slugs or UUIDs, not display names:
β Correct:
"Get recipes with tags=['quick-meals', 'healthy']"β Incorrect:
"Get recipes with tags=['Quick Meals', 'Healthy']"Use get_tags() or get_categories() first to find the correct slugs.
Field Preservation
When updating shopping list items, the server automatically preserves all existing fields. You only need to specify the fields you want to change:
# Only updates 'checked' field, preserves note, quantity, etc.
update_shopping_list_item(item_id="...", checked=True)π Known Issues
None currently! All features have been tested end-to-end with Claude Desktop.
π Changelog
See CHANGELOG.md for a detailed list of changes and version history.
π€ Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
π License
This project is licensed under the MIT License - see the LICENSE file for details.
π Credits
Based on the original mealie-mcp-server by @rldiao
Mealie - The recipe management system
FastMCP - The MCP framework
π Support
For issues and questions:
Check the CHANGELOG.md for recent updates
Review the Mealie API documentation
Open an issue on GitHub