Texas Grocery MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| LOG_LEVEL | No | Logging level | |
| REDIS_URL | No | Redis cache URL | |
| HEB_DEFAULT_STORE | No | Default store ID |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tasks | {
"list": {},
"cancel": {},
"requests": {
"tools": {
"call": {}
},
"prompts": {
"get": {}
},
"resources": {
"read": {}
}
}
} |
| tools | {
"listChanged": true
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| store_searchA | Search for HEB stores near an address. Returns stores sorted by distance, including store ID, name, address, and distance from the search location. |
| store_get_defaultA | Get the currently set default store. Returns the default store ID if set, otherwise indicates no default. |
| store_changeA | Change the active store for HEB operations. When authenticated: Changes the store on HEB.com via their API with verification. When not authenticated: Sets a local default for product searches. The store change is VERIFIED by checking the cart's actual store after the mutation. This ensures we never return success when the store didn't actually change (e.g., due to cart conflicts). Args: store_id: The store ID to change to ignore_conflicts: If True, force store change even if cart has items unavailable at the new store or with price changes. Default False. |
| product_searchB | Search for products at an HEB store. Returns products matching the query with pricing and availability for the specified store. |
| product_search_batchA | Search for multiple products at once. More efficient than calling product_search multiple times. Handles throttling internally to prevent rate limiting. Returns results for each query, with availability at the specified store. |
| product_getA | Get comprehensive details for a single product. Returns detailed product information including:
Use this when you need more information than product_search provides, such as checking ingredients for dietary restrictions or allergens. Args: product_id: The product ID from product_search results store_id: Optional store ID for store-specific pricing Returns: Comprehensive product details or error response |
| coupon_listA | List available HEB digital coupons. Returns coupons with discount details, descriptions, and expiration dates. Filter by category to find coupons in specific departments. |
| coupon_searchA | Search for HEB coupons by keyword. Search for coupons by product name, brand, or discount type. |
| coupon_categoriesA | Get available coupon categories/departments. Returns a list of categories with the number of coupons in each. Use category names with coupon_list to filter coupons. |
| coupon_clipA | Clip a coupon to your HEB account. Without confirm=true, returns a preview of the action. With confirm=true, clips the coupon (requires authentication). Clipped coupons automatically apply at checkout when you buy eligible items. |
| coupon_clippedA | List your clipped coupons. Returns all coupons you've clipped to your HEB account. Clipped coupons automatically apply at checkout when you buy eligible items. |
| cart_check_authA | Check if authenticated for cart operations. Returns authentication status and instructions if not authenticated. Use this before attempting cart operations. |
| cart_getA | Get current cart contents. Returns all items in the cart with quantities and prices. |
| cart_addA | Add an item to the shopping cart with verification. Without confirm=true, returns a preview of the action. With confirm=true, executes the action and VERIFIES it worked. IMPORTANT: Use both product_id and sku_id from product_search results:
Returns error if item wasn't actually added to cart. |
| cart_add_manyA | Add multiple items to cart with a single confirmation. This is more efficient than calling cart_add multiple times and provides a single confirmation gate for the entire batch. IMPORTANT: This operation uses STRICT success semantics. If ANY item fails to add, the entire operation is reported as a FAILURE. Items that were successfully added will remain in the cart, but you'll receive a clear list of which items failed. Args: items: List of items, each with product_id, sku_id, and quantity confirm: Must be True to actually add items (human-in-the-loop safety) Returns: On success: All items added with details On failure: List of failed items with reasons (successful items stay in cart) |
| cart_add_with_retryA | Add item to cart with automatic ID correction. If the initial add fails due to ID format issues and auto_correct_ids=True, this will search for the product and retry with the correct IDs. This is a more resilient version of cart_add that can recover from incorrect ID formats by looking up the product. |
| cart_removeA | Remove an item from the shopping cart. Without confirm=true, returns a preview of the action. With confirm=true, executes the action. |
| session_statusA | Get current session status including token lifecycle and credential storage. Returns comprehensive session information:
Use this to check session health before operations or to decide when to proactively refresh. |
| session_save_instructionsA | Get instructions for saving browser session cookies. Call this to get step-by-step instructions for authenticating via Playwright MCP and saving the session for fast API access. For automatic session extraction, use session_refresh instead. |
| session_refreshA | Refresh HEB session cookies and tokens. Uses embedded browser when available (fast: ~10-15 seconds). If credentials are saved and login is required, attempts automatic login. Falls back to returning Playwright MCP commands if browser dependencies aren't installed. Args: headless: Run browser without visible window (default True). Set to False if you need to complete a manual login (e.g., when your session has fully expired). timeout: Maximum time to wait for page load in milliseconds. Default 30000 (30 seconds). login_timeout: Maximum time to wait for manual login in milliseconds. Default 300000 (5 minutes). Only used when headless=False. use_saved_credentials: If True and credentials are stored, attempt automatic login when session is expired. Default True. Returns: dict with one of these statuses: - {"status": "success", ...} - Login/refresh completed successfully - {"status": "human_action_required", "action": "login" | "captcha" | "2fa" | "waf", ...} Human intervention required (login form, CAPTCHA, 2FA, or a WAF/security interstitial). The browser remains open; complete the action, then call session_refresh() again. - {"status": "failed", ...} - Login/refresh failed with error details Use this tool when:
CAPTCHA/2FA handling:
|
| session_clearA | Clear saved session cookies. Use this to log out or clear invalid session data. After clearing, you will need to run session_refresh again. Note: This does NOT clear saved credentials. Use session_clear_credentials() to remove stored login credentials. |
| session_save_credentialsA | Save HEB login credentials for automatic login. Credentials are stored securely using:
After saving, session_refresh will automatically use these credentials when your session expires, eliminating manual browser login. Args: email: Your HEB.com account email address password: Your HEB.com account password Returns: dict with success status and storage method used Security notes:
Example: session_save_credentials("user@example.com", "mypassword") # Now session_refresh will auto-login when session expires |
| session_clear_credentialsA | Remove stored HEB login credentials. After clearing, session_refresh will fall back to manual browser login when your session expires. Returns: dict with success status Note: This does NOT clear your current session. Use session_clear() to remove session cookies. |
| health_liveA | Liveness probe - is the process running? Returns a simple alive status. Use for Kubernetes liveness probes. |
| health_readyA | Readiness probe - can the server handle requests? Returns detailed component health. Use for Kubernetes readiness probes. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/mgwalkerjr95/texas-grocery-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server