Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

Snappfood & SnappMarket

PYPI · SNAPP-MCP

Unofficial read-only Snappfood & SnappMarket: search food and groceries, compare prices, deals.

Available components

+3 this week 83 Trust /100

Last scanned (2 hours ago)

Scores higher than 84% of PyPI servers

Category E-commerce

Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →

Supply Chain Security100
  • No malware found by supply-chain analysis.Pass
  • No known CVEs affecting this package version or its production dependencies.Pass
  • Runs hatchling.build at install time, a recognised build step with no custom scripting around it. View diagnostics → Pass
  • 1 of 35 dependencies flagged as unhealthy. View diagnostics → Partial
Provenance & Transparency97
  • Source repository is publicly reachable at the declared URL. View diagnostics → Pass
  • Cryptographically verified build provenance (signed, bound to sepehr071/snapp-mcp). View diagnostics → Pass
  • Clear OSI-approved license (MIT).Pass
  • Actively maintained (last published 0 days ago).Pass
  • Disclosure check failed: no security disclosure policy was found in the source repository. See how to fix → Fail
Schema Quality & AI Usability71
  • AI-judged instruction clarity (good).Pass
  • Context-footprint check failed: tool/resource definitions use about 2608 tokens (~124/item across 21 items; 21 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management20
  • Stability check failed: the tool surface changed between 0.1.1 and 0.3.1: 0 tool removals, 21 breaking changes, 0 additions. See how to fix → Fail
Tool Coverage100
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 100% of tool parameters carry a description.Pass
Tool Safety100
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • We read all 21 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
  • An AI judge read all 22 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a current MCP spec version (2026-07-28).Pass
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 23 Oct 26 +15
    • Malware scan: unverified → pass ▲ security
  • 22 Oct 26 −14
    • Malware scan: pass → unverified ▼ security
    • Package version: 0.3.0 → 0.3.1 functional
  • 20 Oct 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 7 to 10.

  • 19 Oct 26 +15
    • Malware scan: unverified → pass ▲ security
    • Package version: 0.1.3 → 0.3.0 functional
  • 18 Oct 26 −14
    • Malware scan: pass → unverified ▼ security
    • Package version: 0.2.0 → 0.3.0 functional
  • 16 Oct 26 −7
    • Stability: 0.43 → unverified ▼ security
    • Tool safety: pass → unverified ▼ security
    • Stability: 0.43 → fail ▼ security
    • Capabilities: pass → unverified ▼ functional
    • Tool coverage: 100 → unverified ▼ functional
    • Schema quality: 144 → 121 ▲ functional
    • Schema quality: excellent → good functional
    • Package version: 0.1.3 → 0.2.0 functional
  • 14 Oct 26 +38
    • Injection markers: unverified → pass ▲ security
    • Tool coverage: unverified → 100 ▲ functional
    • Stability: unverified → 0.40 ▲ functional
    • MCP protocol: unverified → pass ▲ functional
  • 13 Oct 26 0
    • Package version: 0.1.2 → 0.1.3 functional
Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 23 Oct 2026 · Analysed pypi/snapp-mcp@0.3.1

Provenance Verified

A signed build attestation was found and verified, binding this exact artifact to the source repository it claims to come from.

Result Verified
Ecosystem pypi
Reason Verified
Discovered via Registry attestation endpoint
Source repo sepehr071/snapp-mcp
Certificate issuer https://token.actions.githubusercontent.com
Certificate SAN https://github.com/sepehr071/snapp-mcp/.github/workflows/publish.yml@refs/tags/v0.3.1
Rekor log index 3390430380
Predicate type PyPI publish attestation https://docs.pypi.org/attestations/publish/v1
Subject digest sha256:0f350bb7ec2d7c9ebccf79a84c1f3bfbd34c323a164addde36975b127fbb0ca6

Background: How many MCP packages publish verified provenance →

Install scripts 1 script
Hook Tier Command
build_backend allowlisted hatchling.build

Background: Why install scripts are a supply-chain risk →

Dependencies 35 packages
Packages resolved 35
No linked repository 1
Tree resolution Complete

Background: SBOMs and build attestations, explained →

MCP tools · 21 exposed · ~2,264 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
find_location ~119

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.

NameTypeReqDescription
limitinteger–Max places to return.
near_lat––Bias latitude (e.g. a city center from list_cities).
near_long––Bias longitude.
querystringyesPlace, street or landmark, e.g. 'میدان ونک'.

No output schema declared.

No examples provided.

food_discounted_vendors ~68

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.

NameTypeReqDescription
latnumberyesDelivery point latitude.
longnumberyesDelivery point longitude.

No output schema declared.

No examples provided.

food_find_cheapest ~137

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.

NameTypeReqDescription
latnumberyesDelivery point latitude.
limitinteger–Max dishes.
longnumberyesDelivery point longitude.
max_restaurantsinteger–Open restaurants' menus to scan (more = slower).
querystringyesDish word, e.g. 'پیتزا'.

No output schema declared.

No examples provided.

food_meal_for_one ~93

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.

NameTypeReqDescription
latnumberyesDelivery point latitude.
limitinteger–Max meals.
longnumberyesDelivery point longitude.
max_price––Max final price, Toman.

No output schema declared.

No examples provided.

food_menu ~114

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.

NameTypeReqDescription
latnumberyesDelivery point latitude.
limitinteger–Max items.
longnumberyesDelivery point longitude.
query––Only items whose title contains this.
vendor_codestringyesVendor code, e.g. '947evd' (from food_search / food_restaurants).

No output schema declared.

No examples provided.

food_order_costs ~108

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.

NameTypeReqDescription
latnumberyesDelivery point latitude.
longnumberyesDelivery point longitude.
vendor_codestringyesVendor code, e.g. '947evd' (from food_search / food_restaurants).

No output schema declared.

No examples provided.

food_party_deals ~108

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.

NameTypeReqDescription
latnumberyesDelivery point latitude.
limitinteger–Max deals.
longnumberyesDelivery point longitude.
query––Only deals whose title contains this.
sortstring–Order of the deals.

No output schema declared.

No examples provided.

food_restaurants ~170

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.

NameTypeReqDescription
free_deliveryboolean–Free delivery only.
has_couponboolean–With a coupon only.
has_discountboolean–Discounted only.
latnumberyesDelivery point latitude.
longnumberyesDelivery point longitude.
open_onlyboolean–Hide closed or non-delivering restaurants.
pageinteger–Page of 20, from 0.
query––Restaurant name filter, e.g. 'پیتزا'.
sortstring–Order; *_expensive rank by price class, not delivery fee.

No output schema declared.

No examples provided.

food_reviews ~105

Read recent customer reviews of a restaurant (rating, text, what they ordered, vendor reply). Use to judge quality, delays or packaging before recommending.

NameTypeReqDescription
full_textboolean–Return review and reply text uncut (default cut to 400 chars).
pageinteger–Page of 10, newest first, from 0.
vendor_codestringyesVendor code, e.g. '947evd' (from food_search / food_restaurants).

No output schema declared.

No examples provided.

food_search ~167

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.

NameTypeReqDescription
discounted_onlyboolean–Only dishes with a discount.
include_proteinboolean–Also search protein stores (butchers, eggs), hidden by default.
latnumberyesDelivery point latitude.
limitinteger–Max dishes.
longnumberyesDelivery point longitude.
querystringyesDish word, e.g. 'پیتزا'.
sortstring–Order of the results.

No output schema declared.

No examples provided.

list_cities ~59

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.

NameTypeReqDescription
query––Filter on Persian title or English code, e.g. 'شیراز'.

No output schema declared.

No examples provided.

market_categories ~77

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.

NameTypeReqDescription
latnumberyesDelivery point latitude.
longnumberyesDelivery point longitude.

No output schema declared.

No examples provided.

market_find_cheapest ~126

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.

NameTypeReqDescription
latnumberyesDelivery point latitude.
limitinteger–Max offers.
longnumberyesDelivery point longitude.
pagesinteger–Pages to scan, 12 stores each.
querystringyesProduct name, e.g. 'شیر کم چرب'.

No output schema declared.

No examples provided.

market_party_deals ~92

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.

NameTypeReqDescription
latnumberyesDelivery point latitude.
limitinteger–Max deals.
longnumberyesDelivery point longitude.

No output schema declared.

No examples provided.

market_product ~92

Get one product's details and price in one store. Use to confirm the current price of an item the user picked.

NameTypeReqDescription
full_textboolean–Return the description uncut (default cut to 400 chars).
product_idintegeryesProduct id from a market_* list.
vendor_codestringyesStore code from market_search / market_stores, e.g. '32xxwe'.

No output schema declared.

No examples provided.

market_reviews ~92

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.

NameTypeReqDescription
full_textboolean–Return comment text uncut (default cut to 400 chars).
vendor_codestringyesStore code from market_search / market_stores, e.g. '32xxwe'.

No output schema declared.

No examples provided.

market_search ~122

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.

NameTypeReqDescription
latnumberyesDelivery point latitude.
limitinteger–Stores per page.
longnumberyesDelivery point longitude.
pageinteger–Page, from 0.
querystringyesProduct name, e.g. 'شیر'.

No output schema declared.

No examples provided.

market_store_info ~116

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.

NameTypeReqDescription
latnumberyesDelivery point latitude.
longnumberyesDelivery point longitude.
vendor_codestringyesStore code from market_search / market_stores, e.g. '32xxwe'.

No output schema declared.

No examples provided.

market_store_products ~161

Browse or search the products of one store. - query: search the store (wins over category ids). - category_id (+ optional subcategory_id): that category's products. - neither: the store's categories and sub-categories with ids.

NameTypeReqDescription
category_id––Top-level category id (from this tool without arguments).
latnumberyesDelivery point latitude.
longnumberyesDelivery point longitude.
pageinteger–Page, from 0.
query––Search inside this store, e.g. 'ماست'.
subcategory_id––Sub-category id; needs category_id.
vendor_codestringyesStore code from market_search / market_stores, e.g. '32xxwe'.

No output schema declared.

No examples provided.

market_stores ~84

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.

NameTypeReqDescription
latnumberyesDelivery point latitude.
longnumberyesDelivery point longitude.
pageinteger–Page, from 0.
sortstring–Order of the stores.

No output schema declared.

No examples provided.

reverse_geocode ~54

Describe coordinates in words (point of interest, street, neighbourhood). Use to confirm a delivery point with the user before searching.

NameTypeReqDescription
latnumberyesDelivery point latitude.
longnumberyesDelivery point longitude.

No output schema declared.

No examples provided.

Install

How do I install the Snappfood & SnappMarket MCP server?

Snappfood & SnappMarket runs locally as a PyPI package, launched with uvx snapp-mcp. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

pypi · snapp-mcp

# add to Claude Code
claude mcp add sepehr071-snapp-mcp -- uvx snapp-mcp
Common questions

What is the Snappfood & SnappMarket MCP server?

Snappfood & SnappMarket is an MCP server listed in the public MCP registry as io.github.sepehr071/snapp-mcp. Unofficial read-only Snappfood & SnappMarket: search food and groceries, compare prices, deals. This page covers its PyPI package (snapp-mcp).

Is the Snappfood & SnappMarket MCP server safe to use?

Snappfood & SnappMarket scores 83 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 23 October 2026. Its build provenance is signed and verified. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the Snappfood & SnappMarket MCP server expose?

Snappfood & SnappMarket exposes 21 tools: find_location, reverse_geocode, list_cities, food_search, food_find_cheapest, and 16 more. Their descriptions and schemas cost roughly 2,264 tokens of context every time the server is loaded.

Is the Snappfood & SnappMarket MCP server still maintained?

Snappfood & SnappMarket is still listed as active in the MCP registry. We last reached this channel on 23 October 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

What licence is the Snappfood & SnappMarket MCP server under?

Snappfood & SnappMarket declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.