Albert Heijn
NPM · ALBERT-HEIJN-MCP
Unofficial Albert Heijn server: products, bonus deals, recipes, shopping list, orders and receipts.
Available components
Last scanned (1 hour ago)
Scores higher than 93% of npm servers
Category E-commerce
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. How we score → Why this is hard to score →
Supply Chain Security98
- No malware found by supply-chain analysis.Pass
- No known CVEs affecting this package version or its production dependencies.Pass
- No install/post-install scripts declared.Pass
- 30 of 92 dependencies flagged as unhealthy. View diagnostics → Partial
Provenance & Transparency97
- Source repository is publicly reachable at the declared URL. View diagnostics → Pass
- Cryptographically verified build provenance (signed, bound to olekpuchka/albert-heijn-mcp). View diagnostics → Pass
- Clear OSI-approved license (Apache-2.0).Pass
- Actively maintained (last published 0 days ago).Pass
- Disclosure check failed: no security disclosure policy was found in the source repository. See how to fix → Fail
Schema Quality & AI Usability75
- AI-judged instruction clarity (excellent).Pass
- Context-footprint check failed: tool/resource definitions use about 4842 tokens (~130/item across 37 items; 37 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management70
- Stability observed for 21 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 100% of tool parameters carry a description.Pass
- Structured output schemas are declared (68% of tools); any adoption earns full credit.Pass
Tool Safety100
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- All 5 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation.Pass
- An AI judge read all 38 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
- Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 4 Nov 26 +16
- Tool safety: pass → unverified ▼ security
- Stability: 0.63 → unverified ▼ security
- Malware scan: unverified → pass ▲ security
- Schema quality: 4375 → 4842 ▼ functional
- Capabilities: pass → unverified ▼ functional
- Tool coverage: 100 → unverified ▼ functional
- Package version: 1.8.0 → 1.9.0 functional
- 3 Nov 26 −15
- Malware scan: pass → unverified ▼ security
- Schema quality: 3768 → 4375 ▼ functional
- Package version: 1.7.2 → 1.8.0 functional
- 2 Nov 26 +10
- Known CVEs: unverified → pass ▲ security
- Dependency health: unverified → 0.85 ▲ functional
- 1 Nov 26 −9
- Stability: 0.53 → unverified ▼ security
- Known CVEs: pass → unverified ▼ security
- Tool safety: pass → unverified ▼ security
- Capabilities: pass → unverified ▼ functional
- Dependency health: 0.85 → unverified ▼ functional
- Tool coverage: 100 → unverified ▼ functional
- Package version: 1.7.1 → 1.7.2 functional
- 29 Oct 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 43 to 47. That category is still filling its 30-day observation window: 13 days of observed history at the previous scan, 14 at this one. The score rises as the window fills, whether or not the server changes.
- 27 Oct 26 +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.
- 25 Oct 26 +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.
- 23 Oct 26 +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.
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 5 Nov 2026 · Analysed npm/albert-heijn-mcp@1.9.0
Provenance Verified
A signed build attestation was found and verified, binding this exact artifact to the source repository it claims to come from.
| Result | Verified |
|---|---|
| Ecosystem | npm |
| Reason | Verified |
| Discovered via | Registry attestation endpoint |
| Source repo | olekpuchka/albert-heijn-mcp |
| Certificate issuer | https://token.actions.githubusercontent.com |
| Certificate SAN | https://github.com/olekpuchka/albert-heijn-mcp/.github/workflows/release.yml@refs/tags/v1.9.0 |
| Rekor log index | 3690510438 |
| Predicate type | SLSA build provenance https://slsa.dev/provenance/v1 |
| Subject digest | sha512:ae217ee56a51710d1f687148e250458528474a7f1adbe50ba34f5bac0ded97b87f21fd1090e2efb039796bba03408675dbb63897c2b4d4dab3d98385c |
Background: How many MCP packages publish verified provenance →
Dependencies 92 packages
| Packages resolved | 92 |
|---|---|
| Stale | 30 |
| Tree resolution | Complete |
Background: SBOMs and build attestations, explained →
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
ah_activate_personal_offer Albert Heijn: Activate Personal Offer ~135
Activate one or more of the user's personal Albert Heijn offers (Bonus Box) so the discount applies in the store and online. Get offer ids from ah_get_personal_offers. AH allows only a limited number of activations per week (max_activations) and an activation cannot be undone, so only activate the offers the user chose. Offers that are already active are skipped.
| Name | Type | Req | Description |
|---|---|---|---|
| offer_ids | array | yes | Offer ids from ah_get_personal_offers, e.g. ["575604"] |
| period | string | – | Bonus week of the offers: 'current' (default) or 'next' |
| Name | Type | Req | Description |
|---|---|---|---|
| activated | array | yes | – |
| activated_count | number | yes | – |
| already_active | array | yes | – |
| failed | array | yes | – |
| max_activations | number | – | – |
No examples provided.
ah_add_free_text_to_shopping_list Albert Heijn: Add Free-Text to Shopping List ~98
Add a free-text item to the Albert Heijn shopping list (no product ID needed). Use for reminders like 'verse bloemen', 'any good wine', or items not found in search. Free-text items have no quantity: put amounts in the text, e.g. '2 bossen bloemen'.
| Name | Type | Req | Description |
|---|---|---|---|
| name | string | yes | Free-text item description, e.g. 'verse bloemen', 'goede rode wijn' |
No output schema declared.
No examples provided.
ah_add_recipe_to_shopping_list Albert Heijn: Add Recipe to Shopping List ~227
Put the ingredients of an Allerhande recipe on the shopping list in one step. Each ingredient is matched to the AH product whose name fits it best (among equally good matches, one on bonus unless prefer_bonus=false); one unit of each product is added. Water is always skipped; pass skip for anything the user already has (e.g. olive oil, salt). Set dry_run=true to show the matches without adding them. Returns the added, skipped and unmatched ingredients, and any whose search failed (worth retrying). When you mention a product or recipe from the result, link its name to its url.
| Name | Type | Req | Description |
|---|---|---|---|
| dry_run | boolean | – | Only show the matches; don't add anything |
| prefer_bonus | boolean | – | Prefer a matching product on bonus (default true) |
| recipe_id | integer | yes | Recipe id from ah_search_recipes |
| servings | integer | – | Number of servings, as in ah_get_recipe |
| skip | array | – | Ingredients to leave out, matched by name, e.g. ["olijfolie", "zout"] |
| Name | Type | Req | Description |
|---|---|---|---|
| added | array | yes | – |
| dry_run | boolean | yes | – |
| failed | array | yes | – |
| not_found | array | yes | – |
| recipe | string | yes | – |
| skipped | array | yes | – |
No examples provided.
ah_add_to_favorite_list Albert Heijn: Add to Favourite List ~87
Add products to a named Albert Heijn favorite list. Get list_id from ah_get_favorite_lists.
| Name | Type | Req | Description |
|---|---|---|---|
| items | array | yes | Items to add, e.g. [{"product_id": 123456, "quantity": 1}]. Quantity 0 is treated as 1. |
| list_id | string | yes | Favorite list ID from ah_get_favorite_lists |
No output schema declared.
No examples provided.
ah_add_to_shopping_list Albert Heijn: Add to Shopping List ~80
Add one or more products to your Albert Heijn shopping list. Pass an array of items, each with product_id (int) and quantity (int). Returns confirmation listing the names of successfully added products.
| Name | Type | Req | Description |
|---|---|---|---|
| items | array | yes | Items to add, e.g. [{"product_id": 123456, "quantity": 2}] |
No output schema declared.
No examples provided.
ah_clear_cart Albert Heijn: Clear Order ~54
Remove ALL items from the active Albert Heijn delivery order (not the shopping list). Irreversible — requires confirm="yes" to prevent accidental use.
| Name | Type | Req | Description |
|---|---|---|---|
| confirm | string | yes | Must be "yes" to confirm |
No output schema declared.
No examples provided.
ah_clear_shopping_list Albert Heijn: Clear Shopping List ~45
Remove ALL items from the Albert Heijn shopping list. Irreversible — requires confirm="yes".
| Name | Type | Req | Description |
|---|---|---|---|
| confirm | string | yes | Must be "yes" to confirm |
No output schema declared.
No examples provided.
ah_create_favorite_list Albert Heijn: Create Favourite List ~72
Create a new, empty Albert Heijn favorite list with the given name; AH drops some punctuation, such as '-'. Returns its id; add products with ah_add_to_favorite_list.
| Name | Type | Req | Description |
|---|---|---|---|
| name | string | yes | Name of the list, e.g. 'Weekend' or 'Pasta night' |
| Name | Type | Req | Description |
|---|---|---|---|
| id | string | yes | – |
| item_count | number | yes | – |
| name | string | yes | – |
| updated_at | string | – | – |
No examples provided.
ah_delete_favorite_list Albert Heijn: Delete Favourite List ~73
Delete an Albert Heijn favorite list and everything on it. Irreversible — requires confirm="yes". Get list_id from ah_get_favorite_lists.
| Name | Type | Req | Description |
|---|---|---|---|
| confirm | string | yes | Must be "yes" to confirm |
| list_id | string | yes | Favorite list ID from ah_get_favorite_lists |
No output schema declared.
No examples provided.
ah_get_bonus_group_products Albert Heijn: Bonus Group Products ~152
Get all 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. For an offer from next week's bonus, set period='next'. Returns the same fields as ah_search_products. When you mention a product or recipe from the result, link its name to its url.
| Name | Type | Req | Description |
|---|---|---|---|
| period | string | – | Bonus week of the offer: 'current' (default) or 'next' |
| segment_id | string | yes | Bonus segment ID from the bonus_segment_id field in ah_get_bonus_offers |
| Name | Type | Req | Description |
|---|---|---|---|
| products | array | yes | – |
No examples provided.
ah_get_bonus_offers Albert Heijn: Bonus Offers ~286
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. Supports optional keyword filter to find e.g. cheese on bonus: set query='kaas'. 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, original_price, bonus_price, discount_percentage, bonus_mechanism. When you mention a product or recipe from the result, link its name to its url.
| Name | Type | Req | Description |
|---|---|---|---|
| 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' |
| Name | Type | Req | Description |
|---|---|---|---|
| offers | array | yes | – |
No examples provided.
ah_get_cart Albert Heijn: View Order Cart ~98
View the items in the active Albert Heijn delivery order (the order cart). An order only exists after the user has chosen a delivery or pick-up slot; the products the user is collecting before that are on the shopping list (use ah_get_shopping_list). Returns the order state, items with names and quantities, total price, and total discount. When you mention a product or recipe from the result, link its name to its url.
Input schema present but exposes no named parameters.
| Name | Type | Req | Description |
|---|---|---|---|
| order | object | – | – |
No examples provided.
ah_get_categories Albert Heijn: Product Categories ~92
List Albert Heijn's product categories (the aisles of ah.nl), e.g. 'Groente, aardappelen' or 'Kaas'. Without parent_id returns the top-level categories; with a parent_id, its subcategories. Pass a category id as category_id to ah_search_products to search or list products in it.
| Name | Type | Req | Description |
|---|---|---|---|
| parent_id | integer | – | Category id whose subcategories to list |
| Name | Type | Req | Description |
|---|---|---|---|
| categories | array | yes | – |
No examples provided.
ah_get_delivery_slots Albert Heijn: Delivery Slots ~85
List the delivery time windows Albert Heijn offers at the member's address, per day (Dutch time). Booking a slot is only possible in the AH app or on ah.nl; this shows when delivery is possible. Returns date and windows like '15:00-17:00'.
| Name | Type | Req | Description |
|---|---|---|---|
| days | integer | – | Number of days with slots to return (default 7) |
| Name | Type | Req | Description |
|---|---|---|---|
| days | array | yes | – |
| postal_code | string | yes | – |
No examples provided.
ah_get_favorite_lists Albert Heijn: View Favourite Lists ~54
List all Albert Heijn favorite/saved shopping lists with their names and item counts. Use the returned list ID with ah_add_to_favorite_list, ah_remove_from_favorite_list or ah_delete_favorite_list.
Input schema present but exposes no named parameters.
| Name | Type | Req | Description |
|---|---|---|---|
| lists | array | yes | – |
No examples provided.
ah_get_frequent_items Albert Heijn: Frequently Bought Items ~215
Get the products the user buys most often, counted over their Albert Heijn delivery orders and in-store receipts (kassabonnen) of the last few months. purchase_count is the number of orders and store visits that included the product, split into online_count and in_store_count. Use it to suggest a shopping list or spot staples that are on bonus. Returns product_name, product_id, the counts and last_purchased_date, most bought first. When you mention a product or recipe from the result, link its name to its url.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | – | Maximum number of products (default 50, max 200) |
| min_order_count | integer | – | Old name of min_purchase_count |
| min_purchase_count | integer | – | Only products bought at least this many times (default 3) |
| months | integer | – | How many months back to count (default 3, max 12) |
| source | string | – | Count delivery orders, store receipts, or both (default all) |
| Name | Type | Req | Description |
|---|---|---|---|
| from_date | string | yes | – |
| online_orders | number | yes | – |
| products | array | yes | – |
| store_receipts | number | yes | – |
| warnings | array | – | – |
No examples provided.
ah_get_last_chance_items Albert Heijn: Last-Chance Items ~151
Get last-chance / vandaag-af / clearance items from an Albert Heijn store. Requires a store_id (use ah_search_stores to find stores, or provide postal_code to find the nearest store). Uses the dedicated bargainItems GraphQL endpoint which returns today-only markdown deals. When you mention a product or recipe from the result, link its name to its url.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | – | Maximum number of results to return (default 20) |
| postal_code | string | – | Dutch postal code (e.g. '1234AB') to find the nearest store when store_id is not known. |
| store_id | integer | – | AH store ID. Required to retrieve bargain items. |
| Name | Type | Req | Description |
|---|---|---|---|
| items | array | yes | – |
No examples provided.
ah_get_meal_plan Albert Heijn: Meal Plan ~166
Get the user's meal plan from the Albert Heijn app's weekplanner, per day from today (about two weeks): planned Allerhande recipes, their own recipes, products and notes. Use the recipe_id of a planned Allerhande recipe with ah_get_recipe or ah_add_recipe_to_shopping_list, e.g. to shop for the week's dinners; the user's own recipes (own_recipe_id) can't be opened with those tools. incomplete=true means AH failed on some days or entries, so some may be missing or shown as type other. Planning recipes is done in the AH app. When you mention a product or recipe from the result, link its name to its url.
| Name | Type | Req | Description |
|---|---|---|---|
| include_empty_days | boolean | – | Also list days with nothing planned (default false) |
| Name | Type | Req | Description |
|---|---|---|---|
| days | array | yes | – |
| incomplete | boolean | – | – |
No examples provided.
ah_get_member_profile Albert Heijn: Member Profile ~73
Get your Albert Heijn member profile and savings. Returns name, email (masked), bonus_card_number (last 4 digits only), koopzegels (savings stamps: stamps saved, full booklets, euros invested, interest earned, and payout_value they are worth now), and the air_miles balance.
Input schema present but exposes no named parameters.
| Name | Type | Req | Description |
|---|---|---|---|
| air_miles | number | – | – |
| air_miles_error | string | – | – |
| bonus_card_number | string | – | – |
| string | – | – | |
| koopzegels | object | – | – |
| name | string | yes | – |
| savings_error | string | – | – |
No examples provided.
ah_get_order_details Albert Heijn: Order Details ~79
Get the full item list for a specific Albert Heijn delivery order by its ID. Returns all products with names, quantities, and prices. Get order_id from ah_get_orders. When you mention a product or recipe from the result, link its name to its url.
| Name | Type | Req | Description |
|---|---|---|---|
| order_id | integer | yes | Numeric order ID from ah_get_orders |
| Name | Type | Req | Description |
|---|---|---|---|
| id | number | yes | – |
| items | array | yes | – |
| state | string | – | – |
| total_discount | number | – | – |
| total_price | number | – | – |
No examples provided.
ah_get_orders Albert Heijn: Orders ~94
List Albert Heijn online delivery orders. By default returns upcoming orders (with a modifiable flag); set past=true for delivered orders. Returns id, date, time_window, total_price, status. Use the returned id with ah_get_order_details to see the items.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | – | Maximum number of orders to return (default 10) |
| past | boolean | – | Return delivered orders instead of upcoming ones |
| Name | Type | Req | Description |
|---|---|---|---|
| orders | array | yes | – |
No examples provided.
ah_get_personal_offers Albert Heijn: Personal Offers ~183
Get the user's personal Albert Heijn offers (the Bonus Box, 'persoonlijke bonus'): deals picked for this member that only apply after they are activated. Returns max_activations (how many offers the member may activate this week), activated_count, and per offer: id, title, status ('activated' or 'available'), original_price, bonus_price, discount_percentage, unit, and product_id when the offer covers one product. For an offer on several products, pass its id as segment_id to ah_get_bonus_group_products to list them. Activate offers with ah_activate_personal_offer. Set period='next' for next week's offers once AH publishes them. When you mention a product or recipe from the result, link its name to its url.
| Name | Type | Req | Description |
|---|---|---|---|
| period | string | – | Which bonus week: 'current' (default) or 'next' |
| Name | Type | Req | Description |
|---|---|---|---|
| activated_count | number | yes | – |
| max_activations | number | – | – |
| offers | array | yes | – |
No examples provided.
ah_get_product_alternatives Albert Heijn: Product Alternatives ~116
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.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | – | Maximum number of alternatives (default 10, max 30) |
| product_id | integer | yes | Product ID, e.g. from ah_search_products or ah_get_shopping_list |
| Name | Type | Req | Description |
|---|---|---|---|
| products | array | yes | – |
No examples provided.
ah_get_products Albert Heijn: Product Details ~244
Get detailed information about one or more Albert Heijn products by ID (max 20). Returns title, brand, category, description, price, unit size, bonus info, NutriScore, property icons. Set include_nutritional_info=true to also return calories, fat, protein, etc. Get product IDs from ah_search_products, or pass barcodes: the EAN number under a product's barcode (8, 12, 13 or 14 digits, e.g. read from a photo of the pack). A barcode AH doesn't sell returns an error for it. When you mention a product or recipe from the result, link its name to its url.
| Name | Type | Req | Description |
|---|---|---|---|
| barcodes | array | – | Barcode (EAN) numbers, e.g. ["8710400058519"]; counted in the max of 20 products (max 50 barcodes) |
| include_nutritional_info | boolean | – | Include nutritional values (default false) |
| product_ids | array | – | Product IDs from ah_search_products, e.g. [123456] or [123456, 789012]; at most 20 products are fetched per call (max 50 ids) |
| Name | Type | Req | Description |
|---|---|---|---|
| products | array | yes | – |
No examples provided.
ah_get_receipt_details Albert Heijn: Receipt Details ~98
Get full details of a single Albert Heijn in-store receipt (kassabon) by its id. Returns all purchased items with name, quantity, unit price, line total and deposit (statiegeld), plus any discounts, koopzegels (savings stamps) bought, payment method and total_amount. Get the id from ah_get_receipts first.
| Name | Type | Req | Description |
|---|---|---|---|
| id | string | yes | Receipt transaction ID from ah_get_receipts |
| Name | Type | Req | Description |
|---|---|---|---|
| discounts | array | – | – |
| id | string | yes | – |
| items | array | yes | – |
| koopzegels | object | – | – |
| payments | array | – | – |
| total_amount | number | – | – |
No examples provided.
ah_get_receipts Albert Heijn: Receipts ~65
List recent Albert Heijn in-store receipts (kassabonnen). Returns receipt id, date, and total amount. Use ah_get_receipt_details with the id to see individual items.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | – | Maximum number of results to return (default 10) |
| Name | Type | Req | Description |
|---|---|---|---|
| receipts | array | yes | – |
No examples provided.
ah_get_recipe Albert Heijn: Recipe ~107
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.
| Name | Type | Req | Description |
|---|---|---|---|
| recipe_id | integer | yes | Recipe id from ah_search_recipes |
| servings | integer | – | Number of servings to scale the ingredients to |
| Name | Type | Req | Description |
|---|---|---|---|
| cook_minutes | number | – | – |
| courses | array | – | – |
| cuisines | array | – | – |
| description | string | – | – |
| id | number | yes | – |
| ingredients | array | yes | – |
| nutri_score | string | – | – |
| nutrition_per_serving | object | – | – |
| rating | string | – | – |
| servings | string | yes | – |
| steps | array | yes | – |
| title | string | yes | – |
| url | string | yes | – |
No examples provided.
ah_get_shopping_list Albert Heijn: View Shopping List ~99
Get the contents of the Albert Heijn shopping list (boodschappenlijst). In the AH app this is the basket the user fills while shopping; choosing a delivery slot moves its products into an order, after which the list is unavailable until the order is done (use ah_get_cart then). Returns item names, quantities, and product IDs. When you mention a product or recipe from the result, link its name to its url.
Input schema present but exposes no named parameters.
| Name | Type | Req | Description |
|---|---|---|---|
| items | array | yes | – |
No examples provided.
ah_login Albert Heijn: Log In ~175
Log in to Albert Heijn. Call without arguments to start. On the user's own computer this usually opens a login window that finishes the login by itself. Otherwise it returns the AH login link and step-by-step instructions: show them to the user as given, in order (the developer console must be open before they log in). The user then copies a link like appie://login-exit?code=...; call ah_login again with code set to that link (or just the code) to finish. Codes are single-use and expire quickly. If already logged in, returns the account name; to switch accounts, call ah_logout first.
| Name | Type | Req | Description |
|---|---|---|---|
| code | string | – | The appie://login-exit?code=... link the user copied after logging in, or just the code. Omit to start a login. |
No output schema declared.
No examples provided.
ah_logout Albert Heijn: Log Out ~41
Log out of Albert Heijn by deleting the stored tokens. Use this to switch accounts or reset a broken session. After logout, call ah_login to authenticate again.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
ah_remove_from_cart Albert Heijn: Remove from Order ~60
Remove a single product from the active Albert Heijn delivery order. Use product_id from ah_get_cart. To remove products from the shopping list, use ah_remove_from_shopping_list.
| Name | Type | Req | Description |
|---|---|---|---|
| product_id | integer | yes | Numeric product ID to remove |
No output schema declared.
No examples provided.
ah_remove_from_favorite_list Albert Heijn: Remove from Favourite List ~73
Remove products from a named Albert Heijn favorite list. Get list_id from ah_get_favorite_lists.
| Name | Type | Req | Description |
|---|---|---|---|
| list_id | string | yes | Favorite list ID from ah_get_favorite_lists |
| product_ids | array | yes | Product IDs to remove, e.g. [123456, 789012] |
No output schema declared.
No examples provided.
ah_remove_from_shopping_list Albert Heijn: Remove from Shopping List ~108
Remove one or more items from the Albert Heijn Boodschappenlijst. For product items pass product_ids; for free-text items pass names. Get product_ids from ah_get_shopping_list.
| Name | Type | Req | Description |
|---|---|---|---|
| names | array | – | Free-text item names to remove, e.g. ["verse bloemen"]. Use for items without a product ID. |
| product_ids | array | – | Product IDs to remove, e.g. [123456, 789012]. Use for product items. |
No output schema declared.
No examples provided.
ah_search_products Albert Heijn: Search Products ~451
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. 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. category_id (from ah_get_categories) limits results to one category; with category_id, queries may be left out to list the category itself, e.g. the cheapest products in it. Returns, per query: id, title, price, bonus_price, unit, is_bonus, bonus_mechanism, image_url. When you mention a product or recipe from the result, link its name to its url.
| Name | Type | Req | Description |
|---|---|---|---|
| bonus | boolean | – | Return only products currently on bonus/promotion |
| category_id | integer | – | Only products in this category, from ah_get_categories |
| filters | array | – | Only products matching all of these, e.g. ["organic", "vegan"] |
| limit | integer | – | Maximum results per query (default 10 for one query, 5 for several; max 30) |
| queries | array | – | Search queries in Dutch or English, e.g. ["melk"] or ["melk", "kaas", "brood"] (max 10) |
| sort | string | – | Result order (default relevance) |
| Name | Type | Req | Description |
|---|---|---|---|
| searches | array | yes | – |
No examples provided.
ah_search_recipes Albert Heijn: Search Recipes ~312
Search Allerhande, Albert Heijn's recipe collection. Dutch search terms work best, e.g. 'pasta', 'stamppot', 'kip curry'; a recipe matches when it has all the words. filters narrows results to recipes matching all of them, e.g. ['vegetarian', 'quick', 'italian']: a label (easy, quick, budget, healthy, light), course (main_course, lunch, dessert, ...), dish (pasta, soup, salad, ...), main ingredient (meat, fish, ...), diet (vegan, gluten_free, ...), occasion, season, cooking method (oven, airfryer, ...) or cuisine (italian, asian, ...). query may be left out to browse by filters alone. sort orders results: relevance (default), newest, popular. Returns id, title, url, cook_minutes, servings, courses, nutri_score, rating, and corrected_query when AH fixed a typo. 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.
| Name | Type | Req | Description |
|---|---|---|---|
| filters | array | – | Only recipes matching all of these, e.g. ["vegetarian", "quick"] |
| limit | integer | – | Maximum number of results (default 10, max 30) |
| query | string | – | Search text, e.g. 'pasta zalm' |
| sort | string | – | Result order (default relevance) |
| Name | Type | Req | Description |
|---|---|---|---|
| corrected_query | string | – | – |
| recipes | array | yes | – |
| total | number | yes | – |
No examples provided.
ah_search_stores Albert Heijn: Search Stores ~85
Find Albert Heijn stores near a Dutch postal code. If no postal_code is given, automatically uses the address from the member profile. Returns store id (use this for ah_get_last_chance_items), name, type, and address.
| Name | Type | Req | Description |
|---|---|---|---|
| postal_code | string | – | Dutch postal code, e.g. '1234AB'. Optional — falls back to member address. |
| Name | Type | Req | Description |
|---|---|---|---|
| stores | array | yes | – |
No examples provided.
ah_update_cart_item Albert Heijn: Update Order Item ~119
Set the quantity of a product in the active Albert Heijn delivery order. Requires an order (started by choosing a delivery slot in the AH app or on ah.nl, which moves the shopping list into it); to collect products before that, use ah_add_to_shopping_list. Use product_id from ah_search_products or ah_get_cart. Set quantity=0 to remove the item (or use ah_remove_from_cart).
| Name | Type | Req | Description |
|---|---|---|---|
| product_id | integer | yes | Numeric product ID |
| quantity | integer | yes | New quantity (0 removes the item) |
No output schema declared.
No examples provided.
How do I install the Albert Heijn MCP server?
Albert Heijn runs locally as an npm package, launched with npx -y albert-heijn-mcp. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.
npm · albert-heijn-mcp
claude mcp add olekpuchka-albert-heijn-mcp -- npx -y albert-heijn-mcp
What is the Albert Heijn MCP server?
Albert Heijn is an MCP server listed in the public MCP registry as io.github.olekpuchka/albert-heijn-mcp. Unofficial Albert Heijn server: products, bonus deals, recipes, shopping list, orders and receipts. This page covers its npm package (albert-heijn-mcp).
Is the Albert Heijn MCP server safe to use?
Albert Heijn scores 90 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 5 November 2026. It declares no install or post-install scripts. Its build provenance is signed and verified. 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 37 tools: ah_login, ah_logout, ah_get_member_profile, ah_search_products, ah_get_products, and 32 more. Their descriptions and schemas cost roughly 4,752 tokens of context every time the server is loaded.
Is the Albert Heijn MCP server still maintained?
Albert Heijn is still listed as active in the MCP registry. We last reached this channel on 5 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.
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.