feat(shopping): add Bring! shopping lists MCP server and protocol
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
---
|
||||
name: shopping
|
||||
description: Intelligent shopping advisory, price comparisons across German supermarkets (Edeka, Rewe, Aldi, Lidl, Kaufland, Netto, Penny, dm, Rossmann), Geizhals retail best prices & price history, and eBay marketplace searches. Use when the user asks for shopping advice, supermarket offers (e.g. Mutti/Oro Tomatensaucen, Windeln Größe X, Vorratskäufe), price checks, or second-hand/refurbished deals.
|
||||
description: Intelligent shopping advisory, price comparisons across German supermarkets (Edeka, Rewe, Aldi, Lidl, Kaufland, Netto, Penny, dm, Rossmann), Geizhals retail best prices & price history, eBay marketplace searches, and Bring! shopping list management (Einkaufsladen, Baumarkt, Ikea, Gewuerzeinkaufsliste). Use when the user asks for shopping advice, supermarket offers, adding items to their shopping lists, or checking off items.
|
||||
---
|
||||
|
||||
# 🛒 Smart Shopper & Vorrats-Concierge
|
||||
@@ -30,6 +30,20 @@ Comprehensive shopping advisor for the Graf family. Combines live German superma
|
||||
- **`ebay_get_item(item_id)`**:
|
||||
- Fetches listing details, photos, location, and seller reputation.
|
||||
|
||||
### 4. Bring! Shopping Lists (`bring`)
|
||||
- **`bring_add_item(item_name, specification="", list_name="Einkaufsladen")`**:
|
||||
- Adds an item with optional quantity/specification (e.g. `specification="2L"`, `"100 Stück"`) to the target list.
|
||||
- **`bring_add_batch(items=[{"name": "...", "specification": "..."}], list_name="Einkaufsladen")`**:
|
||||
- Adds multiple items at once (ideal for recipe ingredients or bulk additions).
|
||||
- **`bring_get_items(list_name="Einkaufsladen")`**:
|
||||
- Retrieves active to-buy items and recently bought items for the specified list.
|
||||
- **`bring_complete_item(item_name, list_name="Einkaufsladen")`**:
|
||||
- Marks an item as purchased/completed (moves it to "recently bought").
|
||||
- **`bring_remove_item(item_name, list_name="Einkaufsladen")`**:
|
||||
- Completely deletes an item from the list.
|
||||
- **`bring_list_lists()`**:
|
||||
- Lists all Bring! shopping lists with their UUIDs and item counts.
|
||||
|
||||
---
|
||||
|
||||
## 🍅 Vorratskauf & Supermarkt Protocol
|
||||
@@ -81,6 +95,38 @@ When the user asks whether to buy a gadget, phone, laptop, or appliance:
|
||||
|
||||
---
|
||||
|
||||
## 📝 Bring! Shopping Lists Protocol
|
||||
|
||||
OpenClaw manages the Graf family's Bring! shopping lists using the `bring` MCP tools:
|
||||
- **`bring_add_item(item_name, specification="", list_name="Einkaufsladen")`**
|
||||
- **`bring_add_batch(items=[{"name": "...", "specification": "..."}], list_name="Einkaufsladen")`**
|
||||
- **`bring_get_items(list_name="Einkaufsladen")`**
|
||||
- **`bring_complete_item(item_name, list_name="Einkaufsladen")`**
|
||||
- **`bring_remove_item(item_name, list_name="Einkaufsladen")`**
|
||||
- **`bring_list_lists()`**
|
||||
|
||||
### 1. List Routing & Defaults
|
||||
The family maintains multiple distinct lists in Bring!:
|
||||
1. **`Einkaufsladen`** (**Default**): Groceries, supermarket items, drugstore (dm/Rossmann), household staples. Used for all general shopping queries unless another store is explicitly mentioned.
|
||||
2. **`Baumarkt`**: Hardware store items, DIY supplies, tools, screws/nails, timber, paint, plumbing, garden supplies.
|
||||
3. **`Ikea`**: Furniture, home decor, Swedish food market, home organization items.
|
||||
4. **`Gewuerzeinkaufsliste`**: Dedicated list for spices, herbs, and seasonings.
|
||||
|
||||
### 2. Interaction Rules
|
||||
- **Adding Items**:
|
||||
- *"Pack Milch auf die Einkaufsliste"* -> `bring_add_item(item_name="Milch", list_name="Einkaufsladen")`
|
||||
- *"Schreib 50er Spax Schrauben auf die Baumarkt-Liste"* -> `bring_add_item(item_name="Spax Schrauben", specification="50er", list_name="Baumarkt")`
|
||||
- *"Wir brauchen Koriander und Kardamom"* -> `bring_add_item` with `list_name="Gewuerzeinkaufsliste"` (or `bring_add_batch`)
|
||||
- *"Brauchen neue Kissenbezüge von Ikea"* -> `bring_add_item(item_name="Kissenbezüge", list_name="Ikea")`
|
||||
- **Confirmation**:
|
||||
- Always give a concise confirmation with markdown bolding:
|
||||
- *„✅ **Milch** (3.8%) auf die Liste **Einkaufsladen** gesetzt.“*
|
||||
- *„✅ **Spax Schrauben** (50er) auf die Liste **Baumarkt** gesetzt.“*
|
||||
- **Reading / Checking**:
|
||||
- When asked *"Was steht auf der Einkaufsliste?"*: call `bring_get_items(list_name="Einkaufsladen")` and summarize the items clearly.
|
||||
|
||||
---
|
||||
|
||||
## 🔗 Presentation Rules
|
||||
- Follow OpenClaw's SOUL protocol: Hide hyperlinks behind descriptive text (`[Händler (Preis €)](url)`).
|
||||
- Never send raw search URLs or unverified Google links.
|
||||
|
||||
Reference in New Issue
Block a user