MasterKala
PYPI · MASTERKALA-MCP
Unofficial read-only MasterKala: search gadgets, compare prices and specs, stock, delivery, deals.
Available components
Last scanned (11 hours ago)
Scores higher than 65% of PyPI servers
Category E-commerce
How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →
Supply Chain Security50
- Malware scan not yet available for this package.Unverified
- No known CVEs affecting this package version or its production dependencies.Pass
- Runs hatchling.build at install time, a recognised build step with no custom scripting around it. View diagnostics → Pass
- 1 of 35 dependencies flagged as unhealthy. View diagnostics → Partial
Provenance & Transparency97
- Source repository is publicly reachable at the declared URL. View diagnostics → Pass
- Cryptographically verified build provenance (signed, bound to sepehr071/masterkala-mcp). View diagnostics → Pass
- Clear OSI-approved license (MIT).Pass
- Actively maintained (last published 0 days ago).Pass
- Disclosure check failed: no security disclosure policy was found in the source repository. See how to fix → Fail
Schema Quality & AI Usability68
- AI-judged instruction clarity (excellent).Pass
- Context-footprint check failed: tool/resource definitions use about 2461 tokens (~175/item across 14 items; 14 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management13
- Stability check failed: the tool surface changed between 0.1.0 and 0.4.1: 0 tool removals, 14 breaking changes, 0 additions. See how to fix → Fail
Tool Coverage100
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 100% of tool parameters carry a description.Pass
Tool Safety100
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- We read all 14 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
- An AI judge read all 15 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
- Implements a current MCP spec version (2026-07-28).Pass
Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 22 Oct 26 0
- Malware scan: unverified → pass ▲ security
- Package version: 0.4.0 → 0.4.1 functional
- 20 Oct 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 3 to 7.
- 19 Oct 26 −15
- Malware scan: pass → unverified ▼ security
- 18 Oct 26 +15
- Stability: fail → unverified ▼ security
- Tool safety: pass → unverified ▼ security
- Malware scan: unverified → pass ▲ security
- Capabilities: pass → unverified ▼ functional
- Tool coverage: 100 → unverified ▼ functional
- Package version: 0.3.0 → 0.4.0 functional
- Package version: 0.2.2 → 0.3.0 functional
- 17 Oct 26 −15
- Malware scan: pass → unverified ▼ security
- 16 Oct 26 +9
- Stability: 0.40 → unverified ▼ security
- Tool safety: pass → unverified ▼ security
- Stability: 0.40 → fail ▼ security
- Malware scan: unverified → pass ▲ security
- Capabilities: pass → unverified ▼ functional
- Tool coverage: 100 → unverified ▼ functional
- Package version: 0.2.2 → 0.3.0 functional
- 15 Oct 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 37 to 40. That category is still filling its 30-day observation window: 11 days of observed history at the previous scan, 12 at this one. The score rises as the window fills, whether or not the server changes.
- 14 Oct 26 +21
- Malware scan: pass → unverified ▼ security
- Injection markers: unverified → pass ▲ security
- Tool coverage: unverified → 100 ▲ functional
- Stability: unverified → 0.37 ▲ functional
- MCP protocol: unverified → pass ▲ functional
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 22 Oct 2026 · Analysed pypi/masterkala-mcp@0.4.1
Provenance Verified
A signed build attestation was found and verified, binding this exact artifact to the source repository it claims to come from.
| Result | Verified |
|---|---|
| Ecosystem | pypi |
| Reason | Verified |
| Discovered via | Registry attestation endpoint |
| Source repo | sepehr071/masterkala-mcp |
| Certificate issuer | https://token.actions.githubusercontent.com |
| Certificate SAN | https://github.com/sepehr071/masterkala-mcp/.github/workflows/publish.yml@refs/tags/v0.4.1 |
| Rekor log index | 3390402410 |
| Predicate type | PyPI publish attestation https://docs.pypi.org/attestations/publish/v1 |
| Subject digest | sha256:0c79f6fe16ac0903600d2896a2f9f71c02284c2158fc516c2b5833383e68def2 |
Background: How many MCP packages publish verified provenance →
Install scripts 1 script
| Hook | Tier | Command |
|---|---|---|
| build_backend | allowlisted | hatchling.build |
Background: Why install scripts are a supply-chain risk →
Dependencies 35 packages
| Packages resolved | 35 |
|---|---|
| No linked repository | 1 |
| Tree resolution | Complete |
Background: SBOMs and build attestations, explained →
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
mk_blog_comments Blog post comments ~108
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.
| Name | Type | Req | Description |
|---|---|---|---|
| full_text | boolean | – | Return comment text uncut and all replies (default: 400 chars, 3 replies). |
| limit | integer | – | Max comment threads to return, newest first. |
| post_id | integer | yes | Blog post id from mk_blog_posts, e.g. 330. |
No output schema declared.
No examples provided.
mk_blog_posts Blog posts and buying guides ~130
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.
| Name | Type | Req | Description |
|---|---|---|---|
| category | string | – | Blog section, e.g. 'buying_guide' (راهنمای خرید) or 'comparison_review' (مقایسه و بررسی). |
| limit | integer | – | Posts per page. |
| page | integer | – | Page number, from 0, newest first. |
No output schema declared.
No examples provided.
mk_branches Physical branches ~64
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.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
mk_brands List brands ~71
List the brands MasterKala sells with their slugs (about 135). Use to get the brand slug for mk_browse / mk_filters ('anker-fa', 'mcdodo').
| Name | Type | Req | Description |
|---|---|---|---|
| query | – | – | Optional filter on the brand name, English only, e.g. 'xiaomi' or 'anker'. |
No output schema declared.
No examples provided.
mk_browse Browse a category or brand ~296
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". Pass exactly one of category_id / brand / tag_id (ids: mk_categories, mk_brands, mk_search; filter ids: mk_filters). No keyword or rating sort here: see mk_search / mk_reviews.
| Name | Type | Req | Description |
|---|---|---|---|
| brand | – | – | Brand slug from mk_brands, e.g. 'mcdodo' or 'anker-fa'. |
| category_id | – | – | Category id from mk_categories or mk_search, e.g. 606 (Bluetooth earbuds). |
| filter_ids | – | – | Filter ids from mk_filters: 'm30' brand, 'o78' color, '117' attribute. Example: ['m30', 'o52']. |
| limit | integer | – | Products per page. |
| max_price | – | – | Maximum payable price (final_price) in Toman, e.g. 5000000. |
| min_price | – | – | Minimum payable price (final_price) in Toman, e.g. 3000000. |
| page | integer | – | Page number, from 0. |
| sort | string | – | Order of the listing. In-stock items always come first. |
| tag_id | – | – | Tag id from a /tag/<id>/ link in mk_search pages, e.g. 22246. |
No output schema declared.
No examples provided.
mk_categories List categories ~75
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.
| Name | Type | Req | Description |
|---|---|---|---|
| query | – | – | Optional filter on the Persian name or English slug, e.g. 'شارژر' or 'charger'. |
No output schema declared.
No examples provided.
mk_deals Current deals ~78
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.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | – | Max deals to return. |
No output schema declared.
No examples provided.
mk_filters Filters of a category or brand ~204
List the filters of a category, brand or tag page (brands, colors, attributes) with their ids, and its price range. Use before mk_browse for a brand, color or feature filter: options map filter id -> name; pass the ids as filter_ids. Non-brand groups are cut to 40 options (`omitted` = the rest): pass `group` for all. max_price = most expensive item (Toman).
| Name | Type | Req | Description |
|---|---|---|---|
| brand | – | – | Brand slug from mk_brands, e.g. 'mcdodo' or 'anker-fa'. |
| category_id | – | – | Category id from mk_categories or mk_search, e.g. 606 (Bluetooth earbuds). |
| group | – | – | Return only this filter group, in full, e.g. 'رنگ' (color) or 'برند' (brand). |
| tag_id | – | – | Tag id from a /tag/<id>/ link in mk_search pages, e.g. 22246. |
No output schema declared.
No examples provided.
mk_find_cheapest Find cheapest product ~221
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 results, keeps items buyable online now, sorts by final_price. free_shipping = basket reaches 5,000,000 Toman (bulky items never); exact fee and date: mk_shipping. complete=false: in-stock items go past `scanned`, raise scan.
| Name | Type | Req | Description |
|---|---|---|---|
| include_accessories | boolean | – | Also keep cases, covers, screen protectors and straps made for the product (dropped by default unless the query names them). |
| limit | integer | – | Max offers to return. |
| match_all_words | boolean | – | Keep only titles that contain every word of the query. |
| query | string | yes | Product name or keyword, Persian or English, e.g. 'هندزفری بلوتوث' or 'xiaomi'. |
| scan | integer | – | Max search results to scan, 500 per request; stops early once the in-stock items end. |
No output schema declared.
No examples provided.
mk_product Product details ~130
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.
| Name | Type | Req | Description |
|---|---|---|---|
| full_text | boolean | – | Return the description uncut (default cuts at 300 chars). |
| product_id | integer | yes | MasterKala product id from mk_search / mk_browse, e.g. 24855. |
No output schema declared.
No examples provided.
mk_reviews Product reviews ~144
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`.
| Name | Type | Req | Description |
|---|---|---|---|
| full_text | boolean | – | Return review and reply text uncut (default cuts at 400 chars). |
| limit | integer | – | Max reviews to return, newest first. |
| product_id | integer | yes | MasterKala product id from mk_search / mk_browse, e.g. 24855. |
| stars | integer | – | Only reviews with this many stars (1-5); 0 = all. |
No output schema declared.
No examples provided.
mk_search Search products ~171
Search MasterKala products by keyword: price, discount and stock of each match. Use first for "price of X" / "do you have X". In-stock items come first. Also returns matching categories (ids for mk_browse) and brand/tag pages. Cheapest: mk_find_cheapest. One product: mk_product.
| Name | Type | Req | Description |
|---|---|---|---|
| in_stock_only | boolean | – | Drop items that cannot be bought online now. In-stock items come first, so an empty page means no more in-stock matches (total still counts all matches). |
| limit | integer | – | Products per page. |
| page | integer | – | Page number, from 0. |
| query | string | yes | Product name or keyword, Persian or English, e.g. 'هندزفری بلوتوث' or 'xiaomi'. |
No output schema declared.
No examples provided.
mk_shipping Delivery date and fee ~113
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; free above free_shipping_from (null = never free). same_day_seconds_left > 0: can still arrive today in Tehran. Estimates use a default Tehran address.
| Name | Type | Req | Description |
|---|---|---|---|
| product_id | integer | yes | MasterKala product id from mk_search / mk_browse, e.g. 24855. |
No output schema declared.
No examples provided.
mk_specs Specs and comparison ~107
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.
| Name | Type | Req | Description |
|---|---|---|---|
| product_ids | array | yes | 1 to 4 product ids, e.g. [27144, 20850]. |
No output schema declared.
No examples provided.
How do I install the MasterKala MCP server?
MasterKala runs locally as a PyPI package, launched with uvx masterkala-mcp. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.
pypi · masterkala-mcp
claude mcp add sepehr071-masterkala-mcp -- uvx masterkala-mcp
What is the MasterKala MCP server?
MasterKala is an MCP server listed in the public MCP registry as io.github.sepehr071/masterkala-mcp. Unofficial read-only MasterKala: search gadgets, compare prices and specs, stock, delivery, deals. This page covers its PyPI package (masterkala-mcp).
Is the MasterKala MCP server safe to use?
MasterKala scores 66 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 22 October 2026. Its build provenance is signed and verified. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.
What tools does the MasterKala MCP server expose?
MasterKala exposes 14 tools: mk_blog_posts, mk_blog_comments, mk_search, mk_find_cheapest, mk_browse, and 9 more. Their descriptions and schemas cost roughly 1,912 tokens of context every time the server is loaded.
Is the MasterKala MCP server still maintained?
MasterKala is still listed as active in the MCP registry. We last reached this channel on 22 October 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.
What licence is the MasterKala MCP server under?
MasterKala declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.