Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

Khanoumi

PYPI · KHANOUMI-MCP

Unofficial read-only Khanoumi: search cosmetics and skin care, compare prices, shades, reviews.

Available components

+15 this week 79 Trust /100

Last scanned (13 hours ago)

Scores higher than 77% of PyPI servers

Category E-commerce

Trust breakdown (7 categories)

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 Security100
  • No malware found by supply-chain analysis.Pass
  • 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/khanoumi-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 Usability64
  • AI-judged instruction clarity (excellent).Pass
  • Context-footprint check failed: tool/resource definitions use about 2540 tokens (~211/item across 12 items; 12 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 Management0
  • Stability check failed: the tool surface changed between 0.1.4 and 0.3.1: 0 tool removals, 12 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 12 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
  • An AI judge read all 13 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
Changelog

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 +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.3.1 functional
  • 21 Oct 26 −15
    • Malware scan: pass → unverified ▼ security
  • 20 Oct 26 +15
    • Malware scan: unverified → pass ▲ security
  • 19 Oct 26 −15
    • Malware scan: pass → unverified ▼ security
    • Package version: 0.1.4 → 0.3.0 functional
  • 18 Oct 26 0
    • Stability: fail → unverified ▼ security
    • Tool safety: pass → unverified ▼ security
    • Capabilities: pass → unverified ▼ functional
    • Tool coverage: 100 → unverified ▼ functional
    • Package version: 0.1.4 → 0.3.0 functional
    • Package version: 0.2.0 → 0.3.0 functional
  • 16 Oct 26 +15
    • Stability: unverified → fail ▼ security
    • Tool safety: pass → unverified ▼ security
    • Malware scan: unverified → pass ▲ security
    • Stability: Stability not yet verified: we do not have a sandbox capture of the MCP schema this version of the package serves yet. security
    • Capabilities: pass → unverified ▼ functional
    • Tool coverage: 100 → unverified ▼ functional
    • Schema quality: 237 → 207 ▲ functional
    • Package version: 0.1.4 → 0.2.0 functional
  • 14 Oct 26 +15
    • Malware scan: pass → unverified ▼ security
    • Injection markers: unverified → pass ▲ security
    • First check of Judged manipulation: pass security
    • Stability: Stability not yet verified: not enough scan history yet (needs a 30-day window). security
    • Tool coverage: unverified → 100 ▲ functional
    • MCP protocol: unverified → pass ▲ functional
    • First check of Schema quality: fail functional
    • First check of Schema quality: excellent functional
    • First check of Destructive annotations: pass functional
    • First check of Schema quality: fail functional
    • First check of Tool coverage: 100 functional
    • First check of Tool coverage: 100 functional
  • 13 Oct 26 0
    • Package version: 0.1.3 → 0.1.4 functional
Diagnostics

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/khanoumi-mcp@0.3.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/khanoumi-mcp
Certificate issuer https://token.actions.githubusercontent.com
Certificate SAN https://github.com/sepehr071/khanoumi-mcp/.github/workflows/publish.yml@refs/tags/v0.3.1
Rekor log index 3390395663
Predicate type PyPI publish attestation https://docs.pypi.org/attestations/publish/v1
Subject digest sha256:0d9004cf0fe1ede2d475b31ce0461b4f87dde430a281eaf3e4e572e4f6eb4766

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 →

MCP tools · 12 exposed · ~1,993 tokens

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 →

Tool Tokens
kh_blog_search ~106

Search the Khanoumi magazine (مجله خانومی): buying guides, care routines, ingredient explainers, with links. Use when the user asks what suits them or how to use something; then find products with kh_search.

NameTypeReqDescription
pageinteger–Page number, from 1 (20 posts per page).
querystringyesTopic, Persian works best, e.g. 'شامپو ریزش مو' or 'روتین پوست چرب'.

No output schema declared.

No examples provided.

kh_brands ~92

Find brands by name (about 3,200) with their slugs, for the `brands` of kh_browse / kh_filters.

NameTypeReqDescription
limitinteger–Brands per page.
pageinteger–Page number, from 1.
query––Brand name, Persian or English, e.g. 'سیمپل' or 'cerave'. Empty = all, A-Z.

No output schema declared.

No examples provided.

kh_browse ~327

List products of a category, brand(s) or campaign tag with sorting, price range and filters. Use for "sunscreens for oily skin under 800,000 Toman". Pass at least one of category_id (kh_categories), brands (kh_brands) or tag (kh_deals); filter ids come from kh_filters. No rating or discount sort. Next: kh_product / kh_reviews.

NameTypeReqDescription
brands––Brand slugs from kh_brands / kh_filters (OR), e.g. ['simple', 'cerave'].
category_id––Category id from kh_categories or kh_search, e.g. 145 (moisturizers).
colors––Color ids from kh_filters (OR), e.g. ['3'] (red).
facets––Attribute keys from kh_filters (AND), e.g. ['facetKey.skin-type:oily'].
in_stock_onlyboolean–Only products that can be ordered now.
limitinteger–Products per page (sponsored items are left out).
max_price––Maximum payable price in Toman, e.g. 1500000.
min_price––Minimum payable price in Toman, e.g. 500000.
pageinteger–Page number, from 1.
query––Optional keyword inside the listing.
sortstring–popular = site default; cheapest / most_expensive by payable price.
tag––Campaign tag slug from kh_deals, e.g. 'festival-js' (pink box).

No output schema declared.

No examples provided.

kh_categories ~110

List Khanoumi's category tree with ids, URL paths and product counts. Use to get a category_id for kh_browse / kh_filters / kh_find_cheapest. A query searches every level; without one only levels up to max_level are listed.

NameTypeReqDescription
max_levelinteger–Deepest level to list when no query is given (1 = top level).
query––Filter on Persian name or English slug, e.g. 'ضد آفتاب' or 'shampoo'.

No output schema declared.

No examples provided.

kh_deals ~113

List today's home-page deals (daily pink box "جعبه صورتی" and other rows), biggest discount first, plus the public discount code of the current pop-up campaign. Use for "what's on sale". pink_box_ends_in_seconds = time left in the daily box. A section's `tag` lists all its products via kh_browse(tag=...); a section without a tag has only `link`. Voucher conditions are in voucher.text.

NameTypeReqDescription
limitinteger–Max deals to return.

No output schema declared.

No examples provided.

kh_filters ~242

List the filters of a category, brand, tag or search: sub-categories, brands, colors and attribute facets (skin type, hair type, ingredients, ...) with ids and counts, plus price range and stock counts. Use before kh_browse: pass brand slugs as brands, color ids as colors, facet keys as facets. Brands are cut to 40 and each group to 25 values (`omitted` = how many more); pass `group` to see one in full. price_range is on the list price before discount (min 0 = out-of-stock items).

NameTypeReqDescription
brands––Brand slugs from kh_brands / kh_filters (OR), e.g. ['simple', 'cerave'].
category_id––Category id from kh_categories or kh_search, e.g. 145 (moisturizers).
group––Only attribute groups whose name contains this, listed in full, e.g. 'نوع پوست' (skin type).
query––Keyword, alone or inside the listing.
tag––Campaign tag slug from kh_deals, e.g. 'festival-js' (pink box).

No output schema declared.

No examples provided.

kh_find_cheapest ~183

Find the cheapest in-stock products for a keyword, one flat list by payable price (Toman). Use for the lowest price of X. Drops loose matches whose title lacks a query word (match_all_words). Narrow with category_id. complete=false: matches go on past `scanned`, raise scan. Next: kh_product.

NameTypeReqDescription
category_id––Category id from kh_categories or kh_search, e.g. 145 (moisturizers).
limitinteger–Max offers to return.
match_all_wordsboolean–Keep only products whose title or brand contains every query word.
querystringyesProduct name or keyword, Persian or English, e.g. 'کرم مرطوب کننده' or 'cerave'.
scaninteger–Max search results to scan, cheapest first, 300 per request.

No output schema declared.

No examples provided.

kh_product ~141

Get one product's full record: price and discount (Toman), every shade / size / seller variant with its own price, stock and max quantity, rating, brand, categories, attributes and description. Use after kh_search / kh_browse, or to check that a shade is in stock and its price. Next: kh_reviews, kh_similar, kh_store_info (fees).

NameTypeReqDescription
full_textboolean–Do not clip description and how_to_use.
productstringyesSlug from kh_search / kh_browse (e.g. 'golden-rose-sheer-bright-lipstick-112222') or numeric id.

No output schema declared.

No examples provided.

kh_reviews ~162

Read customer comments on a product, newest first, with a verified-buyer flag and photos. Use as a quality check before recommending. Text is cut to 400 characters (ends with …) unless full_text=true. No star ratings per comment: the average is in kh_product.

NameTypeReqDescription
full_textboolean–Do not cut review text to 400 characters.
limitinteger–Reviews per page.
pageinteger–Page number, from 1, newest first.
productstringyesSlug from kh_search / kh_browse (e.g. 'golden-rose-sheer-bright-lipstick-112222') or numeric id.
with_photosboolean–Only reviews that include customer photos.

No output schema declared.

No examples provided.

kh_search ~203

Search products by keyword: price, discount and stock of each match. Also returns the best-matching categories (ids for kh_browse) and brands (slugs). Use first for "price of X". Next: kh_find_cheapest, kh_filters + kh_browse, kh_product.

NameTypeReqDescription
in_stock_onlyboolean–Only products that can be ordered now.
limitinteger–Products per page (sponsored items are left out).
max_price––Maximum payable price in Toman, e.g. 1500000.
min_price––Minimum payable price in Toman, e.g. 500000.
pageinteger–Page number, from 1.
querystringyesProduct name or keyword, Persian or English, e.g. 'کرم مرطوب کننده' or 'cerave'.
sortstring–popular = site default; cheapest / most_expensive by payable price.

No output schema declared.

No examples provided.

kh_similar ~128

List alternatives to a product (about 20) or the products the shop pairs with it, with prices and stock. Use when a product is out of stock or too expensive, or to build a routine.

NameTypeReqDescription
in_stock_onlyboolean–Only products that can be ordered now.
kindstring–similar = alternatives; complementary = products the shop pairs with it (often empty).
productstringyesSlug from kh_search / kh_browse (e.g. 'golden-rose-sheer-bright-lipstick-112222') or numeric id.

No output schema declared.

No examples provided.

kh_store_info ~186

Get Khanoumi's order rules from the official FAQ: packaging cost, shipping fees and times, returns, payment and refunds, authenticity guarantee, pink-box rules. Use for "how much is shipping", "can I return it", and the true order cost (formula in the server instructions; the fees are in the delivery answers). With topic=all and no query, answers are cut to 300 characters (end with …); pick a topic or a query, or set full_text=true, for full text.

NameTypeReqDescription
full_textboolean–Do not clip answers when topic is all.
query––Only questions or answers containing this, e.g. 'هزینه ارسال'.
topicstring–FAQ section: delivery (fees, times), returns, payment, guarantee (authenticity, expiry), ...; all = about 80 answers, clipped.

No output schema declared.

No examples provided.

Install

How do I install the Khanoumi MCP server?

Khanoumi runs locally as a PyPI package, launched with uvx khanoumi-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 · khanoumi-mcp

# add to Claude Code
claude mcp add sepehr071-khanoumi-mcp -- uvx khanoumi-mcp
Common questions

What is the Khanoumi MCP server?

Khanoumi is an MCP server listed in the public MCP registry as io.github.sepehr071/khanoumi-mcp. Unofficial read-only Khanoumi: search cosmetics and skin care, compare prices, shades, reviews. This page covers its PyPI package (khanoumi-mcp).

Is the Khanoumi MCP server safe to use?

Khanoumi scores 79 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 Khanoumi MCP server expose?

Khanoumi exposes 12 tools: kh_search, kh_find_cheapest, kh_browse, kh_filters, kh_categories, and 7 more. Their descriptions and schemas cost roughly 1,993 tokens of context every time the server is loaded.

Is the Khanoumi MCP server still maintained?

Khanoumi 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 Khanoumi MCP server under?

Khanoumi declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.