Skip to main content
Glama

Server Details

Scale recipes, convert kitchen units and merge shopping lists. Free.

If you are the author of this connector, you can claim ownership by verifying the domain or GitHub account it belongs to. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Uptime
100.0% over 25 days
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL
Server Listing
Sahadeva

TDQS

A4.5/5.0

Scored across 4 tools

Disambiguation5/5

Each tool has a clearly distinct purpose: unit conversion, recipe scaling, cost calculation, and shopping-list merging. The descriptions explicitly state what each tool should not be used for, making misselection unlikely.

Naming Consistency4/5

Three tools follow a clear verb_noun pattern (convert_units, merge_shopping_list, scale_recipe), while cost_per_serving is a noun phrase. All use consistent snake_case, so the minor deviation is still readable and predictable.

Tool Count5/5

With 4 tools, the server is tightly scoped to recipe scaling and related kitchen calculations. Each tool earns its place without redundancy or bloat.

Completeness4/5

The surface covers core workflows: scaling recipes, converting units, costing servings, and merging shopping lists. Minor gaps like nutrition estimation or parsing raw recipe text are absent, but the stated domain is well served.

Available Tools

4 tools
convert_unitsConvert unitsA
Read-onlyIdempotent
Inspect

Convert one cooking amount between units: within volume or weight exactly, or between volume and weight using a built-in density for flour, sugar, brown sugar, butter, water, milk, rice, oats, cocoa or honey. Use for questions like 'how many grams is 2 cups of flour'. Do NOT use to change serving counts (use scale_recipe).

NameRequiredDescriptionDefault
toYesUnit to convert to, e.g. 'g'; same supported units as from
fromYesUnit to convert from, e.g. 'cup'. Supported: tsp, tbsp, cup, fl_oz, ml, l, pint, quart, gallon (volume); g, kg, oz, lb (weight); each (count). Common spellings like 'cups', 'grams', 'tablespoon' also work
valueYesAmount to convert, zero or positive, e.g. 2
ingredientNoIngredient name, required only for volume <-> weight; must contain one of flour, sugar, brown sugar, butter, water, milk, rice, oats, cocoa, honey (e.g. 'all-purpose flour')

Output Schema

NameRequiredDescription
toYesCanonical target unit, e.g. 'g'
fromYesCanonical source unit, e.g. 'cup'
valueYesAmount that was converted
methodYes'linear' for same-dimension, 'density' for volume <-> weight
resultYesConverted amount (4 significant digits)
displayYesReadable conversion, e.g. '2 cups flour = 250 g (approx.)'
density_noteNoDensity used (density method only)

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent and non-destructive, so safety is covered. The description adds genuinely useful behavioral context beyond that: cross-dimension conversion relies on a built-in density and is limited to a fixed ingredient list. It does not mention edge cases like unsupported ingredients or zero values, keeping it just short of a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three tight sentences: purpose, an illustrative example, and a routing exclusion. Nothing is wasted and the core capability is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With annotations covering the safety profile, an output schema handling return values, and full param coverage in the schema, the description provides everything needed to select and invoke correctly. No material gaps remain.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all four parameters, including the ingredient list and supported units. The description restates the ingredient list and density behavior but adds no syntax or format detail beyond the schema, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (convert) plus the resource (one cooking amount between units) and the exact scope (within volume/weight, or across via built-in density). It also names the sibling it is not (scale_recipe), so an agent can distinguish it without opening a schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives an explicit positive trigger ('how many grams is 2 cups of flour') and an explicit exclusion with the alternative ('Do NOT use to change serving counts (use scale_recipe)'). The when/when-not/alternative triad is fully covered.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

cost_per_servingCost per servingA
Read-onlyIdempotent
Inspect

Total the cost of a recipe's ingredients and work out the cost per serving and per 10 servings. Use when budgeting a dish, pricing meal prep or comparing recipes on cost. Do NOT use to resize the recipe (use scale_recipe first, then price the scaled amounts here).

NameRequiredDescriptionDefault
currencyNoCurrency code for display only, e.g. 'EUR'; default USD
servingsYesHow many servings the recipe makes, positive, e.g. 4
ingredientsYesPriced ingredients, e.g. [{"item":"chicken","cost":8.5},{"item":"rice","cost":1.2}]

