nicktcode/swissgroceries-mcp

nicktcode/swissgroceries-mcp

от nicktcode
MCP сервер для поиска и сравнения продуктов в швейцарских супермаркетах (Migros, Coop, Aldi, Denner, Lidl и др.) в реальном времени. Показывает цены, акции, наличие, помогает спланировать покупки: выбрать лучший магазин или разделить корзину. Экономит время и деньги.

swissgroceries-mcp

swissgroceries-mcp

npm version npm downloads CI License: AGPL-3.0 Node MCP compatible nicktcode/swissgroceries-mcp MCP server PRs Welcome

Real-time Swiss grocery shopping over the Model Context Protocol. Search products, compare prices across Migros, Coop, Aldi, Denner, Lidl, Farmy, Volgshop, and Otto's, see weekly promotions, and plan multi-store shopping trips. Works with any MCP-compatible client (Claude Desktop, Claude Code, Cursor, Cline, Continue, VS Code MCP extensions, custom clients).

Disclaimer

This is a personal fun project. It is not affiliated with, endorsed by, or sponsored by Migros, Coop, Aldi, Denner, Lidl, Farmy, Volg, Otto's, or any other retailer. It uses publicly accessible mobile-app endpoints to make Swiss grocery shopping a bit smarter for end users.

If you represent any of these stores and have concerns (about API usage, branding, scraping rate, or anything else), please reach out to the maintainer through GitHub and we will work it out. No need to escalate.

API stability: the chain APIs used here are unofficial and can change at any time. The maintainer is not responsible for failures caused by upstream changes; please open an issue with the response sample so the affected adapter can be updated.

PRs welcome. New chains, better matchers, smarter strategies, bug fixes, doc improvements; all encouraged. See CONTRIBUTING.md.

Инструменты были проиндексированы:
find_stock

Проверяет, в каких магазинах заданной сети есть конкретный товар в наличии. Опционально фильтрует по близости к GPS-координатам или запрашивает один магазин по ID. Не все сети поддерживают запросы остатков по магазинам; неподдерживаемые сети возвращают понятную ошибку. Используйте для «доступен ли этот товар рядом с Zurich HB?», «в каком Coop есть товар X?».

Параметры
  • chainenumобязательный

    The chain to query for stock. Only chains with perStoreStock capability are supported.

  • nearobject

    Optional location to filter nearby stores. Pass coordinates, a Swiss ZIP, or a free-text address. If omitted, all stores may be queried.

  • productIdstringобязательный

    Chain-specific product ID to check stock for. Obtain via search_products or get_product.

  • storeIdstring

    Query a single specific store by its chain-specific store ID. Takes precedence over near.

find_stores

Находит продуктовые магазины рядом с местоположением, отфильтрованные по сети и радиусу поиска. Принимает швейцарский почтовый индекс, координаты GPS или адрес в свободной форме в качестве центра поиска. Возвращает название магазина, адрес, сеть, местоположение и часы работы (при наличии). Используется для запросов вроде «найти Migros рядом со мной», «какие отделения Coop есть в 8001?» или перед проверкой остатков на складе.

Параметры
  • chainsenum[]

    Limit results to specific chains. Omit to search all configured chains.

  • nearobjectобязательный

    Center of the search radius. Pass either coordinates, a Swiss ZIP, or a free-text address.

  • radiusKmnumber

    Search radius in kilometers (1–50). Defaults to 5 km.

get_product

Получает все сведения о товаре для конкретной пары сеть + идентификатор товара. Возвращает { product, fetchedAt, fromCache }: продукт содержит цену, бренд, размер, цену за единицу, теги, категорию, URL изображения и активные акции, а fetchedAt и fromCache сообщают, насколько свежи данные. Получает идентификаторы товаров из search_products. Полезно для углублённого изучения результата поиска. Подходит для запросов "get details for this Migros product" или "what is the unit price of this item?".

Параметры
  • chainenumобязательный

    The grocery chain that owns this product ID.

  • idstringобязательный

    Chain-specific product identifier, e.g. Migros cumulus ID or Coop product number. Obtain via search_products.

get_promotions

Выводит текущие акционные предложения в настроенных швейцарских продуктовых сетях. Фильтрует по сети, ключевому слову, ID магазина или количеству дней до окончания акции. Возвращает название акции, скидку, даты действия и участвующие магазины. Используйте для запросов: «что сейчас по акциям на этой неделе?», «есть ли скидки на сыр в Migros?» или «акции, заканчивающиеся сегодня».

Параметры
  • chainsenum[]

    Limit to specific chains. Omit to fetch promotions from all configured chains.

  • endingWithinDaysinteger

    Only return promotions ending within this many days (1–60). Useful for "ending soon" queries.

  • querystring

    Optional keyword to filter promotions by product name, e.g. "Käse", "wine".

  • storeIdsstring[]

    Restrict to promotions valid at these store IDs (chain-specific). Obtain store IDs from find_stores.

health_check

Проверяет каждый зарегистрированный адаптер цепочки тривиальным запросом и сообщает статус, задержку и флаги возможностей. Используйте это, когда цепочка отсутствует в результатах или при отладке проблем с адаптером.

