Generate and edit Draw.io, Mermaid, and Excalidraw diagrams from natural language using a structured JSON spec.
Design & media
Bring Photo MCP
Try itTurn product photos into verified Bring! list items via MCP.
What it does
Use this skill for Bring shopping-list operations that need catalog-based classification, product-photo handling, and verified list writes.
The skill document
Bring Photo MCP
When to Use
Use this skill for Bring shopping-list operations that need catalog-based classification, product-photo handling, and verified list writes.
Boundary
- Perform deterministic list operations exclusively through the
bring_*MCP tools provided by this server. - Do not construct, replay, inspect, or send raw Bring HTTP requests. Do not use browser automation, shell commands, or a second Bring client for operations covered by these tools.
- Never expose credentials, list IDs, item-detail UUIDs, image paths, or photo bytes in conversation output.
- Treat every tool response as authoritative for the operation it reports. Do not infer success from intent.
Photo-led registration workflow
- Analyse the supplied product photo locally in the conversation. Extract only purchase-relevant facts: visible product name, brand, variant, amount, and ambiguity. If the image is unreadable or ambiguous, ask for clarification; do not write.
- Search the configured locale catalog with
bring_search_catalog({ query, locale?, limit? })using the visible main name first, then specific-to-general terms if needed. - Decide catalog versus free text:
- For an exact catalog product, use the catalog main name and its returned icon/category pair.
- For a product that is not an exact catalog item, retain an identifying free-text
item_name, but select an explicitly returned catalog icon/category pair. - Never assume
Eigene Artikelis a valid API category.
- If the catalog search does not make the classification clear, call
bring_suggest_classification({ product_name, hints?, locale? }). A response with insufficient confidence is a no-write result: present candidates or ask for clarification. - Compose
specificationat no more than 30 Unicode code points. Do not repeat the main/catalog name. Preferbrand + distinguishing variant + amount, keeping the product identifiable. If a required fact is not visible, do not invent it. - Enforce the hard icon/category invariant: every
bring_add_itemcall must containicon_item_idandcategory_idfrom the same valid catalog entry. No create, copy, or move is successful without verified persisted icon and category. - Call
bring_add_item({ lists, item_name, specification, icon_item_id, category_id, image_path?, duplicate_policy }). Addimage_pathonly when the user supplied a permitted local photo path. - Report the returned persisted fields and verification evidence per list, without repeating sensitive identifiers or local paths.
Duplicate policy and idempotency
- Use
duplicate_policy=failby default. An ambiguous existing item is an explicit no-write result, not a reason to overwrite. - Use
duplicate_policy=update_exactonly when the intended existing item has exactly the same item identity and specification. - Repeated identical requests should converge on one verified item per target list. Never silently overwrite another active item with a generic shared name.
Photo operations
- Use
bring_attach_photo,bring_replace_photo, orbring_remove_photoonly for a confirmed target item. - Trust success only when the tool returns its read-back verification (
imageUrlpresent after add/replace; absent after removal). - For images supplied as a conversation attachment rather than a local path, obtain an approved local path through the host workflow before calling a photo tool; do not fabricate a path.
Copy and move
- For copies, call
bring_copy_item({ source_list, target_lists, item_name, include_photo }). Metadata must remain catalog-valid; the source remains unchanged. - For moves, call
bring_move_item({ source_list, target_list, item_name, include_photo }). The target must be completely verified before the source is removed. If target creation or verification fails, report failure and leave the source untouched. - For every multi-target add or copy, enumerate the per-list results. If any result fails and any succeeds, report
status: "partial"; never call it total success. For all failures, reportstatus: "error"with stable error codes.
Other deterministic operations
- Discover allowed lists with
bring_list_listsand inspect them withbring_list_items. - Verify an existing item with
bring_get_itembefore a sensitive follow-up operation. - Use
bring_check_item,bring_uncheck_item, andbring_remove_itemonly on the confirmed requested list and item.
Safe response shape
For writes, state: requested operation, overall status, then one concise result per list (success/partial/error, stable error code when present, and non-sensitive verification evidence). State clearly when no write was performed due to ambiguity, insufficient classification confidence, or duplicate policy.
Related skills
Find why your productivity system keeps failing, then apply the smallest fix — capacity math, bottleneck routing, durable local notes.
Join a video meeting as an AI bot with voice, avatar, and screenshare across four operating modes.
Fetch raw ad creative, app, ranking, and revenue data from AdMapix as structured JSON.
Stores durable facts in a categorized, plain-markdown vault on disk, alongside your agent's built-in memory.
Write, debug, and tune Playwright specs with locator strategy, trace diagnosis, and CI-aware timeouts.