REGAFFAIRS AI
DOCS

RegAffairs AI MCP server

The RegAffairs AI MCP server gives AI assistants regulator-published regulatory data with sources: 1,354 datasets across 49 jurisdictions. Every result carries the source document title, its date and a link to the stored document. Every tool reads only, except that regaffairs_ask_question saves the question and its answer to your history. No tool changes or deletes anything. Answers are research, not legal advice.

Server URL

https://mcp.regaffairsai.com/mcp

Streamable HTTP transport. Setup guides: Claude, ChatGPT.

Sign-in

Every request needs a RegAffairs AI account. The server uses OAuth 2.1 (authorization code with PKCE); assistants discover it from the server's 401 response and its protected resource metadata, then open the RegAffairs AI sign-in page, where you can also create an account. Assistants register by dynamic client registration or a client ID metadata document. There are no API keys and no anonymous access.

Plan, usage and billing are the same account as on this site: see your account page.

What counts as a question

Only regaffairs_ask_question uses a question from your plan, exactly as a question asked on the site, and it is saved to your history. Every other tool is a lookup: not counted, with a per-account rate limit. When the monthly allowance is used up, the research tool says so and the lookups keep working.

Tools

regaffairs_ask_question

Ask a regulatory question (full cited answer) (counts as a question)

Use this when the user asks a regulatory question that needs reasoning across several sources, jurisdictions or industries, or one that no industry tool covers. Examples: "is X restricted and what must my SDS say", "compare EU and GB rules for Y", "who must notify, by when, under which article". The tool runs the RegAffairs AI research agent over more than 1,000 regulator datasets and returns a written answer with numbered citations. Sources include ECHA REACH and CLP lists, EU food, cosmetics, plant protection and biocides law, HSE, US EPA TSCA, FDA 21 CFR, California Prop 65, EudraLex Volume 4 GMP, ICH, EMA and Health Canada. Each citation links to the source document. The tool can take up to a minute. If it is still running, it returns `status: "running"` and an `answer_id` for `regaffairs_get_answer_status`. Each call counts as one question on the user's RegAffairs AI plan and is saved to their history. Do not use this for a single fact that an industry tool answers (one substance's list status or classification, an exposure limit, an ingredient's status, an MRL, a drug or device register entry). Do not use it for legal advice, clinical trial design or FDA submission strategy.

InputTypeDescription
question *stringThe question in the user's words. Include substance names with CAS/EC numbers, the product type and the market when known.
jurisdictionsarray of stringOptional ISO codes to focus on, e.g. ["EU","GB","US","US-CA","TR","CA","BR"].
industrychemicals | ehs | food | cosmetics | pesticides | biocides | pharma | devices | textilesOptional hint.
Example: When must I supply a safety data sheet under REACH, and what sections must it have?
{
  "question": "When must I supply a safety data sheet under REACH, and what sections must it have?",
  "jurisdictions": [
    "EU"
  ]
}

regaffairs_get_answer_status

Get the status of a running answer

Use this when `regaffairs_ask_question` returned `status: "running"` and an `answer_id`. It waits up to 40 seconds and returns the finished answer with citations, or `running` again. It does not count as a new question. Do not use it to start a new question.

InputTypeDescription
answer_id *string
Example: (called by the assistant when a research answer is still running)
{
  "answer_id": "the answer_id regaffairs_ask_question returned"
}

regaffairs_search_regulations

Search regulation text and source documents

Use this when the user wants the wording of a regulation, guideline or register entry rather than a written answer, or asks about an area no industry tool covers, such as REACH or CLP article text, drinking water limits or industrial emissions reporting. It runs a ranked full-text search over every live dataset and returns passages with citations. It does not count as a question. Examples: REACH (`eu_reach_1907_2006`) and CLP (`eu_clp_1272_2008`) articles and annexes, US EPA drinking water MCLs (`us_epa_npdwr_contaminant_mcls`), the EU E-PRTR (`eu_eea_industrial_reporting_eprtr`). Pass `document_id` from an earlier result to read more of one document. Each dataset is searched in its own language: for a register outside the English-speaking world (Brazil, Turkey, Korea, Japan, China, Latin America and most of the EU), put the terms in that language too, for example 'arsênio arroz' for ANVISA's contaminant limits. Give query or document_id. Do not use this when an industry tool fits the question; those return structured results.

