# Khanoumi (pypi · khanoumi-mcp)

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

- Trust score: 79/100 (medium)
- Change this week: +15
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-10-22

## Components

- pypi · `khanoumi-mcp`: 79/100 (this document), [markdown](https://verifymcp.io/servers/sepehr071-khanoumi-mcp/khanoumi-mcp.md), [page](https://verifymcp.io/servers/sepehr071-khanoumi-mcp/khanoumi-mcp)

## Channel facts

- Registry: `pypi`
- Package: `khanoumi-mcp`
- Version: `0.3.1`
- Transport: `stdio`

## Trust breakdown

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. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-10-22.

- **Supply Chain Security**: 100/100
  - No malware found by supply-chain analysis.
  - No known CVEs affecting this package version or its production dependencies.
  - Runs hatchling.build at install time, a recognised build step with no custom scripting around it.
  - 1 of 35 dependencies flagged as unhealthy.
- **Provenance & Transparency**: 97/100
  - Source repository is publicly reachable at the declared URL.
  - Cryptographically verified build provenance (signed, bound to sepehr071/khanoumi-mcp).
  - Clear OSI-approved license (MIT).
  - Actively maintained (last published 0 days ago).
  - Disclosure check failed: no security disclosure policy was found in the source repository.
- **Schema Quality & AI Usability**: 64/100
  - AI-judged instruction clarity (excellent).
  - 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.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 0/100
  - Stability check failed: the tool surface changed between 0.1.4 and 0.3.1: 0 tool removals, 12 breaking changes, 0 additions.
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
- **Tool Safety**: 100/100
  - No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.
  - We read all 12 captured tool definition(s), and no name or description among them implies an irreversible operation.
  - An AI judge read all 13 captured unit(s) of tool text and found none that tries to manipulate the model reading it.
- **Capabilities**: 100/100
  - Implements a current MCP spec version (2026-07-28).

## 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.

### Claude

```bash
claude mcp add sepehr071-khanoumi-mcp -- uvx khanoumi-mcp
```

### Cursor

```json
{
  "mcpServers": {
    "sepehr071-khanoumi-mcp": {
      "command": "uvx",
      "args": [
        "khanoumi-mcp"
      ]
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "sepehr071-khanoumi-mcp": {
      "command": "uvx",
      "args": [
        "khanoumi-mcp"
      ]
    }
  }
}
```

### Codex

```bash
codex mcp add sepehr071-khanoumi-mcp -- uvx khanoumi-mcp
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "sepehr071-khanoumi-mcp": {
      "type": "local",
      "command": [
        "uvx",
        "khanoumi-mcp"
      ],
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add sepehr071-khanoumi-mcp --command uvx --arg khanoumi-mcp
```

### Hermes

```yaml
mcp_servers:
  sepehr071-khanoumi-mcp:
    command: "uvx"
    args: ["khanoumi-mcp"]
```

### Netclaw

```json
{
  "McpServers": {
    "sepehr071-khanoumi-mcp": {
      "Transport": "stdio",
      "Command": "uvx",
      "Arguments": [
        "khanoumi-mcp"
      ]
    }
  }
}
```

### Vellum

```bash
assistant mcp add sepehr071-khanoumi-mcp -t stdio -c uvx -a khanoumi-mcp
```

### Other

```json
{
  "mcpServers": {
    "sepehr071-khanoumi-mcp": {
      "command": "uvx",
      "args": [
        "khanoumi-mcp"
      ]
    }
  }
}
```

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-10-22 (score 79, +15)

- [security regression] Stability: fail → unverified
- [security regression] Tool safety: pass → unverified
- [security improvement] Malware scan: unverified → pass
- [functional regression] Capabilities: pass → unverified
- [functional regression] Tool coverage: 100 → unverified
- [functional] Package version: 0.3.0 → 0.3.1

### 2026-10-21 (score 64, −15)

- [security regression] Malware scan: pass → unverified

### 2026-10-20 (score 79, +15)

- [security improvement] Malware scan: unverified → pass

### 2026-10-19 (score 64, −15)

- [security regression] Malware scan: pass → unverified
- [functional] Package version: 0.1.4 → 0.3.0

### 2026-10-18 (score 79, 0)

- [security regression] Stability: fail → unverified
- [security regression] Tool safety: pass → unverified
- [functional regression] Capabilities: pass → unverified
- [functional regression] Tool coverage: 100 → unverified
- [functional] Package version: 0.1.4 → 0.3.0
- [functional] Package version: 0.2.0 → 0.3.0

### 2026-10-16 (score 79, +15)

- [security regression] Stability: unverified → fail
- [security regression] Tool safety: pass → unverified
- [security improvement] 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.
- [functional regression] Capabilities: pass → unverified
- [functional regression] Tool coverage: 100 → unverified
- [functional improvement] Schema quality: 237 → 207
- [functional] Package version: 0.1.4 → 0.2.0

### 2026-10-14 (score 64, +15)

- [security regression] Malware scan: pass → unverified
- [security improvement] 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).
- [functional improvement] Tool coverage: unverified → 100
- [functional improvement] 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

