Skip to main content
Glama

Kroger MCP Server

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
KROGER_CLIENT_IDYesYour client ID from the Kroger Developer Portal
KROGER_REDIRECT_URIYesThe redirect URI registered in the Kroger Developer Portalhttp://localhost:8000/callback
KROGER_CLIENT_SECRETYesYour client secret from the Kroger Developer Portal
KROGER_USER_ZIP_CODENoDefault zip code for location searches10001

Schema

Prompts

Interactive templates invoked by user choice

NameDescription
grocery_list_store_path Generate a prompt asking for the optimal path through a store based on a grocery list. Args: grocery_list: A list of grocery items the user wants to purchase Returns: A prompt asking for the optimal shopping path
pharmacy_open_check Generate a prompt asking whether a pharmacy at the preferred Kroger location is open. Returns: A prompt asking about pharmacy status
set_preferred_store Generate a prompt to help the user set their preferred Kroger store. Args: zip_code: Optional zip code to search near Returns: A prompt asking for help setting a preferred store
add_recipe_to_cart Generate a prompt to find a specific recipe and add ingredients to cart. (default: classic apple pie) Args: recipe_type: The type of recipe to search for (e.g., "chicken curry", "vegetarian lasagna") Returns: A prompt asking for a recipe and to add ingredients to cart

Resources

Contextual data attached and managed by the client

NameDescription

No resources

Tools

Functions exposed to the LLM to take actions