InputTypeDescription
querystringWhat to search for, in the dataset's language when it is not English. Give query or document_id.
document_idstringRead passages from one document returned earlier. Give query or document_id.
industrychemicals | ehs | food | cosmetics | pesticides | biocides | pharma | devices | textiles
datasetsarray of stringOptional dataset ids to restrict the search (from regaffairs_list_covered_regulations).
jurisdictionsarray of string
limitinteger
Example: Show me the REACH text on what a safety data sheet must contain.
{
  "query": "safety data sheet Annex II",
  "datasets": [
    "eu_reach_1907_2006"
  ],
  "limit": 5
}

regaffairs_list_covered_regulations

List the regulations and datasets covered

Use this when the user asks what RegAffairs AI covers ("do you have the EU Cosmetics Regulation?", "which Brazil pesticide registers are in?", "what do you cover for food in the UK?"), or before answering, to check that a regulation or register is available. It returns the live catalogue: dataset id, plain name, regulator, jurisdiction, industry, what it contains and when it was last refreshed. Filter by industry, jurisdiction or a text query. It does not count as a question.

InputTypeDescription
querystring
industrychemicals | ehs | food | cosmetics | pesticides | biocides | pharma | devices | textiles
jurisdictionsarray of string
limitinteger
Example: Do you cover the Health Canada Cosmetic Ingredient Hotlist?
{
  "query": "cosmetic ingredient hotlist",
  "jurisdictions": [
    "CA"
  ]
}

regaffairs_check_chemical_substance

Check a chemical substance: REACH, SVHC, TSCA, Prop 65 status

Use this when the user names one or more chemical substances (name, CAS or EC number) and asks whether they are registered, listed, restricted or banned, or wants a bill of materials screened. It resolves the identity against the ECHA C&L Inventory and REACH registered substances, the EU customs inventory (ECICS), the US TSCA Inventory, the Australian AICIS inventory and the Turkish chemical inventory. It then checks the ECHA SVHC Candidate List, REACH Annex XIV (authorisation, with sunset dates), REACH Annex XVII (restrictions, with entry conditions), CoRAP and POPs; the UK REACH candidate, authorisation and restriction lists (HSE) and the UK REACH candidate list policy paper (Defra); Turkey KKDIK Annex 17; US EPA TSCA section 6 risk management rules, SNURs and PFAS reporting; the California Prop 65 list with safe harbor levels; Belgian PFAS restrictions; and the AICIS banned and restricted chemicals list. Accepts up to 50 substances. A substance missing from a list is reported as not listed on it. Do not use this for hazard classification, pictograms or UN numbers (use `regaffairs_get_ghs_hazard_classification`), exposure limits (use `regaffairs_get_workplace_exposure_limits`), or cosmetic, food, pesticide or biocide ingredient status (use those tools).

InputTypeDescription
substances *array of stringNames, CAS (e.g. 80-05-7) or EC numbers (e.g. 201-245-8).
jurisdictionsarray of (EU | GB | TR | US | US-CA | AU | BE)Default: all.
listsarray of (reach_registration | svhc_candidate | authorisation | restriction | corap | pops | uk_reach | kkdik_annex17 | tsca_inventory | tsca_section6 | tsca_snur | tsca_pfas_reporting | prop65 | aicis | pfas)Default: all lists for the chosen jurisdictions.
identity_onlybooleanOnly resolve name, CAS and EC (for ambiguous names, salts, hydrates, group entries).
Example: Is bisphenol A (CAS 80-05-7) on the REACH SVHC Candidate List, and what does REACH Annex XVII restrict for it?
{
  "substances": [
    "80-05-7"
  ],
  "lists": [
    "svhc_candidate",
    "restriction"
  ]
}

regaffairs_get_ghs_hazard_classification

Get GHS/CLP hazard classification, label elements and UN number

