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.

概覽

AI 產生的概覽

非官方唯讀 MCP 伺服器,讓助理在伊朗依地址搜尋 Tapsi Food 的餐點、餐廳、菜單、外送費與評論。

可以做什麼
  • 將地名或地址轉為座標、把座標反查為地址,並列出涵蓋城市
  • 依地點搜尋餐點、餐廳與雜貨店,可依價格、折扣、評分或距離排序
  • 列出 Tap Time 限時優惠與 Food Shots 折扣店家
  • 讀取店家的即時菜單,含價格、折扣與庫存
  • 查詢某地點的外送費、最低消費、包裝費、預估送達時間、營業時間與評分分布
  • 讀取顧客評論及各道餐點的評分
適用情境
適合德黑蘭、馬什哈德或設拉子的使用者想依地址找餐點或餐廳、比較價格與外送費和最低消費、查看菜單或評論,或了解目前折扣時使用。它不能下單或付款,購買仍須在 Tapsi 應用程式內完成。
執行需求
透過 uvx(或 pip)以 stdio 在本機執行,需要 uv 與 Python 3.10+。不需 API 金鑰或帳號。Tapsi Food 不回應非伊朗出口 IP,因此需在伊朗境內不使用 VPN 執行,或將 TAPSIFOOD_MCP_PROXY 設為出口在伊朗的 HTTP 代理;系統代理設定會被忽略。
安裝前請注意
非官方專案,與 Tapsi 無關聯;它呼叫 tapsi.food 網頁版所用的介面,這些介面可能隨時變更。僅唯讀:無登入、購物車、下單或付款。請求送往 api.tapsi.food,選用的 TAPSIFOOD_MCP_PROXY 需填入你提供的代理位址。涵蓋範圍僅限德黑蘭、馬什哈德與設拉子。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Tapsi Food,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

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]

[Install in VS Code]

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-mcp or claude 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_PROXY to 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 need lat and long (not tf_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: true for the whole text). Replies stay under about 15 KB at the maximum limit.
  • Machine-readable: server.json and 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_info

It 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
bash
claude mcp add tapsifood -- uvx tapsifood-mcp# behind a proxy that exits in Iran:claude mcp add tapsifood -e TAPSIFOOD_MCP_PROXY=http://127.0.0.1:8080 -- uvx tapsifood-mcp
Claude Desktop

Settings → Developer → Edit Config, then add:

json
{  "mcpServers": {    "tapsifood": { "command": "uvx", "args": ["tapsifood-mcp"] }  }}
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:

json
{  "servers": {    "tapsifood": { "type": "stdio", "command": "uvx", "args": ["tapsifood-mcp"] }  }}
Codex CLI
bash
codex mcp add tapsifood -- uvx tapsifood-mcp

Or in ~/.codex/config.toml:

toml
[mcp_servers.tapsifood]command = "uvx"args = ["tapsifood-mcp"]
Gemini CLI

Add to ~/.gemini/settings.json:

json
{  "mcpServers": {    "tapsifood": { "command": "uvx", "args": ["tapsifood-mcp"] }  }}
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)
ToolWhat it does
tf_find_locationTurn a place name or address into latitude/longitude
tf_reverse_geocodeDescribe coordinates as an address with province and city
tf_list_citiesList the cities Tapsi Food shows, with a center point and whether it delivers there
Find food and restaurants (5)
ToolWhat it does
tf_search_dishesSearch dishes by name near a point; sort by relevance, cheapest, biggest discount, rating or distance
tf_search_vendorsSearch restaurants and stores by name or cuisine near a point
tf_restaurantsList restaurants or grocery stores with rating, delivery fee, minimum order and ETA; filter by cuisine, discount, courier
tf_dealsList the Tap Time (تپ تایم) flash deals: discounted dishes with limited stock
tf_discounted_vendorsList the vendors in the Food Shots (فودشات) discount campaign
Vendor details (3)
ToolWhat it does
tf_menuRead a vendor's live menu with price, discount and stock
tf_vendor_infoGet a vendor's delivery fee to a point, minimum order, packaging, ETA, status, hours, address and rating spread
tf_reviewsRead customer reviews of a vendor with per-dish ratings

All 11 tools are annotated readOnlyHint: true and return compact JSON.

How it works

