Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
MEALIE_BASE_URLYesRoot URL of your Mealie instance, no trailing path
MEALIE_API_TOKENYesLong-lived bearer token from Profile → API Tokens

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
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.

ingredients_json is a JSON array of strings, one per ingredient (e.g. ["1 cup flour", "2 eggs"]). Each string is stored verbatim; the user can re-parse to structured quantity/unit/food in the Mealie UI afterward to enable shopping-list integration.

set_recipe_instructionsA

Replace a recipe's instruction steps with the given lines.

instructions_json is a JSON array. Each element is either:

  • a string ("Boil water: bring 4 quarts to a rolling boil"), or

  • an object ({"title": "Prep", "summary": "Boil water", "text": "..."})

Strings starting with a short "Header: rest" prefix are auto-split: the header goes into the step's summary (rendered as a per-step header in Mealie's UI), and the rest goes into text. The title field is reserved for section dividers between groups of steps and is only set when the dict form provides one.

set_recipe_notesA

Replace a recipe's notes with the given JSON array.

notes_json is a JSON array of {title, text} objects. title is optional; text is required. Example: [{"title": "Tip", "text": "Toast the spices first."}].

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 min_confidence are stored as free text (no binding) so quirky lines like "splash of sake for deglazing" don't pollute the food catalogue.

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.

ingredients_json is a JSON array of strings. Each is run through Mealie's NLP parser; recognized food / unit names are matched against the existing taxonomy (or created if not present), so the resulting recipe is shopping-list-aggregation-ready.

Lines whose parsed average confidence falls below min_confidence are stored as free text.

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. query_filter_string is the Mealie filter DSL.

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 recipe_id (UUID) for a recipe entry, or title/text for a freeform entry. entry_type is one of: breakfast, lunch, dinner, side.

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.

day is monday..sunday or "unset" (any day). entry_type is breakfast/lunch/dinner/side. query_filter_string is the Mealie filter DSL (e.g. tags.name = "quick").

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. scale multiplies amounts.

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 note (e.g. "carrots, 2 lb"). Structured items: set is_food=true and pass food_id, optional unit_id.

create_shopping_items_bulkA

Bulk-create shopping items from a JSON array.

items_json is a JSON array of item objects. Each item must include shoppingListId (UUID); note and quantity are typical optional fields.

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.

parser is "nlp" (default, CRF model) or "brute" (regex fallback).

parse_ingredientsC

Parse many ingredient strings. ingredients_json is a JSON string array.

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. color is a CSS hex string like '#3f51b5'.

update_labelD

Patch a label.

delete_labelC

Delete a label by UUID.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

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