Skip to main content
Glama
sepehr071

digikala-mcp

by sepehr071

Product details and offers

dk_product
Read-onlyIdempotent

Retrieve a Digikala product's price, stock, rating, specs, and all seller offers sorted by price to compare buying options.

Instructions

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.

Input Schema

NameRequiredDescriptionDefault
max_offersNoMax seller offers to return, cheapest first.
product_idYesDigikala product id, the number in 'dkp-<id>' (from dk_search etc.), e.g. 20109389.
include_specsNoInclude the specification table.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed5 schema fields changedv0.4.0
    • removedInput schema / properties / include_specs / title
      Removed value: -"Include Specs"
    • removedInput schema / properties / max_offers / title
      Removed value: -"Max Offers"
    • removedInput schema / properties / product_id / title
      Removed value: -"Product Id"
    • removedInput schema / title
      Removed value: -"dk_productArguments"
    • changedOutput schema / (root)
      Previous value: -{
      -  "additionalProperties": true,
      -  "title": "dk_productDictOutput",
      -  "type": "object"
      -}New value: +null
  2. First observedv0.1.0

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (readOnly, idempotent, non-destructive), yet the description adds substantial behavioral detail: the offer model (one color/size per seller), that stock_left appears 'only when low', ships_by semantics ('jet' = same-day Tehran/Karaj), and the lowest_price_30d volatility caveat. This is well beyond what the structured fields convey.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The core purpose is front-loaded in sentence one, followed by a compressed field glossary. Dense but essentially waste-free; the caveats about lowest_price_30d and groceries each carry information an agent would otherwise misread.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description carries the burden of describing returns and does so: the top-level fields and the full per-offer field set with their meanings and conditional presence. Nothing an agent needs to interpret results is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents product_id, max_offers and include_specs; the baseline is 3. The description reinforces the cheapest-first ordering and the offer concept but adds no syntax or format detail beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Opens with a specific verb+resource ('Get one product's...') and enumerates exactly what comes back: price, stock, rating, specs, and every seller's offer. It is clearly distinguishable from siblings like dk_search (listing) and dk_price_history (history series).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Routes the agent to alternatives with reasons: dk_price_history's lowest_2_days is 'steadier' than a possibly spurious lowest_price_30d dip, and warns that grocery prices may differ from dk_search's. It lacks an explicit 'use this when you have a product_id' trigger or a when-not-to-use statement, so it stops short of a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.