Output Schema

NameRequiredDescription
noteYesPlain-language cost summary
currencyYesCurrency code used in the results (upper case)
servingsYesServings the recipe makes
total_costYesSum of all ingredient costs
per_servingYesCost per serving, rounded to cents
per_ten_servingsYesCost for 10 servings, rounded to cents

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (readOnly, idempotent, non-destructive, closed-world), so the bar is low. The description adds useful behavioral context beyond them: it discloses the two derived outputs (per serving and per 10 servings) and the workflow dependency that scaling must happen beforehand. It does not discuss error behavior or how missing/invalid costs are handled, keeping it short of a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three tight sentences: purpose first, then usage contexts, then the exclusion/ordering rule. No filler and the most decision-relevant information is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained, and annotations cover the safety profile. The description supplies the remaining decision-critical context (when to use, the scaling prerequisite) for a three-parameter tool, leaving nothing an agent needs for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so currency, servings and the ingredients array are already fully documented in the schema. The description adds no syntax, format or default information beyond that, which is the expected baseline when the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Specific verb and resource: totals ingredient costs and derives cost per serving and per 10 servings. It is clearly distinguishable from siblings such as scale_recipe and merge_shopping_list, and even names the relevant sibling by name.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states when to use it (budgeting a dish, pricing meal prep, comparing recipes on cost) and when not to (resizing), naming the alternative 'scale_recipe' plus the correct ordering: scale first, then price the scaled amounts here.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

merge_shopping_listMerge shopping listA
Read-onlyIdempotent
Inspect

Combine several shopping or ingredient lists into one, summing the same item across lists (volumes and weights converted to a friendly unit) and noting which list each came from. Use when shopping for several recipes or meals at once. Do NOT use to resize one recipe (use scale_recipe) or price it (use cost_per_serving).

NameRequiredDescriptionDefault
listsYesShopping lists to merge (at least one item overall), e.g. [{"name":"Pancakes","items":[{"item":"milk","quantity":1,"unit":"cup"}]}]

Output Schema

NameRequiredDescription
noteYesSummary of the merge and its limits
mergedYesOne line per item and unit kind, with summed quantities
skipped_no_quantityYesItems given without a quantity, kept as notes

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, openWorldHint=false, and destructiveHint=false, so the safety profile is covered. The description still adds real behavioral detail beyond the annotations: aggregation of identical items, unit conversion to a 'friendly unit', and provenance attribution. It stops short of describing edge-case handling or output shape, but that is largely schema territory.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, zero filler. The core behavior and its limitations are front-loaded, and the negative guidance is packed into a single trailing clause rather than restated.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, the description need not explain return values, and it covers purpose, aggregation rules, and sibling routing. For a single-parameter, read-only merge tool, nothing an agent needs to invoke it correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and there is only one top-level parameter, so the schema already carries parameter meaning (list names, item/unit/quantity semantics, skipped_no_quantity behavior). The description adds no syntax or format detail beyond the schema, which is the expected baseline of 3 when the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description gives a specific verb+resource ('Combine several shopping or ingredient lists into one') and immediately scopes the semantics: same items are summed, volumes/weights converted, and origin list noted. It explicitly distinguishes itself from scale_recipe and cost_per_serving, so an agent can select it without inspecting siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It states the triggering context ('Use when shopping for several recipes or meals at once') and gives explicit exclusions with the correct alternatives for each ('Do NOT use to resize one recipe (use scale_recipe) or price it (use cost_per_serving)'). Both when-to-use and when-not-to-use are covered.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

scale_recipeScale recipeA
Read-onlyIdempotent
Inspect

Scale every ingredient in a recipe from one serving count to another (0.1x to 20x), with kitchen-friendly fraction hints; items without a quantity pass through unchanged. Use when cooking for more or fewer people. Do NOT use to change units (use convert_units) or to combine several recipes' ingredients (use merge_shopping_list).

