MCP server for the Pepesto grocery shopping API โ recipe-to-cart across European supermarkets.
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent โ or use 1-click editor setup below.
We haven't yet run this listing's install command through our automated sandbox check. This isn't a red flag โ we're steadily working through the catalog.
๐ก Paste the JSON block into your client's configuration file under mcpServers, then restart the application.
Inspect callable tools, capabilities, and parameters exposed to AI agents by Pepesto MCP.
pepesto_oneshotOne-shot recipe โ matched cart, including a `redirect_url` for checkout.
pepesto_predirectFree, no API key.** Shopping list โ deferred deep link (`redirect_url`); the **end user** pays when they check out in the Pepesto app.
pepesto_parseParse a URL/text/image recipe into structured ingredients + `KgToken`.
pepesto_suggestSearch Pepesto's 1M+ recipe graph.
pepesto_productsMap `KgToken`s + supermarket to concrete products with prices.
pepesto_catalogFull SKU dump for a supermarket. Only when explicitly requested; cache results.
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.
Add to claude_desktop_config.json:
Most tools need a key, but
pepesto_predirectis public and free โ it works with no key at all (the end user pays when they check out in the app).
Start with a pay-as-you-go credit pack โ see https://www.pepesto.com/pricing/.
Mint an API key by calling /link with the email you used at checkout. The key is returned only once โ store it immediately.
Set the key in your environment:
| Tool | Endpoint | Description |
|---|---|---|
pepesto_oneshot | POST /oneshot | One-shot recipe โ matched cart, including a redirect_url for checkout. |
pepesto_predirect | POST /predirect | Free, no API key. Shopping list โ deferred deep link (redirect_url); the end user pays when they check out in the Pepesto app. |
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.
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>.
pepesto_predirect)When the API client doesn't want to pay for matching and a deferred deep link is acceptable. pepesto_predirect is free and needs no API key: it returns instantly with a link, and parsing + product matching happen lazily once the user opens it. The user is charged when they proceed to checkout in the Pepesto app (if the app isn't installed, they're sent to the app store first and the list is preserved).
Who this is for:
pepesto_predirectis an end-user / agent-facing tool, not a developer-integration endpoint. It's the right fit when a person is chatting with an assistant (Claude Desktop, ChatGPT, etc.) and wants to hand their shopping list off to their own phone โ the agent returns a link, the user finishes (and pays) in the app. If you're a developer building a product on top of Pepesto, you'll usually wantpepesto_oneshot(matched cart up front, you pay) instead. Got a developer use case forpredirectanyway? Tell us โ we'd love to hear it.
Use pepesto_predirect when the cost should fall on the end user; use pepesto_oneshot when the client wants the basket matched up front (with prices) and is willing to pay for it.
User: Here's my weekly shopping list โ just give me a link I can open on my phone to finish in the Pepesto app.
Assistant: [Uses
pepesto_predirectwithshopping_list: "2 avocados\n1 loaf of bread\n500 g tomatoes\n..."]Assistant: Done โ ๐ Open your shopping list in Pepesto โ Free to open ยท 3 items ready ยท you only pay at checkout in the app. Open it on your phone (on a computer it'll show a QR code to scan).
The tool returns this as ready-to-show Markdown โ one tappable, labeled link plus a short caption โ so the long redirect_url is never dumped as raw text.
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.
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.
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.
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.
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.
| # | 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.
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:
Factual signals from GitHub, npm, and our automated checks โ not a rating.
No reviews yet โ be the first to share how this listing worked for you.
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/pepesto-mcp)<a href="https://allmcps.com/mcp/pepesto-mcp"><img src="https://allmcps.com/api/badge/pepesto-mcp?style=directory" alt="Pepesto MCP on AllMCPs" /></a>