Skip to main content
Glama
sepehr071

baneh-mcp

by sepehr071

baneh-mcp: Baneh MCP server for AI agents

Unofficial, read-only MCP server that lets your AI agent shop for home appliances, TVs and electronics on Baneh (بانه, baaneeh.com), an Iranian online shop. Search products, find the cheapest in-stock match, browse by category or brand and read reviews, all from Claude, Cursor or Copilot.

PyPI License: MIT

Quick start · For AI agents · Tools · FAQ · فارسی


For AI agents

  • What: unofficial MCP server for Baneh (baaneeh.com, بانه), an Iranian shop for home appliances, TVs, tools and car audio. Queries work in Persian and English; prices are in Toman.

  • Install: claude mcp add baneh -- uvx baneh-mcp (stdio transport, needs uv and Python 3.10+).

  • Auth: none. Optional BANEH_MCP_PROXY sets an HTTP proxy for requests to baaneeh.com.

  • Access: read-only. No login, cart, orders or posted reviews, so no write tools exist.

  • Tools: 7, all prefixed bn_. Start with bn_find_cheapest or bn_search. Typical sequence: bn_find_cheapest → bn_product → bn_reviews.

  • Use when: comparing prices, stock and reviews of TVs, fridges, washing machines, kitchen appliances and tools on Baneh.

  • Do not use when: the user wants to buy (no cart or checkout), wants phones (almost all are discontinued), or wants discounts (nothing in stock is discounted).

  • Output: compact JSON. final_price is Toman. Null fields are left out: no regular_price means no discount, no rating means no reviews.

  • Machine-readable: server.json, and the catalog of all Iranian MCP servers at awesome-iran-mcp.

Related MCP server: digikala-mcp

Quick start

You need uv. No API key or account.

claude mcp add baneh -- uvx baneh-mcp

Claude Desktop, Cursor and others take the same command in their MCP config:

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

Then ask:

  • "Cheapest in-stock Samsung TV above 20 million Toman?"

  • "Show LG washing machines sorted by price, and the reviews of the cheapest one."

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

How it works

  AI agent  ──MCP over stdio──▶  baneh-mcp (your machine)  ──HTTPS──▶  baaneeh.com  (WooCommerce Store API)

It calls the public WooCommerce Store API that the website itself exposes. No hosted server, no API key.

Tools

Tool

What it does

bn_search

Search by keyword: price, stock, rating, with sort and price range

bn_find_cheapest

Cheapest matches for a keyword, titles must contain every word (any order)

bn_browse

A category and/or brand, sorted by price or rating, with a price range

bn_categories

Categories with slugs and product counts (top level, children of one, or search)

bn_brands

Brands (LG, Samsung, Bosch, ...) with slugs and product counts

bn_product

One product: price, stock, brand, categories, spec attributes, highlights, description, images

bn_reviews

Buyer reviews of one product with ratings

All 7 tools are annotated readOnlyHint: true and return compact JSON.

Good to know

  • In stock only by default. The catalog lists about 9,200 products but only about 1,900 are in stock. The rest, almost all of the phones and tablets, are discontinued and their prices are stale. Pass in_stock_only: false to include them.

  • Sorting is done by the server of this tool, not the shop, which ignores sort parameters. Price and rating sorts scan up to 2,000 matches (about 5 s per 100); the reply shows scanned. A whole-shop price sort takes about 30 s the first time.

  • No deals tool: no in-stock product has a sale price.

  • Prices are the shop's own Toman amounts. A few look wrong (a USB cable at 144 million Toman); check the product page before relying on extremes.

  • Reviews: many products carry one long generated "summary of buyer opinions" instead of real reviews.

  • Shipping fees and policies are not available through the public API.

FAQ

No. It has no login and never touches the cart or checkout. The agent finds the best option; you buy it on baaneeh.com.

Yes. baneh.com redirects to baaneeh.com, which is where the server connects.

Check your internet connection. System proxy variables are ignored on purpose; set BANEH_MCP_PROXY if you need a proxy.

npx @modelcontextprotocol/inspector uvx baneh-mcp

Configuration

Variable

Default

Meaning

BANEH_MCP_PROXY

unset

HTTP proxy for every request, e.g. http://user:pass@host:port; a comma-separated list is used one at a time, moving on after a connect error

فارسی: سرور MCP بانه

baneh-mcp یک سرور MCP غیررسمی برای فروشگاه اینترنتی بانه (baaneeh.com) است و به دستیار هوش مصنوعی شما اجازه می‌دهد لوازم خانگی، تلویزیون و ابزار را جستجو کند، ارزان‌ترین کالای موجود را پیدا کند و نظرات خریداران را بخواند.

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

  • قیمت‌ها به تومان است.

