Mealie MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| MEALIE_BASE_URL | Yes | The base URL of the Mealie instance (e.g., http://localhost:9000) | |
| MEALIE_PASSWORD | No | Mealie password (fallback authentication, requires MEALIE_USERNAME) | |
| MEALIE_USERNAME | No | Mealie username (fallback authentication, requires MEALIE_PASSWORD) | |
| MEALIE_API_TOKEN | No | A long-lived Mealie API token (preferred authentication method) | |
| MEALIE_PUBLIC_URL | No | The public URL of the Mealie instance (optional, for external access) | |
| MEALIE_MCP_TIMEOUT | No | HTTP timeout in seconds (default 30) | 30 |
| MEALIE_MCP_DATA_DIR | No | Runtime data root directory (default ~/.cache/mealie-mcp) | ~/.cache/mealie-mcp |
| MEALIE_MCP_OCR_TIMEOUT | No | Tesseract timeout per OCR call in seconds (default 60) | 60 |
| MEALIE_MCP_DOWNLOAD_DIR | No | Controlled download directory (default $DATA_DIR/downloads) | ~/.cache/mealie-mcp/downloads |
| MEALIE_MCP_MAX_JSON_BYTES | No | Maximum JSON response size (default 10 MiB) | 10485760 |
| MEALIE_MCP_MUTATION_SCOPE | No | Comma-separated mutation scopes (default none) | none |
| MEALIE_MCP_ALLOW_MUTATIONS | No | Enable mutations (default false) | false |
| MEALIE_MCP_MAX_IMAGE_PIXELS | No | Maximum decoded image pixels (default 40,000,000) | 40000000 |
| MEALIE_MCP_ALLOW_URL_IMPORTS | No | Allow Mealie to fetch validated public recipe URLs (default false) | false |
| MEALIE_MCP_MAX_OPENAPI_BYTES | No | Maximum OpenAPI response size (default 20 MiB) | 20971520 |
| MEALIE_MCP_MAX_DOWNLOAD_BYTES | No | Maximum binary download size (default 100 MiB) | 104857600 |
| MEALIE_MCP_ALLOWED_LOCAL_ROOTS | No | Additional local upload roots separated by OS path separator (default empty) | |
| MEALIE_MCP_ALLOW_REMOTE_SOURCES | No | Allow this MCP process to fetch validated public file URLs (default false) | false |
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 |
|---|---|
| mealie_aboutB | Return public Mealie app/version information. |
| mealie_statusA | Check server reachability and whether authentication works. |
| mealie_search_recipesC | Search Mealie recipes. Supports Mealie queryFilter syntax for advanced filters. |
| mealie_get_recipeA | Fetch one recipe by slug or id. |
| mealie_recipe_suggestionsC | Return Mealie recipe suggestions. |
| mealie_list_shopping_listsC | List household shopping lists. |
| mealie_list_shopping_itemsA | List shopping list items, optionally filtered by shopping list and checked state. |
| mealie_list_mealplansB | List household meal plans. Dates are ISO yyyy-mm-dd strings. |
| mealie_create_recipe_from_urlA | Import/create a recipe from a public web URL after explicit confirmation. |
| mealie_create_shopping_listB | Create a shopping list after explicit user confirmation. |
| mealie_add_shopping_itemA | Add an item to a shopping list after explicit user confirmation. |
| mealie_get_shopping_listB | Fetch one household shopping list by id. |
| mealie_get_shopping_itemA | Fetch one household shopping list item by id. |
| mealie_update_shopping_itemC | Update a shopping item using Mealie v3's full-model PUT endpoint. |
| mealie_delete_shopping_itemA | Delete one shopping list item after explicit confirmation. |
| mealie_add_recipe_to_shopping_listC | Add a recipe's ingredients to a shopping list using Mealie v3. |
| mealie_get_todays_mealsA | Fetch today's household meal plan entries. |
| mealie_create_mealplanB | Create a household mealplan entry. Date must be ISO yyyy-mm-dd. |
| mealie_update_mealplanB | Update a mealplan entry using Mealie v3's full-model PUT endpoint. |
| mealie_delete_mealplanA | Delete a mealplan entry after explicit confirmation. |
| mealie_create_recipe_from_textA | Create a Mealie recipe from OCR/vision-extracted text and optional images. Requires mutations enabled AND confirmed_by_user=True. Use this after showing the user a preview of title, ingredients, steps, tags, and asking for explicit confirmation. Ingredient lines are stored in display and note so Mealie mobile renders them correctly. For cookbook/photo imports, the agent may choose a title-image crop itself:
pass |
| mealie_update_recipe_imageA | Upload or replace the cover image of an existing Mealie recipe. The image is read from an HTTP(S) URL, file:// URL, or local path and sent to Mealie as a real multipart file upload. It is never stored as an external URL in the recipe object. Requires mutations enabled and an explicit user confirmation. An optional crop uses [left, top, right, bottom] in percent (default), fraction, or pixels. |
| mealie_upload_recipe_assetB | Upload a real file asset to an existing recipe via multipart. |
| mealie_delete_recipe_imageA | Delete an existing recipe cover image after explicit confirmation. |
| mealie_duplicate_recipeB | Duplicate a recipe, optionally assigning a new name. |
| mealie_mark_recipe_madeB | Set a recipe's last-made timestamp using an ISO 8601 date-time. |
| mealie_list_organizersC | List tags, categories, foods, units, cookbooks, comments, or timeline events. |
| mealie_api_operationsA | Search the live Mealie OpenAPI operation catalog. Returns operation IDs, methods, paths, tags, parameters, and content types. Admin/auth/user/backup/maintenance operations are hidden by default and are documentation-only even when include_sensitive=True. |
| mealie_api_operation_requestA | Execute a non-sensitive JSON Mealie operation by OpenAPI operation ID. Use mealie_api_operations first. Mutations require explicit confirmation and remain restricted by MEALIE_MCP_MUTATION_SCOPE. Multipart/binary operations require a dedicated MCP tool. |
| mealie_api_multipart_operation_requestC | Execute a non-sensitive multipart Mealie operation by OpenAPI operation ID. file_sources maps multipart field names to direct HTTP(S)/file URLs or local paths. Mutations require explicit confirmation and an enabled scope. |
| mealie_api_downloadC | Download a non-sensitive binary GET operation to a controlled local directory. |
| mealie_api_getC | Generic authenticated GET validated against live OpenAPI and security tags. |
| mealie_api_requestA | Generic JSON Mealie API request for non-sensitive paths. Non-GET methods require explicit user confirmation and an enabled mutation scope. Prefer mealie_api_operation_request because it validates against the live OpenAPI document. |
| mealie_extract_recipe_text_from_imageA | OCR: Extrahiere Rohtext aus einem Kochbuchfoto/Screenshot. Lädt das Bild von einer URL oder lokalem Pfad, bereitet es für OCR auf (Graustufen, Kontrast, Binarisierung) und gibt den erkannten Text zurück. Der Rohtext kann dann per Text-LLM in Zutaten/Anweisungen strukturiert und mit mealie_create_recipe_from_text importiert werden. Das spart teure Vision-API-Aufrufe. |
| mealie_search_chefkochA | Suche Rezepte auf Chefkoch.de. Durchsucht Chefkoch.de nach Rezepten passend zur Suchanfrage und gibt eine Liste mit Grundinformationen zurueck (Titel, URL, Beschreibung, Bild, Kategorie, Zubereitungszeit, Bewertung). Verwendung: Vor einem Mealie-Import die Rezeptsuche, um das passende
Rezept zu finden. Der Benutzer kann dann per URL oder per
|
| mealie_get_chefkoch_recipeA | Rufe ein vollstaendiges Chefkoch-Rezept mit allen Details ab. Liefert Zutaten-Liste, Schritt-fuer-Schritt-Anleitung, Zubereitungszeit, Kategorie, Bewertung und Naehrwerte (falls vorhanden) fuer ein Rezept. Der Bot nutzt diese Daten, um das Rezept strukturiert anzuzeigen oder in Mealie zu importieren. |
| mealie_parse_ingredientsA | Parse ingredient lines via Mealie's ingredient parser. Accepts a list of raw ingredient strings (e.g. '650 g Süßkartoffeln, in etwa 4 cm große Würfel geschnitten') and returns structured results with quantity, unit, food, and note fields. The parsed results can be passed directly to
|
| mealie_update_recipe_ingredientsA | Replace the ingredient list of an existing Mealie recipe with structured data. Each ingredient dict must contain at least 'quantity', 'unit', 'food', and optionally 'note' and 'display'. Supports both structured inputs (as returned by mealie_parse_ingredients) and raw strings (which get stored in the display/note format for backward compatibility). The tool fetches the current recipe, replaces its ingredient list, applies any additional update_fields, and patches it back via the Mealie API. Typical structured ingredient format: {"quantity": 650, "unit": {"name": "g"}, "food": {"name": "Süßkartoffeln"}, "note": "in etwa 4 cm große Würfel geschnitten"} Raw string fallback: "650 g Süßkartoffeln, in etwa 4 cm große Würfel geschnitten" Returns the updated recipe slug and ingredient count. |
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/bitmonster/mealie-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server