Wolfieeewolf/bring-mcp
If you are the rightful owner of bring-mcp and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.
The Bring! Shopping List MCP Server is a Model Context Protocol server that allows AI assistants to interact with Bring! shopping lists through a standardized interface.
Bring! Shopping List MCP Server
A Model Context Protocol (MCP) server that provides access to Bring! shopping lists. This server allows AI assistants like Claude to interact with your Bring! shopping lists through a standardized interface.
✨ Features
🛠️ Tools
- bring_get_lists - Get all available shopping lists
- bring_get_list_items - View items in a specific list
- bring_add_item - Add an item to a shopping list
- bring_add_multiple_items - Add multiple items at once
- bring_complete_item - Mark an item as completed/purchased
- bring_remove_item - Remove an item from a list
- bring_search_items - Search for items across all lists
🔒 Security
- Environment variables for secure credential storage
- No third-party data sharing
- Direct communication with official Bring! API
🚀 Installation
Prerequisites
- Python 3.10 or higher
- A Bring! account with shopping lists
- Claude Desktop or compatible MCP client
Recommended Installation
Install directly from GitHub for automatic updates:
pip install git+https://github.com/Wolfieeewolf/bring-mcp.git
Update to latest version:
pip install --upgrade git+https://github.com/Wolfieeewolf/bring-mcp.git
This method ensures you always get the latest features and bug fixes.
⚙️ Configuration
Step 1: Set Environment Variables
Windows:
set BRING_EMAIL=your.email@example.com
set BRING_PASSWORD=yourpassword
macOS/Linux:
export BRING_EMAIL=your.email@example.com
export BRING_PASSWORD=yourpassword
Step 2: Configure Claude Desktop
Add to your Claude Desktop configuration file:
Windows: %APPDATA%\\Claude\\claude_desktop_config.json
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
{
"mcpServers": {
"bring": {
"command": "bring-mcp",
"env": {
"BRING_EMAIL": "your.email@example.com",
"BRING_PASSWORD": "yourpassword"
}
}
}
}
Step 3: Restart Claude Desktop
After adding the configuration, restart Claude Desktop for the changes to take effect.
🧪 Testing Your Setup
Before configuring Claude Desktop, verify your installation:
# Test authentication
python -c "
import asyncio
import os
from bring_mcp.server import create_bring_client
async def test():
try:
os.environ['BRING_EMAIL'] = 'your.email@example.com'
os.environ['BRING_PASSWORD'] = 'yourpassword'
bring, session = await create_bring_client()
await session.close()
print('✅ Authentication successful!')
except Exception as e:
print(f'❌ Authentication failed: {e}')
asyncio.run(test())
"
💬 Usage Examples
Once configured, you can ask Claude:
- "What's on my shopping list?"
- "Add milk and bread to my grocery list"
- "Add organic tomatoes (2kg) to my main list"
- "Mark bread as completed"
- "Remove milk from my shopping list"
- "Search for items containing 'cheese'"
🛠️ Development
Local Development Setup
# Clone the repository
git clone https://github.com/Wolfieeewolf/bring-mcp.git
cd bring-mcp
# Install in development mode
pip install -e ".[dev]"
Project Structure
bring-mcp/
├── bring_mcp/ # Main package
│ ├── __init__.py
│ ├── server.py # MCP server implementation
│ └── cli.py # CLI entry point
├── tests/ # Test files
├── pyproject.toml # Package configuration
├── README.md # This file
└── LICENSE # MIT License
Running Tests
# Run tests
pytest
# Format code
black bring_mcp/
isort bring_mcp/
# Type checking
mypy bring_mcp/
Testing with MCP Inspector
npx @modelcontextprotocol/inspector bring-mcp
📚 API Reference
bring_get_lists
Returns all available Bring! shopping lists.
Parameters: None
bring_get_list_items
Get items from a specific shopping list.
Parameters:
list_uuid(optional): UUID of the shopping listlist_name(optional): Name of the shopping list
bring_add_item
Add a single item to a shopping list.
Parameters:
item_name(required): Name of the itemspecification(optional): Additional details (e.g., "2kg", "organic")list_uuid(optional): UUID of the shopping listlist_name(optional): Name of the shopping list
bring_add_multiple_items
Add multiple items to a shopping list at once.
Parameters:
items(required): Array of items withnameand optionalspecificationlist_uuid(optional): UUID of the shopping listlist_name(optional): Name of the shopping list
bring_complete_item
Mark an item as completed/purchased.
Parameters:
item_name(required): Name of the item to completelist_uuid(optional): UUID of the shopping listlist_name(optional): Name of the shopping list
bring_remove_item
Remove an item from a shopping list.
Parameters:
item_name(required): Name of the item to removelist_uuid(optional): UUID of the shopping listlist_name(optional): Name of the shopping list
bring_search_items
Search for items across all shopping lists.
Parameters:
search_term(required): Term to search for
🐛 Troubleshooting
Common Issues
Authentication Failed
- Verify
BRING_EMAILandBRING_PASSWORDare set correctly - Check credentials work in the Bring! app
"bring-mcp command not found"
pip install --upgrade git+https://github.com/your-username/bring-mcp.git
"Tool not found in Claude"
- Restart Claude Desktop after config changes
- Check config file syntax is valid JSON
- Verify command path in configuration
Debug Mode
Enable debug logging:
export MCP_LOG_LEVEL=debug
🤝 Contributing
We welcome contributions! Please see our for details.
📄 License
MIT License - see file for details.
🔗 Related Projects
- Model Context Protocol - Official MCP documentation
- Claude Desktop - AI assistant with MCP support
- Bring! API - Python API for Bring! shopping lists
Note: This is an unofficial integration. Not affiliated with Bring! Labs AG.