khanoumi-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| KHANOUMI_MCP_PROXY | No | HTTP proxy for every request, e.g. http://user:pass@host:port. System proxy variables are ignored on purpose; set this if you need a proxy. Unset by default. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| kh_searchA | Search Khanoumi products by keyword: price, discount and stock of each match, sponsored items removed. Use first for "price of X" / "do you have X". Also returns the categories (ids for kh_browse) and brands (slugs) that match best. For the cheapest in-stock match use kh_find_cheapest; to filter by skin type, color or brand use kh_filters + kh_browse; shades, sellers and per-shade prices: kh_product. |
| kh_find_cheapestA | Find the cheapest in-stock products for a keyword, one flat list sorted by payable price (Toman). Use when the user wants the lowest price for X. The site sorts in-stock matches by payable
price; this drops sponsored items and, by default, loose matches whose title lacks a query
word. Narrow with category_id (kh_categories / kh_search). final_price is the cheapest shade:
check the chosen shade with kh_product. complete=false: matches go on past |
| kh_browseA | List the products of a category, brand(s) or campaign tag with sorting, price range and filters. Use for "cheapest CeraVe moisturizer", "sunscreens for oily skin under 800,000 Toman", "newest Golden Rose lipsticks", "everything in today's pink box". Pass at least one of category_id (kh_categories), brands (kh_brands) or tag (kh_deals). Filter ids (brands, colors, skin / hair type, free-from, ingredient facets) and the price range come from kh_filters. There is no rating or discount sort: check candidates with kh_product / kh_reviews. Details: kh_product. |
| kh_filtersA | List the filters of a category, brand, tag or search: sub-categories, brands, colors and attribute facets (skin type, hair type, free-from, ingredients, gender, ...) with ids and product 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 the 40 biggest and each attribute group to 25 values ( |
| kh_categoriesA | 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. Without a query only levels up to max_level are listed; with a query every level is searched. kh_search also returns the categories matching a keyword. |
| kh_brandsA | Find brands by name (about 3,200 brands) with their slugs. Use to get the brand slug for kh_browse / kh_filters |
| kh_dealsA | List today's featured deals from the Khanoumi home page (the daily pink box "جعبه صورتی" and the other product rows), biggest discount first, plus the public discount code of the current pop-up campaign. Use for "what's on sale" / "best discounts today". pink_box_ends_in_seconds is the time left in
the daily deal box. Each section's |
| kh_store_infoA | Get Khanoumi's order rules: packaging cost, shipping fees and times, returns, payment and refunds, authenticity guarantee, pink-box rules, from the official FAQ. Use for "how much is shipping", "can I return it", "how do I pay", and to compute the true cost of an order: sum(final_price x qty) + packaging_cost + shipping fee from the delivery answers (Tehran / Alborz courier vs post to other provinces; 0 when an item's badges include FreeShipping). |
| kh_blog_searchA | Search the Khanoumi magazine (مجله خانومی): buying guides, skin and hair care routines, ingredient explainers and how-tos, with links. Use when the user asks which product type suits them or how to use something: point them to the matching article, then find products with kh_search. |
| kh_productA | 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, category path, attributes (skin / hair type, key ingredients, texture, country) and the description. Use after kh_search / kh_browse when the user picks a product, or to check that the shade they want is in stock and what it costs. Reviews: kh_reviews. Alternatives: kh_similar. Fees for the order total: kh_store_info. |
| kh_reviewsA | Read customer comments on a product, newest first, with a verified-buyer flag and photos. Use as a quality check before recommending a product. Comments carry no star rating: the product's average rating and rating count are in kh_product. |
| kh_similarA | 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 / bundle around it. Complementary lists are empty for most products. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 12 tools
kh_search, kh_find_cheapest and kh_browse all return product lists, so there is genuine functional overlap, but the descriptions explicitly delineate when to use each ('Use first for price of X', 'Use when the user wants the lowest price', 'Use for cheapest CeraVe moisturizer'). The remaining tools (categories, brands, filters, product, reviews, similar, deals, blog, store info) target clearly distinct resources. Overall the boundaries are well signposted, requiring only careful reading.
Every tool uses the same kh_ prefix and snake_case, which is highly predictable. However, the verb style is mixed: some are actions (kh_search, kh_browse, kh_find_cheapest, kh_blog_search) while others are noun-only resources (kh_product, kh_reviews, kh_categories, kh_brands, kh_filters, kh_similar). This is a minor deviation from a single verb_noun pattern but stays readable and consistent in casing.
12 tools is well within the sweet spot for an e-commerce product-discovery domain. Each tool maps to a distinct capability (search, browse, filters, taxonomy lookups, product detail, reviews, alternatives, deals, blog, store policy) and none feels redundant or padded.
The surface covers the full discovery lifecycle: keyword search, category/brand browsing, filter discovery, category and brand resolution, detailed product records, reviews, alternatives, daily deals, editorial guides and store policies. Transactional operations (cart, checkout, order placement) are absent, but the server reads as a discovery/information surface rather than a purchasing one, so coverage is close to complete with only minor gaps.