← Back to search

io.github.malkreide/swiss-food-safety-mcp

malkreide Scanned 25d ago

BLV open data for food safety and veterinary inspections

C
69.4 / 100

Versions

1.1.3latest
first seen Jun 30, 2026
PermissionsTool SafetyAuthAnnotationsCode QualityStabilitySpecVuln HistoryAuthorTransparencyCommunity

Tools 11

blv_get_public_warnings
annotations: none low

Current BLV food recalls and public health warnings (live RSS feed). Use case: answer questions about food safety alerts currently active in Switzerland, e.g. "which products have been recalled recently?". Args: limit: Maximum number of items to return (default 20, max 50). Returns: List of warning items with title, link, description, pubDate, source.

ctx string limit int
blv_list_datasets
annotations: none low

Browse all BLV open datasets on opendata.swiss (CKAN API). Use case: discover which datasets exist before drilling into one with blv_get_dataset_info, or to map a topic to a concrete dataset slug. Args: limit: Maximum datasets to return (default 28 = all BLV datasets). search: Optional keyword filter on title/notes. Returns: List of dataset summaries with name, title, notes, num_resources, source.

ctx string limit int search str
blv_get_dataset_info
annotations: none low

Detailed metadata and resource URLs for a specific BLV dataset. Use case: obtain the concrete download URLs and formats of a dataset found via blv_list_datasets, including its open-data licence. Args: dataset_name: CKAN dataset name/slug (from blv_list_datasets). Returns: Full dataset metadata including all resource download URLs and formats.

ctx string dataset_name str
blv_search_animal_diseases
annotations: none low

Search notifiable animal disease cases in Switzerland since 1991 (InfoSM). Use case: report on disease occurrence by canton and year, e.g. "were there avian influenza cases in Bern in 2024?". Args: canton: Two-letter canton abbreviation (e.g. "ZH", "BE"). Empty = all cantons. disease: Disease name filter (partial match, e.g. "Maul", "Vogelgrippe"). Empty = all. year_from: Start year (default 2020). year_to: End year (default 2024). limit: Maximum results (default 50). Returns: List of disease case records with year, canton, disease, cases, source.

ctx string limit int canton str disease str year_to int year_from int
blv_get_animal_health_stats
annotations: none low

Annual animal health statistics from BLV (opendata.swiss CSV/JSON). Use case: track year-over-year animal health indicators across Switzerland. Args: year: Filter by year (e.g. 2023). None returns all available years. Returns: List of annual statistics records.

ctx string year string
blv_get_food_control_results
annotations: none low

Cantonal food inspection results and violation rates (Lebensmittelkontrolle). Use case: compare inspection volumes and violation rates between cantons or across years. Args: canton: Two-letter canton abbreviation (e.g. "ZH"). Empty = all. year: Filter by year. None = all available. limit: Maximum rows to return (default 100). Returns: List of inspection result records with canton, year, inspections, violations.

ctx string year string limit int canton str
blv_get_antibiotic_usage_vet
annotations: none low

Veterinary antibiotic usage data from the Swiss ISABV monitoring system. Use case: analyse antibiotic consumption trends by livestock species, e.g. for antimicrobial-resistance reporting. Args: year: Filter by year (e.g. 2022). None = all years. animal_species: Filter by species (e.g. "Rind", "Schwein", "Geflügel"). Empty = all. Returns: Antibiotic usage records with year, species, substance class, quantity (kg).

ctx string year string animal_species str
blv_get_avian_influenza
annotations: none low

Wild bird avian influenza (H5N1 / HPAI) surveillance data with geodata. Use case: locate and date wild-bird avian influenza detections, optionally narrowed to one canton. Args: year: Filter by year (e.g. 2024). None = all. canton: Two-letter canton code (e.g. "ZH"). Empty = all Switzerland. Returns: Avian influenza case records with date, location, species, result, coordinates.

ctx string year string canton str
blv_get_nutrition_data_children
annotations: none low

Swiss national children's nutrition survey — questionnaire tallies (menuCH-Kids). Use case: how often each answer was given, broken down by sex, language region and age group. NOT nutrient intake. The docstring here promised "nutrient intake by age group against dietary recommendations" and named "Energie", "Zucker", "Eisen" as filter examples. The only menuCH-Kids dataset published on opendata.swiss is the questionnaire, and it carries answer counts: ``Geschlecht, Sprachregion, Altersgruppe, Frage, Antwort, Anzahl``. Measured on 2026-08-08. A filter on "Eisen" therefore matched nothing and returned an empty list — indistinguishable from "no such data for this age group". Nutrient intake for adults exists as a separate dataset (``menuch_lebensmittelkonsum``); this tool does not cover it, and inventing a mapping would be worse than the missing feature. Args: age_group: Filter by age group as the source spells it (e.g. "10bis13"). answer_code: Filter by question or answer code (e.g. "c09B_12", "a78"). Returns: Questionnaire records: sex, language region, age group, question code, answer code, count.

ctx string age_group str answer_code str
blv_search_pesticide_products
annotations: none low

Search the Swiss approved pesticide register (Pflanzenschutzmittelverzeichnis). Use case: check whether a plant-protection product or active ingredient is approved (or revoked) in Switzerland. Args: product_name: Filter by product name (partial match). Empty = all. active_ingredient: Filter by active ingredient, e.g. "Kupfer", "Glyphosat". Empty = all. status: Authorization status — "bewilligt" (approved), "widerrufen" (revoked), or "". limit: Maximum results (default 50). Returns: Pesticide product records with name, authorization number, active ingredients, status.