NameRequiredDescriptionDefault
ingredientsYesRecipe ingredients, e.g. [{"item":"flour","quantity":2,"unit":"cup"},{"item":"salt","note":"to taste"}]
to_servingsYesServings wanted, positive; to_servings / from_servings must be 0.1-20, e.g. 10
from_servingsYesServings the recipe is written for, positive, e.g. 4

Output Schema

NameRequiredDescription
noteYesExplanation of the scaling applied
factorYesScaling factor to_servings / from_servings (4 significant digits)
ingredientsYesScaled ingredients, in input order
to_servingsYesServings scaled to
from_servingsYesServings the recipe was written for

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, non-destructive, closed-world, so the safety profile is covered. The description adds real behavioral detail beyond them: the 0.1x–20x scaling envelope, that output includes kitchen-friendly fraction hints, and that items lacking a quantity pass through unchanged. It stops short of describing ordering or rounding precision, so it is strong but not exhaustive.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, zero padding: purpose and bounds first, usage context second, routing exclusions last. Each sentence carries decision-relevant information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a pure read/transform tool with full annotation coverage, a 100%-documented schema, and an output schema that handles return values, the description supplies everything left: bounds, pass-through behavior, and sibling routing. Nothing an agent needs to call it correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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 ratio-bound statement (0.1x to 20x) duplicates what the to_servings schema already documents, and it adds no interpretation for the nested ingredient fields (item/note/unit/quantity). Credit-worthy but not additive over the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Names a specific verb (scale) and resource (every ingredient in a recipe) plus the exact scope (serving count change, 0.1x–20x). It also states the pass-through edge case and names the two siblings it must not be confused with, so an agent can identify it without opening a schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicit positive trigger ("Use when cooking for more or fewer people") and two explicit exclusions with named alternatives: unit changes go to convert_units, ingredient combining goes to merge_shopping_list. Nothing is left to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 4 tool updates
    • Changedconvert_units19 fields changed
      • changedInput schema / properties / from / description
        Previous value: -"Unit to convert from, e.g. cup"New value: +"Unit to convert from, e.g. 'cup'. Supported: tsp, tbsp, cup, fl_oz, ml, l, pint, quart, gallon (volume); g, kg, oz, lb (weight); each (count). Common spellings like 'cups', 'grams', 'tablespoon' also work"
      • changedInput schema / properties / ingredient / description
        Previous value: -"Ingredient name, needed for volume <-> weight, e.g. flour"New value: +"Ingredient name, required only for volume <-> weight; must contain one of flour, sugar, brown sugar, butter, water, milk, rice, oats, cocoa, honey (e.g. 'all-purpose flour')"
      • changedInput schema / properties / to / description
        Previous value: -"Unit to convert to, e.g. g"New value: +"Unit to convert to, e.g. 'g'; same supported units as from"
      • changedInput schema / properties / value / description
        Previous value: -"Amount to convert"New value: +"Amount to convert, zero or positive, e.g. 2"
      • addedInput schema / properties / value / minimum
        Added value: +0
      • removedOutput schema / properties / conversionFactor
        Removed value: -{
        -  "description": "The factor used to convert between the units",
        -  "type": "number"
        -}
      • removedOutput schema / properties / convertedValue
        Removed value: -{
        -  "description": "The converted amount in the target unit",
        -  "type": "number"
        -}
      • addedOutput schema / properties / density_note
        Added value: +{
        +  "description": "Density used (density method only)",
        +  "type": "string"
        +}
      • addedOutput schema / properties / display
        Added value: +{
        +  "description": "Readable conversion, e.g. '2 cups flour = 250 g (approx.)'",
        +  "type": "string"
        +}
      • removedOutput schema / properties / error
        Removed value: -{
        -  "description": "Error message if the conversion failed, e.g. unknown unit or ingredient",
        -  "type": "string"
        -}
      • addedOutput schema / properties / from
        Added value: +{
        +  "description": "Canonical source unit, e.g. 'cup'",
        +  "type": "string"
        +}
      • removedOutput schema / properties / fromUnit
        Removed value: -{
        -  "description": "The unit that was converted from",
        -  "type": "string"
        -}
      • removedOutput schema / properties / ingredient
        Removed value: -{
        -  "description": "The ingredient name used for volume-to-weight conversion, if applicable",
        -  "type": "string"
        -}
      • addedOutput schema / properties / method
        Added value: +{
        +  "description": "'linear' for same-dimension, 'density' for volume <-> weight",
        +  "enum": [
        +    "linear",
        +    "density"
        +  ],
        +  "type": "string"
        +}
      • addedOutput schema / properties / result
        Added value: +{
        +  "description": "Converted amount (4 significant digits)",
        +  "type": "number"
        +}
      • addedOutput schema / properties / to
        Added value: +{
        +  "description": "Canonical target unit, e.g. 'g'",
        +  "type": "string"
        +}
      • removedOutput schema / properties / toUnit
        Removed value: -{
        -  "description": "The unit that was converted to",
        -  "type": "string"
        -}
      • addedOutput schema / properties / value
        Added value: +{
        +  "description": "Amount that was converted",
        +  "type": "number"
        +}
      • changedOutput schema / required
        Previous value: -[
        -  "convertedValue",
        -  "fromUnit",
        -  "toUnit"
        -]New value: +[
        +  "value",
        +  "from",
        +  "to",
        +  "result",
        +  "display",
        +  "method"
        +]
    • Changedcost_per_serving16 fields changed
      • changedInput schema / properties / currency / description
        Previous value: -"Currency code for display, default USD"New value: +"Currency code for display only, e.g. 'EUR'; default USD"
      • changedInput schema / properties / ingredients / description
        Previous value: -"Priced ingredients"New value: +"Priced ingredients, e.g. [{\"item\":\"chicken\",\"cost\":8.5},{\"item\":\"rice\",\"cost\":1.2}]"
      • changedInput schema / properties / ingredients / items / properties / cost / description
        Previous value: -"Cost of the amount used in the recipe"New value: +"Cost of the amount used in the recipe, 0 or more, in the given currency"
      • addedInput schema / properties / ingredients / items / properties / cost / minimum
        Added value: +0
      • addedInput schema / properties / ingredients / minItems
        Added value: +1
      • changedInput schema / properties / servings / description
        Previous value: -"How many servings the recipe makes"New value: +"How many servings the recipe makes, positive, e.g. 4"
      • addedInput schema / properties / servings / exclusiveMinimum
        Added value: +0
      • removedOutput schema / properties / cost_for_10_servings
        Removed value: -{
        -  "description": "The cost for 10 servings in the specified currency",
        -  "type": "number"
        -}
      • removedOutput schema / properties / cost_per_serving
        Removed value: -{
        -  "description": "The cost per serving in the specified currency",
        -  "type": "number"
        -}
      • changedOutput schema / properties / currency / description
        Previous value: -"The currency code used for the cost calculations"New value: +"Currency code used in the results (upper case)"
      • addedOutput schema / properties / note
        Added value: +{
        +  "description": "Plain-language cost summary",
        +  "type": "string"
        +}
      • addedOutput schema / properties / per_serving
        Added value: +{
        +  "description": "Cost per serving, rounded to cents",
        +  "type": "number"
        +}
      • addedOutput schema / properties / per_ten_servings
        Added value: +{
        +  "description": "Cost for 10 servings, rounded to cents",
        +  "type": "number"
        +}
      • addedOutput schema / properties / servings
        Added value: +{
        +  "description": "Servings the recipe makes",
        +  "type": "number"
        +}
      • addedOutput schema / properties / total_cost
        Added value: +{
        +  "description": "Sum of all ingredient costs",
        +  "type": "number"
        +}
      • changedOutput schema / required
        Previous value: -[
        -  "cost_per_serving",
        -  "cost_for_10_servings",
        -  "currency"
        -]New value: +[
        +  "currency",
        +  "total_cost",
        +  "servings",
        +  "per_serving",
        +  "per_ten_servings",
        +  "note"
        +]
    • Changedmerge_shopping_list12 fields changed
      • changedInput schema / properties / lists / description
        Previous value: -"Shopping lists to merge"New value: +"Shopping lists to merge (at least one item overall), e.g. [{\"name\":\"Pancakes\",\"items\":[{\"item\":\"milk\",\"quantity\":1,\"unit\":\"cup\"}]}]"
      • changedInput schema / properties / lists / items / properties / items / items / properties / item / description
        Previous value: -"Item to buy"New value: +"Item to buy, e.g. 'eggs'"
      • changedInput schema / properties / lists / items / properties / items / items / properties / quantity / description
        Previous value: -"Amount; omit it for non-numeric items"New value: +"Amount, non-negative; omit for non-numeric items (listed in skipped_no_quantity)"
      • addedInput schema / properties / lists / items / properties / items / items / properties / quantity / minimum
        Added value: +0
      • changedInput schema / properties / lists / items / properties / items / items / properties / unit / description
        Previous value: -"Unit such as cup, tbsp or g"New value: +"Unit such as cup, tbsp, g, kg, or a free label like 'can'; omit for plain counts"
      • changedInput schema / properties / lists / items / properties / name / description
        Previous value: -"e.g. 'Saturday dinner'"New value: +"List label shown in from_lists, e.g. 'Saturday dinner'; default 'list N'"
      • addedInput schema / properties / lists / minItems
        Added value: +1
      • addedOutput schema / properties / merged
        Added value: +{
        +  "description": "One line per item and unit kind, with summed quantities",
        +  "items": {
        +    "properties": {
        +      "display": {
        +        "description": "Readable amount with unit",
        +        "type": "string"
        +      },
        +      "from_lists": {
        +        "description": "Names of the lists this item came from",
        +        "items": {
        +          "type": "string"
        +        },
        +        "type": "array"
        +      },
        +      "item": {
        +        "description": "Item name (first spelling seen)",
        +        "type": "string"
        +      },
        +      "quantity": {
        +        "description": "Summed quantity (2 decimals)",
        +        "type": "number"
        +      },
        +      "unit": {
        +        "description": "Display unit, e.g. 'cup', 'g', 'each' or a free label",
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "item",
        +      "quantity",
        +      "unit",
        +      "display",
        +      "from_lists"
        +    ],
        +    "type": "object"
        +  },
        +  "type": "array"
        +}
      • removedOutput schema / properties / mergedList
        Removed value: -{
        -  "description": "The consolidated shopping list",
        -  "properties": {
        -    "items": {
        -      "description": "List of items with quantities and units",
        -      "items": {
        -        "properties": {
        -          "item": {
        -            "description": "Item to buy",
        -            "type": "string"
        -          },
        -          "quantity": {
        -            "description": "Total amount of the item",
        -            "type": "number"
        -          },
        -          "unit": {
        -            "description": "Friendliest kitchen unit for the item",
        -            "type": "string"
        -          }
        -        },
        -        "required": [
        -          "item",
        -          "quantity",
        -          "unit"
        -        ],
        -        "type": "object"
        -      },
        -      "type": "array"
        -    },
        -    "name": {
        -      "description": "Name of the merged list, e.g. 'Weekly Groceries'",
        -      "type": "string"
        -    },
        -    "notes": {
        -      "description": "List of items without quantities",
        -      "items": {
        -        "description": "Item to buy",
        -        "type": "string"
        -      },
        -      "type": "array"
        -    }
        -  },
        -  "required": [
        -    "items",
        -    "notes"
        -  ],
        -  "type": "object"
        -}
      • addedOutput schema / properties / note
        Added value: +{
        +  "description": "Summary of the merge and its limits",
        +  "type": "string"
        +}
      • addedOutput schema / properties / skipped_no_quantity
        Added value: +{
        +  "description": "Items given without a quantity, kept as notes",
        +  "items": {
        +    "type": "string"
        +  },
        +  "type": "array"
        +}
      • changedOutput schema / required
        Previous value: -[
        -  "mergedList"
        -]New value: +[
        +  "merged",
        +  "skipped_no_quantity",
        +  "note"
        +]
    • Changedscale_recipe24 fields changed
      • changedInput schema / properties / from_servings / description
        Previous value: -"Servings the recipe is written for"New value: +"Servings the recipe is written for, positive, e.g. 4"
      • addedInput schema / properties / from_servings / exclusiveMinimum
        Added value: +0
      • changedInput schema / properties / ingredients / description
        Previous value: -"Ingredients with optional quantity and unit"New value: +"Recipe ingredients, e.g. [{\"item\":\"flour\",\"quantity\":2,\"unit\":\"cup\"},{\"item\":\"salt\",\"note\":\"to taste\"}]"
      • changedInput schema / properties / ingredients / items / properties / note / description
        Previous value: -"Preparation note kept as-is, e.g. 'to taste'"New value: +"Text shown instead of an amount when quantity is omitted, e.g. 'to taste' (default 'as needed')"
      • changedInput schema / properties / ingredients / items / properties / quantity / description
        Previous value: -"Amount; omit it for items like 'salt to taste'"New value: +"Amount, non-negative; omit for items like 'salt to taste'"
      • addedInput schema / properties / ingredients / items / properties / quantity / minimum
        Added value: +0
      • changedInput schema / properties / ingredients / items / properties / unit / description
        Previous value: -"Unit such as cup, tbsp, g or a count label like 'clove'"New value: +"Unit such as cup, tbsp, g, or a free count label like 'clove' or 'egg'"
      • addedInput schema / properties / ingredients / minItems
        Added value: +1
      • changedInput schema / properties / to_servings / description
        Previous value: -"Servings you want"New value: +"Servings wanted, positive; to_servings / from_servings must be 0.1-20, e.g. 10"
      • addedInput schema / properties / to_servings / exclusiveMinimum
        Added value: +0
      • addedOutput schema / properties / factor
        Added value: +{
        +  "description": "Scaling factor to_servings / from_servings (4 significant digits)",
        +  "type": "number"
        +}
      • addedOutput schema / properties / from_servings
        Added value: +{
        +  "description": "Servings the recipe was written for",
        +  "type": "number"
        +}
      • changedOutput schema / properties / ingredients / description
        Previous value: -"List of scaled ingredients"New value: +"Scaled ingredients, in input order"
      • removedOutput schema / properties / ingredients / items / properties / note
        Removed value: -{
        -  "description": "Preparation note kept as-is, e.g. 'to taste'",
        -  "type": "string"
        -}
      • addedOutput schema / properties / ingredients / items / properties / original
        Added value: +{
        +  "description": "Original amount as text, or the pass-through note",
        +  "type": "string"
        +}
      • removedOutput schema / properties / ingredients / items / properties / quantity
        Removed value: -{
        -  "description": "Scaled amount; omitted for items like 'salt to taste'",
        -  "type": "number"
        -}
      • addedOutput schema / properties / ingredients / items / properties / scaled
        Added value: +{
        +  "description": "Scaled quantity (2 decimals); null when no quantity was given",
        +  "type": [
        +    "number",
        +    "null"
        +  ]
        +}
      • addedOutput schema / properties / ingredients / items / properties / scaled_display
        Added value: +{
        +  "description": "Scaled amount with unit and fraction hint, e.g. '2 1/2 cups (2.5)'",
        +  "type": "string"
        +}
      • addedOutput schema / properties / ingredients / items / properties / scaled_flag
        Added value: +{
        +  "description": "true when the ingredient was scaled, false when passed through",
        +  "type": "boolean"
        +}
      • removedOutput schema / properties / ingredients / items / properties / unit
        Removed value: -{
        -  "description": "Unit such as cup, tbsp, g or a count label like 'clove'",
        -  "type": "string"
        -}
      • changedOutput schema / properties / ingredients / items / required
        Previous value: -[
        -  "item"
        -]New value: +[
        +  "item",
        +  "original",
        +  "scaled",
        +  "scaled_display",
        +  "scaled_flag"
        +]
      • addedOutput schema / properties / note
        Added value: +{
        +  "description": "Explanation of the scaling applied",
        +  "type": "string"
        +}
      • addedOutput schema / properties / to_servings
        Added value: +{
        +  "description": "Servings scaled to",
        +  "type": "number"
        +}
      • changedOutput schema / required
        Previous value: -[
        -  "ingredients"
        -]New value: +[
        +  "from_servings",
        +  "to_servings",
        +  "factor",
        +  "ingredients",
        +  "note"
        +]
  2. 4 tool updates
    • Changedconvert_units1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "conversionFactor": {
        +      "description": "The factor used to convert between the units",
        +      "type": "number"
        +    },
        +    "convertedValue": {
        +      "description": "The converted amount in the target unit",
        +      "type": "number"
        +    },
        +    "error": {
        +      "description": "Error message if the conversion failed, e.g. unknown unit or ingredient",
        +      "type": "string"
        +    },
        +    "fromUnit": {
        +      "description": "The unit that was converted from",
        +      "type": "string"
        +    },
        +    "ingredient": {
        +      "description": "The ingredient name used for volume-to-weight conversion, if applicable",
        +      "type": "string"
        +    },
        +    "toUnit": {
        +      "description": "The unit that was converted to",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "convertedValue",
        +    "fromUnit",
        +    "toUnit"
        +  ],
        +  "type": "object"
        +}
    • Changedcost_per_serving1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "cost_for_10_servings": {
        +      "description": "The cost for 10 servings in the specified currency",
        +      "type": "number"
        +    },
        +    "cost_per_serving": {
        +      "description": "The cost per serving in the specified currency",
        +      "type": "number"
        +    },
        +    "currency": {
        +      "description": "The currency code used for the cost calculations",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "cost_per_serving",
        +    "cost_for_10_servings",
        +    "currency"
        +  ],
        +  "type": "object"
        +}
    • Changedmerge_shopping_list1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "mergedList": {
        +      "description": "The consolidated shopping list",
        +      "properties": {
        +        "items": {
        +          "description": "List of items with quantities and units",
        +          "items": {
        +            "properties": {
        +              "item": {
        +                "description": "Item to buy",
        +                "type": "string"
        +              },
        +              "quantity": {
        +                "description": "Total amount of the item",
        +                "type": "number"
        +              },
        +              "unit": {
        +                "description": "Friendliest kitchen unit for the item",
        +                "type": "string"
        +              }
        +            },
        +            "required": [
        +              "item",
        +              "quantity",
        +              "unit"
        +            ],
        +            "type": "object"
        +          },
        +          "type": "array"
        +        },
        +        "name": {
        +          "description": "Name of the merged list, e.g. 'Weekly Groceries'",
        +          "type": "string"
        +        },
        +        "notes": {
        +          "description": "List of items without quantities",
        +          "items": {
        +            "description": "Item to buy",
        +            "type": "string"
        +          },
        +          "type": "array"
        +        }
        +      },
        +      "required": [
        +        "items",
        +        "notes"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "mergedList"
        +  ],
        +  "type": "object"
        +}
    • Changedscale_recipe1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "ingredients": {
        +      "description": "List of scaled ingredients",
        +      "items": {
        +        "properties": {
        +          "item": {
        +            "description": "Ingredient name",
        +            "type": "string"
        +          },
        +          "note": {
        +            "description": "Preparation note kept as-is, e.g. 'to taste'",
        +            "type": "string"
        +          },
        +          "quantity": {
        +            "description": "Scaled amount; omitted for items like 'salt to taste'",
        +            "type": "number"
        +          },
        +          "unit": {
        +            "description": "Unit such as cup, tbsp, g or a count label like 'clove'",
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "item"
        +        ],
        +        "type": "object"
        +      },
        +      "type": "array"
        +    }
        +  },
        +  "required": [
        +    "ingredients"
        +  ],
        +  "type": "object"
        +}
  3. 4 tool updates
    • First observedconvert_units
    • First observedcost_per_serving
    • First observedmerge_shopping_list
    • First observedscale_recipe

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Your digital kitchen, powered by AI. Track what you have, discover what you can cook, and get guided through every recipe — step by step, timer by timer.
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    Search and read recipes from the English Wikibooks Cookbook, with tools to rescale ingredient lists to a target number of servings.
    4
    90 npm
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Household-aware kitchen brain for AI agents: manage pantry inventory with freshness tracking, shopping lists, recipe collections with cook notes and per-diner ratings, dietary profiles with allergen safety, and kitchen equipment — all through 27 tools with OAuth 2.1 authentication. Includes a free tool for ingredient-based recipe generation without an account (accounts are free!).
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables AI assistants to search recipes, compose nutritionally balanced meals, optimize weekly meal plans based on macro targets for family members, and generate consolidated grocery lists from a personal recipe database.
    -
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources