Jumbo MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| JUMBO_REFRESH_TOKEN | No | Your Jumbo refresh token for authentication on a headless server or Docker deployment. Can be supplied instead of copying ~/.config/jumbo-mcp/tokens.json to the server. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| jumbo_loginA | Check authentication status or establish session with Jumbo. The MCP server uses persistent pre-configured Auth0 tokens, so this verifies active connection and returns user loyalty identity. |
| jumbo_get_profileB | Get customer loyalty profile, name, customer ID, Extra's card details, and digital receipt preferences. |
| jumbo_list_receiptsB | List recent Jumbo supermarket store receipts (kassabonnen) with date, store location, and transaction ID. |
| jumbo_get_receipt_detailsA | Get detailed line items, unit prices, discounts, total, amount paid, returned deposit (statiegeld), payment method, and Extra's points for a specific Jumbo receipt. |
| jumbo_search_receiptsA | Search for specific grocery items purchased across recent Jumbo receipts by keyword (e.g. 'havermelk', 'bio ei', 'skyr'). |
| jumbo_get_balanceA | Get customer's live Jumbo Extra's loyalty points balance. |
| jumbo_get_shopping_listA | Get the user's Jumbo shopping list ('lijstje'): whether it is active and every item (id, term, sku, completed). |
| jumbo_search_storesA | Search nearby Jumbo supermarket stores by city name, address, or geographic coordinates (latitude, longitude). Returns address, distance, opening hours, and facilities. |
| jumbo_get_product_recommendationsB | Get product recommendations, alternatives, and cross-sell suggestions for a product by SKU or search query, or retrieve current weekly promotional recommendations. |
| jumbo_search_productsA | Search the entire Jumbo supermarket grocery catalog by keyword. Returns matching products with prices, active discounts, unit prices, web links, and SKUs. |
| jumbo_add_shopping_list_itemsA | Add one or more free-text items to the user's Jumbo shopping list (e.g. ['eieren']). This WRITES to the user's real Jumbo account. If the list is inactive it is activated first (set ensure_active=false to skip). Never touches the basket, checkout, orders or payments. |
| jumbo_set_shopping_list_activeA | Activate or deactivate the user's Jumbo shopping list ('lijstje'). This WRITES to the user's real Jumbo account; it does not add or remove items. |
| jumbo_remove_shopping_list_itemsA | Remove one or more items from the user's Jumbo shopping list by item id (ids come from jumbo_get_shopping_list). This WRITES to the user's real Jumbo account. Shopping list only. |
| jumbo_set_shopping_list_item_completedA | Tick an item on the user's Jumbo shopping list off (completed=true) or back on (completed=false). This WRITES to the user's real Jumbo account. |
| jumbo_get_basketA | Read-only view of the current Jumbo basket: lines with quantity, unit price, line total, promotions applied, and the basket subtotal. Uses the GraphQL ActiveBasket operation. No basket writes, no checkout, no order, no payment operations. |
| jumbo_get_depositsA | Read statiegeld (deposit) information for one order: the deposit catalogue and the deposits returned on that order, with the returned total. Requires an order_id — Jumbo's returned-deposits query is order-scoped. |
| jumbo_get_statiegeld_summaryA | Calculate total returned and charged statiegeld (bottle/can deposits) across store receipts in a date range or calendar year (e.g. 2026). Reports total returned, total charged, net deposit balance, and detailed per-receipt breakdown. |
| jumbo_get_stampsA | Read the user's digital stamps: per-campaign stamp counts, active saving (spaar) campaigns, and the buying-stamps balance. |
| jumbo_get_promo_digestA | Answer "of the things I actually buy, what is on offer right now?". Mines recent receipts for purchase frequency, resolves each frequent item to a current assortment product, and reports the offer price (was/now), discount, promo type, validity window and unit price for everything currently promoted. Read-only: no writes, no basket, no checkout, no order or payment operations. |
| jumbo_cache_statsA | Report the in-process caches (GraphQL responses and store geocoding): enabled state, hits, misses, hit rate, stored entries and evictions. Use to verify that cached Jumbo responses are reused instead of re-fetched. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 20 tools
Most tools have clearly distinct resource+action targets (receipts, products, stores, shopping list, basket, promos). The only mild overlap is jumbo_get_statiegeld_summary vs jumbo_get_deposits, but descriptions clearly distinguish aggregate-across-receipts from order-scoped deposits.
All tools use a consistent jumbo_ prefix with snake_case verb_noun patterns (get_, list_, search_, add_, remove_, set_). Minor noun-only deviations like jumbo_cache_stats and verb-only jumbo_login don't undermine the readable, predictable convention.
20 tools is on the heavier side but each covers a distinct loyalty/grocery sub-domain and none feel redundant. Slightly over the ideal but well-scoped for the breadth of the domain.
Strong coverage of profile, receipts, products, stores, shopping-list writes, basket reads, deposits, stamps, and promos. The deliberate absence of basket-write and checkout/order operations is a notable but clearly-stated scope boundary rather than an accidental gap.