Skip to main content
Glama
sepehr071

masterkala-mcp

by sepehr071

🎧 masterkala-mcp

Let your AI agent shop for gadgets on MasterKala. Search earbuds, chargers, power banks and smart watches, compare real prices and specs, read reviews, check stock and delivery dates, and catch today's discounts, all from Claude, Cursor or Copilot.

PyPI Python CI MCP Registry License: MIT

Install in Cursor Install in VS Code

Quick start · What it can do · Tools · FAQ · فارسی


Why

MasterKala lists thousands of accessories, and a search for "power bank" mixes real power banks with silicone covers, out-of-stock items and things sold only in its shops. Finding the cheapest one you can actually order, and what it costs delivered, means paging through results and opening product pages. An agent with masterkala-mcp does that in seconds:

You: Cheapest Xiaomi power bank I can order now, delivered in Tehran?

Agent: calls mk_find_cheapest(query="پاوربانک شیائومی") → mk_shipping(product_id=26935)

Total

Product

Price

Shipping

4,338,000

پاوربانک 10000 شیائومی گلوریمی Glorimi LightCore 22.5W

4,188,000 (5% off)

150,000, Saturday 15:00-18:00

5,291,000

پاوربانک فوق نازک مگنتی 5000 Glorimi FitCore Mag 20W

5,291,000 (4% off)

free (over 5M)

5,401,000

پاوربانک 20000 شیائومی گلوریمی Glorimi LightCore 22.5W

5,401,000 (6% off)

free (over 5M)

The 10,000 mAh LightCore is cheapest even with the 150,000 courier fee. The 20,000 mAh LightCore ships free and costs 1,063,000 more for twice the capacity. Want me to compare their specs with mk_specs?

Real tool output from 2026-10-03; prices change all the time. Prices are in Toman.

Related MCP server: local-mcp

What it can do

  • 🔎 Search products by name in Persian or English, with price, discount and stock

  • 💸 Find the cheapest in-stock match, with cases and covers filtered out

  • 🗂️ Browse any category, brand or tag sorted by price, stock or date, with price range and brand/color filters

  • 📋 Read full product details: colors, stock count, specs, side-by-side comparison, reviews

  • 🚚 Check delivery: next Tehran courier slot, post to other cities, shipping fee, same-day cut-off

  • ⚡ Catch deals on the discount page, plus buying guides from the MasterKala blog

  • 🔒 Read-only by design: no login, no cart, no orders, no reviews posted

Quick start

You need uv. No API key or account.

claude mcp add masterkala -- uvx masterkala-mcp

Settings → Developer → Edit Config, then add:

{
  "mcpServers": {
    "masterkala": { "command": "uvx", "args": ["masterkala-mcp"] }
  }
}

Click Install in Cursor above, or add the Claude Desktop block to ~/.cursor/mcp.json.

Click Install in VS Code above, or add to .vscode/mcp.json:

{
  "servers": {
    "masterkala": { "type": "stdio", "command": "uvx", "args": ["masterkala-mcp"] }
  }
}

It's a standard stdio MCP server: run uvx masterkala-mcp, or pip install masterkala-mcp and run masterkala-mcp.

Then just ask:

  • "Cheapest Bluetooth earbuds between 3 and 5 million Toman, and which one has the best reviews?"

  • "Compare the specs of the Green Lion Ocean and the Awei T66."

  • "Is the blue CMF Buds Pro 2 in stock? When would it reach Tehran?"

  • بهترین تخفیف‌های امروز مسترکالا روی پاوربانک چیه؟

How it works

  AI agent  (Claude, Cursor, Copilot, ...)
      │
      │  MCP over stdio
      ▼
  masterkala-mcp  (runs on your machine)
      │
      │  HTTPS
      └──────▶  masterkala.com   JSON API, listing fragments, product pages

masterkala-mcp runs locally and calls the same public endpoints the masterkala.com website uses. There's no hosted server in between, no API key, and nothing about you is sent anywhere else.

Tools

Tool

What it does

mk_search

Search by keyword: price, discount, stock, plus matching categories and tag pages

mk_find_cheapest

Cheapest in-stock matches for a keyword, one flat list (accessories filtered out)

mk_browse

A category, brand or tag sorted by price / stock / date, with price range and filters

mk_filters

Brand, color and feature filter ids and the price range of a category, brand or tag

mk_categories

Product categories and their ids

mk_brands

Brands and their slugs

mk_deals

