tilbudstrolden-mcp
MCP server for Nordic grocery deal hunting via the Tjek API (Denmark, Norway, Sweden, Finland)
Install / Use
claude mcp add olgasafonova -- npx -y github:olgasafonova/tilbudstrolden-mcpIf the server publishes to npm under a different name, use that package instead — check the repo README.
MCP Server
Model Context Protocol server
Quality Score
Category
Development & EngineeringSupported Platforms
Tags
Our assessment of tilbudstrolden-mcp
tilbudstrolden-mcp scores 76/100 on our quality scale, 3714th of 4,624 Development & Engineering skills we index.
Its MCP Server is 15 KB long, well organised into 35 sections with 11 code examples: a thorough specification that gives an agent plenty to work with.
It has 43 GitHub stars, so there is little community track record yet; judge it on its content.
Maintenance, license and trust
- The repository was last updated today, so tilbudstrolden-mcp is actively maintained.
- It is released under the MIT license, a permissive license that allows use, modification and commercial use with attribution.
- Its trust signals score 92/100, with 1 caution from licensing, adoption, age or documentation. These come from repository metadata, not a code audit — read the skill file before letting an agent act on it.
tilbudstrolden-mcp compared with similar skills
All 4 of these similar skills score higher than tilbudstrolden-mcp; compare them before choosing.
| Skill | Score | Stars | Updated | Format |
|---|---|---|---|---|
| tilbudstrolden-mcp (this skill)by olgasafonova | 76 | 43 | today | MCP Server |
| Agent-Reachby Panniantong | 100 | 91.8k | 20d ago | CLAUDE.md |
| headroomby headroomlabs-ai | 100 | 74.5k | today | CLAUDE.md |
| CowAgentby zhayujie | 100 | 47.2k | today | CLAUDE.md |
| ai-job-searchby MadsLorentzen | 100 | 45.0k | today | CLAUDE.md |
Frequently asked questions
- How do I install tilbudstrolden-mcp?
- Run
claude mcp add olgasafonova -- npx -y github:olgasafonova/tilbudstrolden-mcp. The install tabs above show the steps for each supported agent. - Which AI agents does tilbudstrolden-mcp work with?
- It is written for Claude Code and Claude Desktop, as a MCP Server file. Other agents that read the same format can often use it too.
- Is tilbudstrolden-mcp safe to use?
- It is MIT-licensed and scores 92/100 on trust signals. Skills are instructions an agent will follow, so read the file before installing it and do not approve commands you do not understand.
- Is tilbudstrolden-mcp still maintained?
- The repository was last updated today, so tilbudstrolden-mcp is actively maintained.
Skill content
View source on GitHubTilbudsTrolden
The deal troll that lives under the bridge between your fridge and your wallet.
https://github.com/user-attachments/assets/23ffe6fc-9d5d-4a46-904f-bc7a83f3f421
<sub>The meal plan and shopping list in the video are real plan_and_shop output, with deals captured on 26-09-2026.</sub>
An MCP server for Nordic grocery shopping. It finds the best deals across supermarkets in Denmark, Norway, Sweden, and Finland, 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.
Features
Deal search
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.
Recipe library
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.
Meal planning
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.
Shopping lists
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.
Household config
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.
Pantry tracking
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.
Meal and spend logging
Record what you cooked and what you spent. The planner keeps track so you don't end up eating lasagne every Tuesday.
Supported stores
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 the etilbudsavis.dk (Tjek) API, which serves flyer data for all four countries. Coverage varies; Denmark has the deepest data, followed by Finland, Sweden, and Norway.
Quick start
Install
git clone https://github.com/olgasafonova/tilbudstrolden-mcp.git
cd tilbudstrolden-mcp
npm install
npm run build
Connect to your MCP client
Pick your client below. All use stdio transport; no API keys or auth required.
<details> <summary><strong>Claude Desktop</strong></summary>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"]
}
}
}
Restart Claude Desktop after saving.
</details> <details> <summary><strong>Claude Code</strong></summary>claude mcp add tilbudstrolden node /absolute/path/to/tilbudstrolden-mcp/dist/server.js
</details>
<details>
<summary><strong>VS Code (Copilot / Cline / Continue)</strong></summary>
Add to your workspace .vscode/mcp.json:
{
"servers": {
"tilbudstrolden": {
"command": "node",
"args": ["/absolute/path/to/tilbudstrolden-mcp/dist/server.js"]
}
}
}
</details>
<details>
<summary><strong>Cursor</strong></summary>
Add to ~/.cursor/mcp.json:
{
"mcpServers": {
"tilbudstrolden": {
"command": "node",
"args": ["/absolute/path/to/tilbudstrolden-mcp/dist/server.js"]
}
}
}
</details>
<details>
<summary><strong>Windsurf</strong></summary>
Add to ~/.codeium/windsurf/mcp_config.json:
{
"mcpServers": {
"tilbudstrolden": {
"command": "node",
"args": ["/absolute/path/to/tilbudstrolden-mcp/dist/server.js"]
}
}
}
</details>
<details>
<summary><strong>ChatGPT Desktop</strong></summary>
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"]
Optional environment variable:
TILBUDSTROLDEN_DATA=/custom/path/to/data.json
</details>
Tools
Deals
| Tool | What it does |
|------|-------------|
| search_deals | Search current offers across stores by keyword (DK/NO/SE/FI) |
| get_store_offers | List this week's offers from a specific store |
| deals_this_week | Show the best deals from your preferred stores, with expiring items and biggest savings |
| list_stores | List available grocery chains with dealer IDs |
Household and pantry
| Tool | What it does |
|------|-------------|
| get_household | View current household config |
| update_household | Set country (DK/NO/SE/FI), household members, dietary restrictions, preferred stores, servings |
| get_pantry | View pantry contents |
| update_pantry | Add or remove pantry items (excluded from shopping lists) |
Recipes
| Tool | What it does |
|------|-------------|
| get_recipes | List all saved recipes |
| add_recipe | Save a new recipe with ingredients, search terms (in your language), complexity, cuisine, and protein type |
| remove_recipe | Delete a recipe by name |
Planning
| Tool | What it does |
|------|-------------|
| score_recipes | Score all recipes against current deals, ranked by deal coverage |
| plan_and_shop | Score, plan a week, and generate a shopping list in one step |
| generate_shopping_list | Build a shopping list from specific recipes, with deals matched per ingredient |
Tracking
| Tool | What it does |
|------|-------------|
| log_meal | Record what you cooked and when |
| get_meal_history | View past meals |
| log_spend | Record grocery spending |
| get_spend_log | View spending history |
Starter recipes
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.
Example conversations
Real examples of how you'd talk to your AI assistant with TilbudsTrolden running.
Set up your household
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.
Check deals
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
...
Plan a full week
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, ...
Add your own recipe
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.
Shopping list for specific meals
You: Make a shopping list for bolognese and tacos, 4 people.
Shared ingredients (like onions used in both) are aggregated. Pantry items are excluded.
Track pantry
You: We have rice, soy sauce, and sesame oil at home.
These items get skipped in future shopping lists.
Log what you cooked
You: We made the bulgogi tonight, spent 185 kr at REMA.
No bulgogi for a while.
How deal matching works
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 mat
Truncated for display — read the full file on GitHub.
Related Skills
Agent-Reach
91.8kGive your AI agent eyes to see the entire internet. Read & search Twitter, Reddit, YouTube, GitHub, Bilibili, XiaoHongShu — one CLI, zero API fees.
headroom
74.5kCompress tool outputs, logs, files, and RAG chunks before they reach the LLM. 20% fewer tokens for coding agents, 60-95% fewer tokens for JSON, same answers. Library, proxy, MCP server.
CowAgent
47.2kOpen-source personal AI assistant & Agent Harness. Plans tasks, runs tools and skills, self-evolves with memory and knowledge. Multi-agent, multi-model, multi-channel. Lightweight, extensible, one-line install.
ai-job-search
45.0kThe job search that runs on your machine. AI job application framework built on Claude Code: evaluate postings, tailor CVs, write cover letters, prep interviews. Fork it and own it.
Languages
Trust signals
From repository metadata: license, adoption, age and documentation. Not a code audit — see the Safety scan above for what the skill file itself contains.
