Skip to main content
Glama

Search the recipe library

search_recipes
Read-only

Find and filter household or community recipes by text, favorites, or tag, including ratings and cook counts; reuse a recipe_id with propose_recipes to suggest one again.

Instructions

Every recipe the household has ever had proposed, with ratings and cook counts. Filter by text, favorites, or tag. Use recipe_id from here with propose_recipes to re-propose.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
tagNo
queryNo
scopeNoours (default): this household's recipes. library: Community recipes, the shared pool of public recipes, with cooks/favorites/ratings across households. all: both.
favorites_onlyNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
itemsYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed13 schema fields changedv0.1.1
    • addedInput schema / properties / scope
      Added value: +{
      +  "description": "ours (default): this household's recipes. library: Community recipes, the shared pool of public recipes, with cooks/favorites/ratings across households. all: both.",
      +  "enum": [
      +    "ours",
      +    "library",
      +    "all"
      +  ],
      +  "type": "string"
      +}
    • addedOutput schema / properties / items / items / properties / cooks
      Added value: +{
      +  "description": "Households that have cooked it",
      +  "type": "number"
      +}
    • addedOutput schema / properties / items / items / properties / favorites
      Added value: +{
      +  "description": "Households that favorited it",
      +  "type": "number"
      +}
    • addedOutput schema / properties / items / items / properties / forks
      Added value: +{
      +  "description": "Households that added it",
      +  "type": "number"
      +}
    • addedOutput schema / properties / items / items / properties / image_generated
      Added value: +{
      +  "description": "Photo was generated by Agent Chef, so it is safe to show publicly",
      +  "type": [
      +    "boolean",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / items / items / properties / is_public
      Added value: +{
      +  "type": [
      +    "boolean",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / items / items / properties / my_recipe_id
      Added value: +{
      +  "description": "This household's copy, if already added; use that id on ballots",
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / items / items / properties / public_url
      Added value: +{
      +  "description": "Indexable public page, when published",
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
    • changedOutput schema / properties / items / items / properties / rating_count / type
      Previous value: -[
      -  "number",
      -  "null"
      -]New value: +"number"
    • addedOutput schema / properties / items / items / properties / scope
      Added value: +{
      +  "anyOf": [
      +    {
      +      "enum": [
      +        "ours",
      +        "library"
      +      ],
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ]
      +}
    • addedOutput schema / properties / items / items / properties / source_recipe_id
      Added value: +{
      +  "description": "Set when this is the household's copy of a Community recipe",
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / items / items / properties / url
      Added value: +{
      +  "description": "Public page",
      +  "type": "string"
      +}
    • removedOutput schema / properties / items / items / required
      Removed value: -[
      -  "id",
      -  "title"
      -]
  2. First observedv0.1.0

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is covered. The description adds scope context (all recipes ever proposed, including ratings and cook counts), but with an output schema present it doesn't need to detail return values, leaving it adequate rather than rich.

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?

Three tight sentences with no waste; the corpus scope is front-loaded, followed by filters and then the workflow pointer. Efficient, though the description could more sharply frame the search action up front.

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

Completeness4/5

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

With an output schema handling return values and annotations covering safety, the description's remaining job is scope and filters, which it largely does. The one gap is the scope parameter's behavior, which is delegated to the schema.

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 coverage is 25%, so the description carries more of the burden. 'Filter by text, favorites, or tag' maps to query, favorites_only, and tag, but the scope parameter is not mentioned in the description at all. Partial compensation only justifies a baseline 3.

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?

The description names the resource and its scope ('Every recipe the household has ever had proposed') and enumerates the filter dimensions, so an agent can tell it's a search over household recipes. However, the search verb is only implied via 'Filter by', and it doesn't explicitly distinguish itself from siblings like get_past_recipes or get_favorite_recipes.

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

Usage Guidelines3/5

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

It gives one concrete workflow pointer ('Use recipe_id from here with propose_recipes to re-propose'), which implies the tool's role in the proposal flow. But there is no explicit when-to-use vs when-not-to-use guidance or named alternatives for retrieving a single recipe.

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