fmcg.network
Server Details
USDA FoodData Central nutrient lookup, FDA recall watch, EU FMCG labelling via remote MCP
- Status
- Healthy
- Uptime
- 7.3% over 22 days
- OAuth
- Works in Glama
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-03-26
- URL
TDQS
Scored across 6 tools
The core flow search_checks→describe_check→run_check is clearly delineated, and lookup_nutrients is distinct. However, get_source and list_regulations both concern the regulatory corpus and could be confused—one gives the sources behind a specific check, the other lists all regulations/registers.
All six names are snake_case verb_noun (search_checks, describe_check, run_check, get_source, list_regulations, lookup_nutrients). The verb-first convention is applied uniformly across the set.
Six tools is a tight, well-scoped set mapping to discovery, description, execution, sourcing, regulations and nutrient lookup. It is reasonable for the purpose, though slightly lean—no batch/run-all or result-history tool.
The check lifecycle (search, describe, run, source, regulations) plus nutrient data is largely covered, with no obvious dead end. Minor gaps like saving/exporting results or running multiple checks at once could hinder some workflows.
Available Tools
6 toolsdescribe_checkDescribe a checkARead-onlyIdempotentInspect
Inputs, output, market and coverage of one check, plus a ready run_check call.
| Name | Required | Description | Default |
|---|---|---|---|
| check_id | Yes | From search_checks |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, closed-world behavior, so the safety profile is covered. The description adds one genuinely useful behavioral detail, that it emits a ready-to-use run_check call, but says nothing about caching, cost, or failure modes.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single compact sentence with no filler, front-loading the returned facets. Slightly cryptic domain terms ('market', 'coverage') keep it from being fully self-explanatory, but nothing is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description correctly carries the return-value burden by naming the facets returned. For a one-parameter read tool this is nearly sufficient; only the vague terms 'market' and 'coverage' and the unelaborated run_check payload leave small gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% with a single required check_id, so the schema carries the parameter burden. The description only reinforces the 'one check' scope and adds no syntax, format, or sourcing detail beyond what the schema already states.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific resource (one check) and enumerates the payload facets it returns (inputs, output, market, coverage) plus a runnable run_check call. This distinguishes it from search_checks and run_check without opening a schema, though the telegraphic noun-phrase style omits an explicit verb.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: the phrase 'plus a ready run_check call' hints at a describe-then-run workflow, and the schema notes check_id comes 'From search_checks'. There is no explicit when-to-use/when-not or direct comparison against the search_checks sibling.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_sourceGet a check's sourcesBRead-onlyIdempotentInspect
The registers, regulations and references a check answers from, with licence and citation text.
| Name | Required | Description | Default |
|---|---|---|---|
| check_id | Yes | From search_checks |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is fully covered by structured data. The description adds content-level detail (licence and citation text are included) but says nothing about failure behaviour when check_id is unknown or about result size.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence with no filler, and the most useful information (what is returned) comes first. It is a sentence fragment rather than a front-loaded statement of action, which keeps it just short of 5.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description must carry the return-value burden, and it does name the main payload components (registers, regulations, references, licence, citation). For a simple one-parameter read tool that is largely sufficient, though the lack of any usage context leaves a small gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the single check_id parameter is already documented as coming 'From search_checks'. The description adds no format, source, or constraint detail beyond the schema, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the specific resource returned (registers, regulations, references) plus the licence and citation text, which is more informative than a tautology. However, it is a bare noun phrase with no verb and never distinguishes itself from siblings like describe_check or list_regulations, so it lands at 4 rather than 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use statement, no prerequisites, and no mention of the neighbouring tools. With siblings such as describe_check and list_regulations in the same namespace, the absence of any routing guidance leaves the agent to guess which tool returns sources versus which describes a check.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_regulationsList covered regulationsBRead-onlyIdempotentInspect
Regulations and live registers the checks cover, each with its check_ids. Optional market filter.
| Name | Required | Description | Default |
|---|---|---|---|
| market | No | Optional market code: us, eu or uk |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, non-destructive and closed-world, so the safety profile is covered. The description adds a small amount of context by noting the result set is the covered regulations/registers with their check_ids, but says nothing about ordering, completeness, or how the live registers relate to the regulations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two compact sentences, with the resource description front-loaded and the filter note trailing. No filler, though the phrase 'live registers the checks cover' is slightly compressed and could be clearer.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description partially compensates by indicating items carry check_ids, but it does not describe the overall return shape (list? grouped by regulation?) or whether the market filter narrows regulations, registers, or both. Adequate but leaves an agent guessing at the response structure.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the single market parameter already documents its allowed values (us, eu, uk) in the schema. The description's 'Optional market filter' merely restates that, adding no format or defaulting detail beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the resource ('regulations and live registers the checks cover') and its payload shape ('each with its check_ids'), which is enough for an agent to distinguish it from search_checks or describe_check. It omits an explicit verb, relying on the title's 'List', but the read-only listing intent is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to reach for this tool versus siblings like search_checks or describe_check. The only usage cue is 'Optional market filter', which is a parameter note rather than routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lookup_nutrientsLook up nutrients (USDA FoodData Central)ARead-onlyIdempotentInspect
Nutrient composition of a food from USDA FoodData Central: finds the best match for a query (or takes an fdc_id) and returns its nutrients with the record's data type and date.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Food, ingredient, brand or UPC, e.g. 'almond flour' | |
| fdc_id | No | Optional fdcId, skips the search | |
| dataType | No | Optional: Foundation, SR Legacy, Branded or Survey (FNDDS) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive/open-world, so the safety profile is covered. The description adds genuinely useful behavior beyond that: it performs a fuzzy 'best match' search (so results may not be the exact food requested) and it discloses the returned fields (nutrients, data type, date). It still doesn't say whether multiple matches are surfaced or how a miss is reported.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single dense sentence that front-loads the resource, then the two input modes, then the return payload. No filler, no repetition of the title.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-required-parameter read tool with no output schema, the description covers inputs, resolution strategy and returned fields, which is close to sufficient. Remaining gaps are minor: units/precision of nutrient values and no-match behavior, but nothing blocks correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and the schema descriptions already explain query, fdc_id ('skips the search') and the dataType values, so the description mostly restates structured data. The parenthetical '(or takes an fdc_id)' mirrors the schema rather than adding new semantics such as precedence when both are supplied.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Nutrient composition of a food from USDA FoodData Central') plus the two resolution paths (query match or fdc_id) and what is returned. The sibling tools (checks/regulations) occupy an entirely different domain, so no differentiation is required, and an agent can tell immediately what this returns.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied rather than stated: the agent can infer that a query triggers a search while fdc_id 'skips the search', and that dataType narrows the source. There is no explicit when-to-use guidance, no mention of when this tool is preferable to other lookups, and no note on what happens when nothing matches.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
run_checkRun a checkARead-onlyIdempotentInspect
Run one check and get a cited answer. Pass check_id and the check's own arguments (see describe_check).
| Name | Required | Description | Default |
|---|---|---|---|
| check_id | Yes | From search_checks | |
| arguments | No | The check's input, per describe_check |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint, so the safety profile is covered without the description's help. The description adds that the result is a 'cited answer', a small but real piece of output context; it says nothing about auth, rate limits, or cost of execution.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no filler, with the core action and result stated first and the parameter workflow second. Every clause carries information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, and 'get a cited answer' is a thin but adequate hint at the return. For a two-parameter tool whose complex nested argument is delegated to describe_check, this is nearly complete; only the return shape and any execution constraints remain unstated.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the nested 'arguments' object has no declared properties and the description explicitly defers its shape to describe_check, which is the only meaningful guidance an agent can get for that unconstrained object. It also reinforces the required check_id without repeating schema text verbatim.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (run), resource (a check) and outcome (a cited answer), which is more than a restatement of the title. It also points to describe_check for the argument shape, giving some differentiation from siblings, though it never contrasts itself with search_checks or list_regulations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies a workflow by directing the caller to describe_check for arguments, and the schema notes check_id comes 'From search_checks', so the search → describe → run chain is inferable. However, no explicit when-to-use or when-not-to-use guidance is given, and no alternative is named or excluded.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_checksSearch compliance checksARead-onlyIdempotentInspect
Find food, cosmetics and FMCG compliance checks by keyword and market (us, eu, uk). Returns check_ids for describe_check and run_check. An empty query lists all checks.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results, default 10 | |
| query | No | Keywords, e.g. 'recall listeria', 'nutrition label', 'FSVP' | |
| market | No | Optional market code: us, eu or uk |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnlyHint, idempotentHint, non-destructive), so the bar is lower. The description still adds useful behavior beyond the annotations: the empty-query-lists-all semantics and the fact that results are check_ids intended for two named follow-up tools. It omits pagination/truncation behavior for the limit parameter.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences with zero filler. The core purpose and market scope are front-loaded, and the follow-up-tool routing is stated in the same breath.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a search tool with no output schema, the description is complete: it says what is searched, what is returned (check_ids), and which tools consume that output. No nested objects or required params complicate the contract.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema documents all three parameters and baseline is 3. The description adds genuine semantics beyond the schema for the query parameter ('an empty query lists all checks') and confirms the market codes, nudging this above baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb ('Find') plus resource ('food, cosmetics and FMCG compliance checks') with explicit scope (keyword and market). It clearly distinguishes itself from describe_check and run_check by framing itself as the lookup step that produces check_ids for those tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It states the entry condition (search by keyword and market) and routes the agent downstream by naming describe_check and run_check as consumers of the returned check_ids, plus notes that an empty query lists all checks. It stops short of explicitly naming a sibling as the alternative for a given scenario, so no full 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
6 tool updates
- First observed
describe_check - First observed
get_source - First observed
list_regulations - First observed
lookup_nutrients - First observed
run_check - First observed
search_checks
Related MCP Connectors
Nutrition MCP — wraps Open Food Facts API (free, no auth)
Unlock the power of food transparency with our Open Food Facts MCP server. Easily look up any food
Look up a packaged food by barcode, search and compare products, and check listed allergens.
Food and nutrition data: search, macros, and comparisons
Related MCP Servers
- AlicenseAqualityAmaintenanceProduct evaluation MCP server for US packaged food. Health scores, ingredient safety, regulatory flags, recall history, corporate ownership.21MIT
- FlicenseNot gradedqualityCmaintenanceProvides access to USDA FoodData Central database, enabling food search, nutrition details, and comparison for dietary analysis via MCP.5-
- AlicenseNot gradedqualityAmaintenanceLook up food products by barcode, search by ingredient or nutrition filter, compare products side-by-side, and browse the canonical tag vocabulary via MCP.364 npm1Apache 2.0
- AlicenseNot gradedqualityCmaintenanceEnables querying a global food nutrition database of generic and branded products, including search by name, lookup by barcode, and retrieval of resolved nutrient values pinned to a dated snapshot. Coverage spans USDA FoodData Central and Open Food Facts sources, with freshness health checks available.AGPL 3.0
Glama MCP Gateway
Add one secure layer between your agents and this server.