Skip to main content
Glama

FDA import alert red lists

Server Details

Is a foreign supplier on an FDA import alert red list, detained at the US border? 14,000+ listings.

If you are the author of this connector, you can claim ownership with GitHub, an HTTP challenge, or a DNS record. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL
Repository
joelp22-maker/referencesource-mcp
GitHub Stars
0

TDQS

A4.3/5.0

Scored across 6 tools

Disambiguation5/5

Each tool targets a distinct query shape: get_listing fetches one full record by ID, list_alert_firms returns all firms on an alert, list_import_alerts lists alert summaries, list_recent_listings filters by date, resolve_firm searches by firm name, and verify_quote checks claims. Although several return listing-like records, the input and output focus are clear enough that an agent can select correctly.

Naming Consistency5/5

All names follow a snake_case verb_noun pattern (list_*, get_*, resolve_*, verify_*), and the verb reflects the operation type. Minor variation in verb choice is justified by different retrieval modes.

Tool Count5/5

Six tools cover read-only access to a focused dataset without redundancy or bloat. The count feels deliberate for the domain.

Completeness4/5

The surface supports the main workflows: discover alerts, enumerate firms on an alert, search a supplier, view full detail, monitor recent additions, and validate claims. A minor gap is there is no cross-alert product-code or country-wide listing without making broad searches, so it is not a full faceted query API.

Available Tools

6 tools
get_listingGet one red-list entry in fullA
Read-only
Inspect

Everything FDA prints for one red-list entry: the firm name and address, the import alert and its title, the product code and description, FDA's stated reason (the Notes block — the actual finding, e.g. "Decomposition" or a confirmed laboratory result), and the date published, with the FDA page and a verbatim quote. Record IDs come from resolve_firm or list_alert_firms.

ParametersJSON Schema
NameRequiredDescriptionDefault
record_idYesThe listing's record id, e.g. "argentina-54-16-molecular-dynamics-sas".

Output Schema

ParametersJSON Schema
NameRequiredDescription
listingYes
registerNo

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is known. The description adds value by detailing what the tool returns (the full content of a red-list entry), which is behavioral context beyond the annotations. It doesn't contradict the annotations.

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?

The description is detailed but not bloated; it front-loads the purpose ('Everything FDA prints for one red-list entry') and lists the components in a compact list. It is well-structured and each sentence contributes to understanding the tool's output.

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?

For a single-record retrieval tool with one parameter and an output schema (not shown but present), the description is complete. It specifies what is returned, where to get the ID, and implicitly confirms no side effects. An agent has everything needed to call it correctly.

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?

The schema has 100% coverage, including a description and example for the single parameter record_id. The description adds the useful context that IDs come from resolve_firm or list_alert_firms, but this is marginal beyond the schema's example. The baseline of 3 is appropriate for high schema coverage.

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 clearly states the tool's purpose: retrieving a single red-list entry in full, enumerating all the components it returns (firm name/address, alert, product code, reason, date, page, quote). It differentiates from sibling tools like list_alert_firms (which lists firms) and resolve_firm (which resolves IDs) by focusing on a single full entry.

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?

The description explicitly states that record IDs come from resolve_firm or list_alert_firms, providing clear context for when to use this tool (after obtaining an ID from those tools). It doesn't explicitly list exclusion criteria for when not to use it, but the source-of-ID guidance is sufficient for a fetch-by-id operation.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_alert_firmsList the firms red-listed on one import alertA
Read-only
Inspect

Who is on this import alert? Returns the firms red-listed on one alert number (from list_import_alerts), newest listing first, optionally narrowed to a country — for example every Vietnamese firm on 16-120, or every firm on 66-57. Each with the FDA page and a verbatim quote.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoHow many to return, 1–20. Default 20.
countryNoOptional country filter.
import_alert_numberYesThe alert number as FDA prints it, e.g. "16-120" or "66-57".

Output Schema

ParametersJSON Schema
NameRequiredDescription
firmsYes
coverageYes
registerNo
firms_matchedYes
firms_returnedNo
import_alert_numberYes

TDQS

A4.4/5.0
Behavior4/5

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

Beyond the read-only annotations, the description discloses useful behavior: results are ordered newest first, can be filtered by country, and each entry includes the FDA page and a verbatim quote. No contradictions with annotations.

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?

Two sentences with no wasted words. The opening question front-loads the purpose, and the second sentence packs ordering, filtering, and output content into a compact, readable form.

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 an output schema present and read-only annotations, the description supplies the missing behavioral context: data source, ordering, filtering, and result contents. It could explicitly name sibling alternatives, but an agent has enough to invoke it correctly.

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 schema already documents all parameters. The description adds value with concrete examples of import_alert_number formats and clarifies that country is an optional narrowing filter on top of an alert number.

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 clearly states the operation: returns firms red-listed on one import alert number. It identifies the resource precisely, ties the input to list_import_alerts, and gives concrete examples that distinguish it from alert-level and firm-resolution siblings.

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?

