Skip to main content
Glama

Search recipes

search_recipes
Read-onlyIdempotent

Search recipes for a what-to-cook or what-to-eat question: dinner tonight, cooking for guests, a quick weeknight meal, a protein or calorie target, macros for a cut or a bulk, meal prep for the week. Every result links to its source. rating and rating_count average the source site's ratings with ask.recipes users' stars; my_rating is the user's own. Filters by time, rating, review count, diet (vegetarian, vegan, gluten_free, dairy_free, nut_free, judged from the ingredient list) and nutrition (calories, protein, fat, carbs, sugar, fiber per serving as reported by the source). A nutrition filter only returns recipes whose yield is stated in servings, so the numbers are per serving; recipes without nutrition data are excluded. Results rank by how closely they match the query; min_rating and min_reviews cut rated recipes below a threshold only when passed, and never drop a recipe nobody has rated or a private upload. exclude_ingredients leaves out recipes using any of the ingredients named, for building a week without repeats. main_protein keeps recipes whose main protein is one of the values passed, for week rules like one chicken, two fish and three vegetarian dinners; every result carries main_protein. The user's profile, once saved with update_profile, applies on top: allergens and dislikes are always excluded, its diets are always on, and its time budget is the default when max_total_minutes is not passed; pass max_total_minutes=-1 to lift it. When people are saved on the profile, who names those eating tonight, by name or by role such as adults or kids, and only their allergens and dislikes apply, for "the kids aren't home"; empty means everyone. ask_user, when present, says no profile is saved yet and what to offer. check, present when the profile has allergens, reminds you that exclusions match whole words and a sauce or spice mix can hide one; read the ingredients with get_recipe before recommending.

Input Schema

NameRequiredDescriptionDefault
whoNowho is eating, by the names or roles saved as people on the profile, e.g. ['Dad','Ana'] or ['adults'] when the kids are out, ['kids'] when only they eat; only those people's allergens and dislikes apply on top of the household's; leave empty for everyone
siteNorestrict to one source site slug, e.g. budgetbytes
limitNomax results, default 10, max 50
queryYesthe dish or main ingredients, e.g. 'overnight oats' or 'chicken curry'; express time, rating and nutrition limits with the filters rather than in words
veganNoonly vegan recipes: vegetarian and no eggs, dairy or honey
feedingNohow many people are eating, e.g. 10 for a dinner party; from six up, dishes cooked in one vessel (stews, braises, tray bakes, casseroles, soups, roasts) rank ahead of dishes cooked per portion (steaks, burgers, pancakes, stir-fries); nothing is excluded
nut_freeNoonly recipes without tree nuts or peanuts; coconut counts as nut-free
max_fat_gNomaximum grams of fat per serving
dairy_freeNoonly recipes without milk, butter, cheese, cream or yogurt
min_ratingNoonly recipes rated at least this many stars, e.g. 4.5, source ratings and ask.recipes stars averaged together; recipes nobody has rated yet and private uploads stay in; off unless passed
vegetarianNoonly vegetarian recipes: no meat, poultry, fish, seafood or gelatin in the ingredients
gluten_freeNoonly recipes without wheat, barley, rye, oats or products made from them
max_carbs_gNomaximum grams of carbohydrates per serving
max_sugar_gNomaximum grams of sugar per serving
min_fiber_gNominimum grams of fiber per serving
min_reviewsNoonly recipes with at least this many ratings, source and ask.recipes together, e.g. 25; recipes with no rating at all and private uploads stay in; off unless passed
main_proteinNoonly recipes whose main protein is one of these: chicken, turkey, duck, goose, quail, pheasant, guinea_fowl, beef (with veal), pork (with ham, bacon and sausage), lamb (with mutton), goat, venison, bison, rabbit, fish, shrimp (with prawns), seafood (other shellfish, squid, octopus), egg, legume (beans, lentils, chickpeas, tofu), none; e.g. ['beef','pork','lamb'] for red meat or ['fish','shrimp','seafood']; judged from the ingredients, so chicken stock alone does not make a chicken dish
max_caloriesNoonly recipes with at most this many calories per serving, e.g. 300
min_caloriesNoonly recipes with at least this many calories per serving
min_protein_gNominimum grams of protein per serving, e.g. 10
batch_friendlyNotrue to leave out dishes cooked per portion, for a crowd; recipes not yet classified stay in
max_total_minutesNoonly recipes taking at most this many minutes total
exclude_ingredientsNoingredients to leave out for this search, whole-word match on the ingredient list, e.g. ['chicken','brussels sprouts'] to avoid repeating what the week already has; nuts, gluten and dairy as a word apply the matching diet filter; the profile's allergens and dislikes stay excluded on top

Output Schema

