TilbudsTrolden MCP

by olgasafonova

Not rated
GitHub

About

Nordic grocery deal hunting (Denmark, Norway, Sweden, Finland). Meal planning, recipe library, shopping lists, and household config via etilbudsavis.dk.

Details

Author
olgasafonova
Categories
Other, Web Scraping

Setup

Install TilbudsTrolden MCP in your MCP client (Claude Desktop, Cursor, Windsurf, and others).

Repository: https://github.com/olgasafonova/tilbudstrolden-mcp

Follow the installation instructions in the repository README, then restart your MCP client.

The deal troll that lives under the bridge between your fridge and your wallet.

AnMCPserver for Nordic grocery shopping. It finds the best deals across supermarkets inDenmark,Norway,Sweden, andFinland, plans your weekly dinners around what's cheap, and builds shopping lists grouped by store. You talk to your AI assistant about dinner; the troll does the legwork.

Works with any MCP-compatible client: Claude Desktop, Claude Code, VS Code, Cursor, Windsurf, ChatGPT, and others.

Search current deals across grocery chains in Denmark, Norway, Sweden, and Finland. Compare unit prices (kr/kg for Scandinavian kroner, €/kg for Finnish euros) side by side. Check what's on offer at a specific store, or get a combined view from all your preferred stores at once.

Ships with 32 starter recipes (Danish households) spanning Danish, Italian, Asian, Mexican, and Swedish cuisines. Deals are matched to ingredients automatically. Add your own recipes in your local language, remove ones you don't like, or tweak the defaults. Norwegian, Swedish, and Finnish households start with a clean slate for adding recipes with local search terms.

Plan your week's dinners. The planner checks current deals, picks the cheapest combination of recipes, and makes sure you're not eating chicken four nights in a row. You set the rules: no pork, slow-cook only on weekends, at least 3 Asian dishes this week. It handles the rest.

Get a shopping list from any set of recipes. Shared ingredients are added up across recipes (8 carrots, not "2 for this + 3 for that + 3 for the other"). Pantry items are excluded. Current deals are matched per ingredient and grouped by store.

Tell the assistant which country you're in (DK, NO, SE, or FI), how many people you're cooking for, which stores you prefer, and any dietary restrictions. Everything else follows from that: deals from your stores rank higher, pork disappears if you said no pork, and shopping lists scale to your household. Country defaults to Denmark if not set.

Tell the assistant what you already have at home. Those items get skipped in shopping lists, so you don't come home with a third bottle of soy sauce.

Record what you cooked and what you spent. The planner keeps track so you don't end up eating lasagne every Tuesday.

Denmark:Netto, Meny, Lidl, REMA 1000, Foetex, Bilka, Spar, Kvickly, 365discount

Norway:REMA 1000, KIWI, Meny, Coop Prix, Extra, Bunnpris, Obs, Spar, Joker

Sweden:ICA (Maxi/Kvantum/Supermarket/Nara), Willys, Hemkop, City Gross, Coop, Stora Coop, Tempo

Finland:S-market, K-Market, K-Supermarket, K-Citymarket, Prisma, Lidl, Tokmanni, Alepa, Sale, Halpahalli, Minimani, Saiturinpörssi

All deal data is fetched via theetilbudsavis.dk(Tjek) API, which serves flyer data for all four countries. Coverage varies; Denmark has the deepest data, followed by Finland, Sweden, and Norway.

git clone https://github.com/olgasafonova/tilbudstrolden-mcp.git cd tilbudstrolden-mcp npm install npm run build

Pick your client below. All use stdio transport; no API keys or auth required.

Add to~/Library/Application Support/Claude/claude_desktop_config.json(macOS) or%APPDATA%\Claude\claude_desktop_config.json(Windows):

{ "mcpServers": { "tilbudstrolden": { "command": "node", "args": ["/absolute/path/to/tilbudstrolden-mcp/dist/server.js"] } } }
claude mcp add tilbudstrolden node /absolute/path/to/tilbudstrolden-mcp/dist/server.js

