fsa-food-safety-mcp
This server provides UK FSA, EU Regulation 178/2002, and HACCP food safety compliance tools, along with EU regulatory text search capabilities.
classify_food_business— Determine the FSA registration tier (low/medium/high risk) for a food businesshaccp_audit— Run a compliance check against the HACCP 7 principles and 12 steps frameworkallergen_labelling_check— Verify allergen disclosure compliance under EU Regulation 1169/2011 and Natasha's Lawtraceability_one_up_one_down— Assess traceability compliance per EU Regulation 178/2002 Article 18 (one-up/one-down supply chain tracking)recall_procedure_template— Generate food recall and withdrawal procedure templatessearch_regulation— Full-text search across 410+ articles of real EU regulation text (EUR-Lex verified), supporting regulations such as the EU AI Act, DORA, NIS2, CRA, CSRD, and GDPRlist_regulations_in_db— List all regulations available in the local EUR-Lex FTS5 database
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@fsa-food-safety-mcpRun a HACCP audit on my restaurant."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Fsa Food Safety MCP
UK FSA + EU Reg 178/2002 + HACCP food safety compliance MCP
UK FSA + EU Reg 178/2002 + HACCP food safety compliance MCP. MIT
🚀 Quick Start
# Install via pip
pip install fsa_food_safety_mcp
# Or install via Smithery
npx -y @smithery/cli@latest install fsa-food-safety-mcp --client claudeRelated MCP server: EU AI Act Compliance MCP Server
✨ Features
Real-time AI safety monitoring
Byzantine fault-tolerant consensus
EU AI Act compliance tracking
Incident alert system
Multi-agent governance
📖 Documentation
🛡️ Compliance
This MCP server is built with EU AI Act compliance built-in:
✅ Article 9 — Risk Management System
✅ Article 13 — Transparency & Instructions for Use
✅ Article 15 — Bias Detection & Testing
✅ Article 26 — FRIA Support (where applicable)
✅ Article 50 — AI Content Watermarking (where applicable)
Need help getting compliant? Book a free 15-min diagnostic →
🏢 Enterprise
Need custom development, SLA guarantees, or white-label deployment?
Pro: $99/mo — Full MCP suite + EU AI Act tracking
Enterprise: $499/mo — Custom dev + SLA + Dedicated support
View Pricing → | Contact Sales →
🤝 Part of the MEOK Ecosystem
This server is part of the MEOK AI Labs ecosystem — 300+ MCP servers for sovereign AI governance.
Domain | Purpose |
EU AI Act compliance marketplace | |
AI safety & monitoring | |
Sovereign AI platform | |
Legacy modernization |
📜 License
MIT © CSOAI-ORG
Configuration
Add to your claude_desktop_config.json (Claude Desktop) or your MCP client config:
{
"mcpServers": {
"fsa-food-safety-mcp": {
"command": "uvx",
"args": ["fsa-food-safety-mcp"]
}
}
}Or: pip install fsa-food-safety-mcp then run the fsa-food-safety-mcp command (stdio transport).
Examples
Once configured, ask your assistant, for example:
"Use
classify_food_businessto …""Use
haccp_auditto …""Use
allergen_labelling_checkto …"
Available Tools
7 toolsallergen_labelling_checkA
EU Reg 1169/2011 + Natasha's Law allergen disclosure
Args: query: Optional query parameter (regulation ref, identifier, or input data). api_key: Optional MEOK API key for Pro+ tier features.
Returns: JSON with structured assessment, regulation refs, and recommended actions.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | ||
| api_key | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It describes the return format (JSON with assessment, regulation refs, actions) and mentions optional parameters, but does not disclose whether the tool is read-only, destructive, or requires authentication (api_key is optional for Pro+ but not explained further). Lacks disclosure of side effects or limitations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: one line stating the purpose, then a formatted args list, and a returns line. Every sentence serves a purpose. Front-loaded with the main function.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has an output schema (as per context signals), the description does not need to detail return values. It mentions the return format adequately. However, it lacks context on when to use this tool versus siblings, and does not explain the overall workflow or prerequisites. For a specific compliance check, it is fairly complete but missing usage guidance.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% (parameters have only titles and defaults), so description must add meaning. It explains that 'query' takes a regulation ref, identifier, or input data, and 'api_key' is for Pro+ tier features. This adds value beyond the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool checks allergen labelling against EU Reg 1169/2011 and Natasha's Law, with a specific verb 'check' and resource 'allergen disclosure'. It distinguishes from sibling tools like search_regulation which likely searches general regulations, and traceability which is about supply chain tracking.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for allergen labelling compliance but does not explicitly state when to use this tool versus alternatives. No when-not or alternative tool mentions, leaving the agent to infer usage context from the purpose alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
classify_food_businessB
Determine FSA registration tier (low/medium/high risk)
Args: query: Optional query parameter (regulation ref, identifier, or input data). api_key: Optional MEOK API key for Pro+ tier features.
Returns: JSON with structured assessment, regulation refs, and recommended actions.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | ||
| api_key | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must disclose all behavioral traits. It mentions the return type ('JSON with structured assessment, regulation refs, and recommended actions') but does not clarify if the tool modifies any data, requires specific permissions, or has rate limits. This leaves significant ambiguity for the agent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise at 5 lines, with a clear first-line purpose and organized sections (Args, Returns). Every sentence contributes value, though the Returns line could be more specific.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (classification with two optional params) and the existence of an output schema, the description covers the return format but omits details on classification criteria, error handling, or examples. It is adequate but not comprehensive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 0% description coverage, so the description must add meaning. It explains 'query' as an optional parameter for 'regulation ref, identifier, or input data', and 'api_key' as for 'Pro+ tier features'. This provides useful context that the schema lacks.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Determine FSA registration tier (low/medium/high risk)'. The verb 'Determine' and resource 'FSA registration tier' are specific. However, it does not explicitly differentiate from sibling tools like 'allergen_labelling_check' or 'haccp_audit', leaving the agent to infer based on the distinct task.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. Sibling tools such as 'search_regulation' or 'traceability_one_up_one_down' are not referenced, and there is no discussion of prerequisites or conditions that would make this tool the best choice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
haccp_auditB
HACCP 7 principles + 12 steps compliance check
Args: query: Optional query parameter (regulation ref, identifier, or input data). api_key: Optional MEOK API key for Pro+ tier features.
Returns: JSON with structured assessment, regulation refs, and recommended actions.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | ||
| api_key | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose behavioral traits such as whether the tool is read-only or modifies data. It only mentions the return format, omitting important aspects like authentication requirements or side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is relatively concise, stating the purpose upfront and listing parameters in a structured 'Args' section. It avoids unnecessary verbosity, though the 'Returns' line adds minimal value given an existing output schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of an HACCP audit tool, the description is minimal. It mentions the return includes 'structured assessment, regulation refs, and recommended actions', but lacks details on how the query influences output or fallback behavior when no query is provided.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, but the description adds meaning by explaining 'query' as a regulation reference or input data, and 'api_key' as an optional key for Pro+ features. This provides basic context beyond the schema defaults, though more detail on input format would improve.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'HACCP 7 principles + 12 steps compliance check', which is a specific verb-resource pair. It distinguishes from sibling tools like 'allergen_labelling_check' and 'classify_food_business' by focusing on HACCP compliance.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not provide any guidance on when to use this tool over alternatives. No context about prerequisites or typical use cases is given, leaving the agent to infer from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_regulations_in_dbA
List all regulations in the local EUR-Lex FTS5 database.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; description does not disclose behavioral traits such as read-only nature, performance implications, or potential side effects. Minimal disclosure for a list operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence of 10 words, highly concise and front-loaded with key information. Every word adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given zero parameters and no output schema, description is adequate but could mention expected result format (e.g., list of regulation identifiers) or error conditions.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters defined in schema. Baseline score of 4 applies as per guidelines for zero-parameter tools; description adds no param info but none needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states verb 'List', resource 'regulations', scope 'all', and context 'local EUR-Lex FTS5 database'. Distinct from sibling 'search_regulation' which implies filtered retrieval.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like 'search_regulation'. The description implies it returns all records but does not explicitly state when to prefer it or not.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
recall_procedure_templateC
Food recall + withdrawal procedure generator
Args: query: Optional query parameter (regulation ref, identifier, or input data). api_key: Optional MEOK API key for Pro+ tier features.
Returns: JSON with structured assessment, regulation refs, and recommended actions.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | ||
| api_key | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must convey behavioral traits, but it only describes the input and output. It does not state whether the tool is read-only, destructive, or requires authentication (though it mentions an optional API key). The behavior of generating a procedure is implied, but side effects or access needs are not disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is structured as a docstring with Args and Returns, making it easily scannable. The first sentence front-loads the purpose. It is relatively concise at 6 lines, though some redundancy exists (e.g., 'Optional query parameter' and 'Optional MEOK API key'). Overall, it earns its space.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the basic purpose, parameters, and return format. Given that an output schema exists, it does not need to detail returns, but it still mentions them. However, it lacks context about default behavior when parameters are omitted, prerequisites, or integration with other tools. Completeness is adequate but not thorough.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0% description coverage, so the description carries the burden. It explains 'query' as optional regulation ref, identifier, or input data, and 'api_key' as optional MEOK API key for Pro+ features. This adds modest meaning beyond the schema's defaults and types, but the explanations are generic and could be more detailed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Food recall + withdrawal procedure generator', which is a specific verb+resource. It provides a succinct summary of the tool's output, including structured assessment, regulation refs, and recommended actions. However, it could be more explicit about what distinguishes it from siblings like 'allergen_labelling_check' or 'haccp_audit', though the procedural generation is distinct.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not provide guidance on when to use this tool versus siblings or alternatives. It gives parameter descriptions but no context on prerequisites, typical triggers (e.g., a recall event), or conditions under which this tool should be chosen. The absence of usage instructions leaves the agent without decision-making support.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_regulationA
Full-text search across 410+ articles of real EU regulation text (EUR-Lex verified).
Args: query: Search terms. FTS5 syntax supported (AND, OR, NEAR, phrase quoting). regulation: Optional filter - one of: eu-ai-act, dora, nis2, cra, csrd, gdpr. limit: Max results (default 10).
Returns:
Snippets from matching articles with regulation + article + relevance score.
Verbatim from EUR-Lex Cellar — auditor-defensible quotes with >>>match<<< highlights.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | ||
| regulation | No | ||
| limit | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It discloses that results are verbatim from EUR-Lex Cellar, include snippets with regulation+article+relevance score, and feature auditor-defensible quotes with highlights. This adequately conveys that the operation is read-only and trustworthy.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is highly concise, using a structured Args/Returns format. Every sentence adds value, with no wasted words. It is front-loaded with the core purpose and includes necessary details without verbosity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having no output schema, the description fully describes return values (snippets, regulation, article, relevance score, highlights). All parameters are explained, and the tool's scope is clear. It meets all information needs for an agent to use the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description fully compensates by explaining each parameter: query (FTS5 syntax), regulation (optional filter listing valid values), and limit (default 10). This adds significant meaning beyond the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states it performs a full-text search across 410+ articles of EU regulation text from EUR-Lex, which clearly distinguishes it from sibling tools like list_regulations_in_db (listing) or specific checks like market_abuse_check. The verb 'search' and resource 'regulation text' are specific.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description specifies the tool is for full-text search with FTS5 syntax and optional filters. While it doesn't explicitly state when not to use it or name alternatives, the context of siblings makes its primary use clear. A slight lack of exclusionary guidance prevents a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
traceability_one_up_one_downC
EU Reg 178/2002 Article 18 traceability
Args: query: Optional query parameter (regulation ref, identifier, or input data). api_key: Optional MEOK API key for Pro+ tier features.
Returns: JSON with structured assessment, regulation refs, and recommended actions.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | ||
| api_key | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries full burden. It mentions 'Returns: JSON' but does not disclose side effects, required permissions, or whether the tool performs read-only analysis. The behavioral profile is under-specified for a tool that likely queries a database.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with a clear title and argument list. It front-loads the regulation reference and output summary. However, it could be more structured (e.g., separate sections) without adding length.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (traceability with multiple potential inputs), the description is minimally adequate. The existence of an output schema reduces the burden for return values, but the description omits key context like the meaning of 'one up one down' and typical use cases.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has no descriptions (0% coverage), but the description adds meaning: 'query' can be regulation ref, identifier, or input data; 'api_key' enables Pro+ features. This clarifies parameter usage beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the tool is for 'EU Reg 178/2002 Article 18 traceability' and returns structured assessment, regulation refs, and recommended actions. However, it does not explicitly define 'one up one down' traceability or differentiate from sibling tools, making it somewhat vague.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like recall_procedure_template or classify_food_business. The description lacks context on when traceability queries are appropriate or what prerequisites exist.
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.
7 tool updates
v1.0.0- First observed
allergen_labelling_check - First observed
classify_food_business - First observed
haccp_audit - First observed
list_regulations_in_db - First observed
recall_procedure_template - First observed
search_regulation - First observed
traceability_one_up_one_down
TDQS
Scored across 7 tools
Each tool targets a distinct aspect of food safety regulation: allergen labeling, business classification, HACCP, recall procedures, regulation search, traceability, and database listing. There is no overlap in purpose.
Tool names follow a consistent verb_noun pattern (check, classify, audit, list, search, etc.) with snake_case. Minor deviations include 'list_regulations_in_db' (less action-oriented) and British spelling in 'labelling'.
Seven tools provide a well-scoped set for food safety regulation without being excessive or insufficient. Each tool serves a clear regulatory function.
The set covers major food safety areas (allergens, HACCP, recall, traceability, regulations search). Missing areas like enforcement or inspection are minor gaps that agents can work around.
Maintenance
Related MCP Connectors
UK food safety and traceability — direct sales, labelling, raw milk, HACCP
French HACCP for restaurants: temperatures, DLC, allergens, DDPP controls, live recalls. Sourced.
BC/DR & compliance tools: DORA, NIS2, NIST CSF, GDPR, SOC 2, CMMC, CAF, ISO 27001, FCA/PRA.
Access CQC care ratings, NHS health services, and food hygiene data across the UK
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables users to generate complete HACCP analyses enriched with real FDA recall data, with tools for process step schema, recall search, and analysis export.BSD 3-Clause
- AlicenseAqualityDmaintenanceProvides automated EU AI Act compliance tools, including risk classification, role determination, transparency disclosures, content watermarking, deepfake labeling, and security threat detection.1633Apache 2.0
- AlicenseNot gradedqualityDmaintenanceEnables 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
- AlicenseNot gradedqualityDmaintenanceEnables UK haulage compliance checks including operator licence verification, tachograph auditing, drivers' hours calculations, and DVSA roadside inspection support.54 PyPIMIT