Skip to main content
Glama

nutrition-intelligence

query

Search and mine the whole database: keywords (the last word also matches as a prefix, for type-ahead), filters on any nutrient, sorting by up to three keys, per 100 g, per 100 kcal or per serving. E.g. foods with at least 20 g protein per 100 kcal and under 5 g sugars sorted by fibre; branded yogurts by protein; supplements by magnesium. Runs in memory: milliseconds. Rows whose values contradict each other (macros over 100 g, energy far from the macros) are left out unless include_inconsistent.

Input Schema

NameRequiredDescriptionDefault
qNoKeywords in any language. Omit to scan everything that matches the filters.
hasNoOnly rows with a known value for each of these properties (registry keys or line:<name>).
perNoper_100g compares foods and products; per_serving covers supplements and products with a serving weight; per_100kcal needs at least 20 kcal on the basis of the row (per 100 g, or per serving), below that the row is left out; native shows each row on its own basis, for mixed lists. Each row says what its values are per in values_per.per_100g
sortNo
brandNoBrand name contains this.
kindsNo
limitNo
whereNoRanges on the chosen basis (per). A property is a registry key or a free label line, line:<name> (see label_lines).
facetsNoAlso count matches by kind, brand, dataset, market and proof rank. Each facet counts what passes every other filter.
fieldsNoValues to return per row. Defaults to energy, macros and anything filtered or sorted on. A group name ("vitamin_a") returns each of its keys separately; where and sort take one key.
marketNoCountry code, e.g. US, CA, FR.
offsetNo
brand_idNoExactly this brand (a br_ id).
datasetsNoSource datasets, e.g. "Foundation", "SR Legacy", "CIQUAL 2025", "Branded", "NIH DSLD", "Health Canada LNHPD". Facets list them.
max_rankNoOnly rows whose strongest proof is at least this strong (1 strongest).
has_barcodeNo
include_inconsistentNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A3.8/5.0
Behavior4/5

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

With no annotations supplied, the description carries the burden and does well: it discloses in-memory execution latency ('milliseconds'), the prefix-matching behavior of the trailing keyword for type-ahead, and that inconsistent rows (macros over 100 g, energy far from macros) are silently excluded unless include_inconsistent is set. It omits read-only status, pagination/total-count behavior, and what happens on empty results, which keeps it short of a 5.

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?

The core capability is front-loaded in the first clause, and every sentence carries information — filtering, bases, sorting, latency, and the consistency rule. The three stacked 'E.g.' examples are slightly dense and would scan faster as a short list, but none is padding.

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?

For a 17-parameter tool with no output schema, the description covers the behavioral essentials an agent needs: filtering semantics, per-basis comparison rules, sorting limits, and row exclusion. What it does not cover is the response shape or pagination behavior, and a few parameters (limit, offset, facets) are left entirely to schema defaults. That is a modest gap given the tool's complexity.

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 65%, so the description must add meaning and does: it explains the prefix semantics of q for type-ahead, the three-key sorting cap, the per_100kcal 20 kcal threshold that drops rows, and the include_inconsistent escape hatch. The per-basis distinction (per_100g compares foods, per_serving for supplements) is spelled out at a level the schema only partly covers. Remaining gaps are parameters like has_barcode and max_rank, whose meaning is left entirely to the schema.

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 opens with a concrete verb and resource, 'Search and mine the whole database,' and immediately scopes it with keywords, nutrient filters, sorting, and per-100 g/100 kcal/serving bases. Concrete examples (protein-dense low-sugar foods, branded yogurts, supplements by magnesium) make the tool's remit unmistakable. It does not, however, distinguish itself from the sibling 'search' tool, so an agent still has to guess which of the two to call.

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?

Usage is conveyed only through worked examples such as 'foods with at least 20 g protein per 100 kcal and under 5 g sugars sorted by fibre,' which imply the filtering/sorting use case rather than stating it. There is no explicit when-to-use versus when-not guidance and no named alternative among the many siblings (search, get, compare, nutrition). The examples are helpful but leave the routing decision to inference.

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