The point is that it is the list on everyone's phone rather than a new one — "milk, 2 litres" added from wherever you happen to be talking appears on the family list, and a batch save puts a whole recipe's ingredients in as a single call. It rides an unofficial API rather than a published one, which is the trade: nothing about it is guaranteed to keep working.
A local server over the Bring! shopping list API. It loads your lists, adds and removes items with their quantity or type carried as a specification, and covers what surrounds that: the default list, list members, pending invitations, and the item catalog.
- Every shopping list on the account, plus the default list's UUID for when nobody says which one
- The items on a list, and their details
- An item saved with a specification carrying quantity or type — Milk with 2 liters
- Several items saved in one call, and several deleted by name in one call
- An item removed outright, or moved to the recently-used list so it is easy to re-add
- An image attached to an item from a local path or a URL, and removed again
- The people on a list, the authenticated user's settings, and any invitations still waiting for an answer
- The Bring! item catalog and interface translations for a locale, so item names come back in the right language
A Bring! account, with the email in MAIL and the password in PW — either in a .env file or injected as environment variables by your client. Authentication happens on the first API call, so there is no separate login step. Runs over stdio through npx bring-mcp@latest. It speaks to an unofficial Bring! API and the author has no affiliation with Bring! Labs, so the interface can change or be blocked without notice.
One command — npx -y bring-mcp@latest