The description implies the intended workflow by pointing to list_import_alerts as the source of alert numbers and shows how to narrow by country. It does not explicitly contrast with get_listing or resolve_firm, but the usage context is clear enough.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_import_alertsList the import alerts this register coversA
Read-only
Inspect

Which FDA import alerts are in here, and how many firms are on each? Returns the alert number, FDA's own title for it, the number of firms red-listed, how many countries they are in, and the newest listing date. Call this first to see what can be answered, and to get an alert number for list_alert_firms.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
alertsYes
coverageYes
registerNo
alerts_totalYes

TDQS

A4.7/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds useful behavioral context: it returns aggregate counts (firms, countries) and a 'newest listing date', and it frames the tool as a discovery/overview step. It doesn't describe pagination or sorting, but for a zero-parameter read-only tool that 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.

Conciseness5/5

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

Three sentences, each earning its place: the first frames the question the tool answers, the second lists the return fields, the third gives usage sequencing. No filler or repetition of schema/annotation content.

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?

For a zero-parameter, read-only, output-schema-bearing tool, the description is complete. It explains what the tool returns, why an agent would call it, and how it connects to a sibling tool. The output schema covers return structure, so the description doesn't need to restate 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?

The tool has zero parameters, so the schema carries no burden. The description compensates by explaining what the output contains and how it should be used, which is the only semantic content an agent needs. Baseline 4 for zero-parameter tools is 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?

The description uses a specific verb ('list') with a clear resource ('FDA import alerts this register covers') and immediately distinguishes itself from siblings by naming list_alert_firms as the follow-up tool. It also states the exact fields returned, so an agent knows precisely what this tool produces.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly instructs when to call this tool ('Call this first to see what can be answered') and tells the agent to use the resulting alert number for list_alert_firms. This is direct routing guidance that leaves no ambiguity about sequencing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_recent_listingsList firms added to a red list since a dateA
Read-only
Inspect

Who has FDA red-listed recently? Returns the listings whose published date is on or after a date you give, newest first, optionally for one alert. Use this to watch a category — new detentions on the seafood alerts, say — rather than to look a firm up. The date FDA prints is when the FIRM was added to the alert.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoHow many to return, 1–20. Default 20.
sinceYesISO date, e.g. "2025-01-01". FDA prints MM/DD/YYYY; this filter compares an ISO form computed here from that string.
import_alert_numberNoOptional: only this alert.

Output Schema

ParametersJSON Schema
NameRequiredDescription
sinceYes
coverageYes
listingsYes
registerNo
listings_matchedYes
listings_returnedNo

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds valuable behavioral nuance—"newest first" ordering and the subtle point that "The date FDA prints is when the FIRM was added to the alert"—which affects how an agent interprets results. No contradictions with annotations.

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?

Four sentences, each earning its place: the opening question frames intent, the second states the core function, the third gives usage context, and the fourth clarifies an important date nuance. No filler or redundancy.

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?

Given the output schema exists and annotations cover the read-only safety profile, the description is complete for a correct invocation. It explains the filter semantics, ordering, optional alert scoping, and the FDA date interpretation, leaving no critical gap for this simple list tool.

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%, so parameters like since, limit, and import_alert_number are already documented. The description reinforces that filtering is optional per alert and that results are newest first, but it does not add significant new meaning beyond the schema's existing parameter descriptions.

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 states a specific action—"Returns the listings whose published date is on or after a date you give, newest first, optionally for one alert"—with a clear verb and resource. It also distinguishes the tool's niche from firm-lookup workflows via "rather than to look a firm up," making it easy to tell apart from siblings like get_listing or resolve_firm.

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?

The description explicitly says when to use this tool: "Use this to watch a category—new detentions on the seafood alerts, say—rather than to look a firm up." This gives a clear intended context and an exclusion, though it does not name alternative sibling tools directly.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

resolve_firmFind a firm on an FDA import alert red listA
Read-only
Inspect

Is this supplier red-listed by FDA? Search the import alert red lists by firm name or part of one (e.g. "Tonga Tiur", "Qingdao", "pharmacy"), optionally narrowed to a country. Returns each listing with the import alert number and name, the country, the date FDA published the listing, and the FDA page and verbatim quote it was read from. A firm can appear more than once — one record per alert it is listed on.

ParametersJSON Schema
NameRequiredDescriptionDefault
countryNoOptional country filter, e.g. "CHINA", "Vietnam". FDA prints countries in capitals; matching is case-insensitive.
firm_nameYesFirm name or part of one. Case-insensitive substring match.

Output Schema

ParametersJSON Schema
NameRequiredDescription
coverageYes
listingsYes
registerNo
firm_nameYes
listings_matchedYes
listings_returnedNo

TDQS

A3.9/5.0
Behavior4/5

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

