Pepesto MCP Server
MCP server for the Pepesto API — give your agent the ability to turn any recipe (a URL, plain text, or a photo) into a matched basket of real supermarket products with live prices, across 26 European supermarkets. The MCP covers the recipe → matched cart half of the grocery shopping workflow (parse / search / map ingredients to SKUs / check catalogs).
README
Pepesto MCP Server
<!-- mcp-name: io.github.pepesto-solutions/pepesto-mcp -->
MCP server for the Pepesto API — give your agent the ability to turn any recipe (a URL, plain text, or a photo) into a matched basket of real supermarket products with live prices, across 26 European supermarkets. The MCP covers the recipe → matched cart half of the workflow (parse / search / map ingredients to SKUs / check catalogs); placing the actual order is a separate step — see Where checkout actually happens.
Quick install
Claude Desktop
Add to claude_desktop_config.json:
{
"mcpServers": {
"pepesto": {
"command": "npx",
"args": ["-y", "@pepesto/pepesto-mcp"],
"env": { "PEPESTO_API_KEY": "pep_sk_…" }
}
}
}
Claude Code
claude mcp add pepesto -e PEPESTO_API_KEY=pep_sk_… -- npx -y @pepesto/pepesto-mcp
Getting an API key
-
Start with a pay-as-you-go credit pack — see https://www.pepesto.com/pricing/.
-
Mint an API key by calling
/linkwith the email you used at checkout. The key is returned only once — store it immediately.curl -X POST https://s.pepesto.com/api/link \ -H "Content-Type: application/json" \ -d '{"email":"you@example.com"}' -
Set the key in your environment:
export PEPESTO_API_KEY=pep_sk_…
Tools
| Tool | Endpoint | Description |
|---|---|---|
pepesto_oneshot |
POST /oneshot |
One-shot recipe → matched cart, including a redirect_url for checkout. |
pepesto_parse |
POST /parse |
Parse a URL/text/image recipe into structured ingredients + KgToken. |
pepesto_suggest |
POST /suggest |
Search Pepesto's 1M+ recipe graph. |
pepesto_products |
POST /products |
Map KgTokens + supermarket to concrete products with prices. |
pepesto_catalog |
POST /catalog |
Full SKU dump for a supermarket. Only when explicitly requested; cache results. |
pepesto_credits |
POST /credits |
Check remaining credits. Free. |
The MCP stops at "matched cart with prices" — see Where checkout actually happens for how users finish the order. /session, /checkout, and /link are intentionally not wrapped; see Roadmap for what's planned.
Example conversations
Quick: recipe URL → matched cart
The fastest path. One tool call returns a matched cart and a checkout link.
User: Use the BBC Good Food pizza margherita recipe to build a Tesco cart, and also add sparkling water and olive oil.
Assistant: [Uses
pepesto_oneshotwithcontent_urls,content_text,supermarket_domain: "tesco.com"]Assistant: Cart matched at Tesco. Checkout link:
<redirect_url>.
Browse the recipe graph → pick → matched cart
For "find me something to cook" prompts, where the agent searches Pepesto's recipe graph first and returns matched products with prices.
User: Find me a vegan pasta recipe for two.
Assistant: [Uses
pepesto_suggestwithquery: "vegan pasta dinner for two"]Assistant: Three options: Creamy Cashew Penne, Lemon Garlic Spaghetti, Roasted Veg Rigatoni. Which would you like?
User: Go with the first one. Shop it at Coop (coop.ch).
Assistant: [Uses
pepesto_productswith the chosen recipe'skg_tokenandsupermarket_domain: "coop.ch"]Assistant: Matched 8 ingredients at Coop — cashews CHF 4.20, penne CHF 1.95, ... — total CHF 18.40.
Parse a specific recipe → matched cart
When the user already has a recipe URL or text in mind. The MCP returns the matched product list — what to do with it is up to you.
User: Parse this and break out the ingredients: https://www.bbcgoodfood.com/recipes/pizza-margherita-4-easy-steps
Assistant: [Uses
pepesto_parsewithrecipe_url]Assistant: Pizza Margherita in 4 easy steps — 8 ingredients: strong bread flour, fast-action yeast, ...
User: Now match those to Sainsbury's products.
Assistant: [Uses
pepesto_productswith the returnedkg_tokenandsupermarket_domain: "sainsburys.co.uk"]Assistant: Matched 8 ingredients at Sainsbury's — total £6.40.
Weekly meal plan → one merged matched cart
Multiple kg_tokens through pepesto_products in a single call — Pepesto merges duplicated ingredients across recipes.
User: Plan 5 keto dinners for the week and match them at Delhaize.
Assistant: [Uses
pepesto_suggestwithquery: "keto dinner low carb high protein", num_to_fetch: 5]Assistant: Five dinners: Steak & Kale, Salmon Avocado Bowl, Zucchini Lasagna, Cauliflower Risotto, Chicken Caesar.
User: Build one shopping list that covers the whole week.
Assistant: [Uses
pepesto_productswith all fivekg_tokensandsupermarket_domain: "delhaize.be"]Assistant: Combined match: 24 unique ingredients (some shared across recipes), estimated total €68.40 at Delhaize.
Compare prices across two supermarkets
Run the same recipe through pepesto_products for each market and compare totals.
User: Parse this Sunday lunch recipe.
Assistant: [Uses
pepesto_parse]Assistant: Got it: Italian Sunday Lunch, 12 ingredients.
User: Show me the cart at both Esselunga and Conad so I can compare.
Assistant: [Uses
pepesto_productstwice —supermarket_domain: "spesaonline.esselunga.it", thensupermarket_domain: "spesaonline.conad.it"]Assistant: Esselunga: €34.20. Conad: €31.50. Conad is €2.70 cheaper, mostly on pasta and tomatoes.
Catalog dump for market analysis
Only on explicit request, and cache aggressively — see Pricing & best practices below.
User: I'm building a price-comparison dashboard. Pull the full Plus NL catalog.
Assistant: Heads up —
pepesto_catalogis the most expensive call here. I'll only run it once; you should cache the result for at least a day. Confirm?User: Yes.
Assistant: [Uses
pepesto_catalogwithsupermarket_domain: "plus.nl"]Assistant: Catalog dumped: 1,847 SKUs across 23 categories.
Supported supermarkets
| # | Country | Supermarket | Domain / ID |
|---|---|---|---|
| 2 | 🇬🇧 GB | Sainsbury's | sainsburys.co.uk |
| 3 | 🇬🇧 GB | ASDA | asda.com |
| 4 | 🇬🇧 GB | Morrisons | groceries.morrisons.com |
| 5 | 🇬🇧 GB | Waitrose | waitrose.com |
| 1 | 🇬🇧 GB | Tesco | tesco.com |
| 6 | 🇳🇱 NL | Albert Heijn | ah.nl |
| 7 | 🇳🇱 NL | Jumbo | jumbo.com |
| 8 | 🇳🇱 NL | Plus NL | plus.nl |
| 9 | 🇩🇪 DE | Rewe | shop.rewe.de |
| 10 | 🇨🇭 CH | Coop CH | coop.ch |
| 11 | 🇨🇭 CH | Migros | migros.ch |
| 12 | 🇨🇭 CH | Farmy | farmy.ch |
| 13 | 🇨🇭 CH | Aldi CH | aldi-now.ch |
| 14 | 🇧🇪 BE | Colruyt | colruyt.be |
| 15 | 🇧🇪 BE | Delhaize | delhaize.be |
| 16 | 🇮🇪 IE | Tesco IE | tesco.ie |
| 17 | 🇮🇪 IE | SuperValu | shop.supervalu.ie |
| 18 | 🇮🇪 IE | Dunnes | dunnesstoresgrocery.com |
| 19 | 🇮🇹 IT | Esselunga | spesaonline.esselunga.it |
| 20 | 🇮🇹 IT | Conad | spesaonline.conad.it |
| 21 | 🇩🇰 DK | Nemlig | nemlig.com |
| 22 | 🇳🇴 NO | Meny | meny.no |
| 23 | 🇵🇱 PL | Frisco | frisco.pl |
| 24 | 🇵🇱 PL | Auchan PL | zakupy.auchan.pl |
| 25 | 🇧🇬 BG | Bulmag | bulmag.org |
| 26 | 🇧🇬 BG | eBag | ebag.bg |
Need a supermarket that isn't on this list? Contact Pepesto.
Where checkout actually happens
This MCP stops at "matched cart with prices." It does not automate placing the order on the supermarket's website. Two ways to finish the trip:
- Pepesto app (recommended). Open the
redirect_urlreturned bypepesto_oneshotin a browser, or hand the user the matched-product list frompepesto_productsand tell them to recreate it in the Pepesto app — that's where the hosted checkout flow lives, including login, basket review, and (for some markets) payment. - The supermarket's own site. The user can take the matched product list from
pepesto_productsand add the SKUs directly on tesco.com / coop.ch / etc. Slower, but no Pepesto account needed.
Pricing & best practices
Pepesto runs on simple pay-as-you-go credits — you only pay for what your agents actually use, and credits never expire, so a top-up is yours until you spend it. We also offer discounts for students and early-stage teams, so say hi if that sounds like you. Full per-call pricing and volume tiers live at https://www.pepesto.com/pricing/.
A few tips to get the most out of every credit:
pepesto_creditsis free — call it any time for a quick balance read-out.pepesto_oneshot,pepesto_parse,pepesto_suggest, andpepesto_productsare the everyday calls (match a recipe, plan a week, compare baskets) and are priced for routine agent use.pepesto_catalogdoes a full SKU dump for a supermarket and is the heaviest call. It's the right tool for genuine market analysis or price-comparison dashboards — just cache the result for at least a day per supermarket. Not sure you need it? Tell us about your use case and we'll usually point you to a cheaper path.
Roadmap
Planned to follow:
pepesto_session— wrap/sessionso an agent can build a Pepesto-side checkout session from selected SKUs.pepesto_checkout— wrap/checkout, the turn-by-turn browser-automation loop that drives the supermarket's own site (login, add-to-basket, prompt-for-CAPTCHA, etc.). This is the missing piece for fully autonomous shopping.- Hosted-checkout handoff — surface the Pepesto-app deep link as a structured tool result (instead of free text), so MCP clients can render it as a button instead of a URL.
If any of these would unblock you, tell us — it'll move them up the queue.
Development
git clone https://github.com/pepesto-solutions/pepesto-mcp.git
cd pepesto-mcp
npm install
npm run build
npm test
npm run test:coverage
Run the inspector against the local build:
PEPESTO_API_KEY=pep_sk_… npm run inspector
License
The Pepesto MCP server in this repository is licensed under the MIT License.
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。