Skip to main content
Glama

Food Facts

Check allergens

check_allergens
Read-onlyIdempotent

Use this when the user asks whether a product contains certain allergens, such as "does 5449000000996 contain milk or nuts?". Pass the barcode and the allergens to avoid. Returns which are listed as contained, which as possible traces, which are not listed, and whether the entry has no allergen data at all. It reads the entry's allergen tags and ingredients text, which are crowd-sourced and can be wrong: it is a data lookup, not a safety guarantee. The physical label wins.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
avoidYesAllergens to look for, such as milk, nuts, peanuts, soy, gluten, eggs, fish, shellfish, sesame
barcodeYesEAN or UPC barcode, 8 to 14 digits

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
urlNo
nameNo
avoidNo
brandsNo
noticeYes
statusYes
barcodeYes
messageNo
unknownNo
containsNo
not_listedNo
attributionYes
may_containNo
unrecognisedNo
listed_tracesNo
listed_allergensNo
data_quality_noteNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.5/5.0
Behavior5/5

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

Annotations already cover the safe-read profile (readOnly, idempotent, non-destructive, openWorld), and the description goes well beyond them: it calls out that tags/ingredients are crowd-sourced and may be wrong, that this is a data lookup rather than a safety guarantee, and that the physical label wins. That is exactly the kind of trust/limitation context an agent needs before relaying allergen results to a user.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the usage trigger and example, followed by return-value summary and then the caveat. Every sentence adds distinct information (trigger, inputs, outputs, trust limits) with no filler or repetition.

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?

Despite an output schema existing, the description usefully summarizes the four result categories (contained, possible traces, not listed, no data), and the annotations cover safety semantics. An agent has everything needed to select and correctly frame the call.

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 description coverage is 100% – both barcode and avoid are documented with format and examples – so the schema carries the parameter burden. The description restates the two inputs but adds no format, ordering, or matching semantics (e.g., substring vs exact allergen matching) beyond the schema, making the baseline 3 appropriate.

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?

States a specific verb and resource (check allergens for a product) and scopes it to a barcode plus an avoid-list. The example query makes the intent unmistakable, and it is clearly distinguishable from siblings like lookup_barcode or search_products, which do not perform allergen matching.

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?

Gives an explicit trigger condition ('when the user asks whether a product contains certain allergens') plus a sample utterance, which is strong usage guidance. It does not, however, contrast itself with lookup_barcode or any other sibling, nor state when not to use it, so it falls short of the top band.

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