NameDescription
search_locations
Search for Kroger store locations near a zip code. Args: zip_code: Zip code to search near (uses environment default if not provided) radius_in_miles: Search radius in miles (1-100) limit: Number of results to return (1-200) chain: Filter by specific chain name Returns: Dictionary containing location search results
get_location_details
Get detailed information about a specific Kroger store location. Args: location_id: The unique identifier for the store location Returns: Dictionary containing detailed location information
set_preferred_location
Set a preferred store location for future operations. Args: location_id: The unique identifier for the store location Returns: Dictionary confirming the preferred location has been set
get_preferred_location
Get the currently set preferred store location. Returns: Dictionary containing the preferred location information
check_location_exists
Check if a location exists in the Kroger system. Args: location_id: The unique identifier for the store location Returns: Dictionary indicating whether the location exists
get_product_images
Get an image for a specific product from the requested perspective. Use get_product_details first to see what perspectives are available (typically "front", "back", "left", "right"). Args: product_id: The unique product identifier perspective: The image perspective to retrieve (default: "front") location_id: Store location ID (uses preferred if not provided) Returns: The product image from the requested perspective
search_products
Search for products at a Kroger store. Args: search_term: Product search term (e.g., "milk", "bread", "organic apples") location_id: Store location ID (uses preferred location if not provided) limit: Number of results to return (1-50) fulfillment: Filter by fulfillment method (csp=curbside pickup, delivery, pickup) brand: Filter by brand name Returns: Dictionary containing product search results
get_product_details
Get detailed information about a specific product. Args: product_id: The unique product identifier location_id: Store location ID for pricing/availability (uses preferred if not provided) Returns: Dictionary containing detailed product information
search_products_by_id
Search for products by their specific product ID. Args: product_id: The product ID to search for location_id: Store location ID (uses preferred location if not provided) Returns: Dictionary containing matching products
add_items_to_cart
Add a single item to the user's Kroger cart and track it locally. If the user doesn't specifically indicate a preference for pickup or delivery, you should ask them which modality they prefer before calling this tool. Args: product_id: The product ID or UPC to add to cart quantity: Quantity to add (default: 1) modality: Fulfillment method - PICKUP or DELIVERY Returns: Dictionary confirming the item was added to cart
bulk_add_to_cart
Add multiple items to the user's Kroger cart in a single operation. If the user doesn't specifically indicate a preference for pickup or delivery, you should ask them which modality they prefer before calling this tool. Args: items: List of items to add. Each item should have: - product_id: The product ID or UPC - quantity: Quantity to add (default: 1) - modality: PICKUP or DELIVERY (default: PICKUP) Returns: Dictionary with results for each item
view_current_cart
View the current cart contents tracked locally. Note: This tool can only see items that were added via this MCP server. The Kroger API does not provide permission to query the actual user cart contents. Returns: Dictionary containing current cart items and summary
remove_from_cart
Remove an item from the local cart tracking only. IMPORTANT: This tool CANNOT remove items from the actual Kroger cart in the app/website. It only updates our local tracking to stay in sync. The user must remove the item from their actual cart through the Kroger app or website themselves. Use this tool only when: 1. The user has already removed an item from their Kroger cart through the app/website 2. You need to update the local tracking to reflect that change Args: product_id: The product ID to remove modality: Specific modality to remove (if None, removes all instances) Returns: Dictionary confirming the removal from local tracking
clear_current_cart
Clear all items from the local cart tracking only. IMPORTANT: This tool CANNOT remove items from the actual Kroger cart in the app/website. It only clears our local tracking. The user must remove items from their actual cart through the Kroger app or website themselves. Use this tool only when: 1. The user has already cleared their Kroger cart through the app/website 2. You need to update the local tracking to reflect that change 3. Or when the local tracking is out of sync with the actual cart Returns: Dictionary confirming the local cart tracking was cleared
mark_order_placed
Mark the current cart as an order that has been placed and move it to order history. Use this after you've completed checkout on the Kroger website/app. Args: order_notes: Optional notes about the order Returns: Dictionary confirming the order was recorded
view_order_history
View the history of placed orders. Note: This tool can only see orders that were explicitly marked as placed via this MCP server. The Kroger API does not provide permission to query the actual order history from Kroger's systems. Args: limit: Number of recent orders to show (1-50) Returns: Dictionary containing order history
list_chains
Get a list of all Kroger-owned chains. Returns: Dictionary containing chain information
get_chain_details
Get detailed information about a specific Kroger chain. Args: chain_name: Name of the chain to get details for Returns: Dictionary containing chain details
check_chain_exists
Check if a chain exists in the Kroger system. Args: chain_name: Name of the chain to check Returns: Dictionary indicating whether the chain exists
list_departments
Get a list of all available departments in Kroger stores. Returns: Dictionary containing department information
get_department_details
Get detailed information about a specific department. Args: department_id: The unique identifier for the department Returns: Dictionary containing department details
check_department_exists
Check if a department exists in the Kroger system. Args: department_id: The department ID to check Returns: Dictionary indicating whether the department exists
get_user_profile
Get the authenticated user's Kroger profile information. Returns: Dictionary containing user profile data
test_authentication
Test if the current authentication token is valid. Returns: Dictionary indicating authentication status
get_authentication_info
Get information about the current authentication state and token. Returns: Dictionary containing authentication information
force_reauthenticate
Force re-authentication by clearing the current authentication token. Use this if you're having authentication issues or need to log in as a different user. Returns: Dictionary indicating the re-authentication was initiated
get_current_datetime
Get the current system date and time. This tool is useful for comparing with cart checkout dates, order history, or any other time-sensitive operations. Returns: Dictionary containing current date and time information
start_authentication
Start the OAuth authentication flow with Kroger. This tool returns a URL that the user needs to open in their browser to authenticate with Kroger. After authorization, the user will be redirected to a callback URL that they need to copy and paste back. Returns: Dictionary with authorization URL and instructions
complete_authentication
Complete the OAuth flow using the redirect URL from Kroger. After opening the auth URL in your browser and authorizing the app, you'll be redirected to a callback URL. Copy that entire URL and pass it to this tool to complete the authentication process. Args: redirect_url: The full URL from your browser after authorization Returns: Dictionary indicating authentication status

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/CupOfOwls/kroger-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server