Everything on the discount page, biggest discount first, with the time left

Tool

What it does

mk_product

Price, discount, stock status and count, colors, brand, category, rating, shops that have it

mk_specs

Specification table of 1-4 products side by side

mk_reviews

Customer reviews with star breakdown and the store's replies

mk_shipping

Next delivery slot and fee for Tehran and other cities, same-day cut-off

mk_branches

MasterKala's physical shops with address, phone and map location

Tool

What it does

mk_blog_posts

Buying guides, comparisons and how-tos, newest first

mk_blog_comments

Readers' questions on a post with the store writer's answers

All tools are annotated readOnlyHint: true and return compact structured JSON, so they don't flood the agent's context.

Good to know

  • Prices are in Toman. final_price is what you pay, price is before discount, discount_pct is a whole percent. The site's structured data is in Rial; the server converts it.

  • Shipping is free from 5,000,000 Toman per order for most items (bulky goods such as large speakers never ship free; mk_shipping gives free_shipping_from: null for them); below that, Tehran courier and post were 150,000 / 155,000 Toman on 2026-10-03. There is no address API, so mk_shipping estimates for Tehran and "other cities by post".

  • Stock: in_stock means orderable online now. Other statuses: ناموجود (sold out), به زودی (coming soon), موجود در شعب حضوری (only in the physical shops).

  • Ratings are 1–5, null when nobody has reviewed the product yet.

  • Persian queries match best (هندزفری, پاوربانک), but English brand and model names work too (xiaomi, Buds Pro).

FAQ

No, and that's deliberate. It has no login and never touches the cart, order, payment, wishlist or review endpoints. The agent finds the best option; you buy it on masterkala.com.

It keeps only items you can order online now, whose title contains every word of your query, and drops cases, covers and screen protectors unless you ask for them (include_accessories: true, or a query like "کاور ..."). It scans the first 500 results by default (in-stock items come first); complete: false in the reply means more in-stock items lie past that, so raise scan (up to 1500). mk_search shows everything.

The server retries a dropped connection once. If it still fails, check your internet connection. System proxy variables are ignored on purpose; set MASTERKALA_MCP_PROXY if you need a proxy.

Use the full path to uvx (where uvx on Windows, which uvx on macOS/Linux) as command.

npx @modelcontextprotocol/inspector uvx masterkala-mcp

Configuration

Variable

Default

Meaning

MASTERKALA_MCP_PROXY

unset

HTTP proxy for every request, e.g. http://user:pass@host:port

فارسی

masterkala-mcp به دستیار هوش مصنوعی شما (Claude، Cursor، Copilot و ...) اجازه می‌دهد در مسترکالا جستجو کند، ارزان‌ترین کالای موجود را پیدا کند، مشخصات و نظرات را مقایسه کند و زمان و هزینه ارسال و تخفیف‌های روز را ببیند.

  • فقط خواندنی است: وارد حساب نمی‌شود، سبد خرید نمی‌سازد، سفارش ثبت نمی‌کند و نظر نمی‌فرستد.

  • قیمت‌ها به تومان است و کاور و قاب را از نتایج «ارزان‌ترین» جدا می‌کند.

  • روی سیستم خود شما اجرا می‌شود و به هیچ سرور واسطی داده نمی‌فرستد.

نصب در Claude Code:

claude mcp add masterkala -- uvx masterkala-mcp

بعد بپرسید: «ارزان‌ترین هندزفری بلوتوث بین ۳ تا ۵ میلیون تومان کدام است و کی به تهران می‌رسد؟»

Development

git clone https://github.com/sepehr071/masterkala-mcp && cd masterkala-mcp
uv sync
uv run pytest            # offline, against recorded responses
uv run pytest -m live    # real masterkala.com
uv run ruff check .

Tools live in src/masterkala_mcp/catalog.py, product.py and blog.py; each is a typed async function with a docstring that tells the agent when to use it. Issues and PRs are welcome, especially new tools and fixes for site changes.

Releases: bump the version in pyproject.toml and server.json, then push a v* tag. GitHub Actions tests, publishes to PyPI and the MCP Registry, and creates the GitHub Release.

Disclaimer

Unofficial and not affiliated with or endorsed by MasterKala. It uses the public endpoints of the masterkala.com website, which can change without notice. Please keep request rates reasonable.

License

MIT

Available Tools

14 tools
mk_blog_commentsBlog post commentsA
Read-onlyIdempotent

