SA

servas-ai/food-connectors

开发工具

本页由 AI 翻译,技术细节请以原文为准。 查看原文

0 stars 0 forks 质量 67 趋势 20NOASSERTION

Open connectors + CLI + MCP server for Austrian grocery and ready-meal data

概览

开放、无依赖(Python ≥ 3.9,仅 stdlib)连接器、CLI 以及奥地利杂货和即食食品(Fertiggerichte)数据。每个适配器返回相同的模式: CLI:食品搜索|fetch|export|sources|stores|nutri|nutriscore|company|datasets|prices。MCP(food-mcp):list_sources、search_products、fetch_ready_meals、lookup_ean、list_stores、nutri_lookup、compute_nutriscore、list_nutri_sources、company_lookup、company_children、uid_check、company_impressum、northdata_company、list_datasets、search_datasets、open_prices_lookup、myproduct_product、myproduct_search、hofer_product、hofer_search(+ 每店实时工具)。 可用工具:list_sources、search_products、fetch_ready_meals、lookup_ean。 pytest 执行离线测试。LIVE=1 pytest 也运行网络测试。 请保持礼貌,保持请求率低。这些是公开的前端终端,各家公司适用条款。MIT授权。 食物取物——储存预备餐——丰富(Fit2Go)。

概述(AI 翻译)

开放、无依赖(Python ≥ 3.9,仅 stdlib)连接器、CLI 和 MCP 服务器,用于奥地利杂货和即食(Fertiggerichte)数据。 每个适配器返回相同的模式:

字段 含义
name, brand, store, category 产品识别
price_eur, unit_price_eur, unit, size_g 价格,单价(按unit),包装尺寸(g/ml)
nutrition_100g kcal, protein, fat, satfat, carbs, sugar, fiber, salt
ean, image_url GTIN和图像
producer, producer_id 制造商 + Identitätskennzeichen(例如 AT 40047 EG)
origin、source、source_id、source_url、fetched_at 来源

连接器状态(实时测试 2026-10-13,python3 tests/live_status.py → status.json)

连接器 来源 实时测试 重复使用 / 致谢
billa shop.billa.at 产品发现 API ([term=) ✅通过(通过餐食搜索词干获取;类别路径404) —
penny penny.at,同一REWE API ✅传递 —
gurkerl gurkerl.at API ✅通行 来自Pasogott/Gurkerlcli(麻省理工学院),tomaspavlin/rohlik-mcp(麻省理工学院)的创意
lidl 莉德尔。

本页由 AI 翻译,技术细节请以原文为准。

README

以下为原文 README 节选,完整内容请查看原文。

food-connectors 🥘🇦🇹

Open, dependency-free (Python ≥ 3.9, stdlib only) connectors, CLI and MCP server for Austrian grocery and ready-meal (Fertiggerichte) data. Every adapter returns the same schema:

field meaning
name, brand, store, category product identity
price_eur, unit_price_eur, unit, size_g price, unit price (per unit), pack size in g/ml
nutrition_100g kcal, protein, fat, satfat, carbs, sugar, fiber, salt
ean, image_url GTIN and image
producer, producer_id manufacturer + Identitätskennzeichen (e.g. AT 40047 EG)
origin, source, source_id, source_url, fetched_at provenance

Connector status (live test 2026-10-13, python3 tests/live_status.py → status.json)

connector source live test reuses / credits
billa shop.billa.at product-discovery API (term=) ✅ pass (fetch via meal search stems; category path 404) —
penny penny.at, same REWE API ✅ pass —
gurkerl gurkerl.at API ✅ pass idea from pasogott/gurkerlcli (MIT), tomaspavlin/rohlik-mcp (MIT)
lidl lidl.at q/api/search ❌ fail – 401 for Python clients (TLS/bot fingerprinting, curl gets 200). Not bypassed by policy; fetchsize capped at 30. Use heisse-preise for Lidl prices —
spar interspar via heisse-preise + CDN images (cdn1.interspar.at from article id) ✅ pass (prices + images) badlogic/heissepreise (MIT)
spar-shop SPAR public product search API search-spar.spar-ics.com/fact-finder/rest/v4/search/products_lmos_at (JSON index behind the interspar.at shop; no robots.txt on host, no login/cookies; interspar.at HTML never requested). Exact lookup by article number (interspar.at/p/), CLI food search … --store spar-shop, MCP spar_product ✅ live (current + regular price, €/kg, brand, category, stock status, CDN image; code-internal is a SPAR-internal 88… code, not a GTIN; no nutrition) SPAR Österreich; endpoint as used by badlogic/heissepreise (MIT)
denns denn’s BioMarkt AT public offer feed denns-biomarkt.at/page-data/angebote/page-data.json (Gatsby page-data the site itself loads; robots Allow: /, no login/cookies). CLI food fetch --store denns / food search … --store denns, MCP denns_offers ✅ live (weekly offers only: article no., brand, pack, Aktionspreis + Normalpreis, €/kg, validity, vegan flags, official image images.dennree.de; no GTIN/nutrition → off) denn’s Biomarkt GmbH
在 GitHub 查看完整 README

安装

This server does not publish a one-line install command.

Open the repository installation guide 新手?先看 mcpskill.org 教程 →

配置

{"mcpServers": {"food": {"command": "food-mcp"}}}