mealie-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| MEALIE_TOKEN | No | Alias for MEALIE_API_TOKEN. | |
| MEALIE_TOOLS | No | Comma-separated allow-list of tool names or category prefixes to expose. Empty = all. | |
| MEALIE_TIMEOUT | No | Per-request timeout in milliseconds. | 60000 |
| MEALIE_BASE_URL | Yes | Base URL of your Mealie instance, e.g. https://mealie.example.com | |
| MEALIE_API_TOKEN | No | Long-lived Mealie API token (sent as Authorization: Bearer). Most endpoints need it. MEALIE_TOKEN is accepted as an alias. | |
| MEALIE_READ_ONLY | No | When true, only expose GET endpoints. | false |
| MEALIE_OPENAPI_URL | No | Override where the OpenAPI schema is fetched from. | |
| MEALIE_EXCLUDE_TOOLS | No | Comma-separated deny-list of tool names or category prefixes to hide. | |
| MEALIE_TOOL_NAME_MAX | No | Max length of generated tool names (clamped to 16–64). | 50 |
| MEALIE_ACCEPT_LANGUAGE | No | Optional Accept-Language header forwarded to Mealie. | |
| MEALIE_USE_BUNDLED_SPEC | No | Skip the live OpenAPI fetch and use the snapshot bundled with the package. | 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 | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| app_about_get_app_infoB | Get App Info [GET /api/app/about] Get general application information |
| get_startup_infoC | Get Startup Info [GET /api/app/about/startup-info] returns helpful startup information |
| get_app_themeC | Get App Theme [GET /api/app/about/theme] Get's the current theme settings |
| get_tokenD | Get Token [POST /api/auth/token] |
| oauth_loginD | Oauth Login [GET /api/auth/oauth] |
| oauth_callbackC | Oauth Callback [GET /api/auth/oauth/callback] |
| refresh_tokenA | Refresh Token [GET /api/auth/refresh] Use a valid token to get another token |
| logoutC | Logout [POST /api/auth/logout] |
| get_logged_in_userC | Get Logged In User [GET /api/users/self] |
| get_logged_in_user_ratingsB | Get Logged In User Ratings [GET /api/users/self/ratings] |
| get_logged_in_user_rating_for_recipeD | Get Logged In User Rating For Recipe [GET /api/users/self/ratings/{recipe_id}] |
| get_logged_in_user_favoritesB | Get Logged In User Favorites [GET /api/users/self/favorites] |
| update_passwordC | Update Password [PUT /api/users/password] Resets the User Password |
| update_userD | Update User [PUT /api/users/{item_id}] |
| update_user_imageC | Update User Image [POST /api/users/{id}/image] Updates a User Image |
| create_api_tokenC | Create Api Token [POST /api/users/api-tokens] Create api_token in the Database |
| delete_api_tokenC | Delete Api Token [DELETE /api/users/api-tokens/{token_id}] Delete api_token from the Database |
| get_ratingsC | Get Ratings [GET /api/users/{id}/ratings] Get user's rated recipes |
| get_favoritesC | Get Favorites [GET /api/users/{id}/favorites] Get user's favorited recipes |
| set_ratingC | Set Rating [POST /api/users/{id}/ratings/{slug}] Sets the user's rating for a recipe |
| add_favoriteC | Add Favorite [POST /api/users/{id}/favorites/{slug}] Adds a recipe to the user's favorites |
| remove_favoriteA | Remove Favorite [DELETE /api/users/{id}/favorites/{slug}] Removes a recipe from the user's favorites |
| households_cookbooks_get_allD | Get All [GET /api/households/cookbooks] |
| households_cookbooks_create_oneD | Create One [POST /api/households/cookbooks] |
| households_cookbooks_update_manyC | Update Many [PUT /api/households/cookbooks] |
| households_cookbooks_get_oneD | Get One [GET /api/households/cookbooks/{item_id}] |
| households_cookbooks_update_oneD | Update One [PUT /api/households/cookbooks/{item_id}] |
| households_cookbooks_delete_oneC | Delete One [DELETE /api/households/cookbooks/{item_id}] |
| households_event_notifications_get_allC | Get All [GET /api/households/events/notifications] |
| households_event_notifications_create_oneD | Create One [POST /api/households/events/notifications] |
| households_event_notifications_get_oneD | Get One [GET /api/households/events/notifications/{item_id}] |
| households_event_notifications_update_oneD | Update One [PUT /api/households/events/notifications/{item_id}] |
| households_event_notifications_delete_oneD | Delete One [DELETE /api/households/events/notifications/{item_id}] |
| test_notificationD | Test Notification [POST /api/households/events/notifications/{item_id}/test] |
| households_recipe_actions_get_allD | Get All [GET /api/households/recipe-actions] |
| households_recipe_actions_create_oneD | Create One [POST /api/households/recipe-actions] |
| households_recipe_actions_get_oneD | Get One [GET /api/households/recipe-actions/{item_id}] |
| households_recipe_actions_update_oneD | Update One [PUT /api/households/recipe-actions/{item_id}] |
| households_recipe_actions_delete_oneC | Delete One [DELETE /api/households/recipe-actions/{item_id}] |
| trigger_actionD | Trigger Action [POST /api/households/recipe-actions/{item_id}/trigger/{recipe_slug}] |
| get_logged_in_user_householdB | Get Logged In User Household [GET /api/households/self] Returns the Household Data for the Current User |
| get_household_recipeC | Get Household Recipe [GET /api/households/self/recipes/{recipe_slug}] Returns recipe data for the current household |
| get_household_membersC | Get Household Members [GET /api/households/members] Returns all users belonging to the current household |
| get_household_preferencesB | Get Household Preferences [GET /api/households/preferences] |
| update_household_preferencesC | Update Household Preferences [PUT /api/households/preferences] |
| set_member_permissionsD | Set Member Permissions [PUT /api/households/permissions] |
| get_statisticsC | Get Statistics [GET /api/households/statistics] |
| get_invite_tokensB | Get Invite Tokens [GET /api/households/invitations] |
| create_invite_tokenC | Create Invite Token [POST /api/households/invitations] |
| email_invitationD | Email Invitation [POST /api/households/invitations/email] |
| households_shopping_lists_get_allD | Get All [GET /api/households/shopping/lists] |
| households_shopping_lists_create_oneD | Create One [POST /api/households/shopping/lists] |
| households_shopping_lists_get_oneC | Get One [GET /api/households/shopping/lists/{item_id}] |
| households_shopping_lists_update_oneD | Update One [PUT /api/households/shopping/lists/{item_id}] |
| households_shopping_lists_delete_oneD | Delete One [DELETE /api/households/shopping/lists/{item_id}] |
| update_label_settingsC | Update Label Settings [PUT /api/households/shopping/lists/{item_id}/label-settings] |
| add_recipe_ingredients_to_listC | Add Recipe Ingredients To List [POST /api/households/shopping/lists/{item_id}/recipe] |
| add_single_recipe_ingredients_to_listC | (DEPRECATED) Add Single Recipe Ingredients To List [POST /api/households/shopping/lists/{item_id}/recipe/{recipe_id}] |
| remove_recipe_ingredients_from_listC | Remove Recipe Ingredients From List [POST /api/households/shopping/lists/{item_id}/recipe/{recipe_id}/delete] |
| households_shopping_list_items_get_allD | Get All [GET /api/households/shopping/items] |
| households_shopping_list_items_create_oneC | Create One [POST /api/households/shopping/items] |
| households_shopping_list_items_update_manyD | Update Many [PUT /api/households/shopping/items] |
| delete_manyC | Delete Many [DELETE /api/households/shopping/items] |
| create_manyD | Create Many [POST /api/households/shopping/items/create-bulk] |
| households_shopping_list_items_get_oneD | Get One [GET /api/households/shopping/items/{item_id}] |
| households_shopping_list_items_update_oneD | Update One [PUT /api/households/shopping/items/{item_id}] |
| households_shopping_list_items_delete_oneC | Delete One [DELETE /api/households/shopping/items/{item_id}] |
| households_webhooks_get_allC | Get All [GET /api/households/webhooks] |
| households_webhooks_create_oneD | Create One [POST /api/households/webhooks] |
| rerun_webhooksB | Rerun Webhooks [POST /api/households/webhooks/rerun] Manually re-fires all previously scheduled webhooks for today |
| households_webhooks_get_oneD | Get One [GET /api/households/webhooks/{item_id}] |
| households_webhooks_update_oneD | Update One [PUT /api/households/webhooks/{item_id}] |
| households_webhooks_delete_oneC | Delete One [DELETE /api/households/webhooks/{item_id}] |
| test_oneD | Test One [POST /api/households/webhooks/{item_id}/test] |
| households_mealplan_rules_get_allD | Get All [GET /api/households/mealplans/rules] |
| households_mealplan_rules_create_oneD | Create One [POST /api/households/mealplans/rules] |
| households_mealplan_rules_get_oneD | Get One [GET /api/households/mealplans/rules/{item_id}] |
| households_mealplan_rules_update_oneD | Update One [PUT /api/households/mealplans/rules/{item_id}] |
| households_mealplan_rules_delete_oneC | Delete One [DELETE /api/households/mealplans/rules/{item_id}] |
| households_mealplans_get_allD | Get All [GET /api/households/mealplans] |
| households_mealplans_create_oneD | Create One [POST /api/households/mealplans] |
| get_todays_mealsC | Get Todays Meals [GET /api/households/mealplans/today] |
| create_random_mealC | Create Random Meal
[POST /api/households/mealplans/random]
Refer to the mealplan settings routes for more information on how rules can be applied to the random meal selector. |
| households_mealplans_get_oneC | Get One [GET /api/households/mealplans/{item_id}] |
| households_mealplans_update_oneC | Update One [PUT /api/households/mealplans/{item_id}] |
| households_mealplans_delete_oneC | Delete One [DELETE /api/households/mealplans/{item_id}] |
| groups_ai_providers_create_ai_providerC | Create Ai Provider [POST /api/groups/ai-providers/providers] |
| groups_ai_providers_get_ai_providerC | Get Ai Provider [GET /api/groups/ai-providers/providers/{provider_id}] |
| groups_ai_providers_update_ai_providerC | Update Ai Provider [PUT /api/groups/ai-providers/providers/{provider_id}] |
| groups_ai_providers_delete_ai_providerC | Delete Ai Provider [DELETE /api/groups/ai-providers/providers/{provider_id}] |
| get_ai_provider_settingsB | Get Ai Provider Settings [GET /api/groups/ai-providers/settings] |
| update_ai_provider_settingsC | Update Ai Provider Settings [PUT /api/groups/ai-providers/settings] |
| get_all_householdsD | Get All Households [GET /api/groups/households] |
| get_one_householdC | Get One Household [GET /api/groups/households/{household_slug}] |
| get_logged_in_user_groupA | Get Logged In User Group [GET /api/groups/self] Returns the Group Data for the Current User |
| get_group_membersC | Get Group Members [GET /api/groups/members] Returns all users belonging to the current group |
| get_group_memberA | Get Group Member [GET /api/groups/members/{username_or_id}] Returns a single user belonging to the current group |
| get_group_preferencesC | Get Group Preferences [GET /api/groups/preferences] |
| update_group_preferencesC | Update Group Preferences [PUT /api/groups/preferences] |
| get_storageD | Get Storage [GET /api/groups/storage] |
| start_data_migrationC | Start Data Migration [POST /api/groups/migrations] |
| groups_reports_get_allD | Get All [GET /api/groups/reports] |
| groups_reports_get_oneC | Get One [GET /api/groups/reports/{item_id}] |
| groups_reports_delete_oneD | Delete One [DELETE /api/groups/reports/{item_id}] |
| groups_multi_purpose_labels_get_allD | Get All [GET /api/groups/labels] |
| groups_multi_purpose_labels_create_oneC | Create One [POST /api/groups/labels] |
| groups_multi_purpose_labels_get_oneC | Get One [GET /api/groups/labels/{item_id}] |
| groups_multi_purpose_labels_update_oneD | Update One [PUT /api/groups/labels/{item_id}] |
| groups_multi_purpose_labels_delete_oneD | Delete One [DELETE /api/groups/labels/{item_id}] |
| seed_foodsD | Seed Foods [POST /api/groups/seeders/foods] |
| seed_labelsD | Seed Labels [POST /api/groups/seeders/labels] |
| seed_unitsD | Seed Units [POST /api/groups/seeders/units] |
| get_recipe_formats_and_templatesC | Get Recipe Formats And Templates [GET /api/recipes/exports] |
| get_recipe_as_formatC | Get Recipe As Format [GET /api/recipes/{slug}/exports] Parameters
|
| test_parse_recipe_urlD | Test Parse Recipe Url [POST /api/recipes/test-scrape-url] |
| create_recipe_from_html_or_jsonC | Create Recipe From Html Or Json [POST /api/recipes/create/html-or-json] Takes in raw HTML or a https://schema.org/Recipe object as a JSON string and parses it like a URL |
| parse_recipe_urlC | Parse Recipe Url [POST /api/recipes/create/url] Takes in a URL and attempts to scrape data and load it into the database |
| parse_recipe_url_bulkC | Parse Recipe Url Bulk [POST /api/recipes/create/url/bulk] Takes in a URL and attempts to scrape data and load it into the database |
| create_recipe_from_zipC | Create Recipe From Zip [POST /api/recipes/create/zip] Create recipe from archive |
| create_recipe_from_imageA | Create Recipe From Image [POST /api/recipes/create/image] Create a recipe from an image using OpenAI. Optionally specify a language for it to translate the recipe to. |
| recipe_crud_get_allD | Get All [GET /api/recipes] |
| recipe_crud_create_oneC | Create One [POST /api/recipes] Takes in a JSON string and loads data into the database as a new entry |
| recipe_crud_update_manyC | Update Many [PUT /api/recipes] |
| patch_manyD | Patch Many [PATCH /api/recipes] |
| recipe_crud_suggest_recipesD | Suggest Recipes [GET /api/recipes/suggestions] |
| recipe_crud_get_oneB | Get One [GET /api/recipes/{slug}] Takes in a recipe's slug or id and returns all data for a recipe |
| recipe_crud_update_oneC | Update One [PUT /api/recipes/{slug}] Updates a recipe by existing slug and data. |
| patch_oneC | Patch One [PATCH /api/recipes/{slug}] Updates a recipe by existing slug and data. |
| recipe_crud_delete_oneC | Delete One [DELETE /api/recipes/{slug}] Deletes a recipe by slug |
| duplicate_oneC | Duplicate One [POST /api/recipes/{slug}/duplicate] Duplicates a recipe with a new custom name if given |
| update_last_madeB | Update Last Made [PATCH /api/recipes/{slug}/last-made] Update a recipe's last made timestamp |
| scrape_image_urlD | Scrape Image Url [POST /api/recipes/{slug}/image] |
| update_recipe_imageC | Update Recipe Image [PUT /api/recipes/{slug}/image] |
| delete_recipe_imageC | Delete Recipe Image [DELETE /api/recipes/{slug}/image] |
| upload_recipe_assetB | Upload Recipe Asset [POST /api/recipes/{slug}/assets] Upload a file to store as a recipe asset |
| get_recipe_commentsC | Get Recipe Comments [GET /api/recipes/{slug}/comments] Get all comments for a recipe |
| bulk_tag_recipesC | Bulk Tag Recipes [POST /api/recipes/bulk-actions/tag] |
| bulk_settings_recipesD | Bulk Settings Recipes [POST /api/recipes/bulk-actions/settings] |
| bulk_categorize_recipesD | Bulk Categorize Recipes [POST /api/recipes/bulk-actions/categorize] |
| bulk_delete_recipesC | Bulk Delete Recipes [POST /api/recipes/bulk-actions/delete] |
| bulk_export_recipesD | Bulk Export Recipes [POST /api/recipes/bulk-actions/export] |
| purge_export_dataA | Purge Export Data [DELETE /api/recipes/bulk-actions/export/purge] Remove all exports data, including items on disk without database entry |
| get_shared_recipeC | Get Shared Recipe [GET /api/recipes/shared/{token_id}] |
| recipe_timeline_get_allC | Get All [GET /api/recipes/timeline/events] |
| recipe_timeline_create_oneD | Create One [POST /api/recipes/timeline/events] |
| recipe_timeline_get_oneC | Get One [GET /api/recipes/timeline/events/{item_id}] |
| recipe_timeline_update_oneD | Update One [PUT /api/recipes/timeline/events/{item_id}] |
| recipe_timeline_delete_oneC | Delete One [DELETE /api/recipes/timeline/events/{item_id}] |
| update_event_imageC | Update Event Image [PUT /api/recipes/timeline/events/{item_id}/image] |
| organizer_categories_get_allC | Get All [GET /api/organizers/categories] Returns a list of available categories in the database |
| organizer_categories_create_oneC | Create One [POST /api/organizers/categories] Creates a Category in the database |
| get_all_emptyB | Get All Empty [GET /api/organizers/categories/empty] Returns a list of categories that do not contain any recipes |
| organizer_categories_get_oneC | Get One [GET /api/organizers/categories/{item_id}] Returns a list of recipes associated with the provided category. |
| organizer_categories_update_oneC | Update One [PUT /api/organizers/categories/{item_id}] Updates an existing Tag in the database |
| organizer_categories_delete_oneA | Delete One [DELETE /api/organizers/categories/{item_id}] Removes a recipe category from the database. Deleting a category does not impact a recipe. The category will be removed from any recipes that contain it |
| organizer_categories_get_one_by_slugB | Get One By Slug [GET /api/organizers/categories/slug/{category_slug}] Returns a category object with the associated recieps relating to the category |
| organizer_tags_get_allC | Get All [GET /api/organizers/tags] Returns a list of available tags in the database |
| organizer_tags_create_oneC | Create One [POST /api/organizers/tags] Creates a Tag in the database |
| get_empty_tagsA | Get Empty Tags [GET /api/organizers/tags/empty] Returns a list of tags that do not contain any recipes |
| organizer_tags_get_oneC | Get One [GET /api/organizers/tags/{item_id}] Returns a list of recipes associated with the provided tag. |
| organizer_tags_update_oneB | Update One [PUT /api/organizers/tags/{item_id}] Updates an existing Tag in the database |
| delete_recipe_tagA | Delete Recipe Tag [DELETE /api/organizers/tags/{item_id}] Removes a recipe tag from the database. Deleting a tag does not impact a recipe. The tag will be removed from any recipes that contain it |
| organizer_tags_get_one_by_slugC | Get One By Slug [GET /api/organizers/tags/slug/{tag_slug}] |
| organizer_tools_get_allD | Get All [GET /api/organizers/tools] |
| organizer_tools_create_oneD | Create One [POST /api/organizers/tools] |
| organizer_tools_get_oneD | Get One [GET /api/organizers/tools/{item_id}] |
| organizer_tools_update_oneD | Update One [PUT /api/organizers/tools/{item_id}] |
| organizer_tools_delete_oneC | Delete One [DELETE /api/organizers/tools/{item_id}] |
| organizer_tools_get_one_by_slugC | Get One By Slug [GET /api/organizers/tools/slug/{tool_slug}] |
| shared_recipes_get_allD | Get All [GET /api/shared/recipes] |
| shared_recipes_create_oneD | Create One [POST /api/shared/recipes] |
| shared_recipes_get_oneC | Get One [GET /api/shared/recipes/{item_id}] |
| shared_recipes_delete_oneC | Delete One [DELETE /api/shared/recipes/{item_id}] |
| recipe_comments_get_allD | Get All [GET /api/comments] |
| recipe_comments_create_oneD | Create One [POST /api/comments] |
| recipe_comments_get_oneC | Get One [GET /api/comments/{item_id}] |
| recipe_comments_update_oneD | Update One [PUT /api/comments/{item_id}] |
| recipe_comments_delete_oneD | Delete One [DELETE /api/comments/{item_id}] |
| parse_ingredientD | Parse Ingredient [POST /api/parser/ingredient] |
| parse_ingredientsD | Parse Ingredients [POST /api/parser/ingredients] |
| recipes_foods_get_allD | Get All [GET /api/foods] |
| recipes_foods_create_oneD | Create One [POST /api/foods] |
| recipes_foods_merge_oneD | Merge One [PUT /api/foods/merge] |
| recipes_foods_get_oneC | Get One [GET /api/foods/{item_id}] |
| recipes_foods_update_oneD | Update One [PUT /api/foods/{item_id}] |
| recipes_foods_delete_oneC | Delete One [DELETE /api/foods/{item_id}] |
| recipes_units_get_allC | Get All [GET /api/units] |
| recipes_units_create_oneD | Create One [POST /api/units] |
| recipes_units_merge_oneD | Merge One [PUT /api/units/merge] |
| recipes_units_get_oneC | Get One [GET /api/units/{item_id}] |
| recipes_units_update_oneD | Update One [PUT /api/units/{item_id}] |
| recipes_units_delete_oneD | Delete One [DELETE /api/units/{item_id}] |
| explore_foods_get_allC | Get All [GET /api/explore/groups/{group_slug}/foods] |
| explore_foods_get_oneC | Get One [GET /api/explore/groups/{group_slug}/foods/{item_id}] |
| explore_households_get_allD | Get All [GET /api/explore/groups/{group_slug}/households] |
| get_householdD | Get Household [GET /api/explore/groups/{group_slug}/households/{household_slug}] |
| explore_categories_get_allD | Get All [GET /api/explore/groups/{group_slug}/organizers/categories] |
| explore_categories_get_oneC | Get One [GET /api/explore/groups/{group_slug}/organizers/categories/{item_id}] |
| explore_tags_get_allD | Get All [GET /api/explore/groups/{group_slug}/organizers/tags] |
| explore_tags_get_oneD | Get One [GET /api/explore/groups/{group_slug}/organizers/tags/{item_id}] |
| explore_tools_get_allC | Get All [GET /api/explore/groups/{group_slug}/organizers/tools] |
| explore_tools_get_oneC | Get One [GET /api/explore/groups/{group_slug}/organizers/tools/{item_id}] |
| explore_cookbooks_get_allC | Get All [GET /api/explore/groups/{group_slug}/cookbooks] |
| explore_cookbooks_get_oneD | Get One [GET /api/explore/groups/{group_slug}/cookbooks/{item_id}] |
| explore_recipes_get_allD | Get All [GET /api/explore/groups/{group_slug}/recipes] |
| explore_recipes_suggest_recipesD | Suggest Recipes [GET /api/explore/groups/{group_slug}/recipes/suggestions] |
| get_recipeC | Get Recipe [GET /api/explore/groups/{group_slug}/recipes/{recipe_slug}] |
| get_recipe_imgB | Get Recipe Img [GET /api/media/recipes/{recipe_id}/images/{file_name}] Takes in a recipe id, returns the static image. This route is proxied in the docker image and should not hit the API in production |
| get_recipe_timeline_event_imgC | Get Recipe Timeline Event Img [GET /api/media/recipes/{recipe_id}/images/timeline/{timeline_event_id}/{file_name}] Takes in a recipe id and event timeline id, returns the static image. This route is proxied in the docker image and should not hit the API in production |
| get_recipe_assetC | Get Recipe Asset [GET /api/media/recipes/{recipe_id}/assets/{file_name}] Returns a recipe asset |
| get_user_imageC | Get User Image [GET /api/media/users/{user_id}/{file_name}] Takes in a recipe slug, returns the static image. This route is proxied in the docker image and should not hit the API in production |
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/2fst4u/mealie-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server