NameRequiredDescriptionDefault
checkNo
recipesYes
ask_userNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / properties / main_protein / description
      Previous value: -"only recipes whose main protein is one of these: chicken, turkey, duck, goose, quail, pheasant, guinea_fowl, beef (with veal), pork (with ham, bacon and sausage), lamb (with mutton), goat, venison, bison, rabbit, fish, seafood (shellfish, squid, octopus), egg, legume (beans, lentils, chickpeas, tofu), none; e.g. ['beef','pork','lamb'] for red meat or ['fish','seafood']; judged from the ingredients, so chicken stock alone does not make a chicken dish"New value: +"only recipes whose main protein is one of these: chicken, turkey, duck, goose, quail, pheasant, guinea_fowl, beef (with veal), pork (with ham, bacon and sausage), lamb (with mutton), goat, venison, bison, rabbit, fish, shrimp (with prawns), seafood (other shellfish, squid, octopus), egg, legume (beans, lentils, chickpeas, tofu), none; e.g. ['beef','pork','lamb'] for red meat or ['fish','shrimp','seafood']; judged from the ingredients, so chicken stock alone does not make a chicken dish"
  2. Changed2 schema fields changed
    • changedInput schema / properties / min_rating / description
      Previous value: -"only recipes rated at least this many stars, e.g. 4.5, source ratings and ask.recipes stars averaged together; off unless passed"New value: +"only recipes rated at least this many stars, e.g. 4.5, source ratings and ask.recipes stars averaged together; recipes nobody has rated yet and private uploads stay in; off unless passed"
    • changedInput schema / properties / min_reviews / description
      Previous value: -"only recipes with at least this many ratings, source and ask.recipes together, e.g. 25; off unless passed"New value: +"only recipes with at least this many ratings, source and ask.recipes together, e.g. 25; recipes with no rating at all and private uploads stay in; off unless passed"
  3. Changed1 schema field changed
    • addedOutput schema / properties / check
      Added value: +{
      +  "type": "string"
      +}
  4. Changed1 schema field changed
    • addedInput schema / properties / who
      Added value: +{
      +  "description": "who is eating, by the names or roles saved as people on the profile, e.g. ['Dad','Ana'] or ['adults'] when the kids are out, ['kids'] when only they eat; only those people's allergens and dislikes apply on top of the household's; leave empty for everyone",
      +  "items": {
      +    "type": "string"
      +  },
      +  "type": [
      +    "null",
      +    "array"
      +  ]
      +}
  5. Changed1 schema field changed
    • addedOutput schema / properties / ask_user
      Added value: +{
      +  "type": "string"
      +}
  6. Changed4 schema fields changed
    • changedInput schema / properties / min_rating / description
      Previous value: -"only recipes the source rates at least this many stars, e.g. 4.5; off unless passed"New value: +"only recipes rated at least this many stars, e.g. 4.5, source ratings and ask.recipes stars averaged together; off unless passed"
    • changedInput schema / properties / min_reviews / description
      Previous value: -"only recipes with at least this many source ratings, e.g. 25; off unless passed"New value: +"only recipes with at least this many ratings, source and ask.recipes together, e.g. 25; off unless passed"
    • addedOutput schema / properties / recipes / items / properties / askrecipes_ratings
      Added value: +{
      +  "type": "integer"
      +}
    • addedOutput schema / properties / recipes / items / properties / my_rating
      Added value: +{
      +  "properties": {
      +    "note": {
      +      "type": "string"
      +    },
      +    "stars": {
      +      "type": "integer"
      +    }
      +  },
      +  "required": [
      +    "stars"
      +  ],
      +  "type": [
      +    "null",
      +    "object"
      +  ]
      +}
  7. Changed2 schema fields changed
    • addedInput schema / properties / main_protein
      Added value: +{
      +  "description": "only recipes whose main protein is one of these: chicken, turkey, duck, goose, quail, pheasant, guinea_fowl, beef (with veal), pork (with ham, bacon and sausage), lamb (with mutton), goat, venison, bison, rabbit, fish, seafood (shellfish, squid, octopus), egg, legume (beans, lentils, chickpeas, tofu), none; e.g. ['beef','pork','lamb'] for red meat or ['fish','seafood']; judged from the ingredients, so chicken stock alone does not make a chicken dish",
      +  "items": {
      +    "type": "string"
      +  },
      +  "type": [
      +    "null",
      +    "array"
      +  ]
      +}
    • addedOutput schema / properties / recipes / items / properties / main_protein
      Added value: +{
      +  "type": "string"
      +}
  8. Changed2 schema fields changed
    • removedOutput schema / additionalProperties
      Removed value: -false
    • removedOutput schema / properties / recipes / items / additionalProperties
      Removed value: -false
  9. Changed3 schema fields changed
    • addedInput schema / properties / batch_friendly
      Added value: +{
      +  "description": "true to leave out dishes cooked per portion, for a crowd; recipes not yet classified stay in",
      +  "type": "boolean"
      +}
    • addedInput schema / properties / feeding
      Added value: +{
      +  "description": "how many people are eating, e.g. 10 for a dinner party; from six up, dishes cooked in one vessel (stews, braises, tray bakes, casseroles, soups, roasts) rank ahead of dishes cooked per portion (steaks, burgers, pancakes, stir-fries); nothing is excluded",
      +  "type": "integer"
      +}
    • addedOutput schema / properties / recipes / items / properties / scale_class
      Added value: +{
      +  "type": "string"
      +}
  10. Changed1 schema field changed
    • addedInput schema / properties / exclude_ingredients
      Added value: +{
      +  "description": "ingredients to leave out for this search, whole-word match on the ingredient list, e.g. ['chicken','brussels sprouts'] to avoid repeating what the week already has; nuts, gluten and dairy as a word apply the matching diet filter; the profile's allergens and dislikes stay excluded on top",
      +  "items": {
      +    "type": "string"
      +  },
      +  "type": [
      +    "null",
      +    "array"
      +  ]
      +}
  11. Changed8 schema fields changed
    • addedInput schema / properties / dairy_free
      Added value: +{
      +  "description": "only recipes without milk, butter, cheese, cream or yogurt",
      +  "type": "boolean"
      +}
    • addedInput schema / properties / gluten_free
      Added value: +{
      +  "description": "only recipes without wheat, barley, rye, oats or products made from them",
      +  "type": "boolean"
      +}
    • changedInput schema / properties / min_rating / description
      Previous value: -"minimum source star rating, default 4.2; pass a lower value to loosen"New value: +"only recipes the source rates at least this many stars, e.g. 4.5; off unless passed"
    • changedInput schema / properties / min_reviews / description
      Previous value: -"minimum number of source ratings, default 25; pass a lower value to loosen"New value: +"only recipes with at least this many source ratings, e.g. 25; off unless passed"
    • addedInput schema / properties / nut_free
      Added value: +{
      +  "description": "only recipes without tree nuts or peanuts; coconut counts as nut-free",
      +  "type": "boolean"
      +}
    • addedInput schema / properties / vegan
      Added value: +{
      +  "description": "only vegan recipes: vegetarian and no eggs, dairy or honey",
      +  "type": "boolean"
      +}
    • addedInput schema / properties / vegetarian
      Added value: +{
      +  "description": "only vegetarian recipes: no meat, poultry, fish, seafood or gelatin in the ingredients",
      +  "type": "boolean"
      +}
    • addedOutput schema / properties / recipes / items / properties / diets
      Added value: +{
      +  "items": {
      +    "type": "string"
      +  },
      +  "type": [
      +    "null",
      +    "array"
      +  ]
      +}
  12. Changed2 schema fields changed
    • addedOutput schema / properties / recipes / items / properties / nutrition_for
      Added value: +{
      +  "type": "string"
      +}
    • addedOutput schema / properties / recipes / items / properties / servings
      Added value: +{
      +  "type": [
      +    "null",
      +    "integer"
      +  ]
      +}
  13. First observed

