EU/PL food law for supplement firms: health claims, novel food, GIS, C.L.A.I.M.S. Not legal advice.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Look up a nutrient/substance in the official EU Register of nutrition and health claims (European Commission data, refreshed weekly). Shows whether each claim is Authorised, Non-authorised or Revoked, its conditions of use, the EFSA question and the legal act.
Nutrient or substance (English or Latin), e.g. "vitamin C", "glucomannan".
Response language. Default: en.
Default: all.
Optional words of the claim/function, e.g. "immune system".
Look up a nutrient/substance in the official EU Register of nutrition and health claims (European Commission data, refreshed weekly). Shows whether each claim is Authorised, Non-authorised or Revoked, its conditions of use, the EFSA question and the legal act.
| Argument | Type | Description |
|---|---|---|
| lang | string | Response language. Default: en. |
| limit | integer | |
| status | string | Default: all. |
| substance* | string | Nutrient or substance (English or Latin), e.g. "vitamin C", "glucomannan". |
| claim_text | string | Optional words of the claim/function, e.g. "immune system". |
{
"type": "object",
"required": [
"substance"
],
"properties": {
"lang": {
"enum": [
"pl",
"en",
"de"
],
"type": "string",
"description": "Response language. Default: en."
},
"limit": {
"type": "integer",
"maximum": 25,
"minimum": 1
},
"status": {
"enum": [
"all",
"authorised",
"non_authorised",
"revoked"
],
"type": "string",
"description": "Default: all."
},
"substance": {
"type": "string",
"maxLength": 200,
"minLength": 2,
"description": "Nutrient or substance (English or Latin), e.g. \"vitamin C\", \"glucomannan\"."
},
"claim_text": {
"type": "string",
"maxLength": 300,
"description": "Optional words of the claim/function, e.g. \"immune system\"."
}
}
}Return one supplemental.pl knowledge article by URL or slug: summary, headings, a text excerpt, legal references named in it and its PL/EN/DE versions. Pass lang to get another language version.
| Argument | Type | Description |
|---|---|---|
| url* | string | Article URL on supplemental.pl or its slug. |
| lang | string | Response language. Default: en. |
{
"type": "object",
"required": [
"url"
],
"properties": {
"url": {
"type": "string",
"maxLength": 400,
"minLength": 3,
"description": "Article URL on supplemental.pl or its slug."
},
"lang": {
"enum": [
"pl",
"en",
"de"
],
"type": "string",
"description": "Response language. Default: en."
}
}
}Fetch one claim from C.L.A.I.M.S. by its numeric ID (from search_claims_foodlaw). Botanicals are always "on_hold".
| Argument | Type | Description |
|---|---|---|
| id* | integer | |
| lang | string |
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "integer",
"minimum": 1
},
"lang": {
"enum": [
"en",
"pl"
],
"type": "string"
}
}
}Step-by-step procedure for notifying a food supplement to the Polish Chief Sanitary Inspectorate (GIS, Art. 29–30 of the Food and Nutrition Safety Act), from the supplemental.pl article. A GIS notification is not a novel food authorisation.
| Argument | Type | Description |
|---|---|---|
| lang | string | Response language. Default: en. |
{
"type": "object",
"properties": {
"lang": {
"enum": [
"pl",
"en",
"de"
],
"type": "string",
"description": "Response language. Default: en."
}
}
}Look up a food or ingredient in the EU Novel Food Catalogue (European Commission data, refreshed weekly): status per part/form (Novel food, Not novel in food, Not novel in food supplements, Authorised novel food, consultation request), with links to Reg. 2015/2283 and the Union list.
| Argument | Type | Description |
|---|---|---|
| lang | string | Response language. Default: en. |
| name* | string | Ingredient name (Latin, English or common name), e.g. "Withania somnifera", "NMN". |
| limit | integer |
{
"type": "object",
"required": [
"name"
],
"properties": {
"lang": {
"enum": [
"pl",
"en",
"de"
],
"type": "string",
"description": "Response language. Default: en."
},
"name": {
"type": "string",
"maxLength": 200,
"minLength": 2,
"description": "Ingredient name (Latin, English or common name), e.g. \"Withania somnifera\", \"NMN\"."
},
"limit": {
"type": "integer",
"maximum": 20,
"minimum": 1
}
}
}Deterministic nutrition calculation for a recipe (no AI): energy and nutrients per 100 g, micronutrients with %NRV, candidate nutrition claims (withheld if any ingredient is unresolved), allergens and QUID hints. Ingredient lines with mass or volume, e.g. "mąka pszenna 500 g", "milk 200 ml". Max 20 calculations per user per day.
| Argument | Type | Description |
|---|---|---|
| lang | string | Response language. Default: en. |
| ingredients* | array | One ingredient per item, with quantity and unit (g, kg, mg, ml, l). |
| product_form | string | Default solid. |
| product_name | string | |
| mass_loss_pct | number | Mass loss during processing (e.g. baking), %. |
{
"type": "object",
"required": [
"ingredients"
],
"properties": {
"lang": {
"enum": [
"pl",
"en",
"de"
],
"type": "string",
"description": "Response language. Default: en."
},
"ingredients": {
"type": "array",
"items": {
"type": "string",
"maxLength": 120,
"minLength": 2
},
"maxItems": 40,
"minItems": 1,
"description": "One ingredient per item, with quantity and unit (g, kg, mg, ml, l)."
},
"product_form": {
"enum": [
"solid",
"liquid"
],
"type": "string",
"description": "Default solid."
},
"product_name": {
"type": "string",
"maxLength": 120
},
"mass_loss_pct": {
"type": "number",
"maximum": 90,
"minimum": 0,
"description": "Mass loss during processing (e.g. baking), %."
}
}
}Full-text search of supplemental.pl knowledge articles on EU/PL food law (health claims, novel food, supplements, labelling, CJEU case law) in Polish, English or German. Returns titles, URLs, dates, summaries and language versions.
| Argument | Type | Description |
|---|---|---|
| lang | string | Response language. Default: en. |
| limit | integer | Max results (default 5). |
| query* | string | Search terms, e.g. "novel food NMN" or "oświadczenia zdrowotne witamina D". |
{
"type": "object",
"required": [
"query"
],
"properties": {
"lang": {
"enum": [
"pl",
"en",
"de"
],
"type": "string",
"description": "Response language. Default: en."
},
"limit": {
"type": "integer",
"maximum": 10,
"minimum": 1,
"description": "Max results (default 5)."
},
"query": {
"type": "string",
"maxLength": 200,
"minLength": 2,
"description": "Search terms, e.g. \"novel food NMN\" or \"oświadczenia zdrowotne witamina D\"."
}
}
}Match an ingredient (and optional dose) against Reg. 432/2012 authorised claims and the SANCO/11074/2013 botanical list via C.L.A.I.M.S. (FOODLAW.ai). Botanical claims are always returned as regulatory_status "on_hold" (not authorised).
| Argument | Type | Description |
|---|---|---|
| dose | string | Optional dose, e.g. "300 mg". |
| lang | string | |
| substance* | string | Ingredient (Latin, English or Polish). |
{
"type": "object",
"required": [
"substance"
],
"properties": {
"dose": {
"type": "string",
"maxLength": 40,
"description": "Optional dose, e.g. \"300 mg\"."
},
"lang": {
"enum": [
"en",
"pl"
],
"type": "string"
},
"substance": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Ingredient (Latin, English or Polish)."
}
}
}