Introduction
MealCP is a real-time grocery price and inventory API for European markets. It exposes live food and grocery catalogue data through a predictable REST API and a ready-to-use Model Context Protocol (MCP) server.
What is MealCP?
Section titled “What is MealCP?”MealCP indexes product catalogues, stock availability, and prices across major European supermarket chains. Rather than querying separate interfaces or maintaining custom integrations for every retailer, developers and AI agents can query one unified API.
Prices refresh from nightly retailer runs, so every record carries a latest_observed_at timestamp and every price has an auditable history. The catalogue is normalized on the way in: pack sizes, unit prices per liter or kilogram, currencies, categories, and tags follow one schema across all retailers and countries.
Core Capabilities
Section titled “Core Capabilities”- Cross-Retailer Product Search: Search across multiple chains in a country with a single query, complete with unit-normalized prices (e.g. comparing price per liter or price per kilogram).
- Historical Price Observations: Track price changes over time with daily observation snapshots, minimum/maximum/average calculations, and raw observation logs.
- Taxonomy & Tags: Structured 3-level category tree with canonical allergen, dietary, and lifestyle tags.
- Native MCP Support: Connect AI tools like Claude Desktop, Cursor, and opencode directly to live grocery prices via
mealcp-mcp.
What’s in a product record?
Section titled “What’s in a product record?”A search hit or product lookup returns the fields an application or an agent needs to act on, without a second call:
- Identity: product name in the retailer’s language, brand, opaque
id, and the retailer’s own product page and image URLs. - Pack and price: quantity value and unit, the latest shelf price in the local currency, and the unit-normalized price (per liter or kilogram) that makes different pack sizes comparable.
- Classification: the full category path from L1 root to leaf, plus tag slugs for allergens, diets, and certifications.
- Placement: which retailer and chain sell it, in which country and cities.
- Freshness:
latest_observed_at, plus the id you need to pull the full price history for that product.
How the API is organized
Section titled “How the API is organized”| Group | Endpoints | Key needed | Purpose |
|---|---|---|---|
| Search & lookup | /v1/search, /v1/products/{id} |
yes | Find products; fetch one by id |
| Prices | /v1/prices/{id}, /v1/prices/{id}/observations |
yes | Trend stats and raw observation logs |
| Taxonomy | /v1/categories, /v1/tags |
no | Category tree and tag vocabulary |
| Account | /v1/me |
yes | Identity, credit cap, live balance |
| Coverage | /v1/coverage |
no | Countries, retailers, catalogue sizes |
All endpoints are read-only GETs returning JSON; conventions like the
shared error envelope and pagination are documented in the
REST API overview.
Common Use Cases
Section titled “Common Use Cases”- AI Shopping & Recipe Assistants: Allow LLMs and agents to check real-time ingredient prices and store availability.
- Price Comparison & Deal Trackers: Build apps that compare identical or substitute groceries across supermarkets.
- Food Inflation & Market Research: Analyze price trends and historical volatility across European food retail markets.
- Inventory & Catalogue Integration: Power meal planning, nutrition, and pantry management apps with accurate product metadata.
Where to next?
Section titled “Where to next?”- New here? The Quickstart gets you from zero to a live API call in two minutes - free key included.
- Using Claude Desktop or Cursor? See the MCP integration.
- Building an app? Read the REST API reference.
- Wondering what a request costs? Credits & limits.
- Need help or have feedback? Join our Discord community or visit our GitHub.