Skip to main content
Glama

Search products and price lists

em_search
Read-onlyIdempotent

Search Emalls products by keyword, category, brand, specs, price range and sort to find product IDs and lowest current Toman prices.

Instructions

Search Emalls (Iranian price comparison) for products, with price range, category, brand, spec and sort filters.

Use it first to find a product's id, or to browse a category by price (leave query empty and pass category_id). Each product shows its lowest current price in Toman and how many shops sell it. For "cheapest 8GB/256GB Samsung phone": em_filters(category_id) for the brand and spec option ids, then this with sort=cheapest. Then call em_product for specs, em_offers for the shop-by-shop prices, em_compare to put several side by side, or em_price_history for the trend. If the category is unknown, call em_categories with the same words. has_next says whether page+1 exists.

Input Schema

NameRequiredDescriptionDefault
pageNoPage number, 40 products per page.
sortNopopular (most viewed, the site default), cheapest, expensive or newest. cheapest also lists accessories and manuals: pair it with min_price or a category.popular
limitNoMax products to return from the page (1-40).
queryNoProduct words in Persian or English, e.g. گوشی سامسونگ A17 or ایسوس زنفوک. Empty to browse a whole category.
brand_idNoOnly this brand (id from em_filters for the same category).
in_stockNoOnly products at least one shop has in stock.
max_priceNoHighest price in Toman, e.g. 40000000.
min_priceNoLowest price in Toman, e.g. 20000000.
attributesNoSpec filter option ids from em_filters, e.g. [18179, 18194] for 8GB RAM and 256GB storage. At most one option per spec group; all must match.
category_idNoLimit to a category (id from em_categories), e.g. 39 for mobile phones.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.1

TDQS

A4.9/5.0
Behavior5/5

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

Annotations already cover read-only, idempotent, non-destructive, and open-world behavior, and the description adds meaningful result context: each product shows its lowest current price in Toman and how many shops sell it. It also discloses pagination via has_next and the important caveat that sort=cheapest may list accessories and manuals unless paired with min_price or a category.

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

Conciseness5/5

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

The description is front-loaded with the core action, then moves through usage, result shape, workflow, sibling routing, and pagination without redundant repetition. The extra length is justified by the ten-parameter surface and the need to route among nine siblings.

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?

For a ten-parameter read-only search tool with no output schema, the description supplies enough return-shape context, pagination behavior, workflow guidance, and caveats for correct use. Combined with full schema coverage and clear annotations, no material gap remains for an agent to call it correctly.

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

Parameters4/5

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

Schema coverage is 100%, so the schema documents all ten parameters, but the description still adds useful semantic guidance such as using brand_id and attributes from em_filters, category_id from em_categories, and leaving query empty to browse a category. It does not add much for page, limit, or price fields beyond the schema, but it meaningfully connects key filter parameters to the overall workflow.

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?

Starts with a specific verb and resource: "Search Emalls ... for products" with price, category, brand, spec, and sort filters. It clearly distinguishes the tool from siblings by naming em_filters, em_product, em_offers, em_compare, em_price_history, and em_categories.

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

Usage Guidelines5/5

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

Explicitly says to use it first to find a product id or browse a category by price, including the exact empty-query plus category_id pattern. It gives a concrete workflow for the cheapest 8GB/256GB Samsung phone and names alternatives for specs, offers, comparison, price history, and category discovery.

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