نصب در Claude Code: claude mcp add baneh -- uvx baneh-mcp

Development

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

Tools live in src/baneh_mcp/catalog.py and product.py; each is a typed async function with a docstring that tells the agent when to use it.

Disclaimer

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

License

MIT

Available Tools

7 tools
bn_brandsList brandsA
Read-onlyIdempotent

List brands (about 150, e.g. LG, Samsung, Bosch, Xiaomi) with slug and product count, biggest first.

Use to get the slug for bn_browse's brand. Counts include out-of-stock products. Brands exist only for the products tagged with the shop's brand attribute (not every tool or phone).

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax brands to return.
queryNoOnly brands whose name or slug contains this, e.g. 'سامسونگ' or 'bosch'.

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already cover read-only, idempotent, non-destructive, open-world semantics, so the bar is lower. The description still adds genuine, non-obvious behavioral context: counts include out-of-stock products, and brands exist only for products tagged with the shop's brand attribute. Ordering and return fields are also disclosed. Pagination/limits are left to the schema.

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 sentences, front-loaded with what the tool returns, then the routing use, then the data caveats. No filler; every sentence carries a distinct piece of information.

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 read-only list tool with full schema coverage and rich annotations, this is complete: purpose, scale, ordering, return fields, intended consumer, and the caveat about which brands exist are all present. No output schema exists, and the description already covers the shape of the response.

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 `limit` and `query` (including a Persian example). The description adds nothing about parameter syntax, so the baseline 3 applies. The example brand names loosely illustrate `query` matching but do not extend the schema's meaning.

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 brands"), plus scale (~150), example values, and the exact return fields (slug, product count) with ordering (biggest first). It also distinguishes itself by naming the consuming sibling bn_browse, so an agent can place it without opening a 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 routes the agent: "Use to get the slug for bn_browse's `brand`." That is a concrete use case tied to a named sibling. It lacks explicit when-not guidance, but the brand-attribute caveat effectively tells the agent when results will be empty.

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

bn_browseBrowse a category or brandA
Read-onlyIdempotent

List products of a category and/or brand, optionally in a price range, sorted by price or rating.

Use after bn_categories / bn_brands to see what a section holds, e.g. the cheapest in-stock LG TVs (category='tv', brand='lg', sort='cheapest'). Give at least one of category, brand or a price bound.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoResult page of `limit`-sized pages (only for sort 'newest').
sortNoOrder. 'newest' is the shop's own order (latest added first); the others are sorted here over all matches.newest
brandNoBrand slug from bn_brands, e.g. 'lg' or 'xiaomi'.
limitNoMax products to return.
categoryNoCategory slug from bn_categories, e.g. 'tv' or 'air-conditioners-cooler'.
max_priceNoMaximum price in Toman, e.g. 20000000.
min_priceNoMinimum price in Toman, e.g. 5000000.
in_stock_onlyNoOnly items in stock. Out-of-stock items are mostly discontinued, with stale prices.

TDQS

