Dukkani — Saudi grocery directory

Find Saudi neighbourhood groceries by city and district, and prepare a shopping list to send them.

Should I use this

Quality & Safety

A
Description quality
100%
Schema completeness
72%
Naming quality
90%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~866Tokens (tool definitions)
~923 BTypical response size
Moderate attention impact (0.68% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "dukkani": {
      "url": "https://dukkanlink.com/mcp"
    }
  }
}

Remote endpoints

https://dukkanlink.com/mcpstreamable-http

What it can do

Tool inventory

Tools (4)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢find_groceries(city, district, latitude, longitude, limit)

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 «عفيف»).

Input Schema

{
  "type": "object",
  "properties": {
    "city": {
      "type": "string",
      "description": "City, e.g. الرياض، جدة، عفيف، بريدة (Arabic preferred)"
    },
    "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"
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 15,
      "default": 8
    }
  },
  "additionalProperties": false
}
🟢prepare_grocery_order(grocery_id, items, note)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "grocery_id": {
      "type": "string",
      "description": "The id returned by find_groceries (d:<number> or b:<code>)"
    },
    "items": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "minItems": 1,
      "maxItems": 40,
      "description": "List lines, e.g. «2 حليب المراعي 1 لتر», «رز 5 كيلو», «كرتون بيض»"
    },
    "note": {
      "type": "string",
      "description": "Optional note to the grocery (delivery time, «بدون سكر»…)"
    }
  },
  "required": [
    "grocery_id",
    "items"
  ],
  "additionalProperties": false
}
🟢list_cities

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.

Input Schema

{
  "type": "object",
  "properties": {},
  "additionalProperties": false
}
🟢dukkani_for_shop_owners(topic)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "topic": {
      "type": "string",
      "enum": [
        "overview",
        "cashier",
        "debts",
        "orders",
        "workers",
        "einvoice"
      ],
      "default": "overview"
    }
  },
  "additionalProperties": false
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded4 tools