Параметры
  • chainsenum[]

    Chains to probe. Default: all configured.

  • timeoutMsinteger

    Per-chain timeout in milliseconds. Default 5000.

plan_shopping

Планирует многоэтапную поездку по магазинам рядом с местоположением, выбирая лучшие товары среди настроенных швейцарских продуктовых сетей. Товары могут быть общими («milch», «pasta») или привязанными к конкретному SKU. Возвращает основной план и альтернативы. Используйте, когда пользователь даёт список товаров и спрашивает «где мне совершить покупки?» или «что дешевле всего?». Стратегии: single_store (одна сеть), split_cart (несколько сетей со штрафом за остановку), absolute_cheapest (без штрафа).

Параметры
  • chainsenum[]

    Restrict the plan to these chains. Omit to consider all configured chains.

  • itemsobject[]обязательный

    The list of items to shop for. At least one item required.

  • nearobjectобязательный

    Shopper's location — used to find nearby stores. Pass coordinates, ZIP, or address.

  • radiusKmnumber

    Only consider stores within this radius of the provided location (1–50 km). Default 5 km.

  • splitPenaltyChfnumber

    Cost in CHF added per extra store stop in split_cart strategy. Default 2.00.

  • strategyenumобязательный

    single_store: buy everything at one chain (minimises trips). split_cart: allow multiple chains but add splitPenaltyChf per extra stop. absolute_cheapest: pick the cheapest source per item regardless of stops.

search_products

Ищет товары по ключевому слову в настроенных швейцарских продуктовых сетях (Migros, Coop, Aldi, Denner, Lidl). Поддерживает необязательные фильтры по цене, диапазону размера и тегам товаров (органические, веганские, бюджетные и т.д.). Возвращает результаты, сгруппированные по сетям, с нормализованной ценой, ценой за единицу, размером и информацией об акциях. Карта sources сообщает свежесть данных каждой сети (временная метка fetchedAt + флаг fromCache), чтобы вы могли рассказать пользователю, насколько актуальны цены. Используйте для запросов вроде «найти органическое молоко до 2 CHF», «сравнить цены на пасту» или «поиск безглютенового хлеба».

Параметры
  • chainsenum[]

    Restrict search to specific chains. Omit to search all configured chains in parallel.

  • filtersobject

    Optional product filters applied after search.

  • limitinteger

    Maximum number of results per chain (1–50). Defaults to chain-specific limit.

  • offsetinteger

    Skip the first N results per chain. Use with limit to paginate. Default 0.

  • querystringобязательный

    Search term in any language, e.g. "Milch", "pâtes", "Bier". At least 1 character.

  • storeIdsstring[]

    Filter results to products available in these store IDs (chain-specific internal IDs).

Похожие MCP-сервера

rubenayla/partle-mcp

rubenayla/partle-mcp

MCP сервер для Partle — локального маркетплейса, где ИИ ищет товары в 16 000 магазинов рядом или добавляет объявления за вас. Охват 130 000+ продуктов, чтение без пароля, запись через API ключ. Подходит для быстрых покупок и продаж прямо из ассистента.

Python1
GetMystAdmin/urdb-mcp

GetMystAdmin/urdb-mcp

MCP-сервер для базы URDB — каталога целостности продуктов. Позволяет AI-агентам (Claude Desktop и др.) искать товары, проверять их на ухудшение качества, шинкфляцию и обман потребителей. Полезен дл...

JavaScript2
BuyWhere/buywhere-mcp

BuyWhere/buywhere-mcp

MCP сервер BuyWhere помогает AI-агентам искать товары и сравнивать цены на 11 млн+ продуктов из Сингапура, Юго-Восточной Азии и США. Полезен для создания шопинг-агентов, мониторинга цен и поиска вы...

TypeScript11
shopsavvy/shopsavvy-mcp-server

shopsavvy/shopsavvy-mcp-server

MCP-сервер, открывающий AI-ассистентам доступ к ShopSavvy Data API. Он позволяет искать товары по штрихкоду или ASIN, получать текущие и исторические цены, настраивать автоматическое обновление для...

JavaScript8
cg3-llc/prior_mcp

cg3-llc/prior_mcp

Prior - база знаний для обмена проверенными решениями между AI-агентами. Агенты учатся на опыте друг друга, экономя токены и время. Система кредитов поощряет обмен решениями. Полезно разработчикам,...

JavaScript5
KyuRish/fiverr-mcp-server

KyuRish/fiverr-mcp-server

MCP сервер для поиска и просмотра гигов, продавцов, цен и отзывов на Fiverr. Помогает находить фрилансеров и сравнивать услуги без регистрации API. Подходит для анализа рынка и выбора исполнителя через AI-ассистента.

Python10
© Каталог MCP, 2026. Все права защищены.
Проект не аффилирован с Anthropic и любыми упомянутыми продуктами.
Все названия и торговые марки принадлежат их владельцам.
Контакты для связи: hi@mcp-katalog.ru

Лука Никитин