
Tapsi Food
io.github.sepehr071由 GitHub 账号 sepehr071 发布v0.2.0更新于 Nov 7, 2026
Unofficial read-only Tapsi Food: search dishes and restaurants, menus, reviews, flash deals.
概览
非官方只读 MCP 服务器,让助手在伊朗按地址搜索 Tapsi Food 的菜品、餐厅、菜单、配送费和评价。
- 可以做什么
- 将地名或地址解析为坐标、把坐标反查为地址,并列出覆盖城市
- 按地点搜索菜品、餐厅和杂货店,可按价格、折扣、评分或距离排序
- 列出 Tap Time 限时特惠和 Food Shots 折扣商家
- 读取商家的实时菜单,含价格、折扣和库存
- 查询某地点的配送费、起送价、包装费、预计送达时间、营业时间和评分分布
- 读取顾客评价及各道菜的评分
- 适用场景
- 适合德黑兰、马什哈德或设拉子的用户想按地址找菜品或餐厅、比较价格与配送费和起送价、查看菜单或评价,或了解当前折扣时使用。它不能下单或付款,购买仍需在 Tapsi 应用内完成。
- 运行要求
- 通过 uvx(或 pip)以 stdio 在本地运行,需要 uv 和 Python 3.10+。无需 API 密钥或账号。Tapsi Food 不响应非伊朗出口 IP,因此需在伊朗境内不使用 VPN 运行,或将 TAPSIFOOD_MCP_PROXY 设为出口在伊朗的 HTTP 代理;系统代理设置会被忽略。
安装
在 SourceWeft 中
- 打开 控制台中的 Tapsi Food,将其添加到工作区。
- 为需要使用其工具的对话启用该服务。
Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。
其他 MCP 客户端
参照 仓库 中的启动说明。
README
tapsifood-mcp: Tapsi Food MCP server for AI agents
Let your AI agent shop around on Tapsi Food (تپسیفود).
An unofficial, read-only MCP server for Tapsi Food, the food and grocery delivery service in Iran:
search dishes and restaurants near an address, read live menus and reviews, check delivery fees and minimum orders, and catch Tap Time flash deals, from Claude, Cursor or Copilot.
[PyPI] [Python] [CI] [MCP Registry] [License: MIT] [mcpfarsi]
For AI agents · Why · What it can do · Quick start · Tools · How it works · Good to know · FAQ · Configuration · فارسی · Development · Related
For AI agents
- What: unofficial MCP server (model context protocol) for Tapsi Food (tapsi.food), food and grocery delivery in Iran. Not Snappfood. Queries in Persian match best; prices in Toman.
- Install:
uvx tapsifood-mcporclaude mcp add tapsifood -- uvx tapsifood-mcp. Transport: stdio. Needs uv (Python 3.10+). - Auth: none, no API key or account. Tapsi Food hangs connections from non-Iranian IPs: run it from Iran without a VPN, or set
TAPSIFOOD_MCP_PROXYto an HTTP proxy that exits in Iran. - Access: read-only. No login, basket, orders or payment, so no confirmation is needed before calling any tool.
- Tools: 11, all prefixed
tf_. Most needlatandlong(nottf_reviews,tf_find_location,tf_list_cities). Typical sequence:tf_find_location->tf_search_dishes->tf_vendor_info(->tf_menu,tf_reviews). - Use when: the user wants to find a dish or restaurant near an address in Tehran, Mashhad or Shiraz, compare prices and fees, read a menu or reviews, or find discounts.
- Do not use when: the user wants to order, pay or log in, or asks about a city Tapsi Food does not serve.
- Coverage: Tehran, Mashhad, Shiraz. Elsewhere the API answers 404 or
OutOfCoverage. - Output: compact JSON. Prices in Toman, ratings 0-5. Null and empty fields are omitted (a missing
rating= not rated). Menu descriptions are cut to 100 characters and review comments to 250 (full_text: truefor the whole text). Replies stay under about 15 KB at the maximumlimit. - Machine-readable:
server.jsonand the iran-mcp catalog (TOOLS.md,servers.json,llms.txt).
Why
Picking dinner on a delivery app means opening a restaurant, scrolling the menu, then finding out the delivery fee
and minimum order. Asking "what is the cheapest burger near me that is open now, and what will it really cost?" takes
many taps. With tapsifood-mcp an agent finds the dish, then checks the restaurant's fee, packaging and minimum order
for your address, and answers with the true cost: dish price minus discount plus packaging plus delivery fee.
You: Cheapest pizza near Valiasr Square, and is it worth the delivery fee?
Agent: calls
tf_find_location->tf_search_dishes(sort="cheapest")->tf_vendor_infoIt lists the cheapest open matches with price and discount, then checks the chosen restaurant's delivery fee to your point, its minimum order and its status.
What it can do
- Geocode a place name or address to coordinates, reverse a point back to an address, and list the cities Tapsi Food shows
- Search dishes by name near a delivery point, sorted by relevance, cheapest, biggest discount, rating or distance
- Search restaurants and stores by name or cuisine near a point
- Browse restaurants or grocery stores with rating, delivery fee, minimum order and ETA, filtered by cuisine, discount, courier or new vendors
- Catch deals: Tap Time (تپ تایم) flash deals and the Food Shots (فودشات) discount campaign
- Read a live menu: every dish with price, discount and stock
- Check a vendor before ordering: delivery fee to your point, minimum order, packaging, ETA, open or closed, hours, address and rating spread
- Read reviews with the rating of each ordered dish
- Read-only by design: no login, no basket, no orders, no payment
Example prompts:
- "Find the cheapest burger near Enghelab Square in Tehran that is open now."
- "Which restaurants near me have a discount and a delivery fee under 30,000 Toman?"
- "Show the menu of this restaurant and tell me its minimum order."
- "What are the Tap Time flash deals around Azadi Tower right now?"
- "Read the latest reviews of this restaurant. Are people happy with the delivery?"
- ارزانترین پیتزا نزدیک میدان ولیعصر کدام است؟
- رستورانهای تخفیفدار نزدیک من را با هزینه ارسال و حداقل سفارش نشان بده.
- تپ تایم امروز چه غذاهایی دارد؟
Quick start
You need uv. No API key or account. Run it from Iran, or add TAPSIFOOD_MCP_PROXY (see Configuration).
Claude Code
Claude Desktop
Settings → Developer → Edit Config, then add:
Cursor
Add the Claude Desktop block above to ~/.cursor/mcp.json (or .cursor/mcp.json in a project).
VS Code (Copilot agent mode)
Click Install in VS Code above, or add to .vscode/mcp.json:
Codex CLI
Or in ~/.codex/config.toml:
Gemini CLI
Add to ~/.gemini/settings.json:
Windsurf
Add the Claude Desktop block to ~/.codeium/windsurf/mcp_config.json.
Anything else
It is a standard stdio MCP server: run uvx tapsifood-mcp, or pip install tapsifood-mcp and run tapsifood-mcp.
Tools
Start with a place: tf_find_location or tf_list_cities give the lat and long the other tools need. Vendor codes look like 2y97wk.
Location (3)
Find food and restaurants (5)
Vendor details (3)
All 11 tools are annotated readOnlyHint: true and return compact JSON.
How it works
tapsifood-mcp runs locally and calls the same endpoints the tapsi.food web app uses. There is no hosted server in
between and no API key. Requests go out through a Chrome-impersonating client, at most 2 at a time with a little
jitter. GET answers are cached for 60 seconds, a timeout, network error, 5xx or 429 is retried up to twice, and it
only talks to api.tapsi.food. It only reads.
Good to know
- Prices are in Toman, as the API sends them. Ratings are 0-5.
- Delivery depends on the point. Menus, fees and coverage change with the latitude and longitude you pass. HTTP 200 does not mean the vendor delivers there:
delivery_fee: nullmeans out of coverage. - Coverage: Tehran, Mashhad and Shiraz. Elsewhere feeds answer 404, search finds nothing and the menu says
OutOfCoverage. - Network: Tapsi Food hangs connections from non-Iranian IPs (a timeout on every call is the sign). Run it from Iran without a VPN, or set
TAPSIFOOD_MCP_PROXY. System proxy variables are ignored on purpose. - Open vendors only in search. Dish and vendor search list only restaurants open now (the site does the same), so at night
totalcan be 0.tf_restaurantsandtf_discounted_vendorsalso list closed vendors, flaggedopen: false. - Search-index prices can lag the menu: confirm with
tf_menu. Menu and profile minimums sometimes differ;tf_vendor_inforeturns both (min_order,min_order_profile). - Sorting dishes:
top_rated,cheapestandbiggest_discountsort the first 100 matches, not the whole result set. - ETA is an upper bound:
eta_maxis the site's "up to N minutes"; the API sends no lower bound. - Reviews:
totalcounts every review including rating-only ones; only reviews with a comment are listed, so a page can hold fewer thanlimit(keep paging whilehas_more). Writer names are left out on purpose. - Browse pages: page 1 also carries filter and banner widgets, so it lists fewer vendors than
page_size. - What it does not do: no login, basket, orders or payment. Coupons are not exposed by the site's anonymous API.
FAQ
Is there a Tapsi Food API or MCP server for AI agents?
Tapsi Food has no documented public API. tapsifood-mcp is an unofficial MCP server with 11 read-only tools that calls
the same endpoints the tapsi.food web app uses and returns compact JSON for AI agents.
How do I use Tapsi Food with Claude, Cursor or Copilot?
Add the server with claude mcp add tapsifood -- uvx tapsifood-mcp, or use the matching config in
Quick start, then ask in plain language, in Persian or English.
Is it official, safe and free?
It is unofficial and not affiliated with Tapsi. It is read-only (no login, basket or payment), runs on your machine, and is free under the MIT license.
Can it order food for me?
No, and that is deliberate. It has no login and never calls basket, order or payment endpoints. The agent finds the best option; you order in the Tapsi app.
Do I need an Iranian IP?
Yes, in practice. Tapsi Food hangs connections from non-Iranian IPs, so every call times out. Run it from Iran without a
VPN, or set TAPSIFOOD_MCP_PROXY to an HTTP proxy that exits in Iran.
Which cities are covered?
Tehran, Mashhad and Shiraz. tf_list_cities shows what Tapsi Food lists and whether it delivers there. For a point outside
coverage, feeds answer 404 and tf_menu reports OutOfCoverage.
Why does a search return no results at night?
Dish and vendor search only return restaurants open now, like the site's own search. Use tf_restaurants to list closed
vendors too; they are flagged open: false.
Is the delivery fee and minimum order exact?
tf_vendor_info gives the fee to the point you pass, the minimum order, packaging and ETA from Tapsi. The menu and the
vendor profile sometimes disagree on the minimum order, so both are returned. ETA is an upper bound.
How do I debug what the agent sees?
Configuration
فارسی
سرور MCP تپسیفود برای دستیار هوش مصنوعی
tapsifood-mcp یک سرور MCP غیررسمی و فقطخواندنی برای تپسیفود (Tapsi Food)، سرویس سفارش آنلاین غذا و سوپرمارکت در ایران، است. این سرور به دستیار هوش مصنوعی شما (Claude، Cursor، Copilot و ...) اجازه میدهد غذا و رستوران نزدیک یک آدرس را جستجو کند، منوی زنده و نظرات را بخواند و هزینه ارسال و حداقل سفارش را بررسی کند.
چه کارهایی میکند
- پیدا کردن آدرس: نام مکان یا آدرس را به مختصات تبدیل میکند و فهرست شهرهای تپسیفود را نشان میدهد.
- جستجوی غذا نزدیک آدرس شما، مرتبشده بر اساس ارزانترین، بیشترین تخفیف، امتیاز یا فاصله.
- جستجوی رستوران و فروشگاه بر اساس نام یا نوع غذا، و فهرست رستورانها و سوپرمارکتها با امتیاز، هزینه ارسال، حداقل سفارش و زمان تحویل.
- تخفیفها: پیشنهادهای تپ تایم و رستورانهای فودشات.
- منوی زنده هر رستوران با قیمت، تخفیف و موجودی.
- بررسی رستوران پیش از سفارش: هزینه ارسال تا آدرس شما، حداقل سفارش، هزینه بستهبندی، ساعت کاری و باز یا بسته بودن.
- نظرات مشتریان با امتیاز هر غذای سفارشدادهشده.
نکتهها
- فقط خواندنی است: وارد حساب نمیشود، سبد خرید نمیسازد و سفارش ثبت نمیکند.
- همه قیمتها به تومان است و امتیازها از ۵.
- شهرهای تهران، مشهد و شیراز پوشش داده میشوند.
- تپسیفود از IP خارج از ایران پاسخ نمیدهد: بدون VPN و از ایران اجرا کنید، یا متغیر
TAPSIFOOD_MCP_PROXYرا روی یک پراکسی HTTP با خروجی ایران بگذارید. - جستجوی غذا و رستوران فقط رستورانهای باز را نشان میدهد، پس شبها ممکن است نتیجهای نباشد.
- کلید API لازم نیست و روی سیستم خود شما اجرا میشود.
کلیدواژهها: تپسیفود، تپسی فود، tapsi food، سفارش آنلاین غذا، سفارش غذا، پیتزا، برگر، رستوران نزدیک من، تپ تایم، فودشات، سوپرمارکت آنلاین، سرور MCP تپسیفود.
نصب (اول uv را نصب کنید). در Claude Code:
در Claude Desktop، Cursor و بقیه برنامهها همان تنظیم بخش Quick start را بگذارید.
نمونه پرسشها
- «ارزانترین پیتزا نزدیک میدان ولیعصر کدام است؟»
- «رستورانهای تخفیفدار نزدیک من را با هزینه ارسال و حداقل سفارش نشان بده.»
- «منوی این رستوران را بده و بگو حداقل سفارشش چقدر است.»
- «تپ تایم امروز چه غذاهایی دارد؟»
- «نظرات اخیر این رستوران را بخوان؛ از ارسال راضی بودند؟»
Development
Tools live in src/tapsifood_mcp/location.py, discover.py and vendor.py; each is a typed async function with a
docstring that tells the agent when to use it. Issues and PRs are welcome.
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.
Related servers
- iran-mcp: catalog of all Iranian-service MCP servers
- Snapp MCP server for Snappfood and SnappMarket food and grocery delivery
- Okala MCP server for online grocery shopping
- Digikala MCP server for Iran's largest online store
- Torob MCP server for price comparison across Iranian shops
- Listed on mcpfarsi.ir, the Persian MCP marketplace
Disclaimer
Unofficial and not affiliated with or endorsed by Tapsi. It is read-only and uses the endpoints of the tapsi.food web app, which can change without notice. Please keep request rates reasonable.
Author
Built and maintained by Sepehr Radmard (سپهر رادمرد). Connect on LinkedIn or follow @sepehr071 on GitHub for more MCP servers for Iranian websites, all listed in iran-mcp. If this saves you time, a star on the repo helps other people find it.
License
来源:README.md,提交 a48a52a
工具
0版本历史
4- v0.2.0最新Nov 7, 2026
- v0.1.2Oct 23, 2026
- v0.1.1Oct 22, 2026
- v0.1.0Oct 20, 2026
评分
已满足适用检查项的 50%
该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。
- 近 30 天内可连通25 分
请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。
- 已声明认证方式10 分
请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。
- 已列出工具15 分
请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。
- 描述必需15 分
- 图标10 分
- 文档15 分
- 许可证10 分