A3.8/5.0
Behavior3/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 fully covered structurally. The description adds the precondition that at least one of category/brand/price bound must be supplied, but says nothing about result format, pagination limits, or empty-result behavior beyond what the input schema already documents (e.g. in_stock_only's stale-price caveat).

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 sentences plus a compact example, front-loaded on the purpose with the constraint and usage context trailing. Nothing is padded, though the example largely restates what the first sentence already conveys.

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?

For an eight-parameter, annotation-rich, read-only browse tool with no output schema, the description covers purpose, entry-point workflow and the one non-obvious precondition. It omits anything about the shape of returned product data, but with rich schema documentation and the query-building rule stated, an agent has enough 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?

With 100% schema description coverage the baseline is 3, but the description adds a genuine cross-parameter rule absent from the schema: at least one of category, brand, min_price or max_price must be given (no parameter is marked required). The inline example also shows how category, brand and sort compose, which the schema's per-field descriptions do not.

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 with scope modifiers: 'List products of a category and/or brand, optionally in a price range, sorted by price or rating.' That is clear enough to act on, but it never differentiates itself from bn_search or bn_find_cheapest, so the agent must infer that this is slug/pivot browsing rather than free-text search or the dedicated cheapest lookup.

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 a concrete workflow position ('Use after bn_categories / bn_brands to see what a section holds') plus an operational rule ('Give at least one of category, brand or a price bound') and a worked example. It stops short of saying when NOT to use it, e.g. that free-text queries belong to bn_search or that bn_find_cheapest already covers the single-cheapest case.

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

bn_categoriesList categoriesA
Read-onlyIdempotent

List shop categories with slug and product count, biggest first.

Without arguments returns the top-level sections. Use parent to open one, or query to search all of them. Counts include out-of-stock products. The shop has hundreds of SEO-style subcategories under 'tv' (e.g. 'best tv', 'tv price'); they hold the same products. Pass a slug to bn_browse as category.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax categories to return.
queryNoOnly categories whose name or slug contains this, e.g. 'یخچال' or 'tv'.
parentNoSlug of a parent category to list its subcategories, e.g. 'home-appliances'.

TDQS

A4.6/5.0
Behavior4/5

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

Annotations already declare this as a read-only, idempotent, non-destructive operation, so the safety profile is covered. The description adds real behavioral context beyond that: counts include out-of-stock products, and 'tv' hides hundreds of SEO subcategories that duplicate the same products, which prevents the agent from misreading inflated category counts.

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?

Three short paragraphs, each front-loaded and carrying a distinct point: return shape, argument behavior, and the SEO-subcategory caveat. The 'tv' example duck-types slightly into prose, but it earns its place by preventing a concrete failure mode.

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 still conveys the return shape (slug, product count, ordering) and the default scope. Combined with the sibling hand-off, an agent has everything needed to call this correctly on the first try.

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 description adds value the schema does not: it explains what the empty-argument case returns (top-level sections) and frames `parent` and `query` as two mutually distinct expansion paths rather than just two optional strings.

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 shop categories') plus the fields returned and ordering ('with slug and product count, biggest first'). This is clearly distinguishable from siblings like bn_brands or bn_search 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 Guidelines5/5

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

Explicitly covers the no-argument default ('returns the top-level sections'), the two argument paths ('Use `parent` to open one, or `query` to search all of them'), and routes the agent onward to bn_browse by telling it to pass the slug as `category`.

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

bn_find_cheapestFind cheapest productA
Read-onlyIdempotent

Find the cheapest products whose title contains every word of the query, one list sorted by price (Toman).

Use for the lowest price of X. Words may come in any order. Raise min_price to skip accessories and spare parts. Items without a price are skipped. complete=false means more matches exist than were scanned (2,000 cap). Check bn_product before buying: the same title can be a different model or size.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax products to return.
queryYesProduct name or keyword, Persian or English, e.g. 'تلویزیون ال جی 55' or 'iphone'.
max_priceNoMaximum price in Toman, e.g. 20000000.
min_priceNoMinimum price in Toman, e.g. 5000000.
in_stock_onlyNoOnly items in stock. Out-of-stock items are mostly discontinued, with stale prices.

TDQS

A4.6/5.0
Behavior5/5

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

Annotations cover the safety profile (readOnly, idempotent, non-destructive), but the description adds real behavioral context the annotations cannot: unpriced items are skipped, matching is order-insensitive on title words, results are capped at a 2,000-item scan, and complete=false signals truncated results. That last point is critical for interpreting partial output and is exactly the kind of disclosure that prevents misreads.

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 behavior is front-loaded in the first sentence, followed by usage, parameter guidance, and result semantics in tight succession. Every sentence carries information, though the density is high enough that it reads as a compact spec rather than prose.

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 return-value burden and does so: it specifies the sort order, currency, truncation flag, and what is excluded from results. Combined with full parameter coverage, an agent has everything needed to call this correctly and interpret the response.

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 it by explaining the practical intent behind min_price ('skip accessories and spare parts') and by clarifying query matching semantics (words in any order, title-only). It adds usage-level meaning rather than restating field definitions.

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 ('Find the cheapest products'), the matching rule ('whose title contains every word of the query'), and the output ordering ('one list sorted by price (Toman)'). This is clearly distinguishable from sibling bn_search, which returns matches rather than a price-ranked cheapest-first list.

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 for the lowest price of X' gives an explicit when-to-use trigger, and 'Check bn_product before buying' routes the agent to a sibling for the follow-up step. It also advises raising min_price to skip accessories, which is operational guidance. No explicit when-not-to-use case is stated, so it falls just 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.

bn_productGet product detailsA
Read-onlyIdempotent

Get one product: price (Toman), stock, rating, brand, categories, spec attributes, highlights, description, images.

Use after a search or browse to check details of one id. Variable products list their variations (options only; the shop publishes no per-variation price or stock). Next: bn_reviews for buyer opinions.

ParametersJSON Schema
NameRequiredDescriptionDefault
product_idYesProduct id from bn_search, bn_find_cheapest or bn_browse, e.g. 69045.

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 new behavioral context beyond them: prices are denominated in Toman and variable products expose variation options only, with no per-variation price or stock published by the shop.

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 short sentences, front-loaded with the returned payload, then the usage condition, then the caveat. 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 no output schema, the description carries the return-value burden and does so by enumerating the fields, plus flags the variable-product limitation. 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.

Parameters3/5

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

One required parameter with 100% schema description coverage; the schema already names the id and its sources plus an example. The description adds nothing about the parameter, so the baseline of 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+resource ("Get one product") and enumerates the returned data (price, stock, rating, brand, categories, spec attributes, highlights, description, images), which distinguishes it from the sibling search/browse tools. An agent knows this is the single-id detail lookup, not a list operation.

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 after a search or browse to check details of one id" gives explicit sequencing, and "Next: bn_reviews" routes onward. It lacks an explicit when-not (e.g., don't use for bulk or discovery), but the context is clear enough.

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

bn_reviewsGet product reviewsA
Read-onlyIdempotent

Get buyer reviews of one product, newest first: rating 1-5, author, date, text.

Use to check quality or complaints. Many products carry one long generated 'summary of buyer opinions' by 'دیدگاه خریداران' instead of real reviews; treat those as marketing text. Dates are Gregorian.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoResult page of `limit`-sized pages.
limitNoMax reviews to return.
full_textNoReturn whole review texts instead of cutting them at 400 characters.
product_idYesProduct id from bn_search, bn_find_cheapest or bn_browse, e.g. 69045.

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, non-destructive, open world), so the bar is lower. The description adds genuinely useful behavioral context beyond the annotations: ordering is newest-first, dates are Gregorian, and many products carry a single generated 'summary of buyer opinions' that should be treated as marketing rather than real reviews.

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 with the core action and return shape, then the caveat about fake review summaries. Every sentence carries actionable information and nothing is redundant with the schema or annotations.

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?