text
  AI agent  (Claude, Cursor, Copilot, ...)      │      │  MCP over stdio      ▼  tapsifood-mcp  (runs on your machine)      │      │  HTTPS      └──────▶  api.tapsi.food   dishes, vendors, menus, reviews, deals

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: null means 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 total can be 0. tf_restaurants and tf_discounted_vendors also list closed vendors, flagged open: false.
  • Search-index prices can lag the menu: confirm with tf_menu. Menu and profile minimums sometimes differ; tf_vendor_info returns both (min_order, min_order_profile).
  • Sorting dishes: top_rated, cheapest and biggest_discount sort the first 100 matches, not the whole result set.
  • ETA is an upper bound: eta_max is the site's "up to N minutes"; the API sends no lower bound.
  • Reviews: total counts every review including rating-only ones; only reviews with a comment are listed, so a page can hold fewer than limit (keep paging while has_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?
bash
npx @modelcontextprotocol/inspector uvx tapsifood-mcp

Configuration

VariableDefaultMeaning
TAPSIFOOD_MCP_PROXYunsetOptional HTTP proxy URL. Tapsi Food does not answer non-Iranian exit IPs (connections hang); system proxy settings are ignored. Also accepts a comma-separated list: one is used until it gets blocked or fails to connect, then the next

فارسی

سرور MCP تپسی‌فود برای دستیار هوش مصنوعی

tapsifood-mcp یک سرور MCP غیررسمی و فقط‌خواندنی برای تپسی‌فود (Tapsi Food)، سرویس سفارش آنلاین غذا و سوپرمارکت در ایران، است. این سرور به دستیار هوش مصنوعی شما (Claude، Cursor، Copilot و ...) اجازه می‌دهد غذا و رستوران نزدیک یک آدرس را جستجو کند، منوی زنده و نظرات را بخواند و هزینه ارسال و حداقل سفارش را بررسی کند.

چه کارهایی می‌کند

  • پیدا کردن آدرس: نام مکان یا آدرس را به مختصات تبدیل می‌کند و فهرست شهرهای تپسی‌فود را نشان می‌دهد.
  • جستجوی غذا نزدیک آدرس شما، مرتب‌شده بر اساس ارزان‌ترین، بیشترین تخفیف، امتیاز یا فاصله.
  • جستجوی رستوران و فروشگاه بر اساس نام یا نوع غذا، و فهرست رستوران‌ها و سوپرمارکت‌ها با امتیاز، هزینه ارسال، حداقل سفارش و زمان تحویل.
  • تخفیف‌ها: پیشنهادهای تپ تایم و رستوران‌های فودشات.
  • منوی زنده هر رستوران با قیمت، تخفیف و موجودی.
  • بررسی رستوران پیش از سفارش: هزینه ارسال تا آدرس شما، حداقل سفارش، هزینه بسته‌بندی، ساعت کاری و باز یا بسته بودن.
  • نظرات مشتریان با امتیاز هر غذای سفارش‌داده‌شده.

نکته‌ها

  • فقط خواندنی است: وارد حساب نمی‌شود، سبد خرید نمی‌سازد و سفارش ثبت نمی‌کند.
  • همه قیمت‌ها به تومان است و امتیازها از ۵.
  • شهرهای تهران، مشهد و شیراز پوشش داده می‌شوند.
  • تپسی‌فود از IP خارج از ایران پاسخ نمی‌دهد: بدون VPN و از ایران اجرا کنید، یا متغیر TAPSIFOOD_MCP_PROXY را روی یک پراکسی HTTP با خروجی ایران بگذارید.
  • جستجوی غذا و رستوران فقط رستوران‌های باز را نشان می‌دهد، پس شب‌ها ممکن است نتیجه‌ای نباشد.
  • کلید API لازم نیست و روی سیستم خود شما اجرا می‌شود.

کلیدواژه‌ها: تپسی‌فود، تپسی فود، tapsi food، سفارش آنلاین غذا، سفارش غذا، پیتزا، برگر، رستوران نزدیک من، تپ تایم، فودشات، سوپرمارکت آنلاین، سرور MCP تپسی‌فود.

نصب (اول uv را نصب کنید). در Claude Code:

bash
claude mcp add tapsifood -- uvx tapsifood-mcp

در Claude Desktop، Cursor و بقیه برنامه‌ها همان تنظیم بخش Quick start را بگذارید.

نمونه پرسش‌ها

  • «ارزان‌ترین پیتزا نزدیک میدان ولیعصر کدام است؟»
  • «رستوران‌های تخفیف‌دار نزدیک من را با هزینه ارسال و حداقل سفارش نشان بده.»
  • «منوی این رستوران را بده و بگو حداقل سفارشش چقدر است.»
  • «تپ تایم امروز چه غذاهایی دارد؟»
  • «نظرات اخیر این رستوران را بخوان؛ از ارسال راضی بودند؟»

Development

bash
git clone https://github.com/sepehr071/tapsifood-mcp && cd tapsifood-mcpuv syncuv run ruff check . && uv run ruff format --check .uv run python -m pytest -q          # offline unit testsuv run python -m pytest -m live -q  # real API; needs an Iranian IPuv build

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

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

[Sepehr Radmard: open-source MCP servers for the Iranian web. LinkedIn: linkedin.com/in/sepehr-radmard]

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

MIT

來源:README.md,提交 a48a52a

工具

0
SourceWeft 尚未在沙箱中啟動過該軟體包,因此其工具未知。

版本歷史

4
  1. v0.2.0最新Nov 7, 2026
  2. v0.1.2Oct 23, 2026
  3. v0.1.1Oct 22, 2026
  4. v0.1.0Oct 20, 2026

評分

已滿足適用檢查項的 50%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分