ctx string limit int status str product_name str active_ingredient str
blv_get_meat_inspection_stats
annotations: none low

Slaughterhouse meat inspection statistics (Fleischuntersuchung). Use case: review slaughter counts and condemnation rates by animal type and year. Args: year: Filter by year (e.g. 2023). None = all. animal_type: Filter by animal type (e.g. "Rind", "Schwein", "Geflügel"). Empty = all. Returns: Inspection statistics with year, animal type, slaughter count, condemnation rate.

ctx string year string animal_type str

Permissions 2

network medium
Server uses network capabilities via: httpx, socket, urllib
filesystem low
Server uses filesystem capabilities via: pathlib

Scan Findings 47

low
Tool 'blv_get_nutrition_data_children' has no annotations annotation_checker · 100%
low
Tool 'blv_get_public_warnings' has no annotations annotation_checker · 100%
low
Tool 'blv_list_datasets' has no annotations annotation_checker · 100%
low
Tool 'blv_get_dataset_info' has no annotations annotation_checker · 100%
low
Tool 'blv_search_animal_diseases' has no annotations annotation_checker · 100%
low
Tool 'blv_get_animal_health_stats' has no annotations annotation_checker · 100%
low
Tool 'blv_get_food_control_results' has no annotations annotation_checker · 100%
low
Tool 'blv_get_antibiotic_usage_vet' has no annotations annotation_checker · 100%
low
Tool 'blv_get_avian_influenza' has no annotations annotation_checker · 100%
low
Tool 'blv_search_pesticide_products' has no annotations annotation_checker · 100%
low
Tool 'blv_get_meat_inspection_stats' has no annotations annotation_checker · 100%
high
Remote transport without authentication auth_checker · 70%
info
Sandbox failed to start for behavioral verification behavioral_verifier · 100%
medium
Vulnerable dependency: fastmcp@3.0.0,<4.0.0 (GHSA-5h2m-4q8j-pqpj) dependency_analyzer · 95%
medium
Vulnerable dependency: fastmcp@3.0.0,<4.0.0 (GHSA-c2jp-c369-7pvx) dependency_analyzer · 95%
medium
Vulnerable dependency: fastmcp@3.0.0,<4.0.0 (GHSA-m8x7-r2rg-vh5g) dependency_analyzer · 95%
medium
Vulnerable dependency: fastmcp@3.0.0,<4.0.0 (GHSA-mxxr-jv3v-6pgc) dependency_analyzer · 95%
medium
Vulnerable dependency: fastmcp@3.0.0,<4.0.0 (GHSA-rcfx-77hg-w2wv) dependency_analyzer · 95%
medium
Vulnerable dependency: fastmcp@3.0.0,<4.0.0 (GHSA-rj5c-58rq-j5g5) dependency_analyzer · 95%
medium
Vulnerable dependency: fastmcp@3.0.0,<4.0.0 (GHSA-rww4-4w9c-7733) dependency_analyzer · 95%
medium
Vulnerable dependency: fastmcp@3.0.0,<4.0.0 (GHSA-vv7q-7jx5-f767) dependency_analyzer · 95%
medium
Vulnerable dependency: fastmcp@3.0.0,<4.0.0 (PYSEC-2026-1364) dependency_analyzer · 95%
medium
Vulnerable dependency: fastmcp@3.0.0,<4.0.0 (PYSEC-2026-1365) dependency_analyzer · 95%
medium
Vulnerable dependency: fastmcp@3.0.0,<4.0.0 (PYSEC-2026-2474) dependency_analyzer · 95%
medium
Vulnerable dependency: fastmcp@3.0.0,<4.0.0 (PYSEC-2026-2475) dependency_analyzer · 95%
medium
Vulnerable dependency: fastmcp@3.0.0,<4.0.0 (PYSEC-2026-2476) dependency_analyzer · 95%
medium
Vulnerable dependency: fastmcp@3.0.0,<4.0.0 (PYSEC-2026-338) dependency_analyzer · 95%
medium
Vulnerable dependency: pydantic@2.0.0 (GHSA-mr82-8j83-vxmv) dependency_analyzer · 95%
medium
Vulnerable dependency: pydantic@2.0.0 (PYSEC-2026-1812) dependency_analyzer · 95%
info
pyproject.toml metadata manifest_parser · 100%
info
Tool: blv_get_public_warnings manifest_parser · 90%
info
Tool: blv_list_datasets manifest_parser · 90%
info
Tool: blv_get_dataset_info manifest_parser · 90%
info
Tool: blv_search_animal_diseases manifest_parser · 90%
info
Tool: blv_get_animal_health_stats manifest_parser · 90%
info
Tool: blv_get_food_control_results manifest_parser · 90%
info
Tool: blv_get_antibiotic_usage_vet manifest_parser · 90%
info
Tool: blv_get_avian_influenza manifest_parser · 90%
info
Tool: blv_get_nutrition_data_children manifest_parser · 90%
info
Tool: blv_search_pesticide_products manifest_parser · 90%
info
Tool: blv_get_meat_inspection_stats manifest_parser · 90%
info
Transport: streamable-http manifest_parser · 80%
info
Sandbox failed to start for output poisoning scan output_poisoning · 100%
medium
Permission: network access detected permission_analyzer · 90%
low
Permission: filesystem access detected permission_analyzer · 70%
info
No dependency files found for SBOM generation sbom_generator · 100%
medium
No build provenance detected (SLSA L0) slsa_assessor · 90%