# Albert Heijn (mcpb · albert-heijn-be-mcp.mcpb)

Unofficial Albert Heijn server: products, bonus deals, recipes, shopping list, orders and receipts.

- Trust score: 51/100 (low)
- Change this week: +4
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-11-05

## Components

- mcpb · `albert-heijn-be-mcp.mcpb`: 51/100 (this document), [markdown](https://verifymcp.io/servers/arnouthoebreckx-albert-heijn-be-mcp/albert-heijn-be-mcp.md), [page](https://verifymcp.io/servers/arnouthoebreckx-albert-heijn-be-mcp/albert-heijn-be-mcp)
- oci · `ghcr.io/arnouthoebreckx/albert-heijn-be-mcp`: 19/100, [markdown](https://verifymcp.io/servers/arnouthoebreckx-albert-heijn-be-mcp/ghcr-io-arnouthoebreckx-albert-heijn-be-mcp.md), [page](https://verifymcp.io/servers/arnouthoebreckx-albert-heijn-be-mcp/ghcr-io-arnouthoebreckx-albert-heijn-be-mcp)

## Channel facts

- Registry: `mcpb`
- Package: `https://github.com/arnouthoebreckx/albert-heijn-be-mcp/releases/download/v1.2.0/albert-heijn-be-mcp.mcpb`
- Transport: `stdio`
- SHA-256: `2cc9f3c1a40e42a296ef43eb95391f717988564fc776dfbd4c80097071cf9c99`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-11-05.

- **Supply Chain Security**: 23/100
  - No malware scan is available for this kind of package: the supply-chain vendors we use do not cover it. This is a permanent gap in our coverage, not a finding about the package.
  - Known CVEs were checked across the 92 of 92 dependencies we could resolve, so this covers what we could see, not the whole tree.
  - No install/post-install scripts declared.
  - 30 of 92 dependencies flagged as unhealthy.
- **Provenance & Transparency**: 45/100
  - Source repository is publicly reachable at the declared URL.
  - Provenance check failed: no build-provenance attestation is published.
  - Clear OSI-approved license (Apache-2.0).
  - Actively maintained (last published 10 days ago).
  - Disclosure check failed: no security disclosure policy was found in the source repository.
- **Schema Quality & AI Usability**: 62/100
  - AI-judged instruction clarity (excellent).
  - Context-footprint check failed: tool/resource definitions use about 1947 tokens (~278/item across 7 items; 7 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 40/100
  - Stability observed for 12 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
  - Structured output schemas are declared (100% of tools); any adoption earns full credit.
- **Tool Safety**: 100/100
  - No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.
  - We read all 7 captured tool definition(s), and no name or description among them implies an irreversible operation.
  - An AI judge read all 8 captured unit(s) of tool text and found none that tries to manipulate the model reading it.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

## Install

### How do I install the Albert Heijn MCP server?

Albert Heijn ships as an MCPB bundle, a single file you download and open in an MCP host that supports MCPB bundles, such as Claude Desktop. The host reads the launch command from the bundle's own manifest, so there is no command to copy. Before opening it, check the file's SHA-256 matches the one the MCP registry declares for it, 2cc9f3c1a40e42a296ef43eb95391f717988564fc776dfbd4c80097071cf9c99; the commands to do that are on this page. If it does not match, do not open it.

- Download bundle: `https://github.com/arnouthoebreckx/albert-heijn-be-mcp/releases/download/v1.2.0/albert-heijn-be-mcp.mcpb`
- SHA-256: `2cc9f3c1a40e42a296ef43eb95391f717988564fc776dfbd4c80097071cf9c99`

### Verify on macOS / Linux

```bash
echo "2cc9f3c1a40e42a296ef43eb95391f717988564fc776dfbd4c80097071cf9c99  albert-heijn-be-mcp.mcpb" | shasum -a 256 -c
```

### Verify on Windows (PowerShell)

```powershell
(Get-FileHash -Algorithm SHA256 .\albert-heijn-be-mcp.mcpb).Hash -eq "2cc9f3c1a40e42a296ef43eb95391f717988564fc776dfbd4c80097071cf9c99"
```

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-11-05 (score 51, +1)

No change was recorded against any check on this day. Stability & Change Management went from 37 to 40. That category is still filling its 30-day observation window: 11 days of observed history at the previous scan, 12 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-11-03 (score 50, +1)

No change was recorded against any check on this day. Stability & Change Management went from 30 to 33. That category is still filling its 30-day observation window: 9 days of observed history at the previous scan, 10 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-11-01 (score 49, +1)

No change was recorded against any check on this day. Stability & Change Management went from 23 to 27. That category is still filling its 30-day observation window: 7 days of observed history at the previous scan, 8 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-10-30 (score 48, +1)

No change was recorded against any check on this day. Stability & Change Management went from 17 to 20. That category is still filling its 30-day observation window: 5 days of observed history at the previous scan, 6 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-10-28 (score 47, +1)

No change was recorded against any check on this day. Stability & Change Management went from 10 to 13. That category is still filling its 30-day observation window: 3 days of observed history at the previous scan, 4 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-10-26 (score 46, +1)

No change was recorded against any check on this day. Stability & Change Management went from 3 to 7. That category is still filling its 30-day observation window: 1 days of observed history at the previous scan, 2 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-10-25 (score 45, 0)

- [functional regression] Schema quality: 204 → 278
- [functional improvement] Stability: unverified → 0.03
- [functional improvement] Maintenance: unverified → pass

### 2026-10-24 (score 45)

First indexed and scored.

## MCP tools (7)

### `ah_search_products` (~475 tokens)

Albert Heijn: Search Products

Search Albert Heijn (Dutch supermarket) products by keyword. Pass one or more queries (max 10) to search for several products in one call. Prefer Dutch search terms for best results: e.g. 'melk' (milk), 'kaas' (cheese), 'brood' (bread), 'kip' (chicken), 'appel' (apple). Set bonus=true to return only products currently on promotion; this also finds product promotions, such as volume discounts ('5% volume voordeel' on a 2-pack), that ah_get_bonus_offers does not list. filters narrows results to products matching all of them, e.g. ['organic', 'gluten_free']: organic, prijsfavoriet (AH's budget label), new, frozen, a diet (vegan, vegetarian, low_sugar, low_fat, low_salt), or free from an allergen (gluten_free, lactose_free, milk_free, egg_free, nut_free, peanut_free, soy_free, fish_free, shellfish_free, sesame_free, celery_free, mustard_free, lupin_free, sulphite_free). sort orders results: relevance (default), price_low_high, price_high_low, most_bought (by this user), nutriscore. Returns, per query: id, title, price, bonus_price, unit, is_bonus, bonus_mechanism, and the price fields pack_price, deal_min_quantity, deal_total, deal_price_per_pack, unit_price, unit_price_unit (image_url only with include_images=true). When you mention a product or recipe from the result, link its name to its url.

Input parameters:

- `bonus` (boolean): Return only products currently on bonus/promotion
- `filters` (array): Only products matching all of these, e.g. ["organic", "vegan"]
- `include_images` (boolean): Include image_url in each result (default false)
- `limit` (integer): Maximum results per query (default 10 for one query, 5 for several; max 30)
- `queries` (array, required): Search queries in Dutch or English, e.g. ["melk"] or ["melk", "kaas", "brood"] (max 10)
- `sort` (string): Result order (default relevance)

Output parameters:

- `searches` (array)

### `ah_get_products` (~258 tokens)

Albert Heijn: Product Details

Get detailed information about one or more Albert Heijn products by ID (max 20). Returns title, brand, category, price, the price fields (pack_price, deal_min_quantity, deal_total, deal_price_per_pack, unit_price, unit_price_unit), unit size, bonus info, NutriScore, property icons. Set include_nutritional_info=true to also return calories, fat, protein, etc.; include_ingredients=true for the ingredients text and the allergens (what it contains or may contain); include_description=true for the description; include_images=true for image_url. Get product IDs from ah_search_products. When you mention a product or recipe from the result, link its name to its url.

Input parameters:

- `include_description` (boolean): Include the description (default false)
- `include_images` (boolean): Include image_url (default false)
- `include_ingredients` (boolean): Include ingredients (text) and allergens (list), where AH has them (default false)
- `include_nutritional_info` (boolean): Include nutritional values (default false)
- `product_ids` (array, required): Product IDs from ah_search_products, e.g. [123456] or [123456, 789012] (max 20)

Output parameters:

- `products` (array)

### `ah_get_product_alternatives` (~116 tokens)

Albert Heijn: Product Alternatives

Get products Albert Heijn suggests instead of a given product: similar products and substitutes, e.g. when it is sold out or to find a cheaper or organic option. Returns the same fields as ah_search_products. When you mention a product or recipe from the result, link its name to its url.

Input parameters:

- `limit` (integer): Maximum number of alternatives (default 10, max 30)
- `product_id` (integer, required): Product ID, e.g. from ah_search_products or ah_get_shopping_list

Output parameters:

- `products` (array)

### `ah_get_bonus_offers` (~483 tokens)

Albert Heijn: Bonus Offers

Get Albert Heijn bonus/promotional offers. Use this (not ah_search_products) when the user asks what is on bonus/sale/discount. Returns this week's bonus by default; set period='next' for next week's bonus, which AH publishes a few days before the new bonus week starts. Every answer says which week it covers (period, valid_from, valid_until). Supports optional keyword filter to find e.g. cheese on bonus: set query='kaas'. Every offer has a category (AH's bonus category): the answer's categories lists every category of the week with its number of offers (offer_count, before any filter), so set categories to a list of those names to get only those, and food_only=true to leave out the non-food categories (household, drugstore, cooking and table items). Set previously_bought=true for offers on products the user bought before (AH's 'Eerder gekocht'). Group deals (e.g. '2+1 gratis', 'Alle yoghurt 25% korting') have no id but a bonus_segment_id — pass that to ah_get_bonus_group_products to see the individual products in the group. Returns id, bonus_segment_id, title, category, original_price, bonus_price, discount_percentage, bonus_mechanism, and the price fields pack_price, deal_min_quantity, deal_total, deal_price_per_pack, unit_price, unit_price_unit (use these for a shopping line: original_price and bonus_price can be for two packs). When you mention a product or recipe from the result, link its name to its url.

Input parameters:

- `categories` (array): Only offers in these bonus categories, by name as in the categories of the answer (case does not matter; an unknown name is an error)
- `food_only` (boolean): Leave out the non-food categories (default false). With categories, only the food ones of them come back
- `limit` (integer): Maximum number of results to return (default 20)
- `period` (string): Which bonus week to return: 'current' (default) or 'next'
- `previously_bought` (boolean): Only offers on products the user bought before
- `query` (string): Optional keyword filter (Dutch or English) applied client-side, e.g. 'kaas', 'vlees', 'bier'

Output parameters:

- `categories` (array): Every bonus category of the week with its number of offers, before any filter
- `offers` (array)
- `period` (string): The bonus week this answer is for
- `valid_from` (string): First day of the bonus week (YYYY-MM-DD, inclusive); absent when next week is not published yet
- `valid_until` (string): Last day of the bonus week (YYYY-MM-DD, inclusive); absent when next week is not published yet

### `ah_get_bonus_group_products` (~282 tokens)

Albert Heijn: Bonus Group Products

Get the individual products belonging to a specific Albert Heijn bonus promotion group. Use this to drill into a deal like '2+1 gratis kaas' or 'Alle yoghurt 25% korting'. Get segment_id from the bonus_segment_id field in ah_get_bonus_offers results. Pages of limit products (default 25, at most 100) from offset; total is the size of the whole group. Every product has the group's category. An id that is not in that week's bonus, and period='next' on ah.be, are errors; an empty products list means the group has no products today. Returns the same fields as ah_search_products (image_url only with include_images=true), plus category. When you mention a product or recipe from the result, link its name to its url.

Input parameters:

- `include_images` (boolean): Include image_url in each product (default false)
- `limit` (integer): Maximum number of products to return (default 25, max 100)
- `offset` (integer): Number of products to skip, for the next page (default 0)
- `period` (string): Bonus week of the offer: 'current' (default); 'next' is an error on ah.be
- `segment_id` (string, required): Bonus segment ID from the bonus_segment_id field in ah_get_bonus_offers

Output parameters:

- `period` (string): The bonus week this answer is for
- `products` (array)
- `total` (number): Products in the group before paging
- `valid_from` (string): First day of the bonus week (YYYY-MM-DD, inclusive); absent when next week is not published yet
- `valid_until` (string): Last day of the bonus week (YYYY-MM-DD, inclusive); absent when next week is not published yet

### `ah_search_recipes` (~136 tokens)

Albert Heijn: Search Recipes

Search Allerhande, Albert Heijn's recipe collection. Dutch search terms work best, e.g. 'pasta', 'vegetarisch', 'stamppot', 'kip curry'. Returns id, title, url, cook_minutes, servings, courses, nutri_score, rating. Use the id with ah_get_recipe for ingredients and steps. When you mention a product or recipe from the result, link its name to its url.

Input parameters:

- `limit` (integer): Maximum number of results (default 10, max 30)
- `query` (string, required): Search text, e.g. 'pasta zalm'

Output parameters:

- `recipes` (array)
- `total` (number)

### `ah_get_recipe` (~107 tokens)

Albert Heijn: Recipe

Get an Allerhande recipe by id: ingredients, preparation steps, and nutrition per serving. Set servings to scale the ingredient quantities. To shop for it, search the ingredients with ah_search_products and add them with ah_add_to_shopping_list. When you mention a product or recipe from the result, link its name to its url.

Input parameters:

- `recipe_id` (integer, required): Recipe id from ah_search_recipes
- `servings` (integer): Number of servings to scale the ingredients to

Output parameters:

- `cook_minutes` (number)
- `courses` (array)
- `cuisines` (array)
- `description` (string)
- `id` (number)
- `ingredients` (array)
- `nutri_score` (string)
- `nutrition_per_serving` (object)
- `rating` (string)
- `servings` (string)
- `steps` (array)
- `title` (string)
- `url` (string)

## Diagnostics

Captured diagnostic sections: Provenance, Dependencies. The full working is on the page: https://verifymcp.io/servers/arnouthoebreckx-albert-heijn-be-mcp/albert-heijn-be-mcp#diagnostics

## Score history

- 2026-11-05: 51
- 2026-11-04: 50
- 2026-11-03: 50
- 2026-11-02: 49
- 2026-11-01: 49
- 2026-10-31: 48
- 2026-10-30: 48
- 2026-10-29: 47
- 2026-10-28: 47
- 2026-10-27: 46
- 2026-10-26: 46
- 2026-10-25: 45
- 2026-10-24: 45

## Common questions

### What is the Albert Heijn MCP server?

Albert Heijn is an MCP server listed in the public MCP registry as io.github.arnouthoebreckx/albert-heijn-be-mcp. Unofficial Albert Heijn server: products, bonus deals, recipes, shopping list, orders and receipts. This page covers its MCPB bundle (https://github.com/arnouthoebreckx/albert-heijn-be-mcp/releases/download/v1.2.0/albert-heijn-be-mcp.mcpb).

### Is the Albert Heijn MCP server safe to use?

Albert Heijn scores 51 out of 100 on VerifyMCP. It declares no install or post-install scripts. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

### What tools does the Albert Heijn MCP server expose?

Albert Heijn exposes 7 tools: ah_search_products, ah_get_products, ah_get_product_alternatives, ah_get_bonus_offers, ah_get_bonus_group_products, and 2 more. Their descriptions and schemas cost roughly 1,857 tokens of context every time the server is loaded.

### What licence is the Albert Heijn MCP server under?

Albert Heijn declares the Apache-2.0 licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.

## Links

- Repository: https://github.com/arnouthoebreckx/albert-heijn-be-mcp
- Changelog RSS feed: https://verifymcp.io/servers/arnouthoebreckx-albert-heijn-be-mcp/albert-heijn-be-mcp.xml
- Changelog JSON feed: https://verifymcp.io/servers/arnouthoebreckx-albert-heijn-be-mcp/albert-heijn-be-mcp.json
- HTML version of this page: https://verifymcp.io/servers/arnouthoebreckx-albert-heijn-be-mcp/albert-heijn-be-mcp
