Skip to main content
Glama
CupOfOwls

Kroger MCP Server

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
KROGER_CLIENT_IDYesYour Kroger API client ID from the Kroger Developer Portal
KROGER_REDIRECT_URINoThe redirect URI for OAuth2 authenticationhttp://localhost:8000/callback
KROGER_CLIENT_SECRETYesYour Kroger API client secret from the Kroger Developer Portal
KROGER_USER_ZIP_CODENoOptional default zip code for location searches

Capabilities

Server capabilities have not been inspected yet.

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_user_zip_code
    Returns user zip code, it is anticipated that by exposing this to the LLM it will choose to use it
    rather than generating a zip code based on system data.

    Args: 
        N/A
    Returns:
        Dictionary containing user Zip Code
    
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
    

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

Latest Blog Posts

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