mealie-mcp-ts
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| PORT | No | Port for HTTP server (default 3000) | |
| MEALIE_URL | Yes | URL of your Mealie instance (e.g., http://localhost:9925) | |
| ALLOWED_HOSTS | No | Host header allowlist for DNS rebind protection (e.g., nas.local,192.168.1.50) | |
| ENABLED_TOOLS | No | Optional comma-separated list of tools to enable | |
| MCP_TRANSPORT | No | Transport mode (e.g., http for remote access) | |
| MEALIE_API_KEY | Yes | API key from Mealie (Settings → API Tokens) |
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 |
|---|---|
| list_recipesA | List all recipes in Mealie. Returns recipe summaries with name, slug, description, and metadata. |
| get_recipeA | Get a recipe by its slug. Returns full recipe details including ingredients and instructions. |
| create_recipeA | Create a new recipe with name, ingredients, and instructions. For ingredients, prefer passing originalText (e.g. "2 cups flour") and let the server parse — the structured {quantity, unit, food} form also works but originalText is simpler and handles unknown units/foods automatically. |
| update_recipeA | Update an existing recipe by slug. Only provided fields will be updated. For ingredients, prefer passing originalText (e.g. "2 cups flour") over structured {quantity, unit, food} — the server parses originalText and auto-resolves unit+food. Structured form also works and is auto-normalized, but originalText is simpler. |
| delete_recipeA | Delete a recipe by its slug. This action cannot be undone. |
| upload_recipe_imageB | Upload an image for a recipe. Provide the image as base64-encoded data. |
| list_foodsA | List all foods/ingredients in Mealie. Can be filtered by search term. |
| create_foodB | Create a new food/ingredient in Mealie. |
| list_shopping_listsA | List all shopping lists in Mealie. |
| get_shopping_listA | Get a shopping list by ID. Returns the list with all items. |
| add_shopping_list_itemB | Add an item to a shopping list. Can specify quantity, unit, food, or just a note. |
| update_shopping_list_itemA | Update a shopping list item. Can modify quantity, note, or checked status (to mark items as purchased). |
| delete_shopping_list_itemA | Remove an item from a shopping list. |
| add_recipe_to_shopping_listB | Add all ingredients from a recipe to a shopping list. Optionally specify quantity for multiple servings. |
| list_categoriesA | List all recipe categories in Mealie. Categories help organize recipes into groups like "Dinner", "Breakfast", "Italian", etc. |
| create_categoryA | Create a new recipe category in Mealie. Categories help organize recipes into logical groups. |
| list_tagsB | List all recipe tags in Mealie. Tags provide flexible labeling for recipes like "vegetarian", "gluten-free", "kid-friendly", etc. |
| create_tagA | Create a new recipe tag in Mealie. Tags provide flexible labeling for recipes. |
| test_scrape_urlA | Test if a URL can be scraped for recipe data without actually creating a recipe. Useful for validating URLs before importing. Returns success:false when the scraper cannot parse the site. |
| create_recipe_from_urlA | Create a new recipe by scraping data from a URL. Supports most recipe websites that use structured data (schema.org Recipe format). On failure, returns success:false with diagnostic info — check that before retrying or falling back to create_recipe. |
| create_recipe_from_htmlA | Create a recipe from raw HTML that you fetched yourself. Use this when create_recipe_from_url fails because the MCP server can't reach the site (anti-bot, geo-block, etc.). Fetch the HTML with your own browser tool and pass it here — the server parses it via Mealie or by extracting schema.org JSON-LD directly. |
| list_meal_plansA | List meal plan entries within a date range. If no dates provided, returns all meal plans. |
| get_todays_meal_planA | Get today's meal plan entries. Returns all meals planned for the current day. |
| create_meal_planB | Create a new meal plan entry for a specific date. Can optionally link to an existing recipe. |
| delete_meal_planB | Delete a meal plan entry by its ID. |
| get_current_userA | Get information about the current API user, including their group and household. Useful for debugging permission issues when recipes or other items are not visible. |
| parse_recipe_ingredientsA | Re-parse all ingredients for an existing recipe so each has proper quantity, unit, and food fields instead of free-text notes. Fetches the recipe, sends each ingredient note through the Mealie ingredient parser, creates any missing unit/food records, and saves the structured ingredients back to the recipe. Use this after importing a recipe from a URL whose ingredients came in as plain text. |
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/counterbeing/mealie-mcp-ts'
If you have feedback or need assistance with the MCP directory API, please join our Discord server