Skip to main content
Glama
sepehr071

digikala-mcp

by sepehr071

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
DIGIKALA_MCP_PROXYNoHTTP proxy for every request, e.g. http://user:pass@host:port. Set this if every tool fails with "refused the request (HTTP 403)" to an HTTP proxy with an Iranian exit. Normal system proxy variables are ignored on purpose.

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

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}

Tools

Functions exposed to the LLM to take actions

NameDescription
dk_searchA

Search products by name: price (Toman), discount, seller, rating, 20 per page.

Search also returns loosely related items: each product has match ('all', 'some' with missing_words, or 'none'); prefer 'all'. Filter ids come from dk_filters(query=...). sort=cheapest puts accessories first: use dk_find_cheapest for the cheapest real match. Next: dk_product for every seller's offer.

dk_find_cheapestA

Find the cheapest in-stock products that really match a query, sorted by price (Toman).

Scans the top relevant results, keeps titles with every query word (else any word, with a note) and drops accessories. Use for "cheapest X"; then dk_product on the winner, as another seller may sell it for less.

dk_best_for_budgetA

Rank the best-rated in-stock products within a budget (Toman) by a rating weighted by its count.

A 5.0 from 3 buyers does not beat a 4.6 from 900; ties go to the cheaper one. A query keeps only titles with every word and drops accessories. Use for "best X under Y"; then dk_product, dk_reviews.

dk_suggestA

Autocomplete a vague or misspelled query into keywords, categories and brands.

Next: dk_search with a keyword, or dk_category_products with a category code.

dk_filtersA

List the filters of a category or a search: attributes, colors, sellers, price range (Toman), brands.

Attributes give {value title: id}; one with over 15 values only has value_count: call again with attribute_id. Colors are {title: id}; brands {code: id} (category only); categories {code: title} (query only). Pass the ids to dk_category_products or dk_search (attributes={attribute id: [value ids]}, colors, seller_type, brand_ids).

dk_categoriesA

Find category codes for dk_category_products and main-category ids for dk_best_sellers.

query matches the Persian name or English code (Persian finds more: 'لپ تاپ' finds the laptop leaf, 'laptop' does not); parent_id lists children; neither lists the main categories. A category with subcategories mixes in accessories: browse its product leaf.

dk_category_productsA

List one category's products with sort and filters (price in Toman), strict order.

E.g. "cheapest laptops" (category 'notebook-netbook-ultrabook'), "best-selling Xiaomi phones" (brand_code='xiaomi'). Feature ids come from dk_filters(category_code=...). No text query here.

dk_brand_productsA

List a brand's products with sort and price filters (Toman), plus the brand id for brand_ids.

For one brand inside one category use dk_category_products(brand_code=...).

dk_sellerA

Get a seller's reputation (rating 0-5, on-time shipping, cancellations, returns) and products.

Use before recommending an unknown seller. Percentages are the share of good orders (100 = never late).

dk_dealsA

List today's Incredible Offers (flash deals), biggest discount first, in-stock only.

Each product has discount_pct, price_before_discount and deal_ends (Tehran time). store='supermarket' lists Fresh deals.

dk_best_sellersA

List current best sellers, overall or in one main category; also returns the main categories' ids for category_id.

dk_fresh_searchA

Search or browse Digikala Fresh (supermarket). category_code beats query and also returns sub-categories.

For grocery discounts use dk_deals(store='supermarket').

dk_productA

Get one product's price, stock, rating, specs and every seller's offer (cheapest first).

An offer is one color/size from one seller: price (Toman), stock_left (only when low), warranty, seller rating 0-5, ships_by ('digikala', 'jet' = same-day Tehran/Karaj, 'seller'), free_shipping. lowest_price_30d can be a one-day dip of one color; dk_price_history's lowest_2_days is steadier. Groceries have store='supermarket' and a price that can differ from dk_search's.

dk_price_historyA

Get ~30 days of daily buy-box prices (Toman) per color/variant, with lowest and highest.

For "is this a good price?": lowest_2_days is the lowest price held two days in a row (lowest can be a one-day dip). Days are Jalali. An unknown id gives no variants; check it with dk_product.

dk_reviewsA

Read customer reviews: stars 1-5 (null = none), text, pros/cons, verified buyer flag.

The overall rating (0-5) is in dk_product. Texts are cut to 300 characters, pros/cons to 5 of 80; full_text=true returns them whole. An unknown id gives no reviews; check it with dk_product.

dk_questionsA

Read customers' questions (20 per page) with up to 2 answers each (answered_by: buyer, seller, ...).

Texts are cut to 300 characters (full_text=true: whole). Use for practical doubts (compatibility, size, registration).

dk_similarA

List products similar to one (same kind, other models and brands).

sort='cheapest' gives cheaper alternatives; then dk_compare.

dk_compareA

Compare 2-4 products side by side: price and rating, then the spec rows where they differ.

values in a specs row follow the order of products (null = no such spec); identical rows fold into same_specs. Best within one category. Unknown ids are listed in missing_ids.

dk_shortlistA

Re-price up to 10 products in one call: price, cheapest offer, stock, rating and 30-day low (Toman).

Use to refresh a watched list or check stock. cheapest_offer can be below price (the featured offer). low_30d is the lowest price held two days in a row, vs_30d_low_pct today's price above it (0 = at the low); lowest_one_day_30d is Digikala's figure, possibly a one-day dip. For specs use dk_compare; for the daily curve dk_price_history.

dk_installmentsA

Get the Digipay credit-line offers for a product, in Toman.

A plan is a fixed credit line (credit_amount) repaid in months installments of monthly_repayment; it is not sized to the product price, so never present it as "this product for X a month". Needs Digipay approval. An unknown id gives no plans; check it with dk_product.

dk_plus_plansA

List Digikala Plus plans (free shipments per month: jet = same-day Tehran/Karaj, fresh = supermarket) with price in Toman and benefits.

dk_gold_pricesA

Get the live 18k gold price per gram and gold coin prices, in Toman.

gold18_day_change_pct is vs the previous daily point; period change, low and high cover the ~3-month chart. Coins' change_pct is as Digikala shows it. Coins with price null are not for sale.

dk_locationA

Turn an address into coordinates, or coordinates into an address with Digikala's city_id and state_id.

Pass address + city, or lat + long. Prices are the same everywhere; location only affects delivery.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A4/5.0

Scored across 23 tools

Disambiguation4/5

There are several product-listing tools (dk_search, dk_category_products, dk_brand_products, dk_fresh_search) and two specialized rankers (dk_find_cheapest, dk_best_for_budget), which could be confused. However, descriptions explicitly delineate boundaries (text query vs category vs brand vs supermarket) and give 'Next:' routing hints, so an agent can reliably pick.

Naming Consistency5/5

Every tool uses the same dk_ prefix with a consistent snake_case noun/verb pattern (dk_search, dk_product, dk_price_history, dk_best_sellers). No style mixing at all.

Tool Count4/5

23 tools is at the heavy end, but the domain is genuinely broad (search, categories, brands, sellers, reviews, Q&A, deals, fresh, plus, installments, gold, location) and each tool maps to a distinct capability. Only minor redundancy from the multiple listing entry points.

Completeness4/5

Coverage of the browsing/shopping-research lifecycle is strong: discovery, filters, comparison, reviews, Q&A, price history, seller reputation, deals and financing. Gaps like cart/checkout and returns are outside a data-lookup server's scope, so no critical dead ends for its purpose.

Maintenance

ActivityMaintained
ResponsivenessNo issues