search_dealsLABSCO 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_dealsby keyword,get_store_offersfor one chain,deals_this_weekacross your preferred stores with expiring items and biggest savings,list_storesfor what's covered - Recipes —
get_recipes,add_recipewith search terms in your own language,remove_recipe; 32 starter recipes ship with it - Planning —
score_recipesranks recipes by deal coverage,plan_and_shopscores, plans a week and builds the list in one call,generate_shopping_listdoes it for recipes you choose - Household and pantry —
get_householdandupdate_householdfor country, headcount, dietary restrictions and preferred stores;get_pantryandupdate_pantryso 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.
Setup effort
Build from source — git clone https://github.com/olgasafonova/tilbudstrolden-mcp.git
USE CASES
Deciding what to cook this week
Score your recipes against the current offers, get a seven-day plan and a shopping list in one step.
Finding the cheapest version of one ingredient
Search across your chains and compare by unit price rather than sticker price.
Not buying a third bottle of soy sauce
Tell it what's in the cupboard; those items are excluded from every list from then on.
Making the plans fit your household
Set country, headcount, dietary rules and preferred stores once — deals from your stores rank higher and excluded proteins disappear.
18 tools
Listed in project docs. Your client may show a different list.
get_store_offersdeals_this_weeklist_storesget_householdupdate_householdget_pantryupdate_pantryget_recipesadd_reciperemove_recipescore_recipesplan_and_shopgenerate_shopping_listlog_mealget_meal_historylog_spendget_spend_logBEFORE YOU INSTALL
What to know first
Tools you get
18 tools named in the project's documentation.
Requires
Node.js 18 or later
INSTALLATION
Connect your client
Server setup
git clone https://github.com/olgasafonova/tilbudstrolden-mcp.git
cd tilbudstrolden-mcp
npm install
npm run buildMCP Clients
Claude Desktop, Cursor, Windsurf, Cline, Continue
{
"mcpServers": {
"tilbudstrolden": {
"command": "node",
"args": [
"<YOUR_PATH_TO_TILBUDSTROLDEN_MCP>/dist/server.js"
]
}
}
}Claude Code
claude mcp add tilbudstrolden node <YOUR_PATH_TO_TILBUDSTROLDEN_MCP>/dist/server.jsVS Code
{
"servers": {
"tilbudstrolden": {
"command": "node",
"args": [
"<YOUR_PATH_TO_TILBUDSTROLDEN_MCP>/dist/server.js"
]
}
}
}