Delhaize receipts

io.github.SHIMABEIGIv0.1.0更新於 Oct 1, 2026

Fetch your own Delhaize (Belgium) till receipts and weekly promotions with a headless browser.

概覽

AI 產生的概覽

使用無頭瀏覽器把你自己的 Delhaize(比利時)收銀明細與每週促銷存到本機檔案。

功能
這是一個非官方 MCP 伺服器,使用已儲存的瀏覽器工作階段登入你自己的 Delhaize 帳戶,把明細圖片與每週促銷頁面存到磁碟。工具包含檢查登入狀態、列出最近明細、抓取新明細圖片、補齊缺少的明細照片,以及抓取每週促銷清單。它不會轉錄品項、不會修改你的紀錄,也不會處理你的密碼,只把檔案寫到磁碟。明細以日期、門市與總額辨識,因此不會重複抓取。
適用情境
當你希望助理把你自己的 Delhaize 比利時明細與促銷內容拉到本機資料夾,方便日後閱讀或留存紀錄時,可以使用它。適合已有 Delhaize 帳戶、明細已綁定到會員卡,並且願意執行本機 Python 工具的使用者。
執行需求
需要 Python 3.10+,以及一個已將明細綁定到會員卡的 Delhaize 帳戶。安裝 PyPI 套件與 Playwright Chromium。首次需互動式登入以建立瀏覽器設定檔;可選環境變數 DELHAIZE_DATA_DIR 用來設定資料資料夾。需要連線至 delhaize.be 的網路。
安裝前請注意
儲存的瀏覽器設定檔包含你的工作階段 cookie,切勿提交或分享。此伺服器會寫入檔案到磁碟,且只讀取你自己的帳戶;請保持較低的請求頻率,並確認你的使用符合 Delhaize 的使用條款。它是非官方專案,與 Delhaize 無關,對方頁面變動可能導致其失效。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Delhaize receipts,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

delhaize-mcp

An unofficial Model Context Protocol server that lets an AI assistant fetch your own Delhaize (Belgium) till receipts and this week's promotions, using its own headless browser, without driving your everyday browser and without ever seeing your password.

Unofficial and not affiliated with or endorsed by Delhaize. It reads only your own account, at your request, the way you would read it yourself. Check that your use fits Delhaize's terms of use, keep the request rate low, and do not use it to collect other people's data.

What it does

ToolWhat it doesWrites
delhaize_auth_statusIs the saved login still valid?nothing
delhaize_list_receiptsLists recent receipts and flags which are not in your record yetnothing
delhaize_fetch_new_receiptsSaves the image of each new receiptdata/receipts_inbox/
delhaize_backfill_imagesSaves the missing photos of receipts already in your recorddata/receipts_backfill/
delhaize_fetch_promotionsSaves the raw pages of the weekly promotions listingdata/promos_inbox/<date>/

It never transcribes items, never edits your record, and never handles your password. It only puts files on disk. Reading the images and recording them is left to you or your assistant, ideally with a check that each receipt's lines sum to its printed total.

Receipts are identified by (date, store, total), so nothing is fetched twice.

Requirements

  • Python 3.10+
  • A Delhaize account with receipts linked to your loyalty card

Install

bash
pip install delhaize-mcppython3 -m playwright install chromium

This gives you two commands: delhaize-mcp (the MCP server) and delhaize-receipts (the same actions from the command line).

Set up

  1. Log in once. A browser window opens, and you sign in yourself:

    bash
    delhaize-receipts login

    The session is saved in ~/.delhaize-mcp/profile (or set DELHAIZE_PROFILE). Later runs reuse it headlessly. If it lapses, run login again. That folder holds your session cookies: never commit or share it.

  2. Choose a data folder (optional). By default everything is written to ~/.delhaize-mcp/data. Set DELHAIZE_DATA_DIR to use another folder. Your record of receipts is receipts_all.json in that folder, a JSON list such as:

    json
    [{"date": "2026-08-11", "store": "Delhaize Centre", "total": 11.11, "image": "photos/2026-08-11.jpeg"}]

    image is optional. A receipt without an existing image is what backfill looks for.

  3. Connect it to your assistant.

    Claude Code:

    bash
    claude mcp add delhaize-receipts -- delhaize-mcp

    Claude Desktop (claude_desktop_config.json):

    json
    {  "mcpServers": {    "delhaize-receipts": {      "command": "delhaize-mcp",      "env": {"DELHAIZE_DATA_DIR": "/path/to/your/data"}    }  }}

    If the app cannot find delhaize-mcp, use its full path (which delhaize-mcp shows it).

Command line

The same actions work without an assistant:

bash
delhaize-receipts statusdelhaize-receipts list     --months 1   # this month and lastdelhaize-receipts fetch    --months 1delhaize-receipts backfill --months 3delhaize-receipts promos

How it works

Delhaize renders each receipt as an image inside a client-side app, so the server lets the real page render in a headless Chromium (Playwright) and reads the finished page, exactly as a person would. All parsing rules (French dates, euro amounts, de-duplication, file naming) live in src/delhaize_mcp/core.py, which has no browser dependency and is fully unit-tested.

Tests

No browser or network needed:

bash
python3 tests/test_core.pypython3 tests/test_server.py

Privacy

  • Nothing leaves your machine except the normal page requests to delhaize.be.
  • No password is read or stored. The login is a browser profile you create yourself.
  • Your login and data live in ~/.delhaize-mcp, outside the code, so they never end up in a repository.

Limitations

  • Built against the French-language Belgian site (delhaize.be/fr). Page changes on Delhaize's side can break it; the parsers are deliberately forgiving, and the tools report what they missed rather than failing silently.
  • The promotions capture saves raw page data only; interpreting it is up to you.

Licence

MIT. See LICENSE.

來源:README.md,提交 c8b81bf

工具

0
工具後設資料尚未被收錄。

版本歷史

1
  1. v0.1.0最新Oct 1, 2026