TDQS

A4.5/5.0
Behavior5/5

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

Annotations already declare readOnlyHint/idempotent, and the description adds substantial beyond-schema behavior: profile defaults applied on top unless overridden, ask_user signaling no saved profile, check flag warning that exclusions match whole words and sauces can hide allergens, and instructions to verify with get_recipe. This is rich operational context.

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

Conciseness4/5

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

Front-loads the purpose and use cases well, and every clause conveys actionable behavior. It is a dense single-block paragraph run-on; a little structure or trimming of filter enumerations already in the schema would sharpen it.

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 23-parameter search tool with an output schema, it covers the essentials: profile interaction, exclusions, ranking, and the allergen check reminder. Return values need not be explained since an output schema exists.

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

Parameters4/5

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 cross-parameter meaning beyond the schema — that main_protein is judged from ingredients (stock doesn't count), exclude_ingredients is whole-word and maps to diet filters, and main_protein values can build week rules. It largely restates many params already fully documented, so it doesn't exceed a 4.

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

Purpose4/5

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

Opens with a specific verb+resource and frames the concrete use cases (dinner tonight, macros for a cut, meal prep). It clearly says what it returns (recipes linking to source, rating semantics). Sibling differentiation is only implicit — it doesn't name find_by_ingredients or search_cookidoo — so it stops short of a 5.

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 explicit when-to-use framing plus when-not/exception behavior: min_rating/min_reviews never drop unrated or private uploads, nutrition filters exclude recipes without serving-yield data, max_total_minutes=-1 lifts the profile default, and who='' means everyone. Alternatives and edge conditions are spelled out.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.