Use this when the user needs a substance's hazard classification, GHS pictograms, H-statements, signal word or label elements (for example SDS sections 2 and 3 or a CLP label), or its UN number and transport hazard class (SDS section 14). It returns the EU CLP Annex VI harmonised entry (hazard classes and categories, H-statements, pictograms, signal word, specific concentration limits, M-factors and the ATP that set it) from ECHA's harmonised classification list and Regulation (EC) No 1272/2008. Optionally it adds the self-classifications notified to the ECHA C&L Inventory, the GB mandatory classification list and GB CLP (HSE), pending CLH intentions and RAC opinions, the Korean GHS classification list, and the US DOT Hazardous Materials Table (49 CFR 172.101: UN number, proper shipping name, hazard class, packing group). Do not use this for mixtures, which need the user's own calculation, for ADR, IMDG or IATA transport rules, or for whether a substance is restricted (use `regaffairs_check_chemical_substance`).

InputTypeDescription
substance *stringName, CAS, EC, CLP index number or UN number (e.g. UN1090).
jurisdictionsarray of (EU | GB | KR)
include_notifiedbooleanAdd the C&L Inventory notified classifications.
include_pendingbooleanAdd open CLH intentions and RAC opinions.
include_transportbooleanAdd the US DOT 49 CFR 172.101 entry (UN number, class, packing group).
Example: Give the harmonised CLP classification of formaldehyde for my SDS.
{
  "substance": "formaldehyde",
  "jurisdictions": [
    "EU"
  ]
}

regaffairs_get_workplace_exposure_limits

Get workplace exposure limits (OEL, WEL, PEL, AGW, VLEP)

Use this when the user asks for an occupational exposure limit for a substance (OEL, WEL, PEL, AGW, VLEP, MAC, STEL) in one or more countries, for example for SDS section 8, a COSHH assessment or an OSHA compliance check. It covers HSE EH40 and the COSHH Regulations 2002 (GB), TRGS 900 and the GESTIS substance database (Germany), INRS VLEP tables (France), INSST LEP (Spain), the SER database (Netherlands), FOD WASO limits (Belgium), the HSA chemical agents code (Ireland), Arbeidstilsynet limits (Norway), OSHA annotated PELs, Table Z-1 and the OSHA chemical exposure data (US), Safe Work Australia HCIS, the CSGB chemical agents regulation limits (Turkey), the MOEL exposure limits notice (Korea), NOM-010-STPS-2014 (Mexico), SUVA limit values (Switzerland), the Alberta OHS Code (Canada), and the GESTIS international limit values compilation. Do not use this for drinking water, ambient air or food limits (use `regaffairs_search_regulations`), or for hazard classification (use `regaffairs_get_ghs_hazard_classification`).

InputTypeDescription
substance *stringName, CAS or EC number.
countriesarray of (GB | DE | FR | ES | NL | BE | IE | NO | US | AU | TR | KR | MX | CH | CA-AB | INTL)Default: all held. INTL = the GESTIS international compilation; CA-AB = Alberta.
limit_typesarray of (twa_8h | stel | ceiling | biological)Default: all.
Example: Compare the occupational exposure limits for toluene in Germany, France and the UK.
{
  "substance": "toluene",
  "countries": [
    "DE",
    "FR",
    "GB"
  ]
}

regaffairs_check_food_additive_or_ingredient

Check a food additive, colour, novel food or food contact substance

Use this when the user asks whether a food additive (E-number), colour additive, novel food, vitamin or mineral form, food contact substance or contaminant limit is allowed, and under which conditions, in the EU or US. EU coverage: Regulation (EC) No 1333/2008 Annex II with food categories and maximum levels, the Novel Food Union list (Regulation 2015/2283), contaminant maximum levels (Regulation 2023/915), the food supplements Directive 2002/46/EC and fortified foods Regulation 1925/2006, the plastics food contact Union list (Regulation 10/2011), the German BfR food contact recommendations, and EFSA scientific opinions. US coverage: 21 CFR Parts 170 to 189, FDA GRAS notices, the FDA substances added to food inventory, colour additives in 21 CFR Parts 73 and 74 and the FDA colour additive status list, food contact notifications and indirect additives. Do not use this for labelling, allergen or health claim questions (use `regaffairs_check_food_label_and_allergens`) or pesticide residues (use `regaffairs_check_pesticide_approval_and_mrl`).

