# π Texas Grocery MCP [](https://pypi.org/project/texas-grocery-mcp/) [](https://opensource.org/licenses/MIT) [](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 π€