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 |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| 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
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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