
Snappfood & SnappMarket
io.github.sepehr071v0.1.1更新于 Oct 2, 2026
Unofficial read-only Snappfood & SnappMarket: search food and groceries, compare prices, deals.
概览
只读地搜索和比价伊朗的 Snappfood 餐厅与 SnappMarket 杂货,包含配送费和限时优惠。
- 功能
- 在本地运行,调用 Snappfood 和 SnappMarket 的公开接口,按伊朗境内地址搜索菜品和杂货商品。工具涵盖地点查询、带筛选的餐厅和商店浏览、完整菜单和商品目录、配送费、起送价、预计送达时间、优惠券、评价,以及 FoodParty、Market Party 等限时优惠。它会计算外卖订单的真实总价(价格减折扣加包装费加配送费减优惠券),并找出有货商品中最便宜的报价。所有工具均为只读,返回紧凑的结构化 JSON。
- 适用场景
- 当你希望助手在你亲自于应用下单前,比较伊朗的餐厅或杂货价格、菜单、配送费和当前折扣时使用。适合诸如送到某地址最便宜的披萨、提供免费配送且评分高的商店,或某地点附近的当前限时优惠等问题。
- 运行要求
- 需要本地 Python 运行环境,通过 uv 或 uvx(或 pip install snapp-mcp)以 stdio 方式运行。需要伊朗 IP 地址,因为 Snappfood 会屏蔽大多数境外 IP;可选环境变量 SNAPP_MCP_PROXY 可指向出口在伊朗的 HTTP 代理,系统代理设置会被忽略。无需账号或 API 密钥。仅支持桌面端。
安装
在 SourceWeft 中
- 打开 控制台中的 Snappfood & SnappMarket,将其添加到工作区。
- 为需要使用其工具的对话启用该服务。
Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。
其他 MCP 客户端
参照 仓库 中的启动说明。
README
🍕 snapp-mcp
Let your AI agent shop around on Snappfood and SnappMarket.
Search dishes and groceries, compare real prices across hundreds of restaurants and stores,
read menus and reviews, and catch today's flash deals, all from Claude, Cursor or Copilot.
[PyPI] [Python] [CI] [MCP Registry] [License: MIT]
[Install in Cursor] [Install in VS Code]
Quick start · What it can do · Tools · FAQ · فارسی
Why
Snappfood shows you one restaurant at a time. Finding the cheapest pizza that actually reaches your door
means opening dozens of menus, adding packaging and delivery fees in your head, and checking each
restaurant's minimum order. An agent with snapp-mcp does that in seconds:
You: Cheapest pizza delivered to Vanak Square right now, including delivery?
Agent: calls
find_location(query="میدان ونک")→food_find_cheapest(query="پیتزا", lat=35.7577, long=51.4095)The Pizzato combo is cheapest overall. Want me to check its minimum order and coupons with
food_order_costs?
Real tool output from 2026-10-02; prices change all the time. Prices are in Toman.
What it can do
- 🔎 Search dishes and grocery products by name near any address in Iran
- 💸 Find the true cheapest option: food price after discount + packaging + delivery, checked against live menus
- 🏪 Browse restaurants and stores with filters: free delivery, discount, coupon, rating, distance
- 📋 Read full menus, store catalogs, minimum orders, delivery fees, ETAs and coupons
- ⚡ Catch deals: FoodParty flash deals, meals for one, Gem hunts, Market Party
- ⭐ Check quality with customer reviews before recommending anything
- 🔒 Read-only by design: no login, no basket, no orders, no payment
Quick start
You need uv and an Iranian IP address (Snappfood blocks most foreign IPs; see FAQ).
Claude Code
Claude Desktop
Settings → Developer → Edit Config, then add:
Cursor
Click Install in Cursor above, or add the Claude Desktop block to ~/.cursor/mcp.json.
VS Code (Copilot agent mode)
Click Install in VS Code above, or add to .vscode/mcp.json:
Anything else
It's a standard stdio MCP server: run uvx snapp-mcp, or pip install snapp-mcp and run snapp-mcp.
Then just ask:
- "Which restaurants near Tajrish have free delivery and at least 4.5 stars?"
- "Show FoodParty deals with more than 40% off near me."
- "Where is low-fat milk cheapest near Jordan, Tehran? Include delivery."
- ارزانترین کباب نزدیک میدان آزادی شیراز با هزینه ارسال؟
How it works
snapp-mcp runs locally and calls the same public endpoints the Snappfood and SnappMarket web apps use.
There's no hosted server in between, no API key, and nothing about you is sent anywhere else.
Tools
Every food and grocery tool takes lat / long, because menus, prices and delivery fees depend on the
delivery point. The agent gets them from find_location or list_cities first.
📍 Location (3)
🍔 Snappfood: restaurants (9)
🛒 SnappMarket: groceries (9)
All tools are annotated readOnlyHint: true and return compact structured JSON, so they don't flood the agent's context.
Good to know
- Prices are in Toman (1 Toman = 10 Rial). Ratings are normalized to 0–5, like the apps;
nullmeans not rated yet. - True cost of a food order = price − discount + packaging + delivery − coupon, and the basket must reach the restaurant's minimum order.
food_find_cheapestandfood_order_costsgive the agent every piece of that. - Persian queries match best (
پیتزا,کباب,شیر). Name filters treat Arabic ي/ك and half-space vs space as equal.
FAQ
I get "blocked the request (HTTP 403)"
Snappfood's firewall only accepts Iranian IP addresses. Run the server on a machine in Iran with the VPN off.
If you must use a VPN, set SNAPP_MCP_PROXY to an HTTP proxy that exits in Iran. Normal system proxy variables
are ignored on purpose, because a foreign VPN exit would get blocked. SnappMarket is less strict.
Can it place an order for me?
No, and that's deliberate. It has no login and never touches the basket, order or payment endpoints. The agent finds the best option; you tap order in the app.
FoodParty or Gem results are empty
Those deals only run in time windows. active: false or gem: null means no window is live right now.
Claude Desktop says uvx is not found
Use the full path to uvx (where uvx on Windows, which uvx on macOS/Linux) as command.
How do I debug what the agent sees?
Configuration
فارسی
snapp-mcp به دستیار هوش مصنوعی شما (Claude، Cursor، Copilot و ...) اجازه میدهد در اسنپفود و اسنپمارکت جستجو کند، قیمت واقعی غذا و کالا را بین صدها رستوران و فروشگاه مقایسه کند، منو و نظرات را بخواند و تخفیفهای فعال (فودپارتی، جم، مارکتپارتی) را پیدا کند.
- فقط خواندنی است: وارد حساب نمیشود، سبد خرید نمیسازد و سفارش ثبت نمیکند.
- قیمت نهایی را با بستهبندی، هزینه ارسال و حداقل سفارش حساب میکند.
- روی سیستم خود شما اجرا میشود و به هیچ سرور واسطی داده نمیفرستد.
نصب در Claude Code:
بعد بپرسید: «ارزانترین پیتزا با هزینه ارسال نزدیک میدان ونک کجاست؟»
نکته: سرور باید روی سیستمی با IP ایران و بدون VPN اجرا شود، چون اسنپفود درخواستهای خارج از ایران را مسدود میکند.
Development
Tools live in src/snapp_mcp/food.py, market.py and location.py; each is a typed async function with a docstring
that tells the agent when to use it. Issues and PRs are welcome, especially new tools and fixes for API changes.
Releases: bump the version in pyproject.toml and server.json, then push a v* tag. GitHub Actions tests,
publishes to PyPI and the MCP Registry, and creates the GitHub Release.
Disclaimer
Unofficial and not affiliated with or endorsed by Snapp. It uses the public endpoints of the snappfood.ir and snapp.market web apps, which can change without notice. Please keep request rates reasonable.
License
来源:README.md,提交 1dab3f9
工具
0版本历史
1- v0.1.1最新Oct 2, 2026


