# πŸ›’ Texas Grocery MCP [![PyPI version](https://badge.fury.io/py/texas-grocery-mcp.svg)](https://pypi.org/project/texas-grocery-mcp/) [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) [![CI](https://github.com/mgwalkerjr95/texas-grocery-mcp/actions/workflows/ci.yml/badge.svg)](https://github.com/mgwalkerjr95/texas-grocery-mcp/actions/workflows/ci.yml) > πŸ€– Let AI do your grocery shopping! An MCP server that connects Claude to H-E-B grocery stores. **Search products, manage your cart, clip coupons, and more β€” all through natural conversation.** ⚠️ This project is **not affiliated with H-E-B**. It uses unofficial web APIs and browser automation against HEB.com; use responsibly and ensure your usage complies with applicable terms and laws. --- ## ✨ Features | Feature | Description | |---------|-------------| | πŸͺ **Store Search** | Find HEB stores by address or zip code | | πŸ” **Product Search** | Search products with pricing and availability | | πŸ›’ **Cart Management** | Add/remove items with human-in-the-loop confirmation | | πŸ“‹ **Product Details** | Ingredients, nutrition facts, allergens, warnings | | 🎟️ **Digital Coupons** | List, search, and clip coupons to save money | | πŸ”„ **Auto Session Refresh** | Handles bot detection automatically (~15 seconds) | --- ## πŸ“¦ Installation ### Quick Start ```bash pip install texas-grocery-mcp ``` ### Full Installation (Recommended) πŸš€ ```bash pip install texas-grocery-mcp[browser] playwright install chromium ``` This enables **fast auto-refresh** (~15 seconds) using an embedded browser. ### Prerequisites For cart operations and session management, you'll also need **Playwright MCP**: ```bash npm install -g @anthropic-ai/mcp-playwright ``` --- ## βš™οΈ Configuration ### Claude Desktop Add to `~/Library/Application Support/Claude/claude_desktop_config.json`: ```json { "mcpServers": { "playwright": { "command": "npx", "args": ["@anthropic-ai/mcp-playwright"] }, "heb": { "command": "uvx", "args": ["texas-grocery-mcp"], "env": { "HEB_DEFAULT_STORE": "590" } } } } ``` ### Environment Variables | Variable | Description | Default | |----------|-------------|---------| | `HEB_DEFAULT_STORE` | Default store ID | None | | `REDIS_URL` | Redis cache URL | None (in-memory) | | `LOG_LEVEL` | Logging level | INFO | --- ## 🎯 Usage Examples ### πŸͺ Finding a Store ``` User: Find HEB stores near Austin, TX Agent uses: store_search(address="Austin, TX", radius_miles=10) ``` ### πŸ” Searching Products ``` User: Search for organic milk Agent uses: store_change(store_id="590") Agent uses: product_search(query="organic milk") ``` ### πŸ“‹ Getting Product Details ``` User: What are the ingredients in H-E-B olive oil? Agent uses: product_search(query="heb olive oil") Agent uses: product_get(product_id="127074") # Returns: ingredients, nutrition facts, warnings, dietary attributes ``` The `product_get` tool returns: - πŸ₯— **Ingredients** - Full ingredient statement - πŸ“Š **Nutrition Facts** - Complete FDA panel - ⚠️ **Safety Warnings** - Allergen info and precautions - 🌿 **Dietary Attributes** - Gluten-free, organic, vegan, kosher, etc. - πŸ“ **Store Location** - Aisle or section ### πŸ›’ Adding to Cart ``` User: Add 2 gallons of milk to my cart Agent uses: cart_add(product_id="123456", quantity=2) # Returns preview for confirmation Agent uses: cart_add(product_id="123456", quantity=2, confirm=true) # βœ… Added to cart! ``` ### 🎟️ Clipping Coupons ``` User: Find coupons for cereal Agent uses: coupon_search(query="cereal") Agent uses: coupon_clip(coupon_id="ABC123", confirm=true) # βœ… Coupon clipped! ``` --- ## πŸ” Session Management HEB uses bot detection that expires every ~11 minutes. This MCP handles it automatically! ### ⚑ Fast Auto-Refresh (Recommended) With `[browser]` support installed: ``` Agent uses: session_refresh() # βœ… Completes in ~10-15 seconds ``` ### πŸ”‘ Auto-Login Save your credentials once for automatic login: ``` Agent uses: session_save_credentials(email="you@email.com", password="...") # Credentials stored securely in system keyring # Future session refreshes will auto-login! ``` --- ## 🧰 Available Tools ### πŸͺ Store Tools | Tool | Description | |------|-------------| | `store_search` | Find stores by address | | `store_change` | Set preferred store | | `store_get_default` | Get current default store | ### πŸ” Product Tools | Tool | Description | |------|-------------| | `product_search` | Search products with pricing | | `product_search_batch` | Search multiple products (up to 20) | | `product_get` | Get detailed product info | ### πŸ›’ Cart Tools | Tool | Description | |------|-------------| | `cart_check_auth` | Check authentication status | | `cart_get` | View cart contents | | `cart_add` | Add item (requires confirmation) | | `cart_add_many` | Bulk add multiple items | | `cart_remove` | Remove item | ### 🎟️ Coupon Tools | Tool | Description | |------|-------------| | `coupon_list` | List available coupons | | `coupon_search` | Search coupons by keyword | | `coupon_clip` | Clip a coupon | | `coupon_clipped` | List your clipped coupons | ### πŸ” Session Tools | Tool | Description | |------|-------------| | `session_status` | Check session health | | `session_refresh` | Refresh/login session | | `session_save_credentials` | Save credentials for auto-login | | `session_clear` | Logout | --- ## πŸ“š Documentation - πŸ”§ [Troubleshooting Guide](docs/TROUBLESHOOTING.md) - Solutions for common issues - 🀝 [Contributing](CONTRIBUTING.md) - How to contribute - πŸ“ [Changelog](CHANGELOG.md) - Version history - πŸ”’ [Security](SECURITY.md) - Security policy --- ## πŸ› οΈ Development ```bash # Clone repository git clone https://github.com/mgwalkerjr95/texas-grocery-mcp cd texas-grocery-mcp # Install with dev dependencies pip install -e ".[dev]" playwright install chromium # Run tests pytest tests/ -v # Linting & type checking ruff check src/ mypy src/ ``` ### 🐳 Docker ```bash docker-compose up --build ``` --- ## πŸ—οΈ Architecture ``` β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ User's MCP Environment β”‚ β”‚ β”‚ β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ β”‚ β”‚ 🎭 Playwright MCP β”‚ β”‚ πŸ›’ Texas Grocery MCP β”‚ β”‚ β”‚ β”‚ (Browser Auth) │───▢│ (Grocery Logic) β”‚ β”‚ β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ β”‚ β”‚ β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ β–Ό 🌐 HEB GraphQL API ``` --- ## πŸ“„ License MIT Β© Michael Walker ---

Made with ❀️ in Texas πŸ€