### 2026-10-13 (score 49, 0)

- [functional] Package version: 0.1.3 → 0.1.4

## MCP tools (12)

### `kh_search` (~203 tokens)

Search products

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.

Input parameters:

- `in_stock_only` (boolean): Only products that can be ordered now.
- `limit` (integer): 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.
- `page` (integer): Page number, from 1.
- `query` (string, required): Product name or keyword, Persian or English, e.g. 'کرم مرطوب کننده' or 'cerave'.
- `sort` (string): popular = site default; cheapest / most_expensive by payable price.

### `kh_find_cheapest` (~183 tokens)

Find cheapest product

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.

Input parameters:

- `category_id`: Category id from kh_categories or kh_search, e.g. 145 (moisturizers).
- `limit` (integer): Max offers to return.
- `match_all_words` (boolean): Keep only products whose title or brand contains every query word.
- `query` (string, required): Product name or keyword, Persian or English, e.g. 'کرم مرطوب کننده' or 'cerave'.
- `scan` (integer): Max search results to scan, cheapest first, 300 per request.

### `kh_browse` (~327 tokens)

Browse a category, brand or tag

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.

Input parameters:

- `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_only` (boolean): Only products that can be ordered now.
- `limit` (integer): 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.
- `page` (integer): Page number, from 1.
- `query`: Optional keyword inside the listing.
- `sort` (string): popular = site default; cheapest / most_expensive by payable price.
- `tag`: Campaign tag slug from kh_deals, e.g. 'festival-js' (pink box).

### `kh_filters` (~242 tokens)

Filters of a listing

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).

Input parameters:

- `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).

### `kh_categories` (~110 tokens)

List categories

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.

Input parameters:

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

### `kh_brands` (~92 tokens)

Find brands

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

Input parameters:

- `limit` (integer): Brands per page.
- `page` (integer): Page number, from 1.
- `query`: Brand name, Persian or English, e.g. 'سیمپل' or 'cerave'. Empty = all, A-Z.

### `kh_deals` (~113 tokens)

Current deals and discount codes

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.

Input parameters:

- `limit` (integer): Max deals to return.

### `kh_store_info` (~186 tokens)

Shipping, returns and store rules

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.

Input parameters:

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

### `kh_blog_search` (~106 tokens)

Search the beauty blog

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.

Input parameters:

- `page` (integer): Page number, from 1 (20 posts per page).
- `query` (string, required): Topic, Persian works best, e.g. 'شامپو ریزش مو' or 'روتین پوست چرب'.

### `kh_product` (~141 tokens)

Product details

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).

Input parameters:

- `full_text` (boolean): Do not clip description and how_to_use.
- `product` (string, required): Slug from kh_search / kh_browse (e.g. 'golden-rose-sheer-bright-lipstick-112222') or numeric id.

### `kh_reviews` (~162 tokens)

Product reviews

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.

Input parameters:

- `full_text` (boolean): Do not cut review text to 400 characters.
- `limit` (integer): Reviews per page.
- `page` (integer): Page number, from 1, newest first.
- `product` (string, required): Slug from kh_search / kh_browse (e.g. 'golden-rose-sheer-bright-lipstick-112222') or numeric id.
- `with_photos` (boolean): Only reviews that include customer photos.

### `kh_similar` (~128 tokens)

Similar and complementary products

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.

Input parameters:

- `in_stock_only` (boolean): Only products that can be ordered now.
- `kind` (string): similar = alternatives; complementary = products the shop pairs with it (often empty).
- `product` (string, required): Slug from kh_search / kh_browse (e.g. 'golden-rose-sheer-bright-lipstick-112222') or numeric id.

## Diagnostics

Captured diagnostic sections: Provenance, Install scripts, Dependencies. The full working is on the page: https://verifymcp.io/servers/sepehr071-khanoumi-mcp/khanoumi-mcp#diagnostics

## Score history

- 2026-10-22: 79
- 2026-10-21: 64
- 2026-10-20: 79
- 2026-10-19: 64
- 2026-10-18: 79
- 2026-10-17: 79
- 2026-10-16: 79
- 2026-10-15: 64
- 2026-10-14: 64
- 2026-10-13: 49
- 2026-10-12: 49

## 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.

## Links

- PyPI project: https://pypi.org/project/khanoumi-mcp/
- Socket report: https://socket.dev/pypi/package/khanoumi-mcp
- Repository: https://github.com/sepehr071/khanoumi-mcp
- Changelog RSS feed: https://verifymcp.io/servers/sepehr071-khanoumi-mcp/khanoumi-mcp.xml
- Changelog JSON feed: https://verifymcp.io/servers/sepehr071-khanoumi-mcp/khanoumi-mcp.json
- HTML version of this page: https://verifymcp.io/servers/sepehr071-khanoumi-mcp/khanoumi-mcp
