Skip to main content
Glama
Tandoor Recipes MCP

Tandoor Recipes MCP

List recipes

list_recipes
Read-onlyIdempotent

Search and list recipes using filters for foods, keywords, books, ratings, and dates, with sorting and pagination. Returns slim recipe summaries by default; use full format for raw API details.

Instructions

List/search recipes with extensive filtering. Default returns slim results (id, name, description, servings, rating, keywords). Pass format="full" for raw API response. sort_order options: score,-score,name,-name,lastcooked,-lastcooked,rating,-rating,times_cooked,-times_cooked,created_at,-created_at,lastviewed,-lastviewed. If filtering by food/keyword/book NAMES (not ids), prefer search_recipes — it resolves names to ids for you and reports unresolved names in _meta.unresolved so you know what was dropped. If this returns an empty result set, recommend: broaden the query, drop restrictive filters, or try search_recipes if you were passing names.

Input Schema

NameRequiredDescriptionDefault
newNo
pageNo
booksNo
foodsNo
queryNo
unitsNo
filterNoID of a saved CustomFilter
formatNoResponse detail level. Default "slim".
randomNo
ratingNo
makenowNoOnly recipes makeable with on-hand foods
books_orNo
foods_orNo
internalNo
keywordsNo
books_andNo
createdbyNo
createdonNo
foods_andNo
page_sizeNo
updatedonNo
num_recentNo
rating_gteNo
rating_lteNo
sort_orderNo
keywords_orNo
timescookedNo
books_or_notNo
cookedon_gteNo
cookedon_lteNo
foods_or_notNo
keywords_andNo
viewedon_gteNo
viewedon_lteNo
books_and_notNo
createdon_gteNo
createdon_lteNo
foods_and_notNo
updatedon_gteNo
updatedon_lteNo
keywords_or_notNo
timescooked_gteNo
timescooked_lteNo
keywords_and_notNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv3.4.0

TDQS

A4/5.0
Behavior4/5

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

Annotations already establish readOnly/idempotent/non-destructive, so the safety profile is covered. The description adds genuinely non-obvious behavior: the default slim payload's exact fields, that format="full" returns the raw API response, the complete sort_order vocabulary, and that unresolved names are silently dropped in the sibling tool. It does not mention pagination defaults or result-size limits despite page/page_size params.

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 default return shape and the format toggle, then routing, then failure recovery — a sensible order. The inline sort_order enumeration is long but is high-value information an agent would otherwise have to guess at; there is little filler elsewhere.

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

Completeness3/5

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

For a 44-parameter filter tool with no output schema, the description does well on output shape and tool routing, which is the highest-risk area. It falls short on the filter-semantics surface: the AND/OR/NOT array variants and the multiple date-range parameters are the main source of incorrect calls and are not addressed at all.

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 only 7% across 44 parameters, so the description must carry weight; it explains format, the sort_order value set, and that books/foods/keywords take ids rather than names. However, the large and easy-to-confuse families (foods_or vs foods_and vs foods_or_not, keywords equivalents, books_or_not, cookedon_/createdon_/updatedon_/viewedon_ range pairs, timescooked_gte/lte, makenow, num_recent, random) receive no explanation, leaving most parameters undocumented anywhere.

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?

States a concrete verb and resource ("List/search recipes with extensive filtering") and immediately positions itself against search_recipes for name-based filtering. It is clear what the tool does, though the dual "list/search" framing leaves the primary intent slightly ambiguous compared with the sibling that is explicitly for searching.

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 routes the agent: prefer search_recipes when filtering by food/keyword/book NAMES because it resolves names to ids and reports _meta.unresolved. It also prescribes recovery steps when the result set is empty (broaden query, drop filters, switch tools), covering both when-to-use and what-to-do-on-failure.

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