Skip to main content
Glama

Find the additives named on a label

analyze_label
Read-only

Find the additives named on a label (same as HTTP POST /v1/labels/analyze). Splits the additive section into tokens and returns, per token, the substances it resolves to (SubstanceSummary: facts on their own axis), plus known interactions between the detected substances. Cutting the additive section out of the label is the caller's job; sending the whole ingredient section is allowed. Matching is exact against the alias vocabulary in scope: a token with matches: [] is unresolved, which (open world) does not distinguish "not an additive" from "an additive not known here". axis and lang must be one of the accepted pairs: JP+ja, US+en, EU+nl, EU+fr, EU+de, EU+es, EU+pl, EU+el, EU+bg. Not a safety judgement: every record is a draft and needs verification.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
axisYesRegulatory axis the label or name belongs to: JP, EU or US.
langYesLanguage of the name or label text (ISO 639-1), e.g. ja, en, de, fr.
textYesThe additive (or whole ingredient) section of one label: one raw string (split at 、 , , / for Japanese and , ; . : for Latin script, at bracket depth zero; whitespace is not a separator), or an array of already-split items (tokens[i] corresponds to item i).

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.1/5.0
Behavior5/5

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

Adds substantial behavior beyond the annotations: exact matching against the in-scope alias vocabulary, the meaning of matches: [] (unresolved, open-world ambiguity between 'not an additive' and 'unknown additive'), the required axis+lang pairs, and the explicit caveat that results are drafts requiring verification rather than safety judgements. Note a mild tension with openWorldHint=false in the empty-match semantics, but it describes vocabulary ambiguity, not external-world interaction, so it is not a contradiction.

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?

Front-loads the purpose in the first sentence, then layers mechanics, constraints, and caveats in a logical order. Dense with parentheticals, but nearly every clause carries operative information; only the HTTP-endpoint equivalence is arguably filler.

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?

With no output schema, the description carries the return-value burden and does so: per-token SubstanceSummary records plus known interactions between detected substances, with the empty-match case explained. Combined with the axis/lang constraint and the draft-verification caveat, an agent has everything needed to call and interpret it.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

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 description adds real value the schema lacks: the enumerated legal axis+lang combinations (JP+ja, US+en, EU+nl/fr/de/es/pl/el/bg) and confirmation that either raw text or pre-split arrays are acceptable.

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?

States a specific verb+resource ('Find the additives named on a label') and describes the transformation (tokenize the additive section, resolve substances, surface interactions), so the agent knows exactly what the tool produces. It does not, however, distinguish itself from the sibling analyze_label_diff, which an agent must infer on its own.

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?

The description gives input-scope guidance ('cutting the additive section out of the label is the caller's job; sending the whole ingredient section is allowed'), which is useful precondition context. But it never says when to prefer this over analyze_label_diff, get_substance, or search_substances, 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.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources