Dealio MCP
An official read-only MCP server by dealio.be that allows AI assistants to query current promotions from over 50 Belgian retailers, search for deals, retrieve buying guides, and access consumer news. It provides direct links to the source site for each discount.
Endpoint and access
No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.
https://dealio.be/mcpWhat you can do with it
- Search for current promotions by product, store, or category
- Retrieve detailed information for a specific deal
- Get meal ideas based on current supermarket discounts
- Access consumer news and product recall alerts
Source and maintenance
Protocol and capabilities
- Server
- dealio 1.0.0
- MCP protocol
- 2025-06-18
- Tools
- 10 advertised
- Resources
- 1 advertised
- Resource templates
- 0 advertised
- Prompts
- Not advertised
{
"tools": {
"listChanged": false
},
"resources": {
"subscribe": false,
"listChanged": false
}
}Server-provided instructions
Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.
Tools
10 advertised
search_deals
Search the current promotions at Belgian retailers by product, brand or store, with optional filters. Returns the best matches (biggest per-item discount first unless sorted otherwise), each with price, discount, validity and a link to open it.
{
"type": "object",
"properties": {
"sort": {
"enum": [
"relevance",
"discount",
"price",
"ends"
],
"type": "string",
"description": "Default: relevance when there is a query, else discount."
},
"limit": {
"type": "integer",
"maximum": 25,
"minimum": 1,
"description": "Results to return (default 10)."
},
"query": {
"type": "string",
"description": "Words from the product, brand or kind of promotion, e.g. 'koffiecapsules', 'Philips', '1+1 gratis'. Optional."
},
"store": {
"type": "string",
"description": "Store name or slug, e.g. 'bol', 'Colruyt', 'albertheijn'. See list_stores. Optional."
},
"offset": {
"type": "integer",
"minimum": 0,
"description": "Skip this many results (for the next page)."
},
"category": {
"type": "string",
"description": "Category slug or name: voeding, drank, verzorging, huishouden, baby, dier, elektronica, huis-tuin, mode, speelgoed, sport."
},
"max_price": {
"type": "number",
"description": "Maximum price per item in euro."
},
"min_discount": {
"type": "integer",
"maximum": 99,
"minimum": 1,
"description": "Minimum discount per item, in percent."
},
"ends_within_days": {
"type": "integer",
"maximum": 60,
"minimum": 0,
"description": "Only promotions that end within this many days."
}
}
}{
"title": "Search Belgian deals",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}get_deal
One promotion in full, by the id a search result gave.
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"description": "The `id` of a search result."
}
}
}{
"title": "Get one deal",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}get_buying_guide
A researched buying guide (koopwijzer) for a kind of product, e.g. 'airfryer': the models compared (key specs, today's lowest promotion), what each feature does, when you need it and when not, and general facts, every statement with its source. Use it for 'best <product>' and 'which <product> should I buy' questions ('beste airfryer', 'welke wasmachine kopen'): it does not crown a winner, it gives the cited test and buyer scores with their sources. Without a type: the list of guides.
{
"type": "object",
"properties": {
"type": {
"type": "string",
"description": "Kind of product, Dutch or English, e.g. 'airfryer', 'heteluchtfriteuse'. Optional."
}
}
}{
"title": "Get a buying guide",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}get_model
One model from a buying guide in full: the maker's specs, what tests and buyers say (score, summary, pros, cons, source), facts, and today's promotions for it with their links.
{
"type": "object",
"required": [
"model"
],
"properties": {
"model": {
"type": "string",
"description": "Model code or name, e.g. 'NA352', 'Philips NA555/00', 'MAF462B1', or the id get_buying_guide gave."
}
}
}{
"title": "Get one model",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}list_stores
The stores in the data: slug, name, number of current promotions, the median discount per item where known, when the store was last fetched, and the pages of the store and its weekly overview. Also lists the category slugs.
{
"type": "object",
"properties": {}
}{
"title": "List stores",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}publish_card — Publish a promotion
One promotion ready to publish elsewhere: the card as a picture (PNG, the same card the site's share button makes: store, photo, title, what you pay, regular price, label, end date; square by default, or 4:5 feed, 9:16 story, 1200x630 link preview; four designs: a shelf tag, b till receipt, d large photo, f 'Vandaag €x goedkoper' with the price large), a short link dealio.be/l/<code> that counts the click and sends the reader straight to the store's page, the store's page itself, the dealio link and a caption. Use the id from search_deals or get_deal.
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"description": "the promotion id (search_deals / get_deal)"
},
"size": {
"enum": [
"1080x1080",
"1080x1350",
"1080x1920",
"1200x630"
],
"type": "string",
"description": "1080x1080 square (default), 1080x1350 feed, 1080x1920 story, 1200x630 link preview"
},
"style": {
"enum": [
"a",
"b",
"d",
"f"
],
"type": "string",
"description": "a shelf tag, b till receipt, d large photo, f 'how much do you save today' (only with a saving). Default: the promotion's own."
}
}
}{
"title": "One promotion as a card to share",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}list_link
One link that opens several promotions together on one page of dealio.be (dealio.be/lijst/…), in the order given, with an optional title: for the promotions you propose to the user after one or more searches, so they need not open them one by one. Use the ids from search_deals, get_deal or get_meal_ideas (2 to 30). Unknown ids are reported and left out.
{
"type": "object",
"required": [
"ids"
],
"properties": {
"ids": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 30,
"minItems": 1,
"description": "The promotion ids, in the order to show them."
},
"title": {
"type": "string",
"maxLength": 60,
"description": "A short title for the page, e.g. 'Coca-Cola per liter' or 'Boodschappen voor zaterdag'. Optional."
}
}
}{
"title": "One link for several promotions",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}get_meal_ideas
Meal ideas from the promotions (kookinspiratie): the dishes whose main ingredients are all in promotion at the given Belgian food store(s) on the day the user shops, with those promotions (price, deal, until when, link), the side ingredients that are in promotion too, and what else is needed that is not. Dish ideas for a shopping list, not recipes. Without stores: per food store how many dishes its promotions make today.
{
"type": "object",
"properties": {
"day": {
"type": "string",
"description": "The shopping day: an ISO date (YYYY-MM-DD), 'today', 'tomorrow' or a weekday ('zaterdag', 'saturday'). Within the next 7 days. Default: today."
},
"limit": {
"type": "integer",
"maximum": 25,
"minimum": 1,
"description": "Dishes to return (default 10)."
},
"moment": {
"enum": [
"hoofdgerecht",
"soep",
"lunch",
"ontbijt",
"dessert",
"aperitief"
],
"type": "string",
"description": "Kind of dish. Default: hoofdgerecht (main course)."
},
"offset": {
"type": "integer",
"minimum": 0,
"description": "Skip this many dishes (for the next page)."
},
"stores": {
"type": "string",
"description": "One or more food stores, comma separated, by name or slug, e.g. 'Aldi', 'aldi, lidl', 'Delhaize'. Optional."
},
"vegetarian": {
"type": "boolean",
"description": "Only vegetarian dishes, and only promotions without meat or fish. Default false."
}
}
}{
"title": "Meal ideas from the promotions",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}get_news
Belgian consumer news for people who want to save (dealio.be/nieuws/): prices, promotions, store openings and incidents, product recalls (FAVV), tests (Test-Aankoop), taxes and energy, summarised by dealio in two or three sentences with our own headline, the source and the link to its article, newest first. Filter by store (name or slug) or theme. Each item has dealio's link (the item on the news page) and the store pages it names.
{
"type": "object",
"properties": {
"q": {
"type": "string",
"description": "Words to find in the headline or summary (Dutch). Optional."
},
"limit": {
"type": "integer",
"maximum": 25,
"minimum": 1,
"description": "Items to return (default 10)."
},
"store": {
"type": "string",
"description": "Only news that names this store, by name or slug, e.g. 'Delhaize', 'aldi'. Optional."
},
"theme": {
"enum": [
"prijzen",
"promoties",
"winkels",
"terugroeping",
"test",
"belasting-energie",
"besparen",
"koopjes",
"andere"
],
"type": "string",
"description": "Only this theme. Optional."
},
"offset": {
"type": "integer",
"minimum": 0,
"description": "Skip this many items (for the next page)."
}
}
}{
"title": "Consumer news",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}get_campaigns
The store campaigns (winkelacties) running at Belgian retailers, as read from the stores' own sites (dealio.be/acties/): a percentage on a whole range, brand or store, multi-buy (1+1, 2e halve prijs), cashback from the maker, a voucher, a gift, free delivery, loyalty-card deals, sales, no VAT, and announced ones. Not one product's price (that is search_deals). Each with store, kind, the advantage in a few words, what it applies to, condition, code, validity, whether it works on products or on the whole basket, dealio's link, and the promotions on dealio that fall under it (with their links). Filter by store, kind or words.
{
"type": "object",
"properties": {
"q": {
"type": "string",
"description": "Words to find in the campaign's title, what it applies to, its condition or code (Dutch), e.g. 'verf', 'Nivea', 'speelgoed'. Optional."
},
"kind": {
"enum": [
"btw",
"procent",
"meerkoop",
"kortingsbon",
"cadeau",
"cashback",
"levering",
"klantenkaart",
"solden",
"inruil",
"aangekondigd",
"andere"
],
"type": "string",
"description": "Only this kind: btw (no VAT), procent (a percentage on a range), meerkoop (1+1, 2e halve prijs), kortingsbon (voucher), cadeau (gift), cashback, levering (delivery), klantenkaart (loyalty card), solden (sales), inruil (trade-in), aangekondigd (announced, not yet running), andere. Optional."
},
"limit": {
"type": "integer",
"maximum": 25,
"minimum": 1,
"description": "Campaigns to return (default 10)."
},
"reach": {
"enum": [
"product",
"mandje"
],
"type": "string",
"description": "product: the advantage is on certain products (a brand, a range, a category); mandje: on the basket, the order or the whole store. Optional."
},
"store": {
"type": "string",
"description": "Store name or slug, e.g. 'Kruidvat', 'gamma'. See list_stores. Optional."
},
"offset": {
"type": "integer",
"minimum": 0,
"description": "Skip this many campaigns (for the next page)."
}
}
}{
"title": "Store campaigns",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}Prompts
Not advertised
Resources
1 advertised
dealio-cards — Dealio: promotions as cards
The promotions of search_deals, list_link and get_meal_ideas as cards with tick-off boxes; every link opens dealio.be.
ui://dealio/cards30-day availability
Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.
- Successful checks
- 1 of 1 (100%)
- Average latency
- 1030 ms
- 95th percentile latency
- 1030 ms
Maintenance history
Public check and source-refresh events. Editorial and ownership records remain private.
- · probe · passed · 1030 ms · metadata changed · 10 tool(s), 1 resource(s), 0 resource template(s)
Connect from your client
Each snippet registers the same endpoint; pick the client you use.
Claude Code
claude mcp add --transport http dealio-mcp https://dealio.be/mcpCodex
codex mcp add dealio-mcp --url https://dealio.be/mcpCursor
{
"mcpServers": {
"dealio-mcp": {
"url": "https://dealio.be/mcp"
}
}
}Cline
{
"mcpServers": {
"dealio-mcp": {
"type": "streamableHttp",
"url": "https://dealio.be/mcp",
"disabled": false
}
}
}VS Code
{
"servers": {
"dealio-mcp": {
"type": "http",
"url": "https://dealio.be/mcp"
}
}
}Gemini CLI
gemini mcp add --transport http dealio-mcp https://dealio.be/mcpClaude Desktop
{
"mcpServers": {
"dealio-mcp": {
"url": "https://dealio.be/mcp"
}
}
}Windsurf
{
"mcpServers": {
"dealio-mcp": {
"serverUrl": "https://dealio.be/mcp"
}
}
}Let your agent find its tools
Find servers like Dealio MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.
Other commerce servers
Do you run Dealio MCP?
Prove ownership with a DNS record, a well-known file, or your Official MCP Registry entry, and your edits publish immediately. Proofs are re-checked weekly; admins can still hide or remove a listing.