Read the comments of a blog post as threads, with the store writer's answers as replies.

Useful as a support FAQ: many posts hold readers' product questions answered by MasterKala.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax comment threads to return, newest first.
post_idYesBlog post id from mk_blog_posts, e.g. 330.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.1/5.0
Behavior3/5

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

The annotations already declare readOnlyHint=true, openWorldHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds structural context about threaded comments and writer replies, but does not disclose auth requirements, rate limits, or edge-case behavior.

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 two short sentences, front-loading the core action and following with a concise usage note. Every sentence earns its place, and there is no filler or redundancy.

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?

Given the simplicity of the tool (two parameters), the rich annotations, the 100% schema coverage, and the presence of an output schema, the description provides sufficient purpose and usage context. Neither return values nor parameter details need repeating here.

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 both parameters (limit, post_id) are fully documented in the schema itself. The description adds no additional parameter syntax, format, or meaning beyond what the schema provides, making the baseline score of 3 appropriate.

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?

The description states a specific verb ('Read'), a precise resource ('comments of a blog post'), and the return structure ('as threads, with the store writer's answers as replies'). This clearly distinguishes it from sibling tools like mk_blog_posts, which deals with posts rather than their comments.

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?

It offers a clear usage context: 'Useful as a support FAQ: many posts hold readers' product questions answered by MasterKala.' However, it does not name alternative tools or specify when not to use this one, so it falls short of the explicit when/when-not/alternatives rubric.

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

mk_blog_postsBlog posts and buying guidesA
Read-onlyIdempotent

List MasterKala blog posts (buying guides, comparisons, how-tos), newest first, with links.

Use when the user asks which product type to choose or how to use a gadget: point them to the matching guide. Readers' questions answered by the store: mk_blog_comments.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number, from 0, newest first.
limitNoPosts per page.
categoryNoBlog section, e.g. 'buying_guide' (راهنمای خرید) or 'comparison_review' (مقایسه و بررسی).buying_guide

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.1/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, non-destructive and openWorld, so the safety profile is covered. The description adds ordering ('newest first') and that entries include links, but does not disclose that the schema default category='buying_guide' means a bare call returns only buying guides, not all posts. Useful but incomplete context beyond the annotations.

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?

Two tight sentences: the capability first, then the usage routing. Nothing is padded, though the trailing fragment about mk_blog_comments reads slightly like an afterthought rather than being fully integrated.

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

Completeness4/5

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

With an output schema present, return values need not be explained, and the annotations carry the safety profile; the description covers purpose, ordering and usage routing. The main omission is flagging that the default category filters results to buying guides only, which an agent could misread as 'all posts'.

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 page, limit and category are all documented in the schema, including the enum values with Persian glosses. The description adds nothing about parameter behavior (e.g. that category defaults to buying_guide), so the baseline 3 applies.

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?

States a specific verb and resource (list blog posts), enumerates the content types (buying guides, comparisons, how-tos), and adds ordering ('newest first, with links'). It also names the sibling it is not (mk_blog_comments) so the agent can separate it from the reader-question tool without opening either schema.

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 states when to use it ('when the user asks which product type to choose or how to use a gadget') and what to do with the result ('point them to the matching guide'). It also routes the adjacent need (readers' questions answered by the store) to mk_blog_comments, giving a clear alternative.

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

mk_branchesPhysical branchesA
Read-onlyIdempotent

List MasterKala's physical shops in Tehran with address, phone and map location.

Use when the user wants to buy in person. mk_product's branches says which shops have a given product; call the shop before going, they stock only part of the catalog.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint, so the safety profile is fully covered by structured data. The description adds one genuinely useful behavioral fact — shops stock only part of the catalog — but says nothing about result count, pagination, or freshness of the listing. With annotations doing the heavy lifting, this is a modest value-add.

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 purpose is front-loaded in one sentence, followed by a compact usage block; the warning about partial stock is the only 'extra' and it earns its place by preventing a bad user outcome. No filler or restated title.

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 zero parameters and an output schema present, the description need not document return values. It covers what the tool is, when to pick it, and the one operational caveat, which is everything an agent needs for a no-arg listing call.

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?

The tool takes zero parameters, so per the rubric the baseline is 4. The description correctly implies a no-argument, list-everything call and introduces no phantom inputs, but there is no parameter semantics to enrich.

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?

The first sentence states a specific verb and resource ('List MasterKala's physical shops in Tehran') and even enumerates the returned fields (address, phone, map location). It is immediately separable from siblings like mk_brands or mk_categories, which are also enumerations but of different resources.

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 gives the selecting condition ('Use when the user wants to buy in person') and names the related sibling field (mk_product's `branches`) that covers the per-product variant of the question. It also supplies the follow-up behavior (call the shop before going) that an agent would otherwise have to invent.

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

mk_brandsList brandsA
Read-onlyIdempotent

List the brands MasterKala sells with their slugs (about 135).

Use to get the brand slug for mk_browse / mk_filters ('anker-fa', 'mcdodo').

ParametersJSON Schema
NameRequiredDescriptionDefault
queryNoOptional filter on the brand name, English only, e.g. 'xiaomi' or 'anker'.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint, so safety is covered structurally. The description adds genuinely new context: the result set is a bounded catalog (~135 entries) whose values are slugs intended as inputs to other tools, which tells the agent how to use the output.

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?

Two short sentences, zero filler, with the core purpose and scope front-loaded before the usage pointer. Every clause earns its place.

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?

An output schema exists, so return values need not be spelled out, and the description still conveys the shape (names plus slugs) and cardinality. For a zero-required-parameter read tool with full schema coverage and annotations, nothing an agent needs to call it correctly 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% and the single optional 'query' parameter is fully documented in the schema, so the baseline is 3. The description adds nothing about filtering semantics (e.g., that omitting query returns everything), so it neither compensates nor detracts.

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?

States a specific verb and resource ('List the brands MasterKala sells') plus the payload ('with their slugs'), and even quantifies scope ('about 135'). An agent can distinguish this catalog-listing tool from siblings like mk_categories, mk_filters, and mk_browse without opening any schema.

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?

Explicitly names the downstream consumers ('Use to get the brand slug for mk_browse / mk_filters') and gives concrete example values ('anker-fa', 'mcdodo'), which is strong routing guidance. It stops short of stating when NOT to use it (e.g., when you already hold a slug), so it is not fully exhaustive.

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

mk_browseBrowse a category or brandA
Read-onlyIdempotent

List the products of a category, brand or tag with sorting, price range and filters.

Use for "cheapest Bluetooth earbuds", "Xiaomi power banks between 1 and 2 million Toman", "newest smart watches". Pass exactly one of category_id / brand / tag_id. Get category ids from mk_categories or mk_search, brand slugs from mk_brands, and filter ids (brand, color, attribute) plus the price range from mk_filters. For a keyword use mk_search or mk_find_cheapest (the site ignores sorting on keyword listings). There is no rating sort: check candidates with mk_reviews. Details: mk_product.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number, from 0.
sortNoOrder of the listing. In-stock items always come first.cheapest
brandNoBrand slug from mk_brands, e.g. 'mcdodo' or 'anker-fa'.
limitNoProducts per page.
tag_idNoTag id from a /tag/<id>/ link in mk_search pages, e.g. 22246.
max_priceNoMaximum payable price (final_price) in Toman, e.g. 5000000.
min_priceNoMinimum payable price (final_price) in Toman, e.g. 3000000.
filter_idsNoFilter ids from mk_filters: 'm30' brand, 'o78' color, '117' attribute. Example: ['m30', 'o52'].
category_idNoCategory id from mk_categories or mk_search, e.g. 606 (Bluetooth earbuds).

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.6/5.0
Behavior4/5

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

Annotations already declare readOnly=true, idempotent=true, destructive=false and openWorld=true, so the safety profile is covered. The description adds non-obvious behavioral facts: the exactly-one-of selector constraint and the quirk that the site ignores sorting on keyword listings. It stops short of discussing pagination limits or result-count behavior, so it is strong rather than exhaustive.

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 capability and the selector constraint are front-loaded in the first two sentences, and the remaining routing guidance is dense but each clause carries actionable information. It is slightly run-on across the routing sentences, which keeps it from a 5.

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?

An output schema exists, so return-value documentation is unnecessary; the description instead covers everything needed to call the tool correctly: the selector rule, id provenance for all three selector types, price/filter sourcing, and fallbacks for keyword and rating needs. Nothing material is missing for a read-only browsing tool.

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 description coverage is 100%, so the baseline is 3. The description goes beyond the per-field descriptions by establishing the cross-parameter invariant (exactly one of category_id/brand/tag_id) and by telling the agent where each id family is sourced (mk_categories, mk_brands, mk_filters), which is not derivable from the schema alone.

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?

The first sentence names a specific verb (List) and resource (products of a category, brand or tag) plus the supported refinement dimensions (sorting, price range, filters). It is immediately distinguishable from mk_search (keyword) and mk_product (details) without opening either schema.

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?

It gives concrete use cases ("cheapest Bluetooth earbuds", price-bounded power banks), states the exclusivity rule (pass exactly one of category_id/brand/tag_id), routes keyword queries to mk_search/mk_find_cheapest, and notes that rating sort is unavailable so mk_reviews should be consulted instead. Alternatives are named with the condition that selects them.

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

mk_categoriesList categoriesA
Read-onlyIdempotent

List MasterKala's product categories with their ids (about 100 main categories).

Use to get a category_id for mk_browse / mk_filters. mk_search also returns the categories matching a keyword.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryNoOptional filter on the Persian name or English slug, e.g. 'شارژر' or 'charger'.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint, so the safety profile is covered. The description adds context the annotations cannot: the approximate result size (~100 entries) and the fact that the payload contains ids meant to be threaded into other calls. No auth or rate-limit disclosure, but nothing is contradicted.

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?

Two short sentences with no filler. The primary purpose and scope are front-loaded, and the routing/alternative information follows immediately.

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 simple one-optional-param read tool with an output schema, the definition covers purpose, result shape (ids, ~100 categories) and sibling routing. Return-value details are delegated to the output schema, which the rubric permits, so nothing an agent needs 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% and the single optional `query` parameter is well documented in the schema, including Persian/English examples and a minLength constraint. The description never mentions the filter at all, so it adds no meaning beyond the schema; baseline 3 applies.

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?

States a specific verb and resource ("List MasterKala's product categories with their ids") plus a scope estimate ("about 100 main categories"), which tells the agent both what it returns and roughly how much. Combined with the sibling set (mk_brands, mk_filters), the wording makes clear this is the category taxonomy enumerator rather than a product or brand lookup.

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 states the downstream use ("Use to get a category_id for mk_browse / mk_filters") and names the alternative for a different need ("mk_search also returns the categories matching a keyword"). The agent knows both when to call this and when a sibling is a better fit.

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

mk_dealsCurrent dealsA
Read-onlyIdempotent

List every product on MasterKala's discount page right now, biggest discount first.

Use for "what's on sale" / "best discounts today". ends_in_seconds is the time left in the current offer period. Discounts inside one keyword or category: mk_search / mk_browse.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax deals to return.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnly, idempotent, openWorld, non-destructive). The description adds non-obvious behavior beyond that: the result ordering (biggest discount first) and the meaning of the ends_in_seconds field. It does not discuss pagination or the limit's interaction with total result count, so it stops short of full coverage.

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?

Front-loaded with the core purpose and efficient overall. The sentence explaining ends_in_seconds is slightly orphaned since that field does not appear in the input schema, adding minor noise to an otherwise tight description.

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

Completeness4/5

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

Purpose, usage, and ordering are complete, and an output schema exists so return values need not be enumerated. The only mild gap is that pagination/result-count behavior is unstated, which matters for a listing tool with a capped limit.

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?

Only one parameter (limit) and schema description coverage is 100%, so the schema fully documents it. The description adds no syntax, bounds, or default information beyond what the schema already provides; baseline 3 applies.

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?

Specific verb + resource + scope ('List every product on MasterKala's discount page right now') plus an ordering guarantee ('biggest discount first'). It also explicitly separates itself from mk_search and mk_browse, which cover keyword/category discounts.

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?

States the triggering intents ('what's on sale' / 'best discounts today') and names the alternatives for a different scope (keyword or category discounts → mk_search / mk_browse). Both when-to-use and when-to-use-something-else are present.

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

mk_filtersFilters of a category or brandA
Read-onlyIdempotent

List the filters of a category, brand or tag page (brands, colors, attributes) with their ids, and its price range.

Use before mk_browse when the user wants a brand, color or feature inside a category: each group's options map filter id -> name; pass the ids as filter_ids. Long groups other than brands are cut to 40 options (omitted says how many more); ask for that group to see all. max_price is the most expensive item in the listing (Toman).

ParametersJSON Schema
NameRequiredDescriptionDefault
brandNoBrand slug from mk_brands, e.g. 'mcdodo' or 'anker-fa'.
groupNoReturn only this filter group, in full, e.g. 'رنگ' (color) or 'برند' (brand).
tag_idNoTag id from a /tag/<id>/ link in mk_search pages, e.g. 22246.
category_idNoCategory id from mk_categories or mk_search, e.g. 606 (Bluetooth earbuds).

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.8/5.0
Behavior5/5

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

Annotations already declare readOnly/idempotent/non-destructive, and the description adds real behavioral context on top: long non-brand groups are cut to 40 options with an `omitted` count, and max_price is the most expensive item in Toman. These are non-obvious behaviors an agent must know to interpret the response correctly.

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?

Front-loaded with the core purpose, then a second paragraph covering the workflow and truncation caveat; every sentence carries information. The first sentence is slightly compressed ('with their ids, and its price range'), but nothing is wasted.

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 an output schema present, the description needn't explain return shapes, and it correctly focuses on workflow (use before mk_browse), the id->filter_ids handoff, truncation limits, and price units. Nothing an agent needs to call and interpret this tool is missing.

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 each parameter is already documented (brand slug, group, tag_id, category_id). The description goes slightly beyond by explaining the output contract that connects parameters to results — group options map filter id -> name and those ids are what you pass as filter_ids. That cross-tool linkage adds value over the schema alone.

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?

States a specific verb ('List') and resource ('the filters of a category, brand or tag page') plus what is returned (filter ids/names and price range). It is clearly distinguishable from siblings like mk_categories or mk_brands, which return different resources.

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 'Use before mk_browse when the user wants a brand, color or feature inside a category', naming both the alternative tool and the selecting condition. It also tells the agent how to recover from truncated groups by asking for that group explicitly.

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

mk_find_cheapestFind cheapest productA
Read-onlyIdempotent

Find the cheapest in-stock products for a keyword, one flat list sorted by payable price.

Use when the user wants the lowest price for X. Scans the search results, keeps items that can be bought online now, and sorts by final_price (after discount, Toman). Most items ship free when the basket reaches 5,000,000 Toman (free_shipping); bulky ones never do. mk_shipping gives the exact fee and date. complete=false means in-stock items go on past scanned: raise scan.

ParametersJSON Schema
NameRequiredDescriptionDefault
scanNoMax search results to scan, 500 per request; stops early once the in-stock items end.
limitNoMax offers to return.
queryYesProduct name or keyword, Persian or English, e.g. 'هندزفری بلوتوث' or 'xiaomi'.
match_all_wordsNoKeep only titles that contain every word of the query.
include_accessoriesNoAlso keep cases, covers, screen protectors and straps made for the product (dropped by default unless the query names them).

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.6/5.0
Behavior5/5

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

Annotations only cover the safety profile (read-only, idempotent, non-destructive); the description adds substantial behavior beyond them: it scans search results and stops early, filters to online-purchasable items, sorts by final_price after discount in Toman, explains the free-shipping threshold and bulky-item exception, and interprets complete=false as a signal to raise `scan`.

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?

Front-loaded purpose, then usage trigger, then mechanics; every sentence adds information about scanning, sorting, or shipping. Slightly long but no waste.

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?

An output schema exists so return shape need not be explained, yet the description still clarifies the one return value an agent must act on (complete=false) plus pricing and shipping semantics. Combined with the named mk_shipping alternative, nothing needed to call this correctly is missing.

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 already 100%, so the baseline is 3. The description earns an extra point by linking the output flag to the `scan` parameter ('complete=false ... raise scan') and by defining the sort key (final_price, after discount, Toman), which the schema does not state.

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?

States a specific verb (find) plus resource and a tight qualifier ('cheapest in-stock products for a keyword'), and the sorting key ('payable price') makes it immediately distinguishable from generic siblings like mk_search or mk_deals without opening any schema.

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?

Gives an explicit trigger ('Use when the user wants the lowest price for X') and routes the shipping-fee question to mk_shipping, which is a genuine alternative. It stops short of naming when NOT to use it (e.g. broad browsing vs. exact-price comparison), so it is clear but not exhaustive.

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

mk_productProduct detailsA
Read-onlyIdempotent

Get one product's full record: price and discount (Toman), stock status and count, colors and which are buyable, brand, category path, rating, and the physical branches that have it.

Use after mk_search / mk_browse when the user picks a product. Specs table: mk_specs. Reviews: mk_reviews. Delivery date and fee: mk_shipping.

ParametersJSON Schema
NameRequiredDescriptionDefault
product_idYesMasterKala product id from mk_search / mk_browse, e.g. 24855.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, openWorldHint, and destructiveHint=false, so the safety profile is covered. The description adds genuinely useful context about what the record contains (including which colors are buyable and which branches stock it), though some of that overlaps the output schema and it says nothing about auth or rate limits.

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?

Front-loaded verb and scope in the first clause, then a compact field inventory, then a routing block. Every sentence earns its place and there is no filler.

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 single-parameter read tool with a full annotation set and an output schema, the description covers purpose, sequencing, and sibling handoffs. Return-value detail is not required given the output schema, so nothing an agent needs 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?

Only one parameter, and the schema documents it at 100% coverage including the origin ('from mk_search / mk_browse') and a concrete example id. The description adds no additional meaning about product_id, so the baseline 3 applies.

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?

States a specific verb and resource ('Get one product's full record') and enumerates the returned facets: price/discount in Toman, stock, colors, brand, category path, rating, and branches. This cleanly separates it from discovery siblings (mk_search, mk_browse) and from the drill-down siblings that cover adjacent data (mk_specs, mk_reviews, mk_shipping).

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?

Explicit sequencing: 'Use after mk_search / mk_browse when the user picks a product' tells the agent exactly when to reach for this tool. It also routes four related needs to named alternatives, so there is no ambiguity about which sibling handles specs, reviews, or delivery.

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

mk_reviewsProduct reviewsA
Read-onlyIdempotent

Read customer reviews of a product (1-5 stars, newest first) with the store's replies and the star breakdown.

Use as a quality check before recommending a product. average and star_counts cover all reviews; count is the number matching stars.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax reviews to return, newest first.
starsNoOnly reviews with this many stars (1-5); 0 = all.
product_idYesMasterKala product id from mk_search / mk_browse, e.g. 24855.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnly/idempotent/non-destructive, so safety is covered; the description adds genuinely useful behavior: results are sorted newest first and include the store's replies plus a star breakdown. It does not cover pagination or result-size behavior, keeping it just short of fully transparent.

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?

Two compact paragraphs with the resource and ordering constraint front-loaded. The trailing sentence on aggregate-field semantics is slightly output-schema territory given an output schema exists, but it earns its place by disambiguating count vs. the filter.

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 read-only, well-annotated tool with full schema coverage and an output schema, the description supplies everything an agent needs: the resource, sort order, what is included, and the intended use case. No material gap remains.

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 baseline is 3, but the final sentence adds meaning the schema does not: average and star_counts span ALL reviews while count reflects only those matching `stars`. That resolves a real ambiguity in how the aggregate fields relate to the `stars` filter.

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?

The description names a specific verb and resource ('Read customer reviews of a product') and scopes it precisely with ordering (1-5 stars, newest first) and included data (store replies, star breakdown). An agent can distinguish this from mk_product, mk_specs, or mk_blog_comments without opening any schema.

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?

'Use as a quality check before recommending a product' gives a clear when-to-use scenario, which is more than most read tools provide. It stops short of naming when not to use it or pointing to sibling tools for related data (e.g., mk_product for the product itself).

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

mk_shippingDelivery date and feeA
Read-onlyIdempotent

Get the nearest delivery slot and shipping fee for one product: Tehran courier and post to other cities.

Use for "when will it arrive / how much is shipping". Fees are Toman, 0 = free. Shipping is free when the basket reaches free_shipping_from; null means this item never ships free (bulky goods). same_day_seconds_left > 0 means an order placed now can still arrive today in Tehran. Estimates use a default Tehran address.

ParametersJSON Schema
NameRequiredDescriptionDefault
product_idYesMasterKala product id from mk_search / mk_browse, e.g. 24855.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, openWorld and non-destructive, so the safety profile is covered. The description adds genuinely non-obvious behavioral context beyond that: fees are in Toman with 0 = free, null means the item never ships free (bulky goods), same_day_seconds_left > 0 signals same-day delivery is still possible, and estimates assume a default Tehran address.

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 primary purpose and the usage trigger are front-loaded, followed by compact field-semantics notes. Every sentence carries information an agent needs (units, free-shipping condition, null meaning, same-day flag) with no filler.

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 an output schema present, the description need not describe the return shape, and it correctly focuses on interpreting the returned values. Combined with rich annotations and a fully documented single parameter, nothing an agent needs to call this tool correctly 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?

There is a single parameter and schema coverage is 100%; the schema already documents product_id, including where to obtain it ('from mk_search / mk_browse'). The description only reinforces the per-product scope and adds no syntax or format detail beyond the schema, so the baseline 3 applies.

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?

The description states a specific verb and resource ('Get the nearest delivery slot and shipping fee for one product') and immediately scopes the geography ('Tehran courier and post to other cities'). No sibling tool (mk_search, mk_deals, mk_product, etc.) covers shipping, so the agent can route to this tool unambiguously.

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?

It gives a concrete trigger phrase — 'Use for "when will it arrive / how much is shipping"' — and implies the per-product scope ('for one product'). It does not name an alternative or exclusion (e.g. how to get basket-level shipping for many items), so it stops short of explicit when-not guidance.

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

mk_specsSpecs and comparisonA
Read-onlyIdempotent

Get the specification table of 1-4 products side by side, with each product's stock count.

Use for "battery life / Bluetooth version of X" or to compare products row by row. Each spec row has one value per product id; a missing id means no value for that product. Ids that do not exist are listed in not_found.

ParametersJSON Schema
NameRequiredDescriptionDefault
product_idsYes1 to 4 product ids, e.g. [27144, 20850].

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so the safety profile is covered. The description adds genuinely useful behavior beyond that: how spec rows align one value per product id, that a missing id yields no value, and that invalid ids surface in not_found.

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?

Three tight sentences, zero filler. The core action and cardinality lead, followed by use cases, then edge-case behavior — well front-loaded and appropriately sized for a single-parameter tool.

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 an output schema present, return formatting need not be explained, yet the description still covers the two things an agent would otherwise guess wrong: row alignment and not_found handling. Annotations carry the safety profile, so nothing material is missing.

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% and the schema already documents the 1-4 id array with an example, so the baseline is 3. The description adds real semantics on top: the positional contract between product ids and each spec row, and the silent-omission behavior for ids lacking a value.

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

Purpose4/5

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

States a specific verb and resource: 'Get the specification table of 1-4 products side by side, with each product's stock count.' The '1-4 products side by side' framing implicitly separates it from the single-product sibling mk_product, but no sibling is named explicitly, so it falls short of the 5 benchmark.

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?

Gives concrete trigger phrasings: 'Use for "battery life / Bluetooth version of X" or to compare products row by row.' That is clear when-to-use context, but there is no when-not-to-use guidance or explicit routing to alternatives such as mk_product or mk_filters.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 14 tool updatesv0.1.0
    • First observedmk_blog_comments
    • First observedmk_blog_posts
    • First observedmk_branches
    • First observedmk_brands
    • First observedmk_browse
    • First observedmk_categories
    • First observedmk_deals
    • First observedmk_filters
    • First observedmk_find_cheapest
    • First observedmk_product
    • First observedmk_reviews
    • First observedmk_search
    • First observedmk_shipping
    • First observedmk_specs

TDQS

A4.4/5.0

Scored across 14 tools

Disambiguation5/5

Each tool has a clearly distinct role: keyword search vs. category/brand browsing vs. cheapest-item lookup vs. detailed product/spec/review/shipping retrieval. The descriptions explicitly cross-reference related tools and direct the agent to the right one, with no meaningful overlap or ambiguity.

Naming Consistency4/5

All tools use the same mk_ prefix and snake_case, which is predictable and readable. However, the pattern mixes action-oriented names (mk_search, mk_browse, mk_find_cheapest) with resource-oriented names (mk_product, mk_categories, mk_brands), so it is not a strict verb_noun convention throughout.

Tool Count5/5

With 14 tools, the set is well-scoped for an e-commerce product research assistant. Each tool covers a distinct facet, and the count stays within the ideal 3-15 range without redundant or trivial entries.

Completeness4/5

The surface covers product discovery, product details, specs, reviews, shipping, branches, deals, and blog content, which is strong for this domain. Minor gaps remain, such as no direct tag-listing tool and no cart/order operations beyond informational browsing.

Maintenance

ActivityNo data
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    A lightweight, stdio-based MCP server enabling AI assistants to perform local file system operations like reading, writing, searching, and executing commands.
    2,323 npm
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    A read-only MCP server that lets AI assistants answer Shopify store operations questions via tools like get_shop, list_products, get_product, and list_orders.
    4
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    MCP server for the Yandex KIT e-commerce API, built with the official Model Context Protocol SDK. It exposes 61 tools over stdio to manage catalog, orders, discounts, and webhooks.
    91
    2
    MIT