Skip to main content
Glama

Measured cost of a healthy diet, by country, and how far modelled grocery prices are from it

compare_food_cost
Read-onlyIdempotent

What eating a healthy diet costs per person per day, MEASURED: the World Bank's Food Prices for Nutrition series (the cheapest locally available foods that meet a healthy-diet standard, from International Comparison Program retail prices), 165 of the 186 spine countries. Returns the cost in local currency (dailyLocal) and USD (dailyUsd, monthlyUsd), the share of people who cannot afford it (unaffordable.pct, on its own year), the diet's split across six food groups as percentage shares for the single year published, and how this site's MODELLED grocery prices compare: vsUsMeasured and vsUsModelled are each a multiple of the US, and modelError = modelled ÷ measured (below 1, the model understates food there). A ranking also returns modelErrorSummary for the whole site. Where the local figure does not convert consistently at the site's exchange rate (a parallel market, a recent devaluation, a currency change) the dollar figure and the comparison are withheld and a caveat says why; a country with no survey is NO_DATA, never zero. It is a least-cost diet, not what a typical or expat household spends, and it feeds no total. country for one, countries to compare, neither ranks by metric (dailyUsd default, or unaffordablePct), cheapest first unless sort=highest. Published cost figures, for information only; every response says so first.

Input Schema

NameRequiredDescriptionDefault
sortNolowest
limitNoMaximum rows in a ranking.
metricNodailyUsd
countryNoOne ISO alpha-2 code.
countriesNoComma-separated ISO alpha-2 codes, two or more, for a side-by-side.

Output Schema

NameRequiredDescriptionDefault
okNo
rowsNo
caveatsNo
dailyUsdNo
excludedNo
dailyLocalNo
modelErrorNo
attributionNo
modelErrorSummaryNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A4.5/5.0
Behavior5/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), and the description adds substantial context beyond them: dollar figures/comparisons are withheld when local currency does not convert consistently, NO_DATA is never zero, responses always lead with a disclaimer, and it feeds no total. These are real behavioral traits an agent cannot infer from annotations.

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?

It is front-loaded with the noun phrase defining the tool, but the body is a dense, run-on paragraph laden with parentheticals. Much of it earns its place, yet the measured/modelled comparison and the trailing disclaimer sentence are restated across several clauses, costing readability.

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 complex measured-vs-modelled cost tool, the description covers source, coverage, units, the modelError comparison, withholding caveats, NO_DATA semantics, and the scope limitation (least-cost diet, not typical household spend). With an output schema present, the extra field detail is redundant but not harmful, and nothing needed 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.

Parameters4/5

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

With 60% schema coverage, the description usefully explains semantics the schema omits: `country` means one, `countries` means two-or-more, neither `country` nor `countries` triggers a ranking, and `metric` selects dailyUsd (default) or unaffordablePct. It adds meaning over the enum/default fields, though it leaves `limit` and `sort` largely to 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?

The description gives a specific verb+resource+scope: the World Bank's Food Prices for Nutrition measured cost of a healthy diet per person per day, naming the data source, coverage (165 of 186 spine countries), and explicitly labeling it 'measured' as opposed to the site's 'modelled' grocery prices. This separates it from siblings like compare_total_cost and estimate_micro_costs, which are not diet-cost tools.

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

Usage Guidelines4/5

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

It states the mode-selecting parameters explicitly: `country` for one, `countries` for a side-by-side, and neither ranks unless you pass `metric`, with `sort=highest` reversing the default cheapest-first ordering. It also flags the 'for information only' caveat context. It does not, however, route the agent to any named sibling alternative, so it stops short of a 5.

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.

Resources