Skip to main content
Glama

nutrition-intelligence

resolve

Find what free-text food phrases refer to: "2 large eggs scrambled", "1 cup cooked rice", "Clif Bar chocolate chip". Batch up to 50 phrases. Default mode "candidates" returns, per phrase, the parsed amount and ranked candidates, each with its portions (label and grams), the amount in grams when the phrase states it exactly ("150 g", "1 cup", "2 large"), and, if you pass fields, values for that amount (or per 100 g / per serving when no amount is stated), each with its proof rank and source; a field with no value is null with the reason. The first candidate is the selection (selected: true) with an amount; "assumed" lists what the phrase did not say ("item": other close matches exist; "portion": a typical size was taken, other_sizes lists the rest). Answer from it, or choose another candidate or portion. Mode "pick" returns only the selection, with the same "assumed".

Input Schema

NameRequiredDescriptionDefault
modeNocandidates
kindsNo
limitNoCandidates per phrase.
textsYes
fieldsNoOnly return these nutrient keys (e.g. ["energy","protein"]). Saves tokens. A group name returns every key under it, each as its own value in its own unit, never added or converted: "vitamin_a" gives vitamin_a.rae (µg) and vitamin_a.iu (IU); "carbohydrate" gives carbohydrate.total (includes fibre), carbohydrate.available (excludes it) and carbohydrate.available_mse. A key that is itself a registry key (e.g. "fat") is just that key. A name that matches nothing comes back missing with the closest keys.
localeNoBCP 47 locale, e.g. en-US, en-GB, ja-JP. Decides household measure sizes (a US cup is 236.6 ml, a metric cup 250 ml).
marketNoISO 3166-1 country where the item is sold or eaten, e.g. US, GB, JP.
regimeNoWith fields: add values derivable for this regime (e.g. EU adds salt from sodium).
portionsNoPortions per candidate.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A3.6/5.0
Behavior4/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 so well: it discloses the ranked-candidate structure, portion labels and grams, per-field proof rank and source, null-with-reason for missing values, the selected:true marker, and the "assumed" block explaining item vs portion assumptions. It omits non-functional traits (rate limits, permissions), but this is a read lookup where those matter less; the return semantics are unusually well disclosed.

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?

A single dense paragraph built from semicolon-chained clauses; the reader must unpack a lot to reach the mode semantics and the "assumed" explanation. Nearly every sentence carries useful content, so it is not padded, but the front-loading is weak and the lack of structure hurts scanability.

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?

No output schema exists, yet the description thoroughly explains the return shape per mode, including what "assumed" means and how missing fields are reported, which is the critical gap for a 9-parameter resolver. It remains incomplete only on auxiliary parameters (kinds, locale, market, regime) that the schema partially covers.

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 67%, so the schema itself documents several parameters (limit, portions, fields, locale, market). The description adds real meaning for mode (candidates vs pick) and fields ("if you pass fields, values for that amount... or per 100 g / per serving when no amount is stated"), but says nothing about kinds, regime, locale, market, limit, or portions. Baseline 3 is appropriate at this coverage level.

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?

Opens with a specific verb and resource: "Find what free-text food phrases refer to", backed by three concrete example phrases. It clearly distinguishes the two modes ("candidates" vs "pick"), so an agent understands the operation. It stops short of naming which sibling it beats (search, lookup_barcode, nutrition), so the boundary is inferred rather than stated.

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 guidance is present but implicit: "Answer from it, or choose another candidate or portion" and "Mode 'pick' returns only the selection" tell the agent how to consume results and what the lean mode gives up. There is no explicit when-to-use-this-vs-sibling guidance (e.g. versus search or lookup_barcode), and no statement of exclusions or prerequisites.

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