Skip to main content
Glama

Check ingredients against US retailer private-label rules

check_retailer_ingredients
Read-onlyIdempotent

Screen food ingredients against the public private-label ingredient rules of 7 US retailers: Trader Joe's (TJ), Whole Foods Market (WFM), Kroger Simple Truth (ST), Walmart (WMT), Sam's Club (SAM), Aldi (ALDI) and Sprouts (SPR). Covers about 54 ingredients and classes (synthetic colors, high-intensity sweeteners, preservatives, emulsifiers, fats, flavors). Statuses: BANNED, BANNED_BY_PRINCIPLE, ALLOWED_NAMED, CONDITIONAL, NOT_LISTED (not the same as approved), UNVERIFIED, CONFIRM_WITH_BUYER. Public lists are not full specifications: always confirm with the buyer.

Input Schema

NameRequiredDescriptionDefault
retailersNoOptional subset of retailer codes. Default: all 7.
ingredientsYesIngredient names as on a label, e.g. ['sucralose', 'Red 40', 'sodium benzoate'].

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, closed-world and non-destructive, so the safety profile is covered. The description adds genuinely non-obvious behavioral context: the full status vocabulary, the warning that NOT_LISTED is not approval, and that public lists are incomplete specifications requiring buyer confirmation. It stops short of describing response shape or per-retailer coverage gaps.

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?

Three sentences, front-loaded with the action and scope, then the status vocabulary, then the caveat. The retailer/code enumeration is long but earns its place by mapping enum values to names; the status list is similarly load-bearing. Slightly dense, but no filler sentences.

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?

With no output schema, the description carries the burden of explaining return values, and it does so by enumerating all seven statuses and flagging the NOT_LISTED trap. The main residual gap is that it doesn't say whether results are returned per-retailer or per-ingredient, which matters for a multi-retailer screen.

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 100%, so both parameters are already documented, which sets the baseline at 3. The description does add some value by expanding the retailer codes (TJ = Trader Joe's, WFM = Whole Foods Market, etc.) and by characterizing ingredient granularity via the 54 ingredient/class scope, but it adds nothing about the 60-item cap or batching.

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?

The description opens with a specific verb and resource ('Screen food ingredients against the public private-label ingredient rules') and immediately bounds the scope to 7 named US retailers with their codes. That scope is distinct from siblings like search_label_ingredients or search_gras_notices, so an agent can route without opening the schema.

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 implied by the domain framing (screening a formulation against retailer private-label rules) and reinforced by the closing caveat to confirm with the buyer. However, it never states when to choose this over search_label_ingredients or search_gras_notices, and gives no preconditions such as needing a known retailer target.

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