Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault

No arguments

Tools

Functions exposed to the LLM to take actions

NameDescription
search_substance
MCP tool to search the OpenFoodTox database for substances by name, E-number, or description. Searches the database using a two-step approach: 1. First searches SYNONYM table (E-numbers, common names, trade names, alternative names) 2. If no results, searches COMPONENT table (SUB_NAME and COM_NAME fields) The search is case-insensitive and supports partial matches. E-numbers are automatically normalized (e.g., "E 951" or "E-951" becomes "E951"). Returns a list of unique substances (one dictionary per SUB_COM_ID) with all study data aggregated into arrays. Each substance may have multiple studies, opinions, and assessments, which are grouped together by SUB_COM_ID. Args: description_search: Search term (substance or component name e.g. "aspartame", OR E-number e.g. "E 951") or any of the following CAS name, Council of Europe number, E number, E.C enzyme number, EC name, EU Flavour Information System number, EUgroup-no, Flavour and Extract Manufacturers Association number, Joint FAO/WHO Expert Committee on Food Additives number, Name, OECD Toolbox Classification, Pharmalogical class, Swiss Prot no., Trade name Returns: List of dictionaries, where each dictionary represents a unique substance with: - Basic component information (name, type, formula, description) - Aggregated study identifiers (arrays of IDs linking to related tables) - Study classifications and remarks (arrays of unique values from all studies) Returns None if no matches are found. <dictionary_descriptions> <name>SUB_COM_ID</name> <description>Unique identifier for the substance-component link. Primary key for grouping results. Multiple studies, opinions, and assessments may reference the same SUB_COM_ID.</description> <name>COM_NAME</name> <description>Component name as derived in the opinions. If more than one name is reported in the opinion (excluding IUPAC name), then the most common/most specific name is reported as component name.</description> <name>COM_TYPE</name> <description>High level classification of component type (e.g., single, mixture, botanical, synthetic).</description> <name>MOLECULARFORMULA</name> <description>Molecular formula of the chemical component.</description> <name>SUB_DESCRIPTION</name> <description>Summary of the substance description as derived from opinions. This includes also the group description.</description> <name>SUB_OP_CLASS</name> <description>Array of unique values indicating the class of the substance and the corresponding opinion as provided by EFSA (e.g., "food additive", "pesticide", "flavoring"). Aggregated from all studies for this substance.</description> <name>REMARKS</name> <description>Array of unique remarks from all studies. Indicates the objective of the opinion and reports any general remarks as retrieved from the opinion. Aggregated from REMARKS_STUDY field.</description> <name>GENOTOX_ID</name> <description>Array of unique identifiers linking to the GENOTOX table. Each ID represents a genotoxicity study associated with this substance. May be None if no genotoxicity studies exist.</description> <name>TOX_ID</name> <description>Array of unique identifiers linking to the ENDPOINT_STUDY table. Each ID represents a toxicity endpoint study (e.g., NOAEL, LD50). May be None if no endpoint studies exist.</description> <name>HAZARD_ID</name> <description>Array of unique identifiers linking to the CHEM_ASSESS table. Each ID represents a chemical risk assessment (e.g., ADI, TDI values). May be None if no assessments exist.</description> <name>OP_ID</name> <description>Array of unique identifiers linking to the OPINION table. Each ID represents an EFSA published opinion/document associated with this substance. May be None if no opinions exist.</description> </dictionary_descriptions>
get_risk_assessments
Get risk assessment data from CHEM_ASSESS table by HAZARD_ID. Retrieves comprehensive risk assessment records including ADI (Acceptable Daily Intake), TDI (Tolerable Daily Intake), and other safety limit values. This tool provides the quantitative safety assessments used by EFSA to establish safe intake levels for food substances. Args: hazard_id: Single HAZARD_ID (int) or list of HAZARD_IDs (list[int]) to query. Use search_substance tool first to find HAZARD_IDs through the STUDY table. Returns: JSON string containing a DataFrame with risk assessment records. Each record includes assessment type, risk values, units, safety factors, and population information. The returned data includes: - Assessment type: ASSESSMENTTYPE (e.g., ADI, TDI, ARfD) - Risk values: RISKVALUE, RISKVALUE_MILLI, RISKUNIT, RISKUNIT_MILLI - Risk qualifier: RISKQUALIFIER (e.g., "not specified", "group") - Safety factors: SAFETY_FACTOR - Population: ID_POPULATION, POPULATIONTEXT - Assessment details: ASSESS, REMARKS - Group assessments: COM_GROUP_ID, GROUP_UNIT, GROUP_REMARKS Note: Multiple records may be returned if multiple HAZARD_IDs are provided or if a single hazard has multiple assessment types (e.g., both ADI and TDI). <dictionary_descriptions> <name>RISKQUALIFIER</name> <description>Description of the qualifier for the reference value</description> <name>RISKVALUE</name> <description>Quantification of the reference value</description> <name>RISKUNIT</name> <description>Short description of the units of the reference value</description> <name>RISKUNITFULLTEXT</name> <description>Full description of the units of the reference value</description> <name>RISKVALUE_MILLI</name> <description>Full description of the units of the reference value when converted to milligrams</description> <name>RISKUNIT_MILLI</name> <description>Quantification of the reference value when converted to milligrams</description> <name>SAFETY_FACTOR</name> <description>Safety factor/Uncertainty factor used to derive the reference value</description> <name>POPULATIONTEXT</name> <description>Description of the population the reference value applies to</description> <name>REMARKS</name> <description>General comments</description> <name>ASSESS</name> <description>Assessment summarised where no reference value is set</description> </dictionary_descriptions>
get_toxicity_endpoints
Get toxicity endpoint study data from ENDPOINT_STUDY table by TOX_ID. Retrieves detailed toxicity endpoint records including NOAEL, LD50, and other toxicity measurements from animal and in vitro studies. This tool provides the experimental data used to assess the toxicological effects of food substances. Args: tox_id: Single TOX_ID (int) or list of TOX_IDs (list[int]) to query. Use search_substance tool first to find TOX_IDs through the STUDY table. Returns: JSON string containing a DataFrame with toxicity endpoint records. Each record includes endpoint type, toxicity values, study conditions, and target organs. The returned data includes: - Endpoint information: ENDPOINT, ENDPOINT_CODE (e.g., NOAEL, LD50, LOAEL) - Toxicity values: VALUE, VALUE_MILLI, DOSEUNIT, DOSEUNITFULLTEXT - Qualifier: QUALIFIER (e.g., "greater than", "less than") - Study conditions: SPECIES, STRAIN, SEX, ROUTE, EXP_DURATION, DURATIONUNIT - Target information: TARGETTISSUE, EFFECT_DESC - Toxicity classification: TOXICITY (e.g., "acute", "chronic") - Study details: TESTTYPE, GUIDELINE, GLP_COMPL, REMARKS Note: Multiple records may be returned if multiple TOX_IDs are provided or if a single study has multiple endpoints measured. <dictionary_descriptions> <name>STUDY_CATEGORY</name> <description>Indicates the reason for testing Human health, Exotoxicology, Animal health (target) or Animal health (non target)</description> <name>TESTSUBSTANCE</name> <description>Description of the test material used in the toxocological study</description> <name>TESTTYPE_CODE</name> <description>Transmission code for the type of toxicological test</description> <name>SPECIES_ID</name> <description>Internal unique identifier of organism/cell culture used in the toxicological study</description> <name>SPECIES</name> <description>Description of the organism/cell culture used in the toxicological study</description> <name>SEX</name> <description>Indicates the sex of tested animals</description> <name>NUMBER_INDIVIDUALS</name> <description>Number of organisms dosed at each dose level of the toxicological study</description> <name>CONTROL</name> <description>Indicates whether and what type of concurrent control groups were used</description> <name>EFFECT_DESC</name> <description>Description of the effects observed in the toxicological study</description> <name>REMARKS</name> <description>Additional remarks on toxicological study. Free text on hazard assessment including (if necessary): 1) short explanation on how the study has been carried on; 2) any conclusions on the hazard identication (for example, explanation on why an hazard could not be identified)</description> </dictionary_descriptions>
get_genotox_details
Get genotoxicity study details from GENOTOX table by GENOTOX_ID. Retrieves detailed genotoxicity study records including test methods, guidelines, and results. This tool provides the experimental data used to assess whether substances have genotoxic or mutagenic properties that could cause DNA damage. Args: genotox_id: Single GENOTOX_ID (int) or list of GENOTOX_IDs (list[int]) to query. Use search_substance tool first to find GENOTOX_IDs through the STUDY table. Returns: JSON string containing a DataFrame with genotoxicity study records. Each record includes study category, test guidelines, species, exposure conditions, and genotoxicity results. The returned data includes: - Study category: STUDY_CATEGORY - Test guidelines: GENOTOXGUIDELINE, GENOTOXGUIDELINEFULLTXT - Test conditions: SPECIES, STRAIN, SEX, ROUTE, EXP_PERIOD, EXPPERIODUNIT - Genotoxicity result: IS_GENOTOXIC - Study quality: GLP_COMPL, DEVIATION - Study details: NUMBER_INDIVIDUALS, CONTROL, MET_INDICATOR, REMARKS Note: Multiple records may be returned if multiple GENOTOX_IDs are provided. Genotoxicity studies are critical for assessing cancer risk and mutagenic potential. <dictionary_descriptions> <name>STUDY_CATEGORY</name> <description>Mutagenicity or genotoxicity study</description> <name>SPECIES</name> <description>Description of the organism/cell culture tested</description> <name>SEX</name> <description>Sex of the tested animals in vivo genotoxicity study</description> <name>ROUTE</name> <description>Description of the route of administration</description> <name>NUMBER_INDIVIDUALS</name> <description>Number of organisms dosed at each dose level of the in vivo genotoxicty study</description> <name>CONTROL</name> <description>Indicates whether and what type of concurrent control groups were used in in vivo genotoxicity study</description> <name>IS_GENOTOXIC</name> <description>Positive or negative result</description> <name>REMARKS</name> <description>Remarks on genotoxicity study</description> </dictionary_descriptions>
get_opinions
Get EFSA opinion documents from OPINION table by OP_ID. Retrieves published EFSA scientific opinions, assessments, and regulatory documents. This tool provides access to the original source documents that contain the full scientific assessment and regulatory context for food safety evaluations. Args: op_id: Single OP_ID (int) or list of OP_IDs (list[int]) to query. Use search_substance tool first to find OP_IDs through the STUDY table. Returns: JSON string containing a DataFrame with opinion document records. Each record includes publication metadata, regulatory information, and document access details. The returned data includes: - Document identification: DOCUMENT_ID, OP_ID, TRX_ID - Document type: DOCTYPE, DOCTYPE_CODE - Publication details: TITLE, AUTHOR, PUBLICATIONDATE, ADOPTIONDATE, PUBLICATIONYEAR - Access information: DOI, URL - Regulatory context: REGULATION_CODE, REGULATION, REGULATIONFULLTEXT - Ownership: OWNER Note: Multiple records may be returned if multiple OP_IDs are provided. Each opinion represents a published EFSA assessment document that may contain multiple substances or studies. <dictionary_descriptions> <name>OP_ID</name> <description>Unique identifier for the EFSA opinion document</description> <name>DOCUMENT_ID</name> <description>Unique document identifier</description> <name>DOCTYPE</name> <description>Type of document (e.g., "Scientific Opinion", "Statement")</description> <name>TITLE</name> <description>Title of the published opinion document</description> <name>AUTHOR</name> <description>Author(s) of the publication</description> <name>PUBLICATIONDATE</name> <description>Date when the document was published (format: yyyymmdd)</description> <name>ADOPTIONDATE</name> <description>Date when the document was adopted (format: yyyymmdd)</description> <name>PUBLICATIONYEAR</name> <description>Year of publication</description> <name>DOI</name> <description>Digital Object Identifier for the publication</description> <name>URL</name> <description>URL link to the published document</description> <name>REGULATION_CODE</name> <description>EU regulation code (e.g., "1333/2008" for food additives, "1107/2009" for pesticides)</description> <name>REGULATION</name> <description>Short name or description of the regulation</description> <name>REGULATIONFULLTEXT</name> <description>Full text description of the regulation</description> <name>OWNER</name> <description>Organization or entity that owns or published the document</description> </dictionary_descriptions>
get_substance_safety_assessment
Get comprehensive safety assessment data for a substance by SUB_COM_ID. Retrieves safety flags (mutagenic, genotoxic, carcinogenic) and assessment metadata from EFSA opinions, sorted chronologically by publication date. This tool provides the core safety information used by EFSA to evaluate food safety risks. Args: sub_com_id (int): The SUB_COM_ID identifier for the substance component. Use search_substance tool first to find the SUB_COM_ID for a given substance name or E-number. Returns: JSON string containing a DataFrame with safety assessment records. Each record includes safety flags, classification, opinion metadata, and publication dates. Results are sorted chronologically (oldest to newest) by PUBLICATIONDATE. The returned data includes: - Safety flags: IS_MUTAGENIC, IS_GENOTOXIC, IS_CARCINOGENIC - Classification: SUB_OP_CLASS (e.g., food additive, pesticide, flavoring) - Study details: REMARKS_STUDY, TOXREF_ID - Opinion metadata: OP_ID, AUTHOR, TITLE, ADOPTIONDATE, PUBLICATIONDATE Note: Multiple records may be returned if the substance has been assessed in multiple EFSA opinions over time. Review the chronological order to see how safety assessments have evolved. <dictionary_descriptions> <name>OP_ID</name> <description>Unique identifier links to the OPINION table</description> <name>IS_GENOTOXIC</name> <description>Indicates whether the substance is genotoxic or not according to the assessment provided in the opinion. The Not applicable notation is used in case of group substances</description> <name>SUB_OP_CLASS</name> <description>Indicates the class of the substance and the corresponding opinion as provided by EFSA</description> <name>IS_MUTAGENIC</name> <description>Indicates whether the substance is mutagenic or not according to the assessment provided in the opinion. The "Not applicable" notation is used in case of group substances</description> <name>IS_CARCINOGENIC</name> <description>Indicates whether the substance is carcinogenic or not according to the assessment provided in the opinion. The Not applicable notation is used in case of group substances</description> <name>REMARKS_STUDY</name> <description>Indicates the objective of the opinion and report any general remark as retrieved from the opinion</description> <name>TOXREF_ID</name> <description>Unique identifier links to the ENDPOINTSTUDY table for groups</description> <name>AUTHOR</name> <description>Indicates the author/s of the publication</description> <name>TITLE</name> <description>Indicates the title of the publication</description> <name>ADOPTIONDATE</name> <description>Complete date of the adoption of the document in the format yyyymmdd</description> <name>PUBLICATIONDATE</name> <description>Complete date of the publication of the document in the format yyyymmdd</description> </dictionary_descriptions>
list_substances_by_class_and_safety
Retrieves substances from the EFSA OpenFoodTox database filtered by safety assessment criteria (mutagenicity, genotoxicity, carcinogenicity) and substance classification. This tool enables discovery of substances based on their safety profile and regulatory category, useful for comparative safety analysis and regulatory compliance queries. ## Example questions it can answer: ### Classification + Safety Status Queries By category: * "What food additives are genotoxic?" * "List pesticides that are carcinogenic" * "Show me flavourings that are mutagenic" * "What sensory additives have positive genotoxicity results?" ### Safety screening: "Which substances are both mutagenic and genotoxic?" * "Find substances that are positive for carcinogenicity" * "What additives have ambiguous safety data?" * "List substances with no mutagenicity data" ### Combined filters: * "What food additives are not genotoxic?" (Negative) * "Show pesticides that are not carcinogenic" * "List flavourings with ambiguous genotoxicity results" ### Regulatory & Compliance Queries "Which food additives have positive mutagenicity assessments?" * "What pesticides are flagged as genotoxic?" * "List substances in the 'Food additives' category with safety concerns" * "Show me technological additives that are not mutagenic" ### Research & Analysis Queries * "What substances have 'reproductive' in their study remarks?" * "Find additives with 'chronic' mentioned in remarks" * "List substances with 'developmental' toxicity in remarks" * "Show me substances where remarks contain 'neurotoxicity'" ### Comparative Safety Queries * "Compare all food additives by their genotoxicity status" * "Which category has the most substances with positive carcinogenicity?" "List all substances with positive results in any safety category" ### Data Quality Queries * "What substances have 'No data' for mutagenicity?" * "Show me substances with 'Not determined' safety assessments" * "List additives with incomplete safety data" Args: sub_class: Optional SUB_OP_CLASS filter. Accepts partial matches (case-insensitive LIKE). Examples: - "additives" matches "Food additives", "Nutritional additives", "Sensory additives", etc. - "food" matches "Food additives", "Food contact materials" - "pesticides" matches "Pesticides" - "Food additives" (exact match also works) Valid full values (all possible SUB_OP_CLASS values): - "No category" - "Cocciodiostats/Hormones/Histomonostats" - "Persistent organic pollutants" - "Natural plant product contaminants" - "Mycotoxins" - "Melamine" - "Processing contaminants" - "Marine biotoxins" - "Heavy metal ions and metalloids" - "Nutritional additives" - "Sensory additives" - "Technological additives" - "Zootechnical additives" - "Feed intended for particular nutritional purposes" - "Food additives" - "Food contact materials" - "Processing aids" - "Nutrient sources" - "Pesticides" - "Flavourings" is_mutagenic: Optional IS_MUTAGENIC filter (exact match: "Positive", "Negative", "Ambiguous", etc.) is_genotoxic: Optional IS_GENOTOXIC filter (exact match: "Positive", "Negative", "Ambiguous", etc.) is_carcinogenic: Optional IS_CARCINOGENIC filter (exact match: "Positive", "Negative", "Ambiguous", etc.) remarks_contains: Optional text search in REMARKS_STUDY (case-insensitive LIKE, substring match) limit: Maximum number of results to return (default: 10) Returns: JSON string containing a DataFrame with substance records. Each record includes substance identification, classification, and alternative names/E-numbers. The function also returns a total_count indicating how many substances match the criteria before the limit is applied. The returned data includes: - Substance identification: SUB_COM_ID (unique identifier) - Chemical details: COM_NAME (chemical name), COM_TYPE (single/mixture/botanical/synthetic) - Classification: SUB_TYPE (substance type qualifier) - Alternative names: DESCRIPTION (comma-separated synonyms, E-numbers, trade names) Joins: STUDY → COMPONENT (by SUB_COM_ID) → SYNONYM (by SUB_COM_ID) Returns unique substances (DISTINCT by SUB_COM_ID). Note: Multiple synonyms per substance are aggregated into a comma-separated list. Use the search_substance tool to get detailed information about specific substances from the results.
list_hazard_ids_by_assessment
Find HAZARD_IDs from risk assessments (CHEM_ASSESS table) filtered by population, assessment type, and dosage thresholds. This tool enables discovery of substances that have specific safety limits or restrictions for particular populations. Use this tool to identify which substances have risk assessments matching your criteria, then use the returned HAZARD_IDs with list_substances_by_study to get the actual substance names and details. ## Example questions it can answer: ### Population-Specific Safety Queries * "Which substances have safety assessments for children under 3?" * "Find all assessments that apply to pregnant women" * "What substances have ADI limits for infants?" * "Show me assessments for children aged 3-10" * "Which substances have population-specific restrictions?" ### Dosage Threshold Queries * "Find all substances with ADI less than 1 mg/kg body weight" * "Which assessments have very low safe intake limits (< 0.1 mg/kg)?" * "Show me substances with TDI greater than 10 mg/kg" * "What substances have high safe intake limits (> 100 mg/kg)?" * "Find assessments with ADI between 0.5 and 5 mg/kg" ### Assessment Type Queries * "Which substances have ADI (Acceptable Daily Intake) assessments?" * "Find all TDI (Tolerable Daily Intake) assessments" * "Show me ARfD (Acute Reference Dose) assessments" * "What substances have group assessments?" ### Combined Population + Dosage Queries * "Find substances with ADI < 1 mg/kg for children" * "Which assessments for pregnant women have low safe limits?" * "Show me substances with very restrictive limits for infants (< 0.5 mg/kg)" * "What substances have high ADI (> 50 mg/kg) for adults?" ### Missing Data Queries * "Which assessments have no quantitative safe intake limit set?" * "Find substances where risk assessment exists but no ADI/TDI value is specified" * "Show me assessments that only have qualitative assessments (no numeric limits)" ### Risk Identification Queries * "Find all substances that indicate issues for children under 3" * "Which assessments suggest concerns for specific populations?" * "Show me substances with population-specific warnings" Args: population_text_contains: Optional text search in POPULATIONTEXT field (case-insensitive). Searches for partial matches in population descriptions. Examples: - "children" matches "Consumers - Children", "Consumers - Children 1-2 years", etc. - "pregnant" matches "Consumers - Pregnant women >= 18 years" - "infant" matches "Consumers - Infants", "Consumers - Infants 0-6 months" - "adult" matches "Consumers - Adults", "Consumers - Adults >=18 years" See "Population Text Reference" section below for complete list of accepted values. assessment_type: Optional filter by assessment type (case-insensitive partial match). Examples: - "ADI" matches "ADI" (Acceptable Daily Intake) - "TDI" matches "TDI" (Tolerable Daily Intake) - "ARfD" matches "ARfD" (Acute Reference Dose) - "group" matches group assessments risk_value_milli_max: Optional maximum RISKVALUE_MILLI in mg/kg body weight (inclusive, <=). Use to find substances with low safe limits. Examples: - 1.0 for ADI < 1 mg/kg - 0.1 for very restrictive limits - 10.0 for moderate limits risk_value_milli_min: Optional minimum RISKVALUE_MILLI in mg/kg body weight (inclusive, >=). Use to find substances with high safe limits. Examples: - 10.0 for ADI > 10 mg/kg - 100.0 for very high limits has_no_risk_value: If True, only return HAZARD_IDs where RISKVALUE IS NULL. Use to find assessments with no quantitative limit set. These may have qualitative assessments in the ASSESS field instead. limit: Optional maximum number of HAZARD_IDs to return. Use to limit results for large queries. If None, returns all matching HAZARD_IDs. Population Text Reference: The following are accepted POPULATIONTEXT values in the database. Use partial matches (case-insensitive) to search. For example, "children" will match "Consumers - Children", "Consumers - Children 1-2 years", etc. Consumers: - Consumers - Consumers - Children - Consumers - Infants - Consumers - Adults - Consumers - Adult women, pregnant - Consumers - Adult women, lactating - Consumers - Pregnant women >= 18 years - Consumers - Pregnant women >= 25 years - Consumers - Pregnant women 18-24 years - Consumers - Lactating women >= 18 years - Consumers - Lactating women >= 25 years - Consumers - Lactating women 18-24 years - Consumers - Premenopausal women - Consumers - Postmenopausal women - Consumers - Toddlers - Consumers - Adolescents - Consumers - Adults >=18 years - Consumers - Adults >= 25 years - Consumers - Adults 18-24 years - Consumers - Children 11-14 years - Consumers - Children 10-17 years - Consumers - Children 11-17 years - Consumers - Children 12-17 years - Consumers - Children 15-17 years - Consumers - Children 1-2 years - Consumers - Children 1-3 years - Consumers - Children 1-6 years - Consumers - Children 1-8 years - Consumers - Children 1-10 years - Consumers - Children 3 years - Consumers - Children 3-9 years - Consumers - Children 4-6 years - Consumers - Children 4-9 years - Consumers - Children 4-10 years - Consumers - Children 7-8 years - Consumers - Children 7-9 years - Consumers - Children 7-10 years - Consumers - Children 7-11 years - Consumers - Children 9-10 years - Consumers - Children 10 years - Consumers - Infants 0-6 months - Consumers - Infants 0-12 months - Consumers - Infants 6-12 months - Consumers - Infants 7-11 months Workers and Operators: - Workers - Worker - adults - Operators - Residents and bystanders - Residents and bystander - children Pets: - Dogs as pet - Cats as pet Poultry: - Poultry - Chicken for meat production - Chicken for egg production - Chicken for egg production - adults - Chicken for egg production, less than 1 year old - Chicken broilers, less than 1 year old - Turkeys - Turkeys for meat production - Turkeys for meat production, less than 1 year old - Turkey for reproduction - Guinea-fowl - Bird Pigs: - Pigs - Pigs - less than 1 year old - Pigs - for reproduction - Pigs for meat production - Pigs for meat production - adults - Pigs for meat production - less than 1 year old - Pigs for reproduction - adults Cattle: - Cattle - Cattle for meat production - Cattle for meat production - adults - Cattle for meat production - less than 1 year old - Cattle for milk production - Cattle for milk production - adults - Cattle for milk production - less than 1 year old - Cattle for reproduction - Cattle for reproduction - less than 1 year old - Young cattle of less than 1 year of age Sheep and Goats: - Sheep - unspecified - Sheep for milk production - Sheep for meat production - Goat Other Animals: - Fish - Salmons - Trouts - Rabbits - Rabbits for meat production - Horse - Equines - Rodents - Ruminants - unspecified Aquatic and Environmental: - Aquatic animal not used for food production - unspecified - Aquatic animal for food production - unspecified - Aquatic organisms - Aquatic Plants - Aquatic Invertebrates - Aquatic compartment - Terrestrial Plants - Soil compartment - Soil macroorganims - arthropods - Soil macroorganisms - earthworms Unspecified Categories: - Animal not used for food production - unspecified - Animal for food production - unspecified Returns: JSON string containing a list of HAZARD_IDs (integers) that match the criteria. Returns an empty list if no assessments match. Example return value: "[123, 456, 789]" Workflow: 1. Use this tool to find HAZARD_IDs matching your criteria 2. Use list_substances_by_study with the returned HAZARD_IDs and study_type="hazard" to get the actual substance names and details 3. Optionally use get_risk_assessments with specific HAZARD_IDs for detailed assessment information Example usage: # Find HAZARD_IDs for children with low ADI hazard_ids_json = list_hazard_ids_by_assessment( population_text_contains="children", assessment_type="ADI", risk_value_milli_max=1.0, limit=20 ) # Parse and use with list_substances_by_study hazard_ids = json.loads(hazard_ids_json) # substances = list_substances_by_study(ids=hazard_ids, study_type="hazard")
list_substances_by_assessment
Find substances from risk assessments (CHEM_ASSESS table) filtered by population, assessment type, and dosage thresholds. This tool combines two queries: 1. Filters CHEM_ASSESS to find matching HAZARD_IDs 2. Retrieves substances associated with those HAZARD_IDs This tool enables discovery of substances that have specific safety limits or restrictions for particular populations, returning the actual substance names and details directly. ## Example questions it can answer: ### Population-Specific Safety Queries * "Which substances have safety assessments for children under 3?" * "Find all assessments that apply to pregnant women" * "What substances have ADI limits for infants?" * "Show me assessments for children aged 3-10" * "Which substances have population-specific restrictions?" ### Dosage Threshold Queries * "Find all substances with ADI less than 1 mg/kg body weight" * "Which assessments have very low safe intake limits (< 0.1 mg/kg)?" * "Show me substances with TDI greater than 10 mg/kg" * "What substances have high safe intake limits (> 100 mg/kg)?" * "Find assessments with ADI between 0.5 and 5 mg/kg" ### Assessment Type Queries * "Which substances have ADI (Acceptable Daily Intake) assessments?" * "Find all TDI (Tolerable Daily Intake) assessments" * "Show me ARfD (Acute Reference Dose) assessments" * "What substances have group assessments?" ### Combined Population + Dosage Queries * "Find substances with ADI < 1 mg/kg for children" * "Which assessments for pregnant women have low safe limits?" * "Show me substances with very restrictive limits for infants (< 0.5 mg/kg)" * "What substances have high ADI (> 50 mg/kg) for adults?" ### Missing Data Queries * "Which assessments have no quantitative safe intake limit set?" * "Find substances where risk assessment exists but no ADI/TDI value is specified" * "Show me assessments that only have qualitative assessments (no numeric limits)" ### Risk Identification Queries * "Find all substances that indicate issues for children under 3" * "Which assessments suggest concerns for specific populations?" * "Show me substances with population-specific warnings" Args: population_text_contains: Optional text search in POPULATIONTEXT field (case-insensitive). Searches for partial matches in population descriptions. Examples: - "children" matches "Consumers - Children", "Consumers - Children 1-2 years", etc. - "pregnant" matches "Consumers - Pregnant women >= 18 years" - "infant" matches "Consumers - Infants", "Consumers - Infants 0-6 months" - "adult" matches "Consumers - Adults", "Consumers - Adults >=18 years" See "Population Text Reference" section below for complete list of accepted values. assessment_type: Optional filter by assessment type (case-insensitive partial match). Examples: - "ADI" matches "ADI" (Acceptable Daily Intake) - "TDI" matches "TDI" (Tolerable Daily Intake) - "ARfD" matches "ARfD" (Acute Reference Dose) - "group" matches group assessments risk_value_milli_max: Optional maximum RISKVALUE_MILLI in mg/kg body weight (inclusive, <=). Use to find substances with low safe limits. Examples: - 1.0 for ADI < 1 mg/kg - 0.1 for very restrictive limits - 10.0 for moderate limits risk_value_milli_min: Optional minimum RISKVALUE_MILLI in mg/kg body weight (inclusive, >=). Use to find substances with high safe limits. Examples: - 10.0 for ADI > 10 mg/kg - 100.0 for very high limits has_no_risk_value: If True, only return HAZARD_IDs where RISKVALUE IS NULL. Use to find assessments with no quantitative limit set. These may have qualitative assessments in the ASSESS field instead. limit: Maximum number of substances to return (default: 10). This limits the final substance results after filtering by assessment criteria. Population Text Reference: The following are accepted POPULATIONTEXT values in the database. Use partial matches (case-insensitive) to search. For example, "children" will match "Consumers - Children", "Consumers - Children 1-2 years", etc. Consumers: - Consumers - Consumers - Children - Consumers - Infants - Consumers - Adults - Consumers - Adult women, pregnant - Consumers - Adult women, lactating - Consumers - Pregnant women >= 18 years - Consumers - Pregnant women >= 25 years - Consumers - Pregnant women 18-24 years - Consumers - Lactating women >= 18 years - Consumers - Lactating women >= 25 years - Consumers - Lactating women 18-24 years - Consumers - Premenopausal women - Consumers - Postmenopausal women - Consumers - Toddlers - Consumers - Adolescents - Consumers - Adults >=18 years - Consumers - Adults >= 25 years - Consumers - Adults 18-24 years - Consumers - Children 11-14 years - Consumers - Children 10-17 years - Consumers - Children 11-17 years - Consumers - Children 12-17 years - Consumers - Children 15-17 years - Consumers - Children 1-2 years - Consumers - Children 1-3 years - Consumers - Children 1-6 years - Consumers - Children 1-8 years - Consumers - Children 1-10 years - Consumers - Children 3 years - Consumers - Children 3-9 years - Consumers - Children 4-6 years - Consumers - Children 4-9 years - Consumers - Children 4-10 years - Consumers - Children 7-8 years - Consumers - Children 7-9 years - Consumers - Children 7-10 years - Consumers - Children 7-11 years - Consumers - Children 9-10 years - Consumers - Children 10 years - Consumers - Infants 0-6 months - Consumers - Infants 0-12 months - Consumers - Infants 6-12 months - Consumers - Infants 7-11 months Workers and Operators: - Workers - Worker - adults - Operators - Residents and bystanders - Residents and bystander - children Pets: - Dogs as pet - Cats as pet Poultry: - Poultry - Chicken for meat production - Chicken for egg production - Chicken for egg production - adults - Chicken for egg production, less than 1 year old - Chicken broilers, less than 1 year old - Turkeys - Turkeys for meat production - Turkeys for meat production, less than 1 year old - Turkey for reproduction - Guinea-fowl - Bird Pigs: - Pigs - Pigs - less than 1 year old - Pigs - for reproduction - Pigs for meat production - Pigs for meat production - adults - Pigs for meat production - less than 1 year old - Pigs for reproduction - adults Cattle: - Cattle - Cattle for meat production - Cattle for meat production - adults - Cattle for meat production - less than 1 year old - Cattle for milk production - Cattle for milk production - adults - Cattle for milk production - less than 1 year old - Cattle for reproduction - Cattle for reproduction - less than 1 year old - Young cattle of less than 1 year of age Sheep and Goats: - Sheep - unspecified - Sheep for milk production - Sheep for meat production - Goat Other Animals: - Fish - Salmons - Trouts - Rabbits - Rabbits for meat production - Horse - Equines - Rodents - Ruminants - unspecified Aquatic and Environmental: - Aquatic animal not used for food production - unspecified - Aquatic animal for food production - unspecified - Aquatic organisms - Aquatic Plants - Aquatic Invertebrates - Aquatic compartment - Terrestrial Plants - Soil compartment - Soil macroorganims - arthropods - Soil macroorganisms - earthworms Unspecified Categories: - Animal not used for food production - unspecified - Animal for food production - unspecified Returns: JSON string containing a DataFrame with substance records. Each record includes substance identification, classification, and alternative names/E-numbers. The returned data includes: - Substance identification: SUB_COM_ID (unique identifier) - Chemical details: COM_NAME (chemical name), COM_TYPE (single/mixture/botanical/synthetic) - Classification: SUB_TYPE (substance type qualifier) - Alternative names: DESCRIPTION (comma-separated synonyms, E-numbers, trade names) Returns an empty DataFrame (as JSON) if no substances match the criteria. Joins: CHEM_ASSESS → STUDY (by HAZARD_ID) → COMPONENT (by SUB_COM_ID) → SYNONYM (by SUB_COM_ID) Returns unique substances (DISTINCT by SUB_COM_ID). Note: Multiple synonyms per substance are aggregated into a comma-separated list. Use the search_substance tool to get detailed information about specific substances from the results, or use get_risk_assessments with HAZARD_IDs for detailed assessment information. Example usage: # Find substances with ADI < 1 mg/kg for children substances_json = list_substances_by_assessment( population_text_contains="children", assessment_type="ADI", risk_value_milli_max=1.0, limit=20 )

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/spyrosze/mcp-openfoodtox'

If you have feedback or need assistance with the MCP directory API, please join our Discord server