Mealie MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| MCP_HOST | No | Bind address when using streamable-http transport | |
| MCP_PORT | No | Bind port when using streamable-http transport | |
| MCP_TRANSPORT | No | Transport mode: 'stdio' (default, for local clients) or 'streamable-http' (to expose over a network) | stdio |
| MCP_AUTH_TOKEN | No | Bearer token remote clients must present — required when MCP_TRANSPORT isn't stdio | |
| MEALIE_BASE_URL | Yes | URL of your Mealie instance | |
| MEALIE_API_TOKEN | Yes | Mealie API token this server uses to call Mealie |
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
} |
| logging | {} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| extensions | {
"io.modelcontextprotocol/ui": {}
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| get_todays_mealsB | Get today's meal plan. |
| list_meal_plansB | List meal plans. Optionally filter by start/end date (YYYY-MM-DD). |
| create_meal_planB | Create a meal plan entry. date is YYYY-MM-DD. entry_type is breakfast/lunch/dinner/side. |
| delete_meal_planC | Delete a meal plan entry by ID. |
| add_random_meal_planC | Add a random recipe to the meal plan for a given date. |
| list_categoriesA | List all recipe categories. |
| list_tagsA | List all recipe tags. |
| get_recipe_nutritionC | Get the nutrition info for a recipe. |
| list_recipesC | List recipes, optionally filtering by search term, category, or tag. |
| get_recipeA | Get full details of a recipe by its slug. |
| create_recipeB | Create a new blank recipe with the given name. |
| import_recipe_from_urlC | Scrape and import a recipe from a URL. |
| update_recipeC | Update a recipe. Pass a dict with the fields to update (e.g. description, recipeYield, recipeIngredient, recipeInstructions). |
| delete_recipeC | Delete a recipe by slug. |
| list_shopping_listsA | List all shopping lists. |
| get_shopping_listC | Get a shopping list and its items by ID. |
| create_shopping_listC | Create a new shopping list. |
| add_recipe_to_shopping_listC | Add all ingredients of a recipe to a shopping list. |
| add_shopping_itemC | Add a single item to a shopping list. |
| check_shopping_itemC | Mark a shopping list item as checked or unchecked. |
| delete_shopping_listB | Delete a shopping list by ID. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 21 tools
Tools are mostly distinct, with slight overlap between add_random_meal_plan and create_meal_plan, and between add_shopping_item and add_recipe_to_shopping_list. Descriptions are clear enough for an agent to choose correctly.
All tool names follow a consistent verb_noun pattern in snake_case (e.g., create_recipe, list_recipes, delete_meal_plan). The naming is predictable and easy to understand.
With 21 tools, the set is slightly above the ideal range but still well-scoped for a meal planning and recipe management server. Each tool serves a clear purpose without excessive overlap.
The tool set covers most CRUD operations for recipes, meal plans, and shopping lists. Missing updates for meal plans and shopping lists, and deletion of individual shopping items, but core workflows are supported.