Skip to main content
Glama

Search Inspection Citations

fda_citations
Read-onlyIdempotent

Search specific CFR violation citations from FDA inspections (Compliance Dashboard data, not available in openFDA API). Filter by company name, FEI number, CFR number, keyword, program area, fiscal year, inspection date range, or the parent inspection's classification (NAI/VAI/OAI). CFR matching is hierarchical and section-anchored: pass '21 CFR 211.68' or '211.68' and it matches '21 CFR 211.68', '21 CFR 211.68(a)', '21 CFR 211.68(b)' but NOT '21 CFR 211.680' or '21 CFR 211.6'. Each row carries the parent inspection's classification (inspection_classification / inspection_classification_code) joined by inspection_id, plus inspection_id and a best-effort source_url deep link. Returns the cited regulation, short and long descriptions of the finding, and inspection dates. Related: fda_inspections (inspection classification and dates by FEI), fda_search_warning_letters (official warning letters for the same FEI), fda_compliance_actions (warning letters that may reference these citations).

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
limitNoMax results to return (1-500)
offsetNoResult offset for pagination
date_toNoEnd date for inspection_end_date range (YYYY-MM-DD)
keywordNoKeyword to search in citation descriptions
date_fromNoStart date for inspection_end_date range (YYYY-MM-DD)
fei_numberNoFDA Establishment Identifier (FEI number)
fiscal_yearNoFiscal year of the inspection
company_nameNoCompany name (fuzzy match)
program_areaNoProgram area (partial match, e.g. Drugs, Devices, Foods)
act_cfr_numberNoCFR section, section-anchored prefix match (e.g. '21 CFR 211.68' or '211.68' matches 211.68, 211.68(a), 211.68(b) but not 211.680 or 211.6)
classificationNoParent inspection classification (NAI=No Action Indicated, VAI=Voluntary Action Indicated, OAI=Official Action Indicated)

TDQS

A4.7/5.0
Behavior5/5

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

Beyond the annotations (readOnlyHint=true, idempotentHint=true), the description adds substantive behavioral details: the data source (Compliance Dashboard data, not openFDA), hierarchical section-anchored CFR matching with concrete examples, and the join to parent inspection classification. It also discloses that results include source_url deep links. This far exceeds the minimum needed given 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?

The description is dense but efficiently structured: purpose, filter options, matching behavior, return fields, then related tools. Every sentence adds distinct value—no filler or repetition of schema defaults. It is front-loaded with the core purpose and remains readable despite its length.

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 tool with 11 parameters, no output schema, and rich annotations, the description covers all essential aspects: what it searches, how filtering works, key edge cases (CFR matching), returned fields, and relationships to sibling tools. It lacks only minor details like default ordering, but those are not critical given the schema and the description's thoroughness.

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 significant semantic value: it explains the tricky act_cfr_number prefix-matching behavior with examples, defines classification values (NAI/VAI/OAI), and clarifies fuzzy/partial matching for company_name and program_area. These details go beyond the schema descriptions, earning a 4.

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?

Description begins with a specific verb+resource: 'Search specific CFR violation citations from FDA inspections,' and immediately distinguishes from siblings by noting it uses Compliance Dashboard data not available in openFDA API. It also lists related tools with their distinct purposes, making the tool's role in the family clear.

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 provides clear usage context: 'Search specific CFR violation citations' and enumerates all filter dimensions, implying when this tool should be used. It also lists related tools for alternative needs (e.g., fda_inspections for classification by FEI, fda_search_warning_letters for official warning letters), which functions as alternative guidance. However, it does not explicitly state when NOT to use this tool, so it stops short of a 5.

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.

TDQS

A4.1/5.0
Disambiguation4/5

Most tools have distinct purposes with clear boundaries, such as fda_search_drugs for drug applications and fda_search_510k for device clearances. However, some overlap exists, like fda_device_udi and fda_device_udi_lookup both querying UDI data, which could cause confusion despite differences in scope.

Naming Consistency5/5

All tool names follow a consistent snake_case pattern with a clear fda_ prefix, using descriptive verbs like search, get, list, and link. This uniformity makes the set predictable and easy to navigate, with no deviations in naming style.

Tool Count2/5

With 48 tools, the count is excessive for a single server, making it overwhelming and difficult for agents to manage. While the domain is broad (FDA data), the toolset feels bloated with many specialized or overlapping tools that could be consolidated.

Completeness5/5

The toolset provides comprehensive coverage of FDA data domains, including drugs, devices, inspections, compliance, recalls, and facilities. It supports full CRUD-like operations (e.g., search, get, link, save) and lifecycle workflows, with no obvious gaps for the intended purpose.

Resources