mcp-mealie
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| MEALIE_BASE_URL | Yes | Root URL of your Mealie instance, no trailing path | |
| MEALIE_API_TOKEN | Yes | Long-lived bearer token from Profile → API Tokens |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| get_server_versionA | Return the installed version of the mcp-mealie server. |
| get_aboutA | Return Mealie server version and basic info. Confirms connectivity. |
| whoamiA | Return the user owning the configured API token. Confirms auth works. |
| list_recipesC | List recipes with optional search, sorting, and pagination. |
| get_recipeB | Fetch a full recipe by slug, including ingredients and instructions. |
| create_recipeB | Create an empty recipe by name. Returns the new slug. |
| create_recipe_from_urlB | Scrape a recipe from a URL using Mealie's scraper. Returns the new slug. |
| update_recipeA | Patch a recipe. Only non-empty fields are sent. Note: rating is per-user in Mealie 2.x+ and is not exposed here. Set it via the Mealie UI (or a future dedicated tool) against POST /api/users/{user_id}/ratings/{slug}. |
| delete_recipeB | Delete a recipe by slug. This is permanent. |
| set_recipe_ratingA | Set the calling user's rating and/or favorite flag for a recipe. rating: 0-5 (decimals allowed). Pass -1 to leave unchanged. is_favorite: 0=remove, 1=add. Pass -1 to leave unchanged. |
| set_recipe_ingredientsB | Replace a recipe's ingredient list with the given lines.
|
| set_recipe_instructionsA | Replace a recipe's instruction steps with the given lines.
Strings starting with a short "Header: rest" prefix are auto-split:
the header goes into the step's |
| set_recipe_notesA | Replace a recipe's notes with the given JSON array.
|
| parse_recipe_ingredientsA | Re-parse a recipe's free-text ingredients and bind to food/unit IDs. Reads the recipe's current ingredients, runs each line through Mealie's NLP parser, looks up matching food / unit records (matching on name, plural, abbreviations, and aliases — case-insensitive), creates new food / unit records when no match exists, and writes the bound result back to the recipe. After this runs, ingredients are eligible for shopping-list aggregation. Lines whose parsed average confidence falls below Returns a per-line summary of what was bound vs. left as free text. |
| set_recipe_ingredients_parsedA | Like set_recipe_ingredients, but parses each line and binds food/unit IDs.
Lines whose parsed average confidence falls below Returns a per-line summary of what was bound vs. left as free text. |
| list_cookbooksC | List cookbooks (saved recipe filters) for the current household. |
| get_cookbookB | Fetch a cookbook by UUID. |
| create_cookbookC | Create a cookbook. |
| update_cookbookC | Patch a cookbook. Use public=1 to make public, public=0 to unpublish. |
| delete_cookbookB | Delete a cookbook by UUID. |
| list_mealplansC | List meal-plan entries, optionally bounded by start_date/end_date. |
| get_mealplanA | Fetch a meal-plan entry by numeric id. |
| create_mealplanA | Create a meal-plan entry. Supply either |
| update_mealplanB | Patch a meal-plan entry. Only non-empty fields are sent. |
| delete_mealplanB | Delete a meal-plan entry by id. |
| list_mealplan_rulesC | List meal-plan rules used by the random-meal generator. |
| get_mealplan_ruleB | Fetch a meal-plan rule by UUID. |
| create_mealplan_ruleA | Create a meal-plan rule.
|
| update_mealplan_ruleC | Patch a meal-plan rule. |
| delete_mealplan_ruleC | Delete a meal-plan rule by UUID. |
| list_shopping_listsB | List shopping lists for the current household. |
| get_shopping_listA | Fetch a shopping list by UUID, including its items. |
| create_shopping_listC | Create a shopping list with the given name. |
| update_shopping_listC | Patch a shopping list. Currently supports renaming. |
| delete_shopping_listC | Delete a shopping list by UUID. |
| add_recipe_to_shopping_listC | Add a recipe's ingredients to a shopping list. |
| remove_recipe_from_shopping_listB | Remove a recipe's ingredients from a shopping list. |
| list_shopping_itemsC | List shopping items, optionally filtered to one shopping list. |
| get_shopping_itemB | Fetch a shopping item by UUID. |
| create_shopping_itemA | Create a single shopping item on a list. Free-form items: pass |
| create_shopping_items_bulkA | Bulk-create shopping items from a JSON array.
|
| update_shopping_itemC | Patch a shopping item. checked: 0=unchecked, 1=checked, -1=leave. |
| delete_shopping_itemB | Delete a shopping item by UUID. |
| parse_ingredientA | Parse a single ingredient string into structured quantity/unit/food.
|
| parse_ingredientsC | Parse many ingredient strings. |
| list_categoriesC | List recipe categories. |
| get_categoryA | Fetch a category by UUID. |
| create_categoryC | Create a category. |
| update_categoryC | Rename a category by UUID. |
| delete_categoryC | Delete a category by UUID. |
| list_tagsC | List recipe tags. |
| get_tagC | Fetch a tag by UUID. |
| create_tagD | Create a tag. |
| update_tagB | Rename a tag by UUID. |
| delete_tagB | Delete a tag by UUID. |
| list_toolsC | List kitchen tools. |
| get_toolA | Fetch a kitchen tool by UUID. |
| create_toolC | Create a kitchen tool. |
| update_toolC | Rename a kitchen tool by UUID. |
| delete_toolC | Delete a kitchen tool by UUID. |
| list_foodsC | List ingredient foods. |
| get_foodC | Fetch a food by UUID. |
| create_foodC | Create a food (ingredient). |
| update_foodC | Patch a food. |
| delete_foodC | Delete a food by UUID. |
| list_unitsD | List units of measure. |
| get_unitA | Fetch a unit by UUID. |
| create_unitB | Create a unit of measure. fraction/use_abbreviation: 0=false, 1=true. |
| update_unitC | Patch a unit. |
| delete_unitB | Delete a unit by UUID. |
| list_labelsB | List multi-purpose labels (used by foods, shopping items, etc.). |
| get_labelA | Fetch a label by UUID. |
| create_labelB | Create a label. |
| update_labelD | Patch a label. |
| delete_labelC | Delete a label by UUID. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/obrien-matthew/mcp-mealie'
If you have feedback or need assistance with the MCP directory API, please join our Discord server