Labsco
MCP SERVER

TilbudsTrolden MCP

by olgasafonova

Plan the week's dinners around what is actually on offer in Nordic supermarkets.

Food, Dining & Delivery
Summary
The hard part is telling a raw ingredient from a processed product, and that's where the work went.

Nordic flyers bundle items in ways keyword search gets wrong, so matching runs on per-language food terminology: searching for laks won't return the smoked version, and jauheliha won't return savustettu makkara. The planner also refuses to repeat a protein or cuisine more than twice in a week, which is why the output reads like a plan a person would actually cook.

What it is

A TypeScript MCP server for grocery shopping in Denmark, Norway, Sweden and Finland: it searches current supermarket deals, scores recipes against them, plans a week of dinners, and builds a shopping list grouped by store.

What you get
  • Deals — `search_deals` by keyword, `get_store_offers` for one chain, `deals_this_week` across your preferred stores with expiring items and biggest savings, `list_stores` for what's covered
  • Recipes — `get_recipes`, `add_recipe` with search terms in your own language, `remove_recipe`; 32 starter recipes ship with it
  • Planning — `score_recipes` ranks recipes by deal coverage, `plan_and_shop` scores, plans a week and builds the list in one call, `generate_shopping_list` does it for recipes you choose
  • Household and pantry — `get_household` and `update_household` for country, headcount, dietary restrictions and preferred stores; `get_pantry` and `update_pantry` so what you already own drops off the list
  • Tracking — `log_meal`, `get_meal_history`, `log_spend`, `get_spend_log`
  • Unit prices side by side, kr/kg in Scandinavia and €/kg in Finland
Requirements

Node.js 18 or later. Clone the repo, `npm install`, `npm run build`, then point your client at `dist/server.js` over stdio. No API key and no account — deals come from the public etilbudsavis.dk (Tjek) API. All state lives in one JSON file at `~/.tilbudstrolden.json`, relocatable with `TILBUDSTROLDEN_DATA`.