Skip to main content
Glama

Albert Heijn: Last-Chance Items

ah_get_last_chance_items
Read-only

Retrieve today's last-chance and clearance deals from an Albert Heijn store using a store ID or postal code; fetches markdown items from the bargainItems endpoint.

Instructions

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.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of results to return (default 20)
store_idNoAH store ID. Required to retrieve bargain items.
postal_codeNoDutch postal code (e.g. '1234AB') to find the nearest store when store_id is not known.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
itemsYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changedv1.3.1
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "$schema": "http://json-schema.org/draft-07/schema#",
      +  "additionalProperties": false,
      +  "properties": {
      +    "items": {
      +      "items": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "brand": {
      +            "type": "string"
      +          },
      +          "category": {
      +            "type": "string"
      +          },
      +          "discount_percentage": {
      +            "type": "number"
      +          },
      +          "expiration_date": {
      +            "type": "string"
      +          },
      +          "id": {
      +            "type": "number"
      +          },
      +          "markdown_type": {
      +            "type": "string"
      +          },
      +          "price_now": {
      +            "type": "string"
      +          },
      +          "price_was": {
      +            "type": "string"
      +          },
      +          "stock": {
      +            "type": "number"
      +          },
      +          "title": {
      +            "type": "string"
      +          },
      +          "url": {
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "id",
      +          "title",
      +          "url"
      +        ],
      +        "type": "object"
      +      },
      +      "type": "array"
      +    }
      +  },
      +  "required": [
      +    "items"
      +  ],
      +  "type": "object"
      +}
  2. First observedv1.0.0

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, and the description adds meaningful context beyond that: the dedicated bargainItems GraphQL endpoint and the 'today-only' time-scoped nature of the results. Auth/rate-limit behavior is not mentioned, but the safety profile is well covered.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Purpose is front-loaded, followed by prerequisite and data-source details. The trailing instruction about linking product/recipe names to their urls is a useful output-handling note, though it is somewhat tangential to tool selection.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, return-value explanation is unnecessary, and the description covers data source, time scoping, and prerequisites. It is nearly complete for a read-only lookup, missing only auth/rate-limit context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, but the description adds value beyond it by clarifying the actual requirement (a store_id is needed) and the relationship between store_id and postal_code as primary vs. fallback inputs, information the schema leaves unstated with 0 required parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Get last-chance / vandaag-af / clearance items from an Albert Heijn store') with clear domain scoping. It implicitly distinguishes itself from ah_get_bonus_offers by emphasizing 'today-only markdown deals', but does not explicitly name sibling tools to sharpen the boundary.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives explicit routing: requires store_id and directs the agent to ah_search_stores, or offers postal_code as an alternative when the store is unknown. This clearly names the helper tool and the fallback condition, though it does not contrast this tool against related offer/inventory tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.