InputTypeDescription
ingredient *stringName, E-number (e.g. E171), INS number, FD&C name (e.g. Red No. 3) or CAS.
jurisdictionsarray of (EU | US)
regimefood_additive | colour_additive | novel_food | supplement_or_fortification | food_contact | contaminant | gras | any
food_categorystringOptional, e.g. 'flavoured drinks', 'confectionery' or EU category 14.1.4.
contact_materialplastic | rubber | paper_and_board | silicone | coating | otherFor food contact questions.
Example: Is titanium dioxide (E171) still authorised as a food additive in the EU?
{
  "ingredient": "E171",
  "jurisdictions": [
    "EU"
  ]
}

regaffairs_check_food_label_and_allergens

Check food labelling, allergen and health claim rules

Use this when the user asks what a food label must show (mandatory particulars, nutrition declaration, ingredients list, allergen emphasis, gluten-free, date marking), which allergens must be declared, or whether a nutrition or health claim is authorised. It covers the EU Food Information to Consumers Regulation (EU) No 1169/2011, the EU nutrition and health claims Regulation (EC) No 1924/2006 and its register, the GB health claims register, Regulation (EU) No 609/2013 on food for specific groups, US 21 CFR Parts 100 to 169 (food labeling and standards of identity), the FDA authorised and qualified health claims lists, Food Standards Code Standard 1.2.2 on food identification and the FSANZ register of notified food-health relationships (Australia and New Zealand), and FSSAI labelling amendments (India). Do not use this for whether an ingredient or additive is allowed (use `regaffairs_check_food_additive_or_ingredient`) or for cosmetic labels (use `regaffairs_check_cosmetic_ingredient`).

InputTypeDescription
topic *allergens | mandatory_particulars | nutrition_declaration | ingredients_list | health_or_nutrition_claim | gluten_free | date_marking | food_for_specific_groups | other
detailstringThe allergen, claim wording, nutrient or particular, e.g. 'sesame', 'vitamin C contributes to the normal function of the immune system'.
jurisdictionsarray of (EU | GB | US | AU-NZ | IN)
food_typestringOptional, e.g. 'prepacked', 'prepacked for direct sale', 'non-prepacked', 'infant formula', 'food supplement'.
Example: Which 14 allergens must be declared on EU prepacked food?
{
  "topic": "allergens",
  "jurisdictions": [
    "EU"
  ],
  "food_type": "prepacked"
}

regaffairs_check_cosmetic_ingredient

Check a cosmetic ingredient (banned, restricted, max concentration, INCI)

Use this when the user asks whether a cosmetic ingredient is banned, restricted or permitted, or needs its INCI name, maximum concentration, product-type conditions or label warnings. It covers the EU Cosmetics Regulation (EC) No 1223/2009 Annexes II to VI with entry numbers, the EU common ingredient names glossary (Decision 2019/701, the last published edition), the UK cosmetics rules and UK ingredient opinions, the SCCS Notes of Guidance, ICCR reports on fragrance allergens and nanomaterials, US prohibited and restricted cosmetic ingredients, 21 CFR Parts 700 to 740, the Health Canada Cosmetic Ingredient Hotlist, the ASEAN Cosmetic Directive annexes and the Japanese cosmetic ingredient labelling names list. Do not use this for food, medicines or general chemical restrictions (use the food, pharma or chemical tools).

InputTypeDescription
ingredient *stringINCI name, common name, CAS or EC.
jurisdictionsarray of (EU | GB | US | CA | ASEAN | JP)
applicationleave_on | rinse_off | any
product_typestringOptional, e.g. 'face cream', 'hair dye', 'oral care', 'sunscreen', 'spray', 'eye area'.
for_children_under_3boolean
functionpreservative | uv_filter | colourant | fragrance_allergen | otherOptional, narrows to the matching annex.
Example: Can salicylic acid go in an EU leave-on cosmetic?
{
  "ingredient": "salicylic acid",
  "jurisdictions": [
    "EU"
  ],
  "application": "leave_on"
}

regaffairs_check_pesticide_approval_and_mrl

Check pesticide approval status and maximum residue levels (MRLs)

