pantry-agent

pantry-agent

An MCP server for grocery shopping at Kroger-owned stores, enabling product search, store finder, cart management, and more through AI assistants.

Category
Visit Server

README

Pantry Agent

An MCP (Model Context Protocol) server for grocery shopping at Kroger-owned stores. Search products, find stores, check prices, and manage your cart through AI assistants like Claude.

Works with all Kroger-owned banners: Kroger, Ralphs, Fred Meyer, King Soopers, Harris Teeter, Food 4 Less, Fry's, Smith's, QFC, Mariano's, Pick 'n Save, and more — covering ~2,800 stores across the US.

Features

  • Product Search - Search by name, brand, or description at any Kroger-owned store
  • Store Finder - Find nearby stores across all Kroger banners
  • Product Details - Get pricing, stock availability, and nutrition info
  • Cart Management - Add items to your cart (requires authentication)
  • Profile Access - View your account profile
  • Agent-managed OAuth - Browser-based Kroger login guided by the AI agent

Installation

Claude Code

claude mcp add pantry-agent -- npx -y @blanxlait/pantry-agent

Claude Desktop

Add to your Claude Desktop configuration (~/Library/Application Support/Claude/claude_desktop_config.json on macOS):

{
  "mcpServers": {
    "pantry-agent": {
      "command": "npx",
      "args": ["-y", "@blanxlait/pantry-agent"]
    }
  }
}

Authentication

For cart and profile features, the agent manages Kroger authentication for you using an OAuth flow:

  1. The agent calls kroger_start_auth to begin the flow and get the authorization URL.
  2. The agent presents the URL — open it in your browser.
  3. Log in to Kroger and authorize the app. A local callback server (port 3000) captures the token automatically.
  4. Confirm to the agent that login is complete, and it retries your request.

Tokens are stored locally at ~/.pantry-agent/tokens.json. To manage authentication manually:

npx @blanxlait/pantry-agent auth           # Authenticate interactively (opens browser)
npx @blanxlait/pantry-agent auth --status  # Check if logged in
npx @blanxlait/pantry-agent auth --logout  # Clear stored tokens

Available Tools

Tool Description Auth Required
search_products Search products by term No
get_product Get product details by ID No
find_stores Find stores near a ZIP code No
get_store Get store details and hours No
add_to_cart Add items to cart Yes
get_profile Get user profile Yes
kroger_start_auth Start browser-based OAuth; returns authorization URL

Available Prompts

Prompt Description
grocery-assistant System prompt for grocery shopping assistance
kroger-oauth Step-by-step guide for agent-managed Kroger OAuth login

Example Usage

Once configured, you can ask Claude things like:

  • "Search for organic milk at my local Kroger"
  • "Find grocery stores near 90210" (returns Ralphs, Food 4 Less, etc.)
  • "What are the nutrition facts for this product?"
  • "Add 2 gallons of milk to my cart"
  • "Find me a Ralphs in San Diego and search for avocados"

OAuth Flow for Developers

The OAuth flow uses a Firebase Functions proxy so client secrets never leave the server. Here is the end-to-end sequence:

Agent                  MCP Server              Firebase Proxy       Kroger
  |                       |                         |                  |
  |-- kroger_start_auth ->|                         |                  |
  |                       |-- GET authStart ------->|                  |
  |                       |<- redirect URL ---------| redirect to ---->|
  |<- auth URL -----------|                                            |
  |                       |                                            |
  | (user opens URL, logs in to Kroger in browser)                     |
  |                       |                                            |
  |                       |<-- GET /callback?code=... (local port 3000)|
  |                       |-- POST authToken ------->|                  |
  |                       |                          |-- token req ---->|
  |                       |<- access/refresh token --|<- tokens --------|
  |                       | (tokens stored at ~/.pantry-agent/tokens.json)
  |                       |                                            |
  | (user confirms done)  |                                            |
  |-- add_to_cart ------->|-- PUT /cart/add (Bearer token) ----------->|
  |<- success ------------|<- 204 No Content ----------------------------|

Token refresh happens proactively 5 minutes before expiry. Refresh tokens are single-use and are replaced on each refresh.

Requirements

  • Node.js 20 or later
  • A Kroger account (for cart/profile features — works with any Kroger-owned banner login)

Privacy

  • Product search and store lookup work without authentication
  • Cart and profile features require Kroger OAuth login
  • Tokens are stored locally on your machine at ~/.pantry-agent/tokens.json with 0o600 permissions
  • No data is sent to third parties beyond the Kroger API and the Firebase Functions proxy (which holds the client credentials)

Disclaimer

Pantry Agent is not affiliated with, endorsed by, or sponsored by The Kroger Co.

License

MIT

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured