Mealie MCP Server
An MCP server for managing recipes, meal plans, shopping lists, and more through a self-hosted Mealie instance.
README
Mealie MCP Server
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
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.