Skip to main content
Glama
CSOAI-ORG

fsa-food-safety-mcp

MCP Scorecard: 88/100

Fsa Food Safety MCP

MEOK AI Labs EU AI Act License PyPI

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 claude

Related 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

councilof.ai

EU AI Act compliance marketplace

safetyof.ai

AI safety & monitoring

meok.ai

Sovereign AI platform

cobolbridge.ai

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_business to …"

  • "Use haccp_audit to …"

  • "Use allergen_labelling_check to …"

Available Tools

7 tools
allergen_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.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryNo
api_keyNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryNo
api_keyNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters4/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryNo
api_keyNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.2/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.5/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryNo
api_keyNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYes
regulationNo
limitNo

TDQS

A4.8/5.0
Behavior5/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters5/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryNo
api_keyNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters4/5

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.

Purpose3/5

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.

Usage Guidelines2/5

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.

  1. 7 tool updatesv1.0.0
    • First observedallergen_labelling_check
    • First observedclassify_food_business
    • First observedhaccp_audit
    • First observedlist_regulations_in_db
    • First observedrecall_procedure_template
    • First observedsearch_regulation
    • First observedtraceability_one_up_one_down

TDQS

A3.6/5.0

Scored across 7 tools

Disambiguation5/5

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.

Naming Consistency4/5

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'.

Tool Count5/5

Seven tools provide a well-scoped set for food safety regulation without being excessive or insufficient. Each tool serves a clear regulatory function.

Completeness4/5

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

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers