snapp-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| SNAPP_MCP_PROXY | No | HTTP proxy for every request, e.g. http://user:pass@host:port |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| find_locationA | Turn a place name or address into latitude/longitude. Use first when the user gives an address; food_* and market_* tools need lat/long. Biased toward near_lat/near_long (default Tehran): pass a city center for other cities. |
| reverse_geocodeA | Describe coordinates in words (point of interest, street, neighbourhood). Use to confirm a delivery point with the user before searching. |
| list_citiesA | List cities Snappfood serves, with id, names and center coordinates. Use the center as a rough delivery point when the user only names a city. |
| food_searchA | Search dishes by name near a delivery point, with price, discount and restaurant. Use for "find X near me" or "discounted X". relevance is one fast index call; cheapest / biggest_discount drop side items and confirm prices on live menus. For the cheapest X across many menus use food_find_cheapest. |
| food_find_cheapestA | Find the cheapest way to get a dish: scans menus of nearby open restaurants plus FoodParty deals. Use for the lowest total price of X. Ranks by food price after discount + packaging + delivery fee; check min_order, a cheap dish may not reach the minimum basket. Slower than food_search. |
| food_restaurantsA | List restaurants delivering to a point, with rating, delivery fee, ETA and coupon info. Use to browse or rank restaurants or to find a vendor code by name. No dish prices: use food_menu. |
| food_menuA | Get one restaurant's menu: every item with price, discount, packaging fee and availability. Use after picking a restaurant. final_price = price - discount; packaging is added per item at checkout. |
| food_order_costsA | Get the extra costs and conditions of ordering from one restaurant. Use before recommending a restaurant: delivery fee, ETA, minimum order and coupons (with the basket total each needs and whether it is first-order only). Packaging is per item in food_menu. |
| food_reviewsA | Read recent customer reviews of a restaurant (rating, text, what they ordered, vendor reply). Use to judge quality, delays or packaging before recommending. |
| food_party_dealsA | List today's FoodParty flash deals (deep discounts, limited stock, time window) still in stock. Use for "what's on a big discount right now". Deals run only inside starts/ends; outside it the list is empty. |
| food_meal_for_oneA | List single-person meals (at most 299k Toman, free delivery), cheapest first. Use for "cheap meal for one". Check min_order: a cheap meal may not reach the minimum basket. |
| food_discounted_vendorsA | List restaurants running a discount now, plus the short "Gem" hunt discount if one is live. Use for "which restaurants have offers". Vendor-level only: food_menu has prices. |
| market_searchA | Search a grocery product across all SnappMarket stores delivering to the point. Use to see which stores carry an item and at what price: stores (open or not) with up to ~5 matching products each. For one flat cheapest-first list use market_find_cheapest. |
| market_find_cheapestA | Find the cheapest in-stock offers for a grocery product near the point. Use for the lowest price of an item. Scans open stores that deliver to the point; one flat list sorted by final price. Check delivery_fee and min_order before recommending a store. |
| market_storesA | List SnappMarket stores delivering to the point, with delivery fee, minimum order and rating. Use to pick a store before browsing it with market_store_products. |
| market_store_infoA | Get one store's delivery fee, minimum order, opening hours, rating and coupons for the point. Use before recommending a store. Basket cost = sum(final prices) + delivery_fee - coupon, and it must reach min_order. Read each coupon's conditions; is_applicable is false when logged out. |
| market_store_productsA | Browse or search the products of one store.
|
| market_categoriesA | List SnappMarket product categories and sub-categories with their ids. The ids work as category_id / subcategory_id in market_store_products. Id 99999999 is the virtual kalabarg (government e-coupon) category. |
| market_productA | Get one product's details and price in one store. Use to confirm the current price of an item the user picked. |
| market_party_dealsA | List current SnappMarket "market party" flash deals near the point, biggest discount first. Use for the best grocery discounts right now. An order may hold at most capacity_per_order deal items; segment 'new_user' deals are for new customers only. |
| market_reviewsA | Read a store's 30 most relevant customer comments, rating 0-5. Use as a quality check before recommending a store. No paging: the API returns the same 30 comments. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 21 tools
The paired tools food_search/food_find_cheapest and market_search/market_find_cheapest are the closest sources of confusion, but the descriptions explicitly differentiate them (fast relevance search vs. ranked cheapest) and cross-reference each other. The food_ vs market_ domains and the store-level vs product-level vs menu-level split keep most tools cleanly separable. Only minor overlap remains (e.g., food_discounted_vendors vs food_party_deals).
The dominant pattern is consistent domain-prefixed snake_case (food_*, market_*) which is easy to scan. The location helpers (reverse_geocode, find_location, list_cities) break the prefix scheme and mix verb+noun (food_search, market_find_cheapest) with bare nouns (food_menu, market_stores), a minor inconsistency.
21 tools is on the heavy side for the domain burden, since discovery features (search, find_cheapest, listings, reviews, deals) are essentially mirrored once for food and once for market. Each tool does earn its place and none are redundant, but the set sits in the borderline 16-25 range.
For a discovery/recommendation surface the coverage is strong: location resolution, city lookup, food search/menu/costs/reviews/deals, and market stores/products/categories/reviews are all present. The apparent gap is ordering/cart/checkout, though the descriptions suggest the server is intentionally scoped to search and comparison.