MCPFax Food Facts
Server Details
Can this person eat this? Allergens, additives and nutrition from a barcode.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
TDQS
Scored across 3 tools
Each tool has a clearly distinct purpose: demand_report aggregates agent demand, food_by_barcode retrieves specific product data by barcode, and request_data handles new data inquiries. No overlap or ambiguity between them.
All names use snake_case, but they lack a consistent verb_noun pattern. demand_report is noun-noun, food_by_barcode is noun-preposition-noun, and request_data is verb-noun. The names are readable and distinct but stylistically mixed.
With only 3 tools, the server is well-scoped for its purpose: a barcode lookup plus a data demand/request mechanism. Each tool earns its place, and the count falls comfortably within the ideal 3-15 range.
The server covers the core workflow of retrieving food data via barcode, plus demand aggregation and data request submission. Minor gaps exist, such as lacking search-by-name or category features, but these are outside the stated scope and don't create dead ends.
Available Tools
3 toolsdemand_reportWhat agents are asking for most (free)AInspect
FREE, no payment. The aggregate of what agents have told us they are looking for, most-requested first, with the categories nothing available yet serves.
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | Window in days, default 30, max 90. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the disclosure burden. It usefully discloses that the tool is free, returns an aggregate rather than individual requests, sorts by demand, and includes categories with nothing available yet. It does not explicitly state read-only behavior, but for a report tool this is a minor gap.
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?
The description is short but not fully polished: 'FREE, no payment' partly repeats the title's '(free)', and the phrase 'categories nothing available yet serves' is awkward. It is still compact, but the wording 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?
For a simple one-optional-parameter report with no output schema, the description provides enough context: it explains the free aggregate output, the ordering, and the inclusion of unserved categories. The remaining detail about the days parameter is covered by the schema.
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?
The input schema already fully documents the only parameter: days window, default 30, max 90. The description itself adds no parameter-level meaning, so the baseline of 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 identifies the resource as an aggregate of what agents are looking for, states the ordering ('most-requested first'), and mentions unserved categories. This distinguishes it from the package_* siblings, though it does not explicitly differentiate from request_data.
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 implies when the tool is useful: get a free aggregate view of agent demand. However, it gives no explicit when-to-use/when-not-to-use guidance and names no alternatives, leaving routing to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
food_by_barcodePackaged food facts by barcodeAInspect
Look up a packaged food by its barcode and get the fields that answer "can this person eat this?" — ingredients, allergens, traces, additives, Nutri-Score, NOVA processing group and per-100g nutrition. Data is from Open Food Facts, which is crowd-sourced and openly licensed: coverage is uneven by country and a product can be listed with most nutrition empty, so every response carries a completeness flag and missing values are null rather than estimated. A barcode not in the database returns not_found and is NOT charged. Costs $0.005 USDC per call via x402 on Base.
| Name | Required | Description | Default |
|---|---|---|---|
| barcode | Yes | 6-14 digit product barcode, e.g. '737628064502'. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full disclosure burden and does so thoroughly: it flags crowd-sourced data, uneven country coverage, possible empty nutrition fields, null instead of estimated missing values, a completeness flag on every response, not_found behavior, and per-call cost via x402. This is far beyond what structured fields provide.
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?
The description is dense but every sentence earns its place: the core function is front-loaded, followed by data-source caveats, return behavior, and pricing. There is no filler or repetition.
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 single-parameter lookup with no output schema, the description is remarkably complete: it explains input, expected fields, data quality caveats, missing-value handling, not_found behavior, and cost. An agent has enough context to invoke it correctly and interpret the result.
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 already documents the barcode parameter fully, including format, length, and an example. The description adds no new parameter-level meaning beyond reiterating that lookup is by barcode, so the baseline of 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 states a specific verb-resource pair ('Look up a packaged food by its barcode') and lists the exact fields returned. It also frames the purpose around a clear user question ('can this person eat this?'), which distinguishes it from the generic sibling tools demand_report and request_data.
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 gives clear context for when the tool is appropriate: retrieving dietary-relevant food facts from Open Food Facts. It does not explicitly name alternative tools or state when not to use it, but sibling names are generic enough that no exclusion is strictly necessary.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
request_dataTell us what data you are looking for (free)AInspect
FREE, no payment. Describe in your own words the data you are trying to buy — anything, not just food — and get back whether we operate a service that supplies it, with the MCP endpoint if so. Every request is catalogued so repeatedly-requested data gets built. Nothing identifying is stored, only the words of the request.
| Name | Required | Description | Default |
|---|---|---|---|
| need | Yes | What you are looking for. |
TDQS
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 thoroughly: it discloses that the tool is free, that every request is catalogued to inform future data builds, that nothing identifying is stored, and that the response includes availability plus the MCP endpoint when available. This goes well beyond typical disclosure.
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?
Every sentence earns its place: cost, action and outcome, scope expansion, cataloging, and privacy. The free note is front-loaded, and there is no redundant or filler wording.
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 single-parameter tool with no output schema and no annotations, the description covers cost, input flexibility, the nature of the response, and data handling. The 'get back whether... with the MCP endpoint if so' statement sufficiently implies the response format, and a simple yes/no with optional endpoint is enough for this use case.
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% with a clear description and example for the 'need' parameter. The description adds only modest guidance ('in your own words', 'anything, not just food') on top of the schema, so it stays at the baseline for a fully covered 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?
States a specific verb (describe) and resource (the data you are trying to buy), with a clear outcome: get back whether the service supplies it and the MCP endpoint if so. It also explicitly broadens scope beyond food, making it easy to distinguish from the food-focused sibling 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?
Provides clear context for when to use this tool: when you have a data need to describe and want to know if the service can supply it, including non-food data. It does not explicitly name alternatives or state when not to use it, but the 'anything, not just food' phrasing is a helpful differentiation signal.
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.
3 tool updates
- Changed
demand_report1 field changed- added
Input schema / properties / days / examplesAdded value: +[ + "30" +]
- Changed
food_by_barcode1 field changed- added
Input schema / properties / barcode / examplesAdded value: +[ + "737628064502" +]
- Changed
request_data1 field changed- added
Input schema / properties / need / examplesAdded value: +[ + "live electricity spot prices by ZIP" +]
3 tool updates
- First observed
demand_report - First observed
food_by_barcode - First observed
request_data
Related MCP Connectors
USDA FoodData Central nutrient lookup, FDA recall watch, EU FMCG labelling via remote MCP
Barcode lookup, nutrition search, and product comparison for 3M+ crowd-sourced food products.
Nutrition MCP — wraps Open Food Facts API (free, no auth)
Food photo recognition, nutrition search, meal logging and glucose prediction for health apps
Related MCP Servers
- FlicenseBqualityDmaintenanceEnables AI assistants to access food product information, providing nutritional analysis, product comparisons, and recipe suggestions using the Open Food Facts database.21-
- 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.60 npm1Apache 2.0
- FlicenseBqualityDmaintenanceEnables AI assistants to access food product information from Open Food Facts, including nutritional analysis, product comparisons, recipe suggestions, and allergen checks.21-
- AlicenseAqualityDmaintenanceEnables AI assistants to access the Open Food Facts database to query detailed food product information, nutritional data, and environmental scores. Supports product lookup by barcode, smart search with filtering, nutritional analysis, product comparison, and dietary recommendations to help users make informed food choices.51MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.