restrackit-pantry-mcp
OfficialClick on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@restrackit-pantry-mcpI bought eggs and milk, add them to my pantry."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
restrackit-pantry-mcp
A remote MCP server that turns a snapshot of a grocery receipt into an up-to-date household pantry. Talk to Claude, snap a photo of your receipt or just say what you bought or used, and it tracks quantities on your behalf — no barcode scanning, no manual data entry, no rigid expiry-date bookkeeping.
Built on top of restrackit-core, restrackit's own inventory-traceability backend, reused here purely through its public REST API — this project ships no changes to that codebase.
How it works
Claude is multimodal, so it reads the receipt photo itself: no OCR pipeline
to build or maintain. For every line item it estimates a plausible expiry
date and storage location — dispensa (pantry), frigo (fridge), or
congelatore (freezer); other values are accepted but get a generic
fallback shelf life instead of a tuned one — from general knowledge, then
calls this server to persist it.
restrackit-pantry-mcp is a thin, fully stateless translation layer — it
holds no database of its own and defers every fact about inventory to
restrackit-core.
Claude (Desktop/mobile)
│ reads the receipt photo / listens to a spoken update
│ estimates category + plausible expiry date per item
▼
restrackit-pantry-mcp (AWS Lambda + API Gateway, MCP Streamable HTTP)
│ translates tool calls into authenticated REST requests
▼
restrackit-core REST APIRelated MCP server: Kitchen MCP
Tools exposed
Tool | Purpose |
| Record a purchase — creates the product/category/storage method if missing, one batch per unit |
| Return how much of each product is currently on hand |
| Close out units of a product you've used up (oldest first) |
There's no dedicated "shopping list" tool — ask Claude what you're low on
and it reasons over get_pantry_status in the conversation.
One-time setup
Create the "Home" store on restrackit-core (requires an
ADMIN_ALLaccount):curl -X POST https://api.restrackit.example.com/v1/onboarding/stores \ -H "Authorization: Bearer <admin token>" \ -H "Content-Type: application/json" \ -d '{"store_name": "Home", "manager": {"username": "restrackit-pantry-mcp", "email": "you@example.com"}}'Note down the returned
store_idandtemporary_password.No manual Keycloak step is needed here — the onboarding call in step 1 already assigned the
managerrealm role and settemporary_password. That password is temporary (Keycloak'sUPDATE_PASSWORDrequired action), so it can't be used withTokenProvider's password-grant flow as-is: log in interactively once to set a permanent password (or have an admin reset it via the Keycloak admin console /kcadm.sh), otherwise the server will fail to authenticate.Copy
.env.exampleto.envand fill in every value, including thestore_idfrom step 1.Run
python scripts/setup_catalog.pyto pre-populate a few starter categories and storage methods (optional —add_purchasecreates anything missing on demand anyway).
Deployment
Infrastructure is defined as AWS CDK (Python) under infra/:
cd infra
uv venv .venv && source .venv/bin/activate
uv pip install --python .venv -r requirements.txt
cdk deploy \
--parameters KeycloakUrl=... \
--parameters KeycloakRealm=... \
--parameters KeycloakClientId=... \
--parameters KeycloakUsername=... \
--parameters KeycloakPassword=... \
--parameters RestrackitBaseUrl=... \
--parameters RestrackitStoreId=... \
--parameters McpAuthToken=...Take the ApiUrl from the output and register it as a Custom Connector in
Claude (Desktop/mobile), using the value of MCP_AUTH_TOKEN as its bearer
token.
Development
uv sync --extra dev
uv run pytestThis server cannot be deployed
Maintenance
Related MCP Connectors
AI-powered kitchen management — pantry, recipes, meal plans, shopping lists
Household-aware cooking brain: pantry, meal suggestions, dietary safety, recipes, shopping lists.
AI meal plans that fill your Kroger/Instacart cart - pantry-aware lists, all from chat.
Scraps Kitchen gives any AI agent a persistent, household-aware kitchen memory. Unlike generic chatbot recall, Scraps maintains structured cooking data: what's in your fridge (with freshness tracking), who you cook for (with allergens, dietary restrictions, and preferences), your recipe collection (with cook notes and per-diner ratings), your shopping list, and your kitchen equipment. 27 tools across 6 domains let agents read kitchen context, suggest meals that respect dietary safety, update the pantry after cooking, and build a history of what works for your household. Every interaction makes the data richer. Cooking history, preference signals, kitchen awareness = better suggestions next time. All tools work via oAuth and a free scraps.kitchen account.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables AI-powered household management including inventory tracking, restock predictions, meal planning from available ingredients, and baby supply monitoring through natural language commands.Apache 2.0
- FlicenseNot gradedqualityCmaintenanceYour digital kitchen, powered by AI. Track what you have, discover what you can cook, and get guided through every recipe — step by step, timer by timer.-
- AlicenseNot gradedqualityBmaintenanceEnables households to manage appliance inventories, manuals, warranties, and maintenance through natural-language voice interactions, with grounded troubleshooting and consumable reordering.MIT
- AlicenseNot gradedqualityCmaintenanceGives Alexa+ persistent, structured memory of a household kitchen: tracking purchased groceries, flagging items at risk of spoiling, proposing rescue meals from expiring ingredients, and maintaining shopping lists, receipt ingestion, and waste reports through MCP tool calls. Storage, tool logic, and safety controls (consent gates, two-step deletion, rate limiting) are exposed over Streamable HTTP for any MCP client.MIT