No output schema exists, and the description compensates by naming the returned fields (rating, author, date, text). Combined with the data-quality warning and date-format note, an agent has everything needed to call and interpret this tool correctly.

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, full_text and product_id are fully documented in the schema. The description adds only ordering (newest first) and the returned field set, which is mild added meaning. Baseline 3 applies when the schema does the heavy lifting.

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 buyer reviews of one product'), plus ordering (newest first) and the exact fields returned (rating 1-5, author, date, text). This clearly separates it from siblings like bn_search, bn_browse and bn_product, which retrieve products rather than reviews.

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 a clear use case ('check quality or complaints') so the agent knows when this tool is appropriate. However, it does not name an alternative or state when not to use it, so it stops short of explicit routing guidance.

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. 7 tool updatesv0.1.0
    • First observedbn_brands
    • First observedbn_browse
    • First observedbn_categories
    • First observedbn_find_cheapest
    • First observedbn_product
    • First observedbn_reviews
    • First observedbn_search

TDQS

A4.2/5.0

Scored across 7 tools

Disambiguation4/5

bn_search and bn_find_cheapest both find products by query and could be confused, but descriptions explicitly differentiate them (phrase match vs. any-order word match for cheapest). bn_browse overlaps with bn_search slightly but is clearly scoped to category/brand/price filtering, and the rest (categories, brands, product, reviews) are distinct.

Naming Consistency4/5

All tools share a consistent bn_ prefix, but the suffixes mix verbs (search, browse, find_cheapest) with plain nouns (categories, brands, product, reviews). The pattern is still predictable and readable, so only a minor deviation from a strict verb_noun convention.

Tool Count5/5

Seven tools is well-scoped for a product-discovery server: two search variants, browse, two taxonomy lookups, detail, and reviews. Each tool earns its place with no redundant filler.

Completeness4/5

The discovery lifecycle is covered: find (search/cheapest/browse), navigate (categories/brands), inspect (product), and validate quality (reviews). There is no cart/order or purchase tooling, but the descriptions imply buying happens elsewhere, so gaps are minor.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    A
    maintenance
    Enables AI agents to search Digikala's catalogue, compare every seller's offers and prices, review ~30 days of price history, read customer reviews and Q&A, and surface current deals, all through read-only tools.
    23
    906 PyPI
    33
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    Enables AI agents to search and browse Asal Banoo's cosmetics, skin, hair and make-up products, compare prices, sizes and variants, check stock, ratings and reviews, read the shop's care guides and policies, and surface current deals. It is read-only, requiring no login or account, and points users to the site to complete a purchase.
    12
    602 PyPI
    2
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    Enables AI agents to compare prices across Iranian online and in-person shops, inspect each seller's offer with warranty and installment details, review roughly a year of price history, score deals, and find the cheapest shop for a whole basket. It is read-only, requires no account or API key, and runs locally for Claude, Cursor or Copilot.
    26
    1
    MIT