Skip to main content
Glama
Canada's Food Guide MCP Server

Canada's Food Guide MCP Server

Search Recipes

search_recipes

Search Health Canada's Food Guide recipes from an offline local copy by meal, collection, or free-text terms, returning titles, URLs, slugs, and tags.

Instructions

Search Health Canada's Food Guide recipes from a local offline copy.

The search runs against recipes.json, an offline snapshot of Health Canada's Food Guide kitchen recipe pages built with foodguide data build recipes. Each recipe is government-verified, nutrition-focused content designed to help Canadians eat well.

Each result includes title, url, slug and the recipe's raw tags.

Input Schema

NameRequiredDescriptionDefault
limitNoMaximum number of results to return (default: 20); there is no pagination offline, so raise this to see more. A value of 0 or less means no limit.
mealsNoFilter by meal tags (e.g. ["breakfast", "snack"]). Values may be raw tags ("meal__snack") or human labels ("Snack"); see list_filters.
fruitsNoNo longer supported: the new canada.ca recipe pages have no fruit tags. Values are returned in "filters_ignored"; use search_text instead (e.g. search_text="apple").
proteinsNoNo longer supported: no protein tags exist on the new recipe pages; use search_text instead.
appliancesNoNo longer supported: no appliance tags exist on the new recipe pages; use search_text instead.
vegetablesNoNo longer supported: no vegetable tags exist on the new recipe pages; use search_text instead.
collectionsNoFilter by collection tags (e.g. ["vegetarian"]). Values may be raw tags ("collection__vegetarian") or human labels ("Vegetarian"); see list_filters.
search_textNoFree-text search across recipe titles, intros, ingredients and directions (e.g. "lentil", "apple crisp"). Empty matches everything.
whole_grainsNoNo longer supported: no whole-grain tags exist on the new recipe pages; use search_text instead.

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv3.0.0

TDQS

B3.1/5.0
Behavior3/5

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

With no annotations, the description carries the full burden and does disclose meaningful behavior: results come from a local offline copy rather than a live API, and each hit returns title, url, slug and raw tags. It omits important behavioral facts an agent needs, notably that six of the nine filter parameters are silently ignored and reported in 'filters_ignored', and that the offline snapshot can go stale relative to canada.ca.

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

Conciseness3/5

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

The lead sentence is front-loaded and useful, but the second paragraph spends words on build tooling and promotional framing ('government-verified, nutrition-focused content designed to help Canadians eat well') that does not help invoke the tool. The closing sentence restates result fields already captured by the output schema.

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?

Because an output schema exists, the description need not explain return values, and it adequately covers data provenance. For a 9-parameter search tool sitting among ~45 siblings, however, it leaves gaps: no mention of the deprecated filter behavior, no steering toward get_recipe or list_filters, and no note on the limits of the offline corpus.

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 every parameter is documented inline with examples and defaults, so the schema does the heavy lifting. The description adds nothing beyond it about parameters, which is the baseline 3 case rather than a deficiency.

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 specific verb and resource ('Search ... recipes') and pins down the corpus: an offline snapshot of Health Canada's Food Guide recipe pages built with `foodguide data build recipes`. An agent can tell this is a search over a bundled recipe index, distinct from the singular get_recipe sibling, though no sibling is named explicitly.

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

Usage Guidelines2/5

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

The description gives no when-to-use guidance: it never says how this differs from get_recipe (fetch one recipe), list_filters (enumerate valid tags), or the recipe-nutrition tools. The only routing hints ('use search_text instead', 'see list_filters') live buried in the input schema for deprecated parameters, not in the description itself.

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