mealie-mcp-ts
Allows interaction with a Mealie instance, providing tools for managing recipes, meal plans, shopping lists, categories, tags, and foods.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@mealie-mcp-tsAdd ingredients from 'Chicken Tikka Masala' to my shopping list"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Mealie MCP Server
An MCP (Model Context Protocol) server that enables LLMs to interact with Mealie - a self-hosted recipe manager and meal planner.
Features
Recipe Management: List, view, create, update, and delete recipes
Recipe Import: Import recipes from URLs (supports most recipe websites)
Ingredient Parsing: Automatic parsing of natural language ingredients (e.g., "2 cups flour")
Image Uploads: Upload images to recipes via base64 encoding
Meal Planning: Create and manage meal plans with date scheduling
Shopping Lists: Full CRUD for shopping list items, plus add recipe ingredients to lists
Organization: Manage categories and tags for recipe organization
Food Management: List and create food items
Related MCP server: Mealie MCP Server
Installation
# Clone the repository
git clone https://github.com/your-username/mealie-mcp.git
cd mealie-mcp
# Install dependencies
pnpm install
# Build
pnpm run buildConfiguration
Create a .env file based on .env.example:
cp .env.example .envRequired environment variables:
Variable | Description |
| URL of your Mealie instance (e.g., |
| API key from Mealie (Settings → API Tokens) |
| (Optional) Comma-separated list of tools to enable |
Usage
With Claude Desktop
Add to your Claude Desktop configuration (~/Library/Application Support/Claude/claude_desktop_config.json):
{
"mcpServers": {
"mealie": {
"command": "node",
"args": ["/path/to/mealie-mcp/dist/index.js"],
"env": {
"MEALIE_URL": "http://localhost:9925",
"MEALIE_API_KEY": "your-api-key"
}
}
}
}Remote HTTP mode (e.g. on a NAS)
For running the server on a different machine (Synology NAS, home server, etc.), use the HTTP transport. The SDK's Streamable HTTP transport lets Claude Desktop connect over the network.
Set these env vars:
MCP_TRANSPORT=http
PORT=3000
ALLOWED_HOSTS=nas.local,192.168.1.50 # Host header allowlist (DNS rebind protection)
MEALIE_URL=http://mealie:9000 # service name if on same compose network
MEALIE_API_KEY=...Claude Desktop config:
{
"mcpServers": {
"mealie": {
"url": "http://nas.local:3000/mcp"
}
}
}With Docker
The bundled Dockerfile defaults to HTTP transport on port 3000.
docker build -t mealie-mcp .
docker run -p 3000:3000 \
-e MEALIE_URL=http://host.docker.internal:9925 \
-e MEALIE_API_KEY=your-api-key \
-e ALLOWED_HOSTS=localhost \
mealie-mcpCompose service (attach to existing Mealie stack)
mealie-mcp:
build: ./mealie-mcp
container_name: mealie-mcp
restart: unless-stopped
ports:
- "3000:3000"
environment:
- MEALIE_URL=http://mealie:9000
- MEALIE_API_KEY=${MEALIE_API_KEY}
- ALLOWED_HOSTS=nas.local,192.168.1.50
depends_on:
- mealieAvailable Tools (25 total)
Recipes (6 tools)
Tool | Description |
| List all recipes with pagination |
| Get full recipe details by slug |
| Create a new recipe with ingredients and instructions |
| Update an existing recipe |
| Delete a recipe |
| Upload an image to a recipe (base64) |
Recipe Import (2 tools)
Tool | Description |
| Test if a URL can be scraped for recipe data |
| Import a recipe by scraping a URL |
Meal Planning (4 tools)
Tool | Description |
| List meal plans with optional date range filter |
| Get today's planned meals |
| Create a meal plan entry for a specific date |
| Delete a meal plan entry |
Shopping Lists (6 tools)
Tool | Description |
| List all shopping lists |
| Get shopping list with items |
| Add an item to a shopping list |
| Update an item (quantity, note, or check/uncheck) |
| Remove an item from a shopping list |
| Add all ingredients from a recipe to a list |
Organization (4 tools)
Tool | Description |
| List all recipe categories |
| Create a new category |
| List all recipe tags |
| Create a new tag |
Foods (2 tools)
Tool | Description |
| List all foods/ingredients |
| Create a new food item |
Debugging (1 tool)
Tool | Description |
| Get current API user info including group and household context |
Important: Group Context
Mealie scopes data by group and household. When you create an API token, it inherits the group context of your current session. If recipes or other items you create via the API aren't visible in your browser:
Use the
get_current_usertool to see which group the API token is associated withEnsure your browser session is viewing the same group (check the URL path)
If needed, switch groups in Mealie's UI, then generate a new API token
Development
# Run in development mode
pnpm run dev
# Lint
pnpm run lint
# Format
pnpm run format
# Build
pnpm run buildLocal Mealie Instance
Start a local Mealie instance for testing:
docker-compose up -dThis starts Mealie at http://localhost:9925.
License
MIT
Available Tools
27 toolsadd_recipe_to_shopping_listB
Add all ingredients from a recipe to a shopping list. Optionally specify quantity for multiple servings.
| Name | Required | Description | Default |
|---|---|---|---|
| recipeId | Yes | ID of the recipe to add ingredients from | |
| recipeQuantity | No | Number of servings/portions to add (default: 1) | |
| shoppingListId | Yes | ID of the shopping list |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It only states the action ('add all ingredients') without explaining side effects such as whether ingredients are merged with existing list items, whether the list is cleared first, or what the response contains. It also does not mention permissions or idempotency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences with no filler. The main purpose is front-loaded, and the optional quantity note is succinctly added. Every word contributes meaning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the absence of annotations and output schema, the description is incomplete for a mutation tool. It does not clarify whether the operation appends or replaces existing shopping list items, how quantities are scaled, or what the function returns. While the schema covers parameters, the behavioral context is lacking.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description's mention of 'Optionally specify quantity for multiple servings' adds a small semantic hint about recipeQuantity, but the schema already describes it as 'Number of servings/portions to add (default: 1)'. The description does not significantly exceed schema information.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: 'Add all ingredients from a recipe to a shopping list.' It uses a specific verb ('add') and identifies both the source (recipe) and destination (shopping list). The phrase 'all ingredients' implicitly distinguishes it from sibling tools like add_shopping_list_item, which add a single item.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no explicit guidance on when to use this tool versus alternatives. It does not mention prerequisites, exclusions, or contrast with related tools such as add_shopping_list_item or create_recipe. The optional quantity note implies scaling use cases but does not constitute clear usage direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_shopping_list_itemB
Add an item to a shopping list. Can specify quantity, unit, food, or just a note.
| Name | Required | Description | Default |
|---|---|---|---|
| food | No | Food item | |
| note | No | Note or display text for the item | |
| unit | No | Unit of measurement | |
| checked | No | Whether the item is checked | |
| quantity | No | Quantity of the item | |
| shoppingListId | Yes | ID of the shopping list |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the behavioral disclosure burden. It states the action ('Add') but does not mention any side effects, required permissions, whether the list must exist, or what happens on duplicate items. This is a minimal mutation tool description with no behavioral depth.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences, front-loaded with the primary action, and every phrase adds value. It is appropriately concise without unnecessary elaboration.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no annotations, no output schema, 6 parameters, and nested objects, the description is too sparse to be fully contextual. It does not mention that food and unit are nested objects requiring names, nor does it differentiate from add_recipe_to_shopping_list. The schema covers parameter details, but the description lacks operational context for a mutation tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds some extra meaning by highlighting that quantity, unit, food, or a note can be provided, but it does not clarify relationships between parameters or the required shoppingListId beyond what the schema already states.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Add') and resource ('item to a shopping list'), clearly indicating the tool's function. It also mentions flexible content types (quantity, unit, food, note), which helps distinguish it from add_recipe_to_shopping_list, though it does not explicitly name that alternative.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The usage context is implied: it is for adding an ad-hoc item to a shopping list. However, there is no explicit guidance on when to use this tool versus add_recipe_to_shopping_list or update_shopping_list_item, and no exclusions are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_categoryA
Create a new recipe category in Mealie. Categories help organize recipes into logical groups.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Name of the category (e.g., "Dinner", "Italian", "Quick Meals") |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It only states the create action without mentioning write behavior, error handling, idempotency, or response format. This is inadequate for a mutation tool without annotation support.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences. The first sentence clearly states the action, and the second adds useful context about the purpose of categories. There is no redundant or unnecessary wording.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter create tool, the description adequately covers the core purpose and context. It lacks mention of return values or behavior on duplicate names, but given the tool's simplicity and no output schema, the overall completeness is acceptable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% coverage of the single 'name' parameter, including an example. The description adds no parameter-specific details beyond what the schema already provides, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Create a new recipe category in Mealie' with a specific verb and resource. It distinguishes from sibling tools like create_tag by specifying 'recipe category'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context by explaining that categories help organize recipes into logical groups, implying when to use this tool. It does not explicitly exclude alternatives or mention prerequisites, but enough context is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_foodB
Create a new food/ingredient in Mealie.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Name of the food | |
| pluralName | No | Plural form of the name | |
| description | No | Description of the food |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full behavioral disclosure burden, but it only states 'Create a new food/ingredient' without mentioning return values, duplicate handling, permissions, or side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, directly worded sentence communicates the essential purpose without any filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple create operation with fully documented parameters, this is minimally viable. However, the lack of annotations and output schema leaves room for additional context like response behavior or uniqueness constraints.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and each parameter already has a clear description. The tool description adds no extra semantic detail beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'Create' and names the resource 'food/ingredient in Mealie', clearly distinguishing it from sibling tools like create_recipe or create_category.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives, nor any context about prerequisites or exclusions. It simply states the action without elaborating on typical use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_meal_planB
Create a new meal plan entry for a specific date. Can optionally link to an existing recipe.
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | Date for the meal plan entry (YYYY-MM-DD format) | |
| text | No | Optional notes or description | |
| title | No | Optional title for the meal plan entry | |
| recipeId | No | Optional recipe ID to link to this meal plan entry | |
| entryType | No | Type of meal: breakfast, lunch, dinner, side, snack, drink, or dessert | dinner |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description must reveal behavioral traits, but it only states that it creates an entry and optionally links a recipe. It does not disclose validation behavior for recipeId, duplicate handling, side effects, permissions, or the shape of a successful response.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences with no filler. The action verb is front-loaded, and the optional linking behavior is mentioned without repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 5 parameters, no annotations, and no output schema, the description covers only the high-level action. It omits important operational context such as whether a linked recipe must exist, what happens if the date already has an entry, and what the caller receives downstream.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema provides 100% parameter descriptions, including enum values for entryType and defaults for title/text. The description adds only high-level context about date and optional recipe linking, not exceeding what the schema already conveys.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Create'), resource ('meal plan entry'), and scope ('specific date'), clearly distinguishing it from sibling meal-plan tools like list_meal_plans and delete_meal_plan. It also clarifies the optional recipe linking, which sets it apart from recipe-only creation tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for adding a new meal plan entry but does not explicitly state when to use it over alternatives or provide exclusions. No cross-reference to related tools like list_meal_plans or create_recipe is included.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Name of the recipe | |
| cookTime | No | Cook time (e.g., "20 minutes") | |
| prepTime | No | Prep time (e.g., "10 minutes") | |
| totalTime | No | Total time (e.g., "30 minutes") | |
| description | No | Description of the recipe | |
| recipeYield | No | Yield of the recipe (e.g., "4 servings") | |
| recipeIngredient | No | List of ingredients. Each ingredient can either have originalText (to be parsed automatically) or structured fields (quantity, unit, food, note). To group ingredients into sections like "For the sauce", insert standalone {"title": "For the sauce"} entries between groups — Mealie will render them as section headers. | |
| recipeInstructions | No | List of instructions |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the transparency burden. It discloses that originalText is parsed server-side and handles unknown units/foods automatically, which is non-obvious. However, it omits other behavioral details like return value or persistence effects, though mutation is implied by the tool name.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the primary purpose, then the most important parameter guidance. Every word earns its place with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a create tool with 8 parameters and no output schema, the schema covers all parameter details, and the description adds the key usage nuance. Missing return-value info is a minor gap, but the description is sufficient for effective tool selection.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds meaningful value by recommending originalText over structured fields, explaining that it is simpler and handles unknown units/foods. This goes beyond schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the tool's purpose: creating a new recipe with name, ingredients, and instructions. It is specific and distinguishes from siblings like list_recipes or delete_recipe, though it does not explicitly contrast with create_recipe_from_url or update_recipe.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as create_recipe_from_url or update_recipe. The suggestion to prefer originalText for ingredients is useful parameter-level guidance, but it does not address tool-selection context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| html | Yes | Raw HTML of a recipe page — the full HTML string, typically obtained from a browser tool when the site blocks direct MCP fetches (e.g. AllRecipes). The server will try Mealie's scraper first, then extract schema.org JSON-LD Recipe data directly. | |
| sourceUrl | No | Original URL of the page — used as recipe source reference and for image resolution. Optional but recommended. | |
| includeTags | No | Whether to import tags. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of behavioral disclosure. It discloses the parsing mechanism (Mealie or schema.org JSON-LD) and the context of use, but does not mention side effects, permissions, reversal, or return values. It provides some context beyond a bare 'create' verb, but not rich behavioral detail.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured: three sentences that front-load the core action, then provide usage context and parsing details. Every sentence earns its place with no redundancy or fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 3 params and no output schema, the description covers the purpose, usage, and parsing method completely. It clearly addresses the sibling alternative and the failure scenario. It doesn't explain return values or errors, but that's not strictly required given the simplicity and schema coverage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description does not add significant parameter semantics beyond the schema, but it reinforces that 'html' is raw HTML and the schema already documents sourceUrl and includeTags adequately. No extra meaning is needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Create a recipe from raw HTML that you fetched yourself.' It uses a specific verb and resource, and explicitly differentiates this tool from create_recipe_from_url by explaining when to use each. This distinguishes it from the sibling tool effectively.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit usage guidance: 'Use this when create_recipe_from_url fails because the MCP server can't reach the site.' It even describes the workflow (fetch HTML yourself, pass it here) and the alternative, making it clear when to use this tool versus the sibling.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | URL of the recipe page to import | |
| includeTags | No | Whether to import tags from the recipe page |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses that the tool scrapes data, supports most recipe sites with schema.org format, and reveals failure behavior ('returns success:false with diagnostic info'). It also advises to check diagnostics before retrying. Missing details like rate limits or auth requirements, but for a create operation with failure handling, this is strong additional transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the core purpose, and zero filler. Every clause contributes value: the scraping method, structured data support, and failure fallback. This is a model of concise yet informative description.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a moderate-complexity create tool with only two parameters and no output schema, the description covers the essential usage context: what it does, what it supports, and failure behavior. It also hints at a sibling for fallback. The lack of an output schema means return-value details would help, but the failure diagnostics mention partially compensates. Overall, the description is sufficiently complete for an agent to select and invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already provides 100% coverage for both parameters, with clear descriptions for 'url' and 'includeTags'. The tool description adds context about scraping and structured data but does not elaborate on parameter-specific semantics beyond the schema. Baseline 3 is appropriate because the schema handles the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Create a new recipe by scraping data from a URL.' It clearly distinguishes this tool from manual creation by specifying the scraping mechanism and mentions support for structured data (schema.org). The fallback reference to create_recipe further differentiates the tool from sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context on when this tool is appropriate: for URLs with structured recipe data. It also gives an explicit fallback instruction ('falling back to create_recipe') on failure, which helps an agent decide between this and the manual sibling tool. However, it does not explicitly mention alternatives like test_scrape_url or create_recipe_from_html, leaving some ambiguity about which URL-based tool to choose in edge cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_tagA
Create a new recipe tag in Mealie. Tags provide flexible labeling for recipes.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Name of the tag (e.g., "vegetarian", "gluten-free", "quick") |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It only states the action without revealing details such as whether tag names must be unique, whether duplicates are allowed, or any side effects. This is a significant gap for a write operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description consists of two short, front-loaded sentences. It is highly concise with no wasted words, and the first sentence delivers the core purpose immediately.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with a single parameter and no output schema, the description provides sufficient context. It explains what tags are for and clearly identifies the action, though it omits any mention of the return value or edge cases like duplicate names.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already provides 100% coverage of the 'name' parameter with descriptions and examples. The tool description adds context by explaining that tags are flexible labeling, which gives additional semantic meaning to how the name parameter should be used.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action 'Create a new recipe tag' and specifies the resource ('tag') in the context of Mealie. This is a specific verb+resource pairing that distinguishes it from sibling tools like create_category and create_food.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage by defining tags as 'flexible labeling for recipes,' but it does not explicitly state when to use this tool versus alternatives like create_category. There is no mention of exclusions or alternative tools, leaving the guidance somewhat implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_meal_planB
Delete a meal plan entry by its ID.
| Name | Required | Description | Default |
|---|---|---|---|
| itemId | Yes | ID of the meal plan entry to delete |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It only states the action and parameter, but does not disclose permanence, idempotency, error behavior (e.g., deleting a non-existent ID), or any side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, clear sentence that is concise and front-loaded. Every word is purposeful and there is no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter delete tool, the description covers the core function, but it lacks any context about expected outcomes or edge cases. Without annotations or an output schema, more detail would be helpful, making this minimally adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and the description merely reiterates what the schema already states (that itemId is the ID of the meal plan entry). No additional semantic value is added.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Delete') with a clear resource ('a meal plan entry') and method ('by its ID'). This unambiguously distinguishes it from sibling delete tools like delete_recipe and delete_shopping_list_item.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided about when to use this tool versus alternatives. It does not mention related tools, prerequisites, or contexts where deletion might be inappropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_recipeA
Delete a recipe by its slug. This action cannot be undone.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | Recipe slug to delete |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of disclosing behavior. It explicitly states that the action cannot be undone, which is a critical behavioral trait. It does not mention related side effects (e.g., on meal plans), but for a simple delete by slug, this is sufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences with no filler. The first sentence states the action and target, the second highlights an essential caveat. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one parameter, no output schema, clear destructive action), the description is complete. It covers what the tool does, how to identify the recipe, and a critical warning. No additional context is needed for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%: the 'slug' parameter is already described as 'Recipe slug to delete' in the input schema. The description adds no additional meaning beyond that, so the baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action with a specific verb ('Delete'), specifies the resource ('a recipe'), and identifies the key identifier ('its slug'). This distinguishes it from sibling tools like update_recipe or get_recipe, which serve different purposes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the intended use—when a recipe needs to be permanently removed—and adds a clear warning about irreversibility. It does not explicitly contrast with update_recipe or list get_recipe, but the context is clear enough for an agent to select this tool for deletion.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_shopping_list_itemA
Remove an item from a shopping list.
| Name | Required | Description | Default |
|---|---|---|---|
| itemId | Yes | ID of the shopping list item to delete |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It only states the action 'Remove an item' without disclosing behaviors such as irreversibility, failure modes, permissions, or side effects. For a delete operation, this is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that is front-loaded and free of unnecessary words. It fully communicates the tool's purpose without padding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one well-documented parameter and no output schema, the description is largely complete. It lacks behavioral notes (like irreversibility), but the combination of description and schema is sufficient for an agent to invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema provides 100% coverage for the single parameter with a clear description ('ID of the shopping list item to delete'). The tool description adds no additional semantic meaning beyond the schema, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Remove an item from a shopping list' uses a specific verb ('Remove') and a specific resource ('item from a shopping list'), clearly distinguishing it from sibling tools like add_shopping_list_item and update_shopping_list_item. It is not a tautology and leaves no ambiguity about the tool's function.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the usage context (removing items from a shopping list) but does not explicitly state when to use it versus alternatives, mention prerequisites, or note any constraints. The intent is clear, but the guidance is minimal.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full responsibility. It indicates a read-only operation ('Get information') and discloses the data returned (group and household). For a zero-parameter getter, this is adequate transparency; it could mention auth requirements, but these are implicit for an API user endpoint.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is highly concise: two sentences that front-load the main action and then add a practical use case. Every word serves a purpose, with no redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter tool with no output schema, the description is complete. It explains what the tool returns (group and household) and why it might be used, covering all essential information for an agent to select and invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the baseline is 4. The description does not need to elaborate on parameters, and no additional semantics are required beyond what is already clear from the schema (empty properties).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: 'Get information about the current API user' and specifies included details (group and household). It distinguishes itself from sibling tools, none of which focus on user information, establishing a unique purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides a concrete use case: 'Useful for debugging permission issues when recipes or other items are not visible.' This is clear context for when to use the tool, though it does not explicitly mention when not to use it or alternatives, which are less relevant given no sibling tools cover user info.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_recipeA
Get a recipe by its slug. Returns full recipe details including ingredients and instructions.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | Recipe slug (unique identifier) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of behavioral disclosure. It reveals that the tool returns full recipe details, which is helpful, but it does not address authentication requirements, error handling (e.g., 404 for invalid slug), or explicitly confirm a read-only operation, leaving some gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences, front-loaded with the primary action, and contains no unnecessary words or redundancy. Every piece of information is relevant and contributes to clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple get-by-slug tool with no output schema, the description adequately communicates the return value ('full recipe details including ingredients and instructions'). It could mention what happens if the slug does not exist or how to obtain a slug, but given the simplicity and schema coverage, it is largely complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema provides 100% coverage for the single parameter 'slug' with the description 'Recipe slug (unique identifier)'. The tool description adds little beyond referring to 'by its slug', so it meets the baseline for high schema coverage without adding significant param context.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: 'Get a recipe by its slug.' It uses a specific verb (get), resource (recipe), and identifier (slug), and specifies the return content ('full recipe details including ingredients and instructions'), which distinguishes it from siblings like list_recipes or delete_recipe.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use the tool: when you have a recipe slug and need full details. It does not explicitly mention alternatives (e.g., 'use list_recipes to find slugs') or provide exclusion criteria, so guidance is implied rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_shopping_listA
Get a shopping list by ID. Returns the list with all items.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Shopping list ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the burden. It discloses the primary behavior (returns the list with all items) but does not mention error cases, permissions, or side effects (which are likely none). This is adequate but minimal, lacking richer behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, no fluff, front-loaded with the action. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple get-by-ID tool with one parameter and no output schema, the description covers purpose, parameter, and return value. It lacks details about not-found handling, but that is not critical for this low-complexity tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema covers 100% of the parameter information with a clear description ('Shopping list ID'). The description merely restates 'by ID', adding no new semantics beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'Get' with a resource 'shopping list' and scope 'by ID'. It clearly distinguishes from sibling tools like list_shopping_lists and the various item mutation tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies 'when you have a shopping list ID and want the full list' by stating 'by ID'. It does not explicitly mention alternatives like list_shopping_lists for listing all lists, but the context is clear enough for an agent to infer appropriate use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_todays_meal_planA
Get today's meal plan entries. Returns all meals planned for the current day.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. It transparently indicates this is a read operation returning all meals for the day, but it does not disclose timezone handling, the structure of returned entries, or behavior when no meal plan exists. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences with no filler. The action and resource are front-loaded, and each sentence earns its place by adding relevant detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter, read-only tool, the description is mostly complete: it states the resource, the scope (today), and the result (all meals). Lacking are return-value structure and timezone nuance, but the low complexity makes these minor gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, and the schema confirms this with 100% coverage. The description correctly adds no redundant parameter details, meeting the baseline for a no-parameter tool.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool gets 'today's meal plan entries' and specifies it returns all meals planned for the current day. This distinguishes it from siblings like list_meal_plans, which likely operates over all dates, and delete_meal_plan.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance is given on when to use this tool versus alternatives like list_meal_plans. The phrase 'for the current day' implies the use case, but there is no direct comparison, exclusions, or mention of suitable contexts.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_categoriesA
List all recipe categories in Mealie. Categories help organize recipes into groups like "Dinner", "Breakfast", "Italian", etc.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number (default: 1) | |
| search | No | Search term to filter categories | |
| perPage | No | Items per page (default: 50) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the responsibility for behavioral disclosure. The verb 'List' clearly implies a read-only operation, and no side effects are suggested or mentioned. However, the description adds minimal behavioral context beyond that—no mention of pagination limits, default ordering, or authentication requirements. For a basic list tool, this is adequate but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences long: the first states the tool's purpose, and the second provides useful context about what categories are. There is no redundant information or filler. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple (list categories) with 3 optional parameters documented in the schema and no output schema. The description tells the reader what the tool does but does not explicitly describe the return format or any pagination behavior, though these are partially implied by the schema. Given the simplicity and the schema coverage, the description is minimally adequate but could be more complete by noting the response structure.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema descriptions cover 100% of the parameters (page, search, perPage), so the description does not need to add parameter details. The description itself does not mention any parameters, but the schema already explains them adequately. Per the calibration rule, a baseline of 3 is appropriate when schema coverage is high.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('List all recipe categories in Mealie') with a clear resource. It distinguishes itself from sibling tools like list_recipes, list_foods, and list_tags by explicitly naming recipe categories as the target, making its purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context: this tool lists recipe categories, which are used to organize recipes. It implies when to use it (when you need recipe categories) but does not explicitly contrast it with alternatives or give exclusions. This is a simple listing operation where the need is self-evident, so the absence of explicit 'when not to use' is acceptable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_foodsA
List all foods/ingredients in Mealie. Can be filtered by search term.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number (default: 1) | |
| search | No | Search term to filter foods | |
| perPage | No | Items per page (default: 50) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full transparency burden. It states the core read-only behavior ('List all foods/ingredients') and the filtering capability, but does not disclose pagination behavior, default page size, or the exact semantics of search (e.g., substring vs exact match). This is adequate for a simple list operation but lacks depth.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence with no redundant words. It front-loads the primary action and resource ('List all foods/ingredients'), then adds the filtering capability, making it highly efficient and easily scannable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list tool with no output schema, the description is functional but incomplete. It does not explain the return format, pagination behavior, or how search interacts with page/perPage. Given the lack of annotations, a short note on pagination or that results are paginated would improve completeness, but the tool is straightforward enough that the current description is minimally viable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema descriptions cover 100% of parameters, so the baseline is 3. The description adds no extra meaning beyond the schema; it only reiterates the 'search' parameter as a 'search term to filter foods', which is already stated in the schema. No additional parameter context is provided.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('List') and identifies the resource ('foods/ingredients in Mealie'), clearly differentiating it from sibling tools like list_recipes by the resource type. It also mentions the ability to filter by search term, which further clarifies its scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage (when you need to list foods/ingredients) but provides no explicit guidance on when to use this tool versus alternatives like create_food or list_categories. It does not state any exclusions or prerequisites, leaving the agent to infer the appropriate context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_meal_plansA
List meal plan entries within a date range. If no dates provided, returns all meal plans.
| Name | Required | Description | Default |
|---|---|---|---|
| endDate | No | End date for filtering (YYYY-MM-DD format) | |
| startDate | No | Start date for filtering (YYYY-MM-DD format) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. It usefully discloses the default 'returns all' behavior, which goes beyond the schema. However, it does not mention ordering, pagination, authentication requirements, or the exact return structure, leaving gaps in behavioral transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no redundant content. It states the primary action and the default case concisely, making it efficient and easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter list tool, the description covers the essential filtering semantics. However, it does not mention sorting, whether dates are inclusive, or how this relates to sibling tools like get_todays_meal_plan, leaving room for more context. It is minimally viable but not fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for both parameters, so the baseline is 3. The description adds no additional parameter context beyond what the schema already states (date range, YYYY-MM-DD format), so the score remains at the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('List') and resource ('meal plan entries') and clearly scopes the action to a date range with a defined default. This distinguishes it from sibling tools like get_todays_meal_plan and list_recipes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains the date-range usage and the fallback behavior when no dates are provided, but it does not explicitly mention alternatives such as get_todays_meal_plan or when to prefer one over the other. Usage context is implied, not explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_recipesA
List all recipes in Mealie. Returns recipe summaries with name, slug, description, and metadata.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number (default: 1) | |
| perPage | No | Items per page (default: 50) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden. It discloses the return format (summaries with name, slug, description, metadata) but does not mention pagination behavior, ordering, or any other behavioral aspects. The addition of return fields adds value, but the tool's behavior beyond that is underexplained.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the tool's purpose and a concise listing of the return fields. Every sentence earns its place with no fluff or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list tool with two pagination parameters and no output schema, the description adequately covers purpose and return information. It could be more complete by explicitly mentioning pagination or any defaults, but the schema already documents those, so the description is sufficiently complete for the tool's simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for both page and perPage parameters, so the baseline is 3. The description adds no additional parameter semantics; it only describes the output, not the parameters, so it does not exceed the schema's documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource: 'List all recipes in Mealie' and distinguishes from siblings like get_recipe by stating it returns summaries with name, slug, description, and metadata. This clearly communicates the tool's scope and output.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage by saying 'List all recipes' but does not explicitly alternate with get_recipe or other list tools. It provides clear context for what the tool does, but no exclusions or guidance on when to choose this over alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_shopping_listsA
List all shopping lists in Mealie.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number (default: 1) | |
| perPage | No | Items per page (default: 50) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions 'List all' but does not disclose pagination behavior, even though the input schema includes page and perPage parameters. The phrase 'all' could mislead an agent into thinking every shopping list is returned at once, while the default perPage=50 suggests otherwise. It also omits result format, sort order, or any operational details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that is direct and front-loaded with the key action and resource. There is no filler or redundant content. Every word serves the purpose of identifying what the tool does.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple with only two optional parameters and no output schema, so the description could be minimal. However, the absence of an output schema and the lack of any mention of pagination in the description leaves an important gap. The agent may not know that the default page size is 50 or that results are paginated, which is especially relevant given the phrase 'all' in the description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already provides complete descriptions for both parameters (page and perPage) with defaults, accounting for 100% schema coverage. The description adds no additional parameter semantics, but since the schema is self-explanatory, the baseline of 3 is appropriate. No further compensation is needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('List all') and the resource ('shopping lists in Mealie'). It is distinct from sibling tools like list_recipes, list_foods, list_categories, and list_tags because it specifically targets shopping lists. The verb and resource are specific enough for an agent to select this tool when the goal is to retrieve shopping lists.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The usage is implied: use it when you need to list shopping lists. However, there is no explicit guidance distinguishing it from alternatives such as get_shopping_list for retrieving a single list, or add_shopping_list_item for modifying lists. No exclusions or when-not-to-use instructions are provided, so the agent must infer the appropriate context from the tool name and sibling list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_tagsB
List all recipe tags in Mealie. Tags provide flexible labeling for recipes like "vegetarian", "gluten-free", "kid-friendly", etc.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number (default: 1) | |
| search | No | Search term to filter tags | |
| perPage | No | Items per page (default: 50) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It does not disclose pagination behavior, search semantics, or response shape, despite having page/perPage/search parameters. The read-only nature is implied but not explicitly stated, and no details about what each tag includes are given.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences, front-loaded with the main action. It avoids unnecessary verbosity and examples are relevant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations and no output schema, the description is minimal for a tool with pagination/search parameters. It does not explain the paginated response structure, what fields are returned per tag, or how search interacts with listing. The agent may not know what to expect beyond raw data.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with each parameter (page, search, perPage) having descriptive text including defaults. The tool description adds no parameter meaning beyond what the schema already provides, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'List all recipe tags in Mealie' with specific verb and resource. It distinguishes from sibling tools like list_categories and list_recipes by explicitly focusing on recipe tags with example labels.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides context ('Tags provide flexible labeling for recipes') but no explicit when-to-use guidance or exclusions compared to alternatives like list_categories. It does not mention when tags are preferred over categories or foods.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | Recipe slug whose ingredients should be parsed and structured |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description thoroughly discloses the multi-step process: fetches the recipe, parses each ingredient, creates missing unit/food records, and saves structured ingredients back. This reveals the side effect of creating records, which is crucial since no annotations are provided.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, each earning its place: the first states purpose and outcome, the second details the process and side effects, and the third gives usage guidance. There is no filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter mutation tool with no output schema, the description covers the trigger, step-by-step behavior, side effects, and use case. It does not mention return values, but that is not critical for such an operation, leaving only a minor gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already covers slug with a clear description ('Recipe slug whose ingredients should be parsed and structured') at 100% coverage. The description does not add extra parameter semantics beyond confirming the fetch-save behavior, so baseline 3 is fair.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'Re-parse' and clearly identifies the resource: 'ingredients for an existing recipe.' It also states the transformation goal ('proper quantity, unit, and food fields instead of free-text notes'), which distinguishes it from import or update tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly instructs to use it 'after importing a recipe from a URL whose ingredients came in as plain text,' providing a clear when-to-use context. It implies the tool is for existing recipes but does not explicitly list alternatives or when-not-to-use, so a 4 is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | URL of the recipe page to test scraping |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses two key behaviors: the tool does not create a recipe (no side effects) and returns success:false when the scraper cannot parse the site. This covers the primary behavioral expectations, though it does not specify the success response format in detail.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences with no wasted words. The key purpose is front-loaded, and the behavioral note about success:false is added efficiently.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one parameter, no output schema, no annotations), the description is adequate. It conveys the purpose, side-effect-free nature, and the error condition. A perfect score would require explicit mention of the success return value, but this is a minor gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already covers 100% of parameter meaning with the description 'URL of the recipe page to test scraping'. The tool description adds no additional parameter semantics, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: to test if a URL can be scraped for recipe data. It uses a specific verb ('test'), identifies the resource ('URL'), and distinguishes itself from sibling tools like 'create_recipe_from_url' by explicitly noting it does not create a recipe.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides clear context for when to use the tool ('validating URLs before importing') and implies an alternative (actual importing, likely via create_recipe_from_url). However, it does not explicitly name alternative tools or state when not to use this tool, so it falls short of an explicit 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Name of the recipe | |
| slug | Yes | Recipe slug to update | |
| cookTime | No | Cook time (e.g., "20 minutes") | |
| prepTime | No | Prep time (e.g., "10 minutes") | |
| totalTime | No | Total time (e.g., "30 minutes") | |
| description | No | Description of the recipe | |
| recipeYield | No | Yield of the recipe (e.g., "4 servings") | |
| recipeIngredient | No | List of ingredients. Each ingredient can either have originalText (to be parsed automatically) or structured fields (quantity, unit, food, note). To group ingredients into sections like "For the sauce", insert standalone {"title": "For the sauce"} entries between groups — Mealie will render them as section headers. | |
| recipeInstructions | No | List of instructions |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It discloses partial-update semantics and server-side parsing/normalization of ingredients, which are key behavioral traits beyond the schema. However, it omits error handling, auth, or response details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the core operation, and no filler. The ingredient guidance earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The schema is rich and self-explanatory for parameters. The description covers the essential update behavior and ingredient best practice. The absence of return-value explanation is a minor gap given no output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds value by explaining the tradeoff between originalText and structured ingredient input, and by clarifying partial updates affect all parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states "Update an existing recipe by slug," which is a specific verb+resource+identifier. It clearly distinguishes this from create_recipe, delete_recipe, and get_recipe.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly implies use for modifying existing recipes with "Update an existing recipe by slug" and explains the partial-update behavior ("Only provided fields will be updated"). It also gives parameter-level guidance (prefer originalText over structured), but doesn't explicitly name alternative tools like create_recipe for new recipes.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_shopping_list_itemA
Update a shopping list item. Can modify quantity, note, or checked status (to mark items as purchased).
| Name | Required | Description | Default |
|---|---|---|---|
| note | No | New note/display text | |
| itemId | Yes | ID of the shopping list item to update | |
| checked | No | Whether the item is checked off | |
| quantity | No | New quantity |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It only mentions that checked status can be used 'to mark items as purchased,' but it does not state whether updates are partial or full, what happens if the item does not exist, or if any permissions are required. This is a significant gap for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that immediately states the action and lists key fields. It is appropriately sized with zero waste, earning a top score for conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple update tool with no output schema, the description covers the core purpose but omits important context such as whether updates are partial (only fields provided are changed) and whether at least one mutable field must be specified beyond itemId. This leaves some ambiguity for an agent, so it is minimally viable but not rich.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already provides 100% parameter descriptions, so the baseline is 3. The description adds slight semantic value by explicitly linking 'checked' to 'mark items as purchased,' but overall it mostly restates the modifiable fields without deeper insight beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Update a shopping list item' with a specific verb and resource, and enumerates the modifiable fields (quantity, note, checked status). This distinguishes it from sibling tools like add_shopping_list_item and delete_shopping_list_item, making the purpose unmistakable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context: use when you need to modify an existing shopping list item's quantity, note, or checked status. It does not explicitly name alternatives or exclusions, but the context is clear enough that an agent can infer when this tool is appropriate versus adding/deleting items.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
upload_recipe_imageB
Upload an image for a recipe. Provide the image as base64-encoded data.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | Recipe slug | |
| fileName | No | File name with extension (default: image.jpg) | image.jpg |
| imageBase64 | Yes | Base64-encoded image data |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits. It only states that the image is uploaded as base64, with no mention of side effects (e.g., replacing an existing image), authentication requirements, file size limits, or error handling. This is minimal beyond what the schema already conveys.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no redundant information. It front-loads the action and the required format, making it concise and easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no annotations and no output schema, the description is incomplete. It does not mention response behavior, whether the upload replaces existing images, or any constraints. The agent is left without critical operational context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 100% parameter coverage with descriptions for all three fields. The description adds no extra meaning beyond saying the image is base64-encoded, which duplicates the schema. It does not clarify how slug relates to the recipe or how fileName is used.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('upload') and the resource ('an image for a recipe'), using specific language that distinguishes it from sibling tools like create_recipe or update_recipe. It also specifies the input format (base64), making the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies use when uploading an image for a recipe but does not explicitly state when to use it versus alternatives, nor does it mention prerequisites or exclusions. The context is clear but lacks direct guidance on when this tool is the right choice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Most tools target distinct resources and actions clearly, with recipe CRUD, meal plans, shopping lists, foods, categories, tags, and user info separated. The three recipe creation methods (manual, URL, HTML) share intent but are differentiated by input source, and test_scrape_url adds a validation step. Shopping list item operations are distinct from adding a whole recipe's ingredients.
All tool names use a consistent snake_case verb_noun pattern (list_, get_, create_, delete_, update_, upload_, add_, test_, parse_). Even longer names like create_recipe_from_url or get_todays_meal_plan follow the verb-first convention. There are no camelCase or mixed naming styles.
27 tools is above the typical 'heavy' threshold, but the server covers many subdomains: recipes, meal plans, foods, shopping lists, categories, tags, user info, and URL scraping. Each tool has a defined role, though having three recipe creation variants inflates the count; a slightly leaner set could be achieved without losing functionality.
Core recipe management (CRUD plus image upload), meal plan basics, shopping list item operations, and URL scraping are well covered. However, there are notable gaps: no create_shopping_list or delete_shopping_list, no update/delete for categories or tags, no delete_food, and no update_meal_plan. These missing lifecycle operations could force users to rely on external tools or workarounds.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Search, save, organize, cook, and share recipes with any AI assistant.
AI-powered kitchen management — pantry, recipes, meal plans, shopping lists
Household-aware cooking brain: pantry, meal suggestions, dietary safety, recipes, shopping lists.
Scraps Kitchen gives any AI agent a persistent, household-aware kitchen memory. Unlike generic chatbot recall, Scraps maintains structured cooking data: what's in your fridge (with freshness tracking), who you cook for (with allergens, dietary restrictions, and preferences), your recipe collection (with cook notes and per-diner ratings), your shopping list, and your kitchen equipment. 27 tools across 6 domains let agents read kitchen context, suggest meals that respect dietary safety, update the pantry after cooking, and build a history of what works for your household. Every interaction makes the data richer. Cooking history, preference signals, kitchen awareness = better suggestions next time. All tools work via oAuth and a free scraps.kitchen account.
Related MCP Servers
- AlicenseNot gradedqualityAmaintenanceEnables AI assistants to interact with Mealie recipe databases through MCP clients like Claude Desktop.131MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to interact with Mealie for recipe management, meal planning, and shopping list operations. Supports searching and managing recipes, creating meal plans, and generating shopping lists from recipes or meal plans.5MIT
- AlicenseNot gradedqualityCmaintenanceEnables AI assistants to interact with Mealie recipe databases, allowing users to manage and query their recipes through natural language conversations.27MIT
- AlicenseNot gradedqualityDmaintenanceExposes Mealie recipe manager as LLM-callable tools for searching recipes, managing meal plans, and editing shopping lists.MIT
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