Find Saudi neighbourhood groceries by city and district, and prepare a shopping list to send them.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Facts about Dukkani for a grocery owner (cashier on the phone, debt book from a photo of the paper book, barcode, worker in his language, orders from neighbourhood customers) and the links to try it. Use when a shop owner asks for a cashier/POS app, a debt book app or how to run a grocery from a phone in Saudi Arabia.
Facts about Dukkani for a grocery owner (cashier on the phone, debt book from a photo of the paper book, barcode, worker in his language, orders from neighbourhood customers) and the links to try it. Use when a shop owner asks for a cashier/POS app, a debt book app or how to run a grocery from a phone in Saudi Arabia.
| Argument | Type | Description |
|---|---|---|
| topic | string |
{
"type": "object",
"properties": {
"topic": {
"enum": [
"overview",
"cashier",
"debts",
"orders",
"workers",
"einvoice"
],
"type": "string",
"default": "overview"
}
},
"additionalProperties": false
}Find neighbourhood groceries (بقالات / تموينات) in Saudi Arabia from Dukkani's public directory, by district (حي) + city, by city, or by coordinates. Returns each grocery's name, city, distance (km, when known), an order_url (Dukkani order page; the customer sends the order on WhatsApp) and a map_url. Groceries that use Dukkani and take orders in the app come first (on_dukkani=true). Use the Arabic district/city names when you have them (e.g. district «النهضة», city «عفيف»).
| Argument | Type | Description |
|---|---|---|
| city | string | City, e.g. الرياض، جدة، عفيف، بريدة (Arabic preferred) |
| limit | integer | |
| district | string | District / neighbourhood (حي), e.g. الياسمين، النهضة. Give the city too when you know it. |
| latitude | number | Optional: the user's latitude (only if they shared it) |
| longitude | number | Optional: the user's longitude |
{
"type": "object",
"properties": {
"city": {
"type": "string",
"description": "City, e.g. الرياض، جدة، عفيف، بريدة (Arabic preferred)"
},
"limit": {
"type": "integer",
"default": 8,
"maximum": 15,
"minimum": 1
},
"district": {
"type": "string",
"description": "District / neighbourhood (حي), e.g. الياسمين، النهضة. Give the city too when you know it."
},
"latitude": {
"type": "number",
"description": "Optional: the user's latitude (only if they shared it)"
},
"longitude": {
"type": "number",
"description": "Optional: the user's longitude"
}
},
"additionalProperties": false
}List the Saudi cities that have groceries in Dukkani's directory, with how many. Use it when a city is not found or the user asks where it works.
No arguments.
{
"type": "object",
"properties": {},
"additionalProperties": false
}Turn a shopping list into a ready order for one grocery from find_groceries (pass its id, e.g. «d:82» or «b:abc12»). Returns the cleaned list and an order_url: Dukkani's order page with that grocery chosen and the list already written, so the customer only checks it and sends it on WhatsApp. This tool sends nothing by itself.
| Argument | Type | Description |
|---|---|---|
| note | string | Optional note to the grocery (delivery time, «بدون سكر»…) |
| items* | array | List lines, e.g. «2 حليب المراعي 1 لتر», «رز 5 كيلو», «كرتون بيض» |
| grocery_id* | string | The id returned by find_groceries (d:<number> or b:<code>) |
{
"type": "object",
"required": [
"grocery_id",
"items"
],
"properties": {
"note": {
"type": "string",
"description": "Optional note to the grocery (delivery time, «بدون سكر»…)"
},
"items": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 40,
"minItems": 1,
"description": "List lines, e.g. «2 حليب المراعي 1 لتر», «رز 5 كيلو», «كرتون بيض»"
},
"grocery_id": {
"type": "string",
"description": "The id returned by find_groceries (d:<number> or b:<code>)"
}
},
"additionalProperties": false
}