Use this when the user asks whether a plant protection active substance is approved, banned or under review, or what the maximum residue level (MRL) or tolerance is for a crop. EU coverage: approvals under Regulation (EC) No 1107/2009, candidates for substitution, emergency authorisations, MRLs under Regulation (EC) No 396/2005, and the EU fertilising products Regulation 2019/1009 for biostimulants. GB: the HSE active substance register and GB MRLs. US: EPA tolerances (40 CFR 180), registration review dockets and the EPA pesticide chemical search. Also Health Canada pesticide product data, the Australia New Zealand MRL schedule, Codex pesticide residue limits, and ANVISA monographs and re-evaluations (Brazil). Do not use this for disinfectants and other biocides (use `regaffairs_check_biocide_active_substance`) or for industrial chemicals.

InputTypeDescription
active_substance *stringActive substance name or CAS, e.g. 'glyphosate'.
jurisdictionsarray of (EU | GB | US | CA | AU-NZ | BR | CODEX)
cropstringFor MRLs or tolerances, e.g. 'wheat', 'peaches', 'table grapes'.
includearray of (approval | mrl | emergency_authorisations | review_status)
Example: Until when is glyphosate approved in the EU, and what is the EU MRL in wheat?
{
  "active_substance": "glyphosate",
  "jurisdictions": [
    "EU"
  ],
  "crop": "wheat"
}

regaffairs_check_biocide_active_substance

Check a biocide active substance, product type or disinfectant registration

Use this when the user asks whether a biocidal active substance is approved and for which product types (PT1 to PT22), whether a supplier is on the Article 95 list, whether a biocidal product or disinfectant is authorised, or which EPA-registered disinfectants work against a pathogen. EU coverage: BPR active substance approvals, the Article 95 supplier list, Union authorised biocidal products, BPC opinions and the product type definitions. National: the GB biocides active substances, GB Article 95 list and GB biocidal products register (HSE), the French SIMMBAD inventory and the ANSES biocide decisions register, and the German BAuA register of notified biocidal products. US: EPA List N and the other selected EPA-registered disinfectant lists by pathogen. Canada: Health Canada's archived COVID-19 lists of hard-surface disinfectants and hand sanitizers. Give an active substance or a product name. Do not use this for plant protection products or MRLs (use `regaffairs_check_pesticide_approval_and_mrl`).

InputTypeDescription
active_substancestringActive substance name or CAS, e.g. 'permethrin', 'hydrogen peroxide'. Give active_substance or product_name.
product_namestringBiocidal product or disinfectant name, or an EPA registration number. Give active_substance or product_name.
product_typestringe.g. 'PT18' (insecticides), 'PT8' (wood preservatives).
jurisdictionsarray of (EU | GB | FR | DE | US | CA)
target_pathogenstringFor US disinfectant lists, e.g. 'SARS-CoV-2', 'norovirus', 'C. difficile'.
include_suppliersbooleanAdd Article 95 supplier entries.
Example: Is permethrin approved under the EU BPR, and for which product types?
{
  "active_substance": "permethrin",
  "jurisdictions": [
    "EU"
  ]
}

regaffairs_find_pharma_gmp_and_ich_guidance

Find pharma GMP and ICH guidance (EU GMP, cGMP, ICH, CTD)

Use this when the user asks what a GMP or ICH guideline requires, needs the text of a GMP annex or ICH guideline, or asks whether a UK site holds an MHRA manufacturing or wholesale (GMP/GDP) licence. It covers EU GMP (EudraLex Volume 4, Parts I to IV and Annexes 1 to 21), US cGMP for finished pharmaceuticals (21 CFR Parts 210 and 211), the ICH Quality, Safety, Efficacy and Multidisciplinary guidelines and the ICH M4 Common Technical Document, Directive 2001/83/EC, the MHRA GMDP register (GMP and GDP certificates, manufacturer and wholesaler authorisations), MHRA GMP inspection deficiency data, and EDQM OMCL network market surveillance reports. It returns passages with the guideline code, section and version date. Give a topic, a guideline code or a site or company. It does not count as a question. Do not use this for whether a medicine is authorised or in shortage (use `regaffairs_check_drug_or_device_approval`), for clinical trial conduct or GCP, or for FDA submission strategy.