Beyond the annotations (readOnlyHint=true, destructiveHint=false), the description discloses that a firm may appear multiple times with one record per alert, and that results include the FDA page and verbatim quote. These are meaningful behavioral traits not captured in the structured metadata and help set expectations for output shape and interpretation.

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?

Three sentences front-load the core purpose, then cover search behavior, return contents, and the duplicate-record edge case. No wasted words; the question opener immediately conveys intent and each subsequent sentence contributes new information.

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?

For a two-parameter read-only tool with an output schema, the description covers the search mechanics, optional filtering, return fields, and an important edge case. It does not address error handling or authentication, but these are unlikely to be required at this level and the existing content is sufficient for correct invocation.

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 description coverage is 100% and both parameters are already described precisely. The description adds value with concrete examples ('Tonga Tiur', 'Qingdao', 'pharmacy') and clarifies that country filtering is optional, helping agents construct realistic queries beyond the schema's formal wording.

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?

The description states a specific operation: searching FDA import alert red lists by firm name or part of one, optionally narrowed by country. It clearly identifies the resource and the action, and the duplicate-record note helps distinguish it from simpler lookup tools, but it does not explicitly name or contrast sibling tools.

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 opening question ('Is this supplier red-listed by FDA?') implies when to use the tool, and the optional country filter indicates a common usage variation. However, it provides no explicit guidance about when to prefer this tool over siblings like list_alert_firms or verify_quote, nor any exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

verify_quoteCheck a claimed import-alert fact against the registerA
Read-only
Inspect

Is this right? Check a claim about a red-list entry — the alert number a firm is on, its country, the date it was published, FDA's stated reason — against the register instead of trusting it. Says whether the claim matches a stored value, appears only in the verbatim FDA quote, or differs (and then what FDA's page says instead).

ParametersJSON Schema
NameRequiredDescriptionDefault
fieldNoWhich field the claim is about, if you know it. Without it, every stored field of the record is checked.
record_idYesThe listing's record id, from resolve_firm or list_alert_firms.
claimed_valueYesThe value to check, exactly as claimed, e.g. "Terminated" or "2026-10-29".

Output Schema

ParametersJSON Schema
NameRequiredDescription
matchNo
recordNo
verdictYesmatches_record: the claim equals a stored value (match.match_type says how exactly). matches_quote: it appears in the verbatim source quote but is not a stored value. differs: the record was found and says something else — stored_values shows what. not_found: the record was not located, which says nothing about whether the claim is true.
attestationYes
quote_sourceNo
claimed_valueYes
stored_valuesNo
in_source_quoteNo

TDQS

A4.5/5.0
Behavior5/5

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

Annotations already declare readOnlyHint and destructiveHint, so safety is covered. The description adds clear behavioral detail: it says the tool reports whether the claim matches a stored value, appears only in the verbatim FDA quote, or differs, and if it differs, what the FDA page says instead. This goes beyond the annotations and gives the agent a precise expectation of the tool's behavior.

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?

The description is two sentences with no filler. The opening question immediately orients the agent, the resource and scope are stated, and the outcome is explained. Every phrase earns its place.

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?

For a 3-parameter tool with an output schema, the description fully covers what the tool does, what it checks, and what it returns. It does not need to repeat return types since the output schema exists, and the sibling tools are clearly different. Nothing essential is missing for correct invocations.

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% and each parameter (field, record_id, claimed_value) already has descriptions. The description adds a list of example fields (alert number, country, date, reason) that map to the 'field' parameter, which is mildly helpful but not essential. Since the schema carries the burden, a baseline score of 3 is 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?

The description states a specific verb ('check'), resource ('a red-list entry' or 'the register'), and lists the fields it covers (alert number, country, date, reason). It also explains the distinct outcome (matches, verbatim-only, or differs with FDA's stated value), which clearly distinguishes it from sibling tools that list or resolve firms.

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?

The description implies usage: check a claim against the register 'instead of trusting it.' It gives a clear context for when to call it (verifying a fact) but does not explicitly name alternatives or conditions. It does not specify when not to use it, though the context is unambiguous given the sibling set.

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.

  1. 6 tool updates
    • First observedget_listing
    • First observedlist_alert_firms
    • First observedlist_import_alerts
    • First observedlist_recent_listings
    • First observedresolve_firm
    • First observedverify_quote

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables querying FDA inspection outcomes, Form 483 observations, compliance actions, and import refusals, plus a combined firm risk profile, from the FDA Data Dashboard.
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables checking food additive safety, nutrition profiles, pesticide residues, and ingredient lists with regulatory flags and dietary compatibility. All data is sourced from authoritative bodies like JECFA, EFSA, and FDA.
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables US import compliance by providing CBP customs ruling letter searches and antidumping/countervailing duty order lookups, answering how Customs has classified products and whether trade-remedy duties apply.
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.