Add to your workspace.vscode/mcp.json:

{ "servers": { "tilbudstrolden": { "command": "node", "args": ["/absolute/path/to/tilbudstrolden-mcp/dist/server.js"] } } }
{ "mcpServers": { "tilbudstrolden": { "command": "node", "args": ["/absolute/path/to/tilbudstrolden-mcp/dist/server.js"] } } }

Add to~/.codeium/windsurf/mcp_config.json:

{ "mcpServers": { "tilbudstrolden": { "command": "node", "args": ["/absolute/path/to/tilbudstrolden-mcp/dist/server.js"] } } }

In Settings > MCP Servers, click "Add Server" and enter:

- Name:tilbudstrolden
- Command:node
- Arguments:/absolute/path/to/tilbudstrolden-mcp/dist/server.js

TilbudsTrolden uses stdio transport. Point your client at:

command: node args: ["/absolute/path/to/tilbudstrolden-mcp/dist/server.js"]
TILBUDSTROLDEN_DATA=/custom/path/to/data.json

TilbudsTrolden ships with 32 recipes that work out of the box. They're loaded on first use and fully editable; add your own or remove any you don't need.

Danish(13): Frikadeller, Brændende Kærlighed, Kylling i Karry, Laks i fad, Flæskesteg, Tomatsuppe, Hakkebøffer med bløde løg, Kartoffelsuppe, Fiskefilet med remoulade, Biksemad, Koteletter i fad, Bagt kylling med ovnkartofler, Pølsegryde

Italian(6): Spaghetti Bolognese, Lasagne, Spaghetti Carbonara, Tomatrisotto, Salsiccia Pasta, Marry Me Chicken

Asian(7): Wok med kylling, Nudelsuppe med kylling, Uncle Roger's Egg Fried Rice, Nasi Goreng, Chow Mein, Uncle Roger's Adobo, Maangchi's Bulgogi

Mexican(2): Chili con Carne, Tacos med kylling

Swedish(4): Kajsas Kycklingfile med senap och rosepeber, Grillet laks med tomatsmor, Sagas Krydderisauce, Fransk grillet kylling med dragonsauce

Complexity ranges from quick (15-20 min) through medium (30-45 min) to slow (1+ hour). Proteins cover chicken, beef, pork, fish, egg, and vegetarian.

Real examples of how you'd talk to your AI assistant with TilbudsTrolden running.

You:We're 3 people, no pork, and we shop at Netto, REMA 1000, and Meny.

The assistant saves your setup. From now on, deals from Netto, REMA, and Meny get priority, and pork recipes are excluded from meal plans.

You:Switch me to Finland. We shop at Prisma, K-Supermarket, and Lidl.

Country becomes FI, stores update, and deals now come from Finnish chains. Prices show in €/kg instead of kr/kg.

You:What's on sale at my stores this week?

You get a summary per store: expiring deals that need action, biggest savings, and highlights.

You:Find me the cheapest hakket oksekoed.

Found 6 deals for "hakket oksekød": 1. Hakket okse- eller grisekød - 99 DKK (76.15 kr/kg) @ Bilka 2. Hakket oksekød 8-12% - 36.66 DKK (91.65 kr/kg) @ Fleggaard 3. Velsmag hakket oksekød 7-10% - 45 DKK (112.50 kr/kg) @ Netto ...

You:Plan next week's dinners. No pork except Tuesday, mix of Asian and other.

You get a 7-day plan with no consecutive protein or cuisine repeats, plus a shopping list for the whole week.

7-day meal plan (3 people) Mon: Tomatrisotto (Italian, vegetarian) Tue: Chow Mein (Asian, pork) Wed: Laks i fad (Danish, fish) Thu: Maangchi's Bulgogi (Asian, beef) Fri: Fiskefilet med remoulade (Danish, fish) Sat: Lasagne (Italian, beef) Sun: Nudelsuppe med kylling (Asian, chicken) Shopping list (58 items) Buy at Netto: hakket oksekød 45 DKK, kyllingebrystfilet 49 DKK, ... Buy at REMA: oksemørbrad 129.95 DKK, remoulade 10 DKK, ... Buy at regular price: mozzarella, parmesan, kokosmælk, ...

