mealie-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
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": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| get_aboutA | Reports the Mealie version and the identity the API token acts as: user, group, household and the permission flags that decide which write tools will actually succeed. Start here when a call fails with a 403. |
| search_recipesA | Searches the recipe collection. Returns summaries — name, slug, id, times, rating, tags and categories — without ingredients or steps; use get_recipe for those. All filters combine with AND; within one filter the entries are OR unless the matching require_all_* flag is set. |
| get_recipeA | Fetches one recipe with everything needed to cook it: ingredients, steps, times, yield, notes and nutrition. Accepts the slug or the UUID. |
| suggest_recipesA | Suggests recipes that can be cooked from the foods and tools marked as "on hand" in Mealie, ranked by how little is missing. This only produces anything on an instance that actually maintains structured foods, units and an on-hand pantry — on a collection of plain text ingredients it returns nothing. Use search_recipes there. |
| list_recipe_commentsA | Lists the comments other users of the instance left on a recipe. |
| list_recipe_timelineA | Lists the timeline of a recipe: when it was created, updated and each time it was cooked, with the notes attached to those events. |
| list_organizersA | Lists the tags, categories or tools defined in the group, with their ids and slugs. These are the values search_recipes filters on. |
| list_foodsA | Lists the structured foods of the group — the ingredient vocabulary Mealie matches ingredient lines against. Many instances leave this empty and keep ingredients as plain text; an empty result means exactly that, not a failure. |
| list_unitsA | Lists the measurement units of the group, with their abbreviations. Like foods, this is empty on an instance that never seeded them. |
| parse_ingredientsA | Splits free-text ingredient lines into quantity, unit, food and note, and reports how confident Mealie is about each part. Nothing is saved. Use it to check how a line will be understood before writing it to a recipe or a shopping list. |
| list_mealplansA | Lists the meal plan of the household in a date range. Each entry is either a recipe reference or a free-text note. |
| get_todays_mealsA | Returns the recipes planned for today, as Mealie computes "today" for the household. Answers with a bare list, not a paginated envelope. |
| list_shopping_listsA | Lists the shopping lists of the household, without their items. |
| get_shopping_listA | Fetches one shopping list with all of its items, checked and unchecked. |
| list_cookbooksA | Lists the cookbooks of the household. A cookbook is a saved filter over the recipe collection, not a fixed set of recipes. |
| get_cookbookA | Fetches a cookbook and the recipes it currently matches. Accepts the slug or the UUID. |
| list_share_tokensA | Lists the public share links that currently exist, with the recipe each one exposes and when it expires. Anyone holding such a link can read the recipe without an account. |
| create_recipeA | Creates a recipe from the given fields. To add one from a website use import_recipe_from_url instead — it fills in far more. |
| update_recipeA | Changes individual fields of a recipe. Only the fields given are touched; everything else keeps its value. Passing an empty array for ingredients, instructions, tags or categories clears that list. |
| duplicate_recipeA | Creates a copy of a recipe under a new name, leaving the original untouched. Useful as a starting point for a variation. |
| set_recipe_last_madeA | Records when a recipe was last cooked. Mealie shows this on the recipe and sorts by it. |
| delete_recipeA | Deletes a recipe permanently, together with its comments, timeline and images. Requires confirmation: call once to receive a token, then again with that token. |
| preview_recipe_urlA | Fetches a URL and reports what Mealie would extract from it, WITHOUT saving anything. Use this to check a page before importing it, or to find out why an import came out empty. |
| import_recipe_from_urlA | Has Mealie fetch a recipe page and save it as a new recipe. The fetch happens on the Mealie server, not here. Everything the page contains — name, description, ingredients, steps — ends up in the collection as written by whoever controls that site. |
| import_recipe_from_html_or_jsonA | Creates a recipe from HTML or schema.org recipe JSON supplied directly, without Mealie fetching anything. Useful for a page that needs a login, or one that import_recipe_from_url could not parse. |
| import_recipe_from_imageA | Creates a recipe from a photo of one — a cookbook page, a handwritten card — by having Mealie run it through its configured AI provider. Requires an AI provider set up in Mealie; without one the call fails, and the setting itself is only visible to a group manager or admin. |
| create_organizerA | Creates a tag, category or recipe tool. Assigning one to a recipe with update_recipe already creates it on the fly — this tool is for defining one up front. |
| update_organizerA | Renames a tag, category or tool. Mealie regenerates the slug from the new name, so anything referring to the old slug stops matching. |
| delete_organizerA | Deletes a tag, category or tool. The recipes themselves are kept, but they lose the assignment. Requires confirmation: call once to receive a token, then again with that token. |
| create_foodB | Adds a food to the group vocabulary so ingredient lines can be matched against it. |
| create_unitC | Adds a measurement unit to the group vocabulary. |
| merge_foodsA | Points every ingredient that uses one food at another one and deletes the source food. Requires confirmation: call once to receive a token, then again with that token. |
| merge_unitsA | Points every ingredient that uses one unit at another one and deletes the source unit. Requires confirmation: call once to receive a token, then again with that token. |
| create_mealplan_entryA | Puts a recipe or a free-text note on the meal plan for one day. Give either a recipe or a title, not both — Mealie stores a plan entry as one or the other. |
| create_random_mealB | Lets Mealie pick a recipe for a day and slot, honouring the meal plan rules configured in the household. |
| update_mealplan_entryA | Moves an entry to another day or slot, or replaces the recipe behind it. |
| delete_mealplan_entryA | Removes one entry from the meal plan. The recipe itself is not touched. Requires confirmation: call once to receive a token, then again with that token. |
| create_shopping_listC | Creates an empty shopping list in the household. |
| delete_shopping_listA | Deletes a shopping list and everything on it. Requires confirmation: call once to receive a token, then again with that token. |
| add_shopping_list_itemsA | Adds items to a shopping list as free text ("2 tbsp olive oil"). Mealie does not split these into food and unit automatically — run parse_ingredients first if that matters. |
| update_shopping_list_itemsA | Changes items on a shopping list — most often ticking them off. Only the given fields are changed; the rest of each item is preserved. |
| delete_shopping_list_itemsA | Removes items from a shopping list for good. To merely tick something off, use update_shopping_list_items with checked=true. Requires confirmation: call once to receive a token, then again with that token. |
| add_recipe_to_shopping_listA | Adds a recipe's ingredients to a shopping list, merging them with what is already there. Mealie remembers the recipe on the list, so remove_recipe_from_shopping_list can take exactly these ingredients back off again. |
| remove_recipe_from_shopping_listA | Takes a recipe's ingredients back off a shopping list. Items that were also needed by another recipe on the list stay, with their quantity reduced. |
| create_cookbookA | Creates a cookbook — a named, saved view of the recipe collection. Without a filter it matches every recipe; the filter itself is written in Mealie's own query language and is easiest to build in the web UI. |
| delete_cookbookA | Deletes a cookbook. The recipes it matched are not touched — a cookbook is only a saved filter. Requires confirmation: call once to receive a token, then again with that token. |
| create_share_tokenA | Creates a link that lets anyone read one recipe without logging in. Requires confirmation: call once to receive a token, then again with that token. |
| delete_share_tokenA | Revokes a share link, so the recipe is no longer readable through it. Needs no confirmation — this narrows access rather than widening it. |
| set_recipe_ratingA | Sets the personal rating of a recipe and/or marks it as a favourite. Ratings in Mealie are per user, not per recipe. |
| add_recipe_commentA | Adds a comment to a recipe. Comments are visible to everyone in the group and are attributed to the user the API token belongs to. |
| delete_recipe_commentA | Deletes a comment. Requires confirmation: call once to receive a token, then again with that token. |
| create_timeline_eventA | Adds an entry to a recipe's timeline — typically a note about having cooked it and how it turned out. Pair it with set_recipe_last_made, which is what the recipe view sorts on. |
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/ni-c/mealie-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server