InputTypeDescription
querystringThe GMP or ICH topic, e.g. 'contamination control strategy', 'stability testing zones', 'nitrosamine risk assessment'. Give query, guideline or site_or_company.
sourceeu_gmp | us_cgmp | ich | ctd | eu_medicines_law | mhra_licences | any
guidelinestringCode or annex, e.g. 'Annex 1', 'Q9(R1)', 'Q1A(R2)', 'M7', '211.192'. Give query, guideline or site_or_company.
site_or_companystringFor MHRA licence lookups: company or site name, or licence number. Give query, guideline or site_or_company.
Example: What does EU GMP Annex 1 require for the contamination control strategy?
{
  "query": "contamination control strategy",
  "guideline": "Annex 1",
  "source": "eu_gmp"
}

regaffairs_check_drug_or_device_approval

Check a drug or medical device approval, classification or shortage

Use this when the user asks whether a medicine is authorised in a market, its approval details or shortage status, or a medical device's classification, registration, approval or notified body. Medicines: the FDA Orange Book (approved drugs, therapeutic equivalence, patents and exclusivity), EMA authorised medicines, EMA orphan designations, the EMA, FDA and MHRA shortage lists, the Health Canada Drug Product Database (DIN) and Notice of Compliance database. Devices: the FDA device classification database (product codes, device class, regulation number), FDA De Novo decisions and PMA approvals, FDA MAUDE adverse event reports, MHRA guidance on registering devices for the GB market, EU NANDO notified bodies under the MDR and IVDR, the CDSCO approved device lists (India) and the Italian national medical devices database. Do not use this for GMP or ICH guidance (use `regaffairs_find_pharma_gmp_and_ich_guidance`), for MDR or IVDR legal requirements, or for clinical trials.

InputTypeDescription
product *stringMedicine brand or active ingredient, DIN, NDA/ANDA number, device name, FDA product code (e.g. 'DXY'), PMA number or notified body number.
product_kindmedicine | device | any
jurisdictionsarray of (US | EU | GB | CA | IN | IT)Default: all held for the product kind.
includearray of (approval | shortage | orphan | classification | adverse_events | notified_bodies)
Example: What FDA device class is a powered wheelchair?
{
  "product": "powered wheelchair",
  "product_kind": "device",
  "jurisdictions": [
    "US"
  ],
  "include": [
    "classification"
  ]
}

regaffairs_check_textile_restricted_substances

Check textile restricted substances and labelling (ZDHC, OEKO-TEX, REACH)

Use this when the user asks whether a substance is restricted in textiles, clothing, footwear or leather, what limit applies under a brand or certification list, or what a textile fibre, care or flammability label must show. Substance lists: the ZDHC MRSL, OEKO-TEX Standard 100 limit values by product class, the bluesign system substances list, REACH Annex XVII entries that apply to textiles and leather (for example entry 72 on CMR substances in clothing), the EU Ecolabel textile criteria, and Japanese household goods limits (formaldehyde). Labelling: the EU textile fibre names Regulation (EU) No 1007/2011, the US Textile Fiber Products Identification Act (16 CFR 303), the FTC care labeling rule (16 CFR 423) and wool and fur rules, the Canadian Textile Labelling Act, and US flammability standards (16 CFR 1610, 1611, 1615, 1616). Give substances or a topic. Do not use this for general chemical status outside textiles (use `regaffairs_check_chemical_substance`).

InputTypeDescription
substancesarray of stringNames, CAS numbers or substance groups, e.g. 'APEOs', 'PFAS', 'azo dyes', '117-81-7'. Give substances or topic.
topicrestricted_substances | fibre_content_label | care_label | flammabilityWhat to check. Give substances or topic; substances without a topic are checked as restricted_substances.
listsarray of (zdhc_mrsl | oeko_tex_100 | bluesign | reach_annex_xvii | eu_ecolabel | jp_household_goods)Default: all.
product_classbaby | skin_contact | no_skin_contact | decorationOEKO-TEX product class I to IV.
jurisdictionsarray of (EU | US | CA | JP | INTL)
Example: What does the ZDHC MRSL limit for alkylphenol ethoxylates?
{
  "substances": [
    "alkylphenol ethoxylates"
  ],
  "lists": [
    "zdhc_mrsl"
  ]
}

Support

Email hello@regaffairsai.com. See also the privacy policy and terms.