You:Save a recipe for chicken tikka masala: 500g kyllingebryst, 200g yoghurt, tikka masala paste, hakkede tomater, piskefloede, ris. Medium, Indian, chicken.

The recipe is saved. It shows up in meal plans and deal matching from now on.

You:Make a shopping list for bolognese and tacos, 4 people.

Shared ingredients (like onions used in both) are aggregated. Pantry items are excluded.

You:We have rice, soy sauce, and sesame oil at home.

These items get skipped in future shopping lists.

You:We made the bulgogi tonight, spent 185 kr at REMA.

Nordic grocery deals bundle products in creative ways ("Rejer, kold- eller varmroget laks"). TilbudsTrolden tells raw ingredients apart from processed products using language-specific food terminology for Danish, Norwegian, Swedish, and Finnish. Searching for "laks" as a cooking ingredient won't match roget/rokt/rokt laks or palaeg/palegg/palagg, and searching for "jauheliha" in Finland won't match savustettu makkara. Your preferred stores get priority in results.

The scoring engine uses locale-specific indicators for each country: processed meat terms (roget/rokt/rokt/savustettu), raw meat terms (fersk/fersk/farsk/tuore), non-food filters, and dietary exclusion patterns. All four languages have full coverage for pork, beef, lamb, fish, shellfish, dairy, gluten, beans, nuts, and egg exclusions.

The meal planner won't repeat the same protein or cuisine more than twice in a week, and you can restrict slow-cook recipes to specific days.

All data lives in a single JSON file:~/.tilbudstrolden.json. Override the path with theTILBUDSTROLDEN_DATAenvironment variable.

Everything lives there: household config, recipes, pantry, meal history, and spend log. Created automatically on first use. No database, no cloud service, no account required.

npm install # install dependencies npm run dev # watch mode with tsx npm run build # compile TypeScript npm run lint # run Biome linter npm run typecheck # strict TypeScript check npm test # run tests (Vitest)

- Node.js 18 or later
- No API keys needed. Deal data is fetched via theetilbudsavis.dk(Tjek) public API, which serves all four Nordic markets.

Deal data fetched via theetilbudsavis.dk(Tjek) API.

Starter recipe ingredient lists adapted fromvaldemarsro.dk. Uncle Roger recipes fromNigel Ng's YouTube(Egg Fried Rice,Adobo). Bulgogi recipe fromMaangchi. Swedish family recipes fromjarfors.combyMikael Jarfors.

French gluten-free product catalog and comparisons for celiac shoppers - verified prices, buyer ratings. Remote server at https://gluten-free.fr/api/mcp

Search for products and compare prices at Coles and Woolworths supermarkets in Australia.

Automates shopping on the Shufersal website, enabling LLMs to search for products, create shopping lists, and manage the cart.

Drive a personal UK Tesco grocery account: search, basket, delivery slots, orders, and on-pack nutrition. Filter and rank products by macros + micros. Catalogue and nutrition tools need no auth.

AI-powered Business Helper that analyzes thousands of YouTube videos to extract precise insights, timestamps, and actionable strategies. Instantly find the most relevant moments from podcasts, interviews, and lectures—turning long-form content into targeted business intelligence.

Open marketplace for AI services — LLMs, image/video generation, web scraping, model hosting, data extraction, and more. Agents pay per use with USDC micropayments on Polygon.

Unofficial CLI + MCP server for eliteprospects.com Resources

Quick Start: npx -y @aimino/fast-html-mcp-server

Real-time surf, trails, volcano, ocean safety, weather, and restaurants for all Hawaiian islands — built for AI agents.

Unofficial Model Context Protocol server for iFood — browse, search, cart and order food via AI

No reviews yet — be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.