Swiggy Deal Finder
БесплатноНе проверенFinds the cheapest nearby option for a dish on your own Swiggy account, ranked by final post-coupon payable amount.
Описание
Finds the cheapest nearby option for a dish on your own Swiggy account, ranked by final post-coupon payable amount.
README
Swiggy Deal Finder is an MCP connector that finds the cheapest nearby option for a dish on your own Swiggy account, ranked by final post-coupon payable amount.
It is designed for discovery only:
- no order placement
- read + controlled cart mutation for pricing probes
- automatic cart cleanup after each pricing probe
What this project does
Given a dish and a selected saved delivery address, the connector:
- Finds open restaurants within 7 km.
- Matches menu items for the requested dish.
- Prices top candidates by probing Swiggy cart + coupon application.
- Returns ranked options by:
- lowest final payable amount (
to_pay) - highest rating as tie-breaker
- lowest final payable amount (
The MCP server exposes these tools:
get_locations()list_dish_variants(dish, address_id, category?)find_deals(dish, address_id, top_n=5, portion="regular", category?)
Architecture overview
Core modules (src/swiggy_deal_finder):
server.py
MCP entrypoint (FastMCP), tool definitions, lifespan-managed persistent Swiggy client.live_client.py
Real Swiggy adapter overmcp-remote(spawned vianpx), wraps MCP tool calls.service.py
Orchestration pipeline (DealFinder) for candidate discovery → pricing → ranking.candidates.py
Restaurant/menu discovery, dish-token matching, distance/open filters, portion filtering.pricing.py
Cart safety guard + coupon probe cycle. Handles empty-cart precondition and cart flush.ranking.py
Final ordering logic (final_to_payasc, rating desc).swiggy_client.py
Protocol and pure parsers for Swiggy responses.models.py
Pydantic domain models.main.py
Minimal FastAPI app (/health) for service health checks.
Safety invariants
The project enforces a few critical rules:
- Never places an order.
- Refuses pricing if the cart is already non-empty.
- Never flushes a cart it did not create.
- Always flushes probe cart items after pricing completes (or on failure path after entry).
- Uses fresh cart reads for truth after coupon application.
Prerequisites
- Python
>= 3.14(as defined inpyproject.toml) - uv for environment management
- Node.js /
npx(used to spawnmcp-remote) - A Swiggy account with saved delivery addresses
Setup
Install dependencies:
uv sync --devCreate environment file:
cp .env.example .envFill required values in
.env:- Swiggy MCP/OAuth values (as available in your environment)
- Vertex/Gemini values for model access
APP_SECRET_KEY(required)
Validate connectivity:
uv run python scripts/check_env.py
Running locally
1) FastAPI health app
uv run uvicorn swiggy_deal_finder.main:app --reload
Health endpoint:
GET /health→{"status":"ok"}
2) MCP server (for Claude Desktop / MCP clients)
uv run python -m swiggy_deal_finder.server
This starts the MCP connector and keeps one persistent authenticated Swiggy session for tool calls.
Typical MCP usage flow
- Call
get_locations()and choose anaddress_id. - If dish is generic (e.g.
dosa,pizza,biryani), calllist_dish_variants(...)first. - Call
find_deals(...)with the selected specific dish. - Present ranked results to the user.
Notes:
categoryshould be a broad cuisine/category term when dish search is too specific.portion="regular"excludes mini/half-style servings unless user explicitly asks.
Scripts
Repository scripts:
scripts/check_env.py
Validates env load + Swiggy MCP reachability + Vertex/Gemini reachability.scripts/smoke_live.py
Read-only live smoke test against Swiggy MCP bridge.scripts/demo.py
Runs the full deal-finder engine from CLI.scripts/check_server.py
End-to-end MCP server check by spawning connector and invoking tools.
See also: DEMO.md for local Claude Desktop demo wiring details.
Development commands
Lint:
uv run ruff check .
Tests:
uv run pytest
Testing scope
Tests in tests/ cover:
- parser and config behavior
- candidate filtering and matching
- pricing/cart guard behavior
- ranking logic
- server tool behavior
- live-client adapter contract assumptions
Troubleshooting
uv: command not found
Installuvfrom https://docs.astral.sh/uv/installation/ and ensure it is in your PATH.No results for a specific dish phrase
Retry with a broadercategory(e.g.dosa,biryani,roll) and then match exact dish via menu scan.Cart-not-empty response from
find_deals
Clear your cart in Swiggy app before pricing; this is a deliberate safety check.No saved addresses
Add delivery addresses in your Swiggy app first.
Установка Swiggy Deal Finder
У этого сервера нет опубликованного пакета — он собирается из исходников. Открой репозиторий и следуй инструкции в README.
▸ github.com/GowthamRam2000/McpConnectorFAQ
Swiggy Deal Finder MCP бесплатный?
Да, Swiggy Deal Finder MCP бесплатный — установка в пару кликов через Unyly без оплаты.
Нужен ли API-ключ для Swiggy Deal Finder?
Нет, Swiggy Deal Finder работает без API-ключей и переменных окружения.
Swiggy Deal Finder — hosted или self-hosted?
Доступен hosted-вариант: Unyly запускает сервер в облаке, локальная установка не обязательна.
Как установить Swiggy Deal Finder в Claude Desktop, Claude Code или Cursor?
Открой Swiggy Deal Finder на unyly.org, выбери вкладку своего клиента (Claude Desktop, Claude Code, Cursor) и нажми Install — конфиг сгенерируется автоматически, без правки JSON.
Похожие MCP
GitHub
PRs, issues, code search, CI status
автор: GitHubFilesystem
Secure file operations with configurable access controls.
Memory
Knowledge graph-based persistent memory system.
Template MCP Server
A CLI tool to create a new Model Context Protocol server project with TypeScript support, dual transport options, and an extensible structure
автор: mcpdotdirectCompare Swiggy Deal Finder with
Не уверен что выбрать?
Найди свой стек за 60 секунд
Автор?
Embed-бейдж для README
Похожее
Все в категории development
