Read-only price comparison for Tunisia: products, store offers, price history, deals, coupons (TND).
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Returns a buying recommendation for one Primini Tunisie product: current best price in TND, position in the price history (near the historical low, mid range, near the high), recent trend, a verdict (buy_now, wait, neutral, unknown) with its reasons and a confidence level, plus an optional comparison with a price you saw elsewhere (externalPrice, optional externalStore). productId comes from search_products.
productId from search_products or any product list.
History window in days (7..730, default 180).
Price in TND seen outside Primini Tunisie, to compare with the market.
Name of the store where externalPrice was seen (for example Mytek).
Pick your client. Values in capitals, like YOUR_TOKEN, are yours to fill in.
Run in a terminal
claude mcp add --transport http mcp https://mcp.primini.tn/mcp
Returns a buying recommendation for one Primini Tunisie product: current best price in TND, position in the price history (near the historical low, mid range, near the high), recent trend, a verdict (buy_now, wait, neutral, unknown) with its reasons and a confidence level, plus an optional comparison with a price you saw elsewhere (externalPrice, optional externalStore). productId comes from search_products.
| Argument | Type | Description |
|---|---|---|
| days | integer | History window in days (7..730, default 180). |
| productId* | integer | productId from search_products or any product list. |
| externalPrice | number | Price in TND seen outside Primini Tunisie, to compare with the market. |
| externalStore | string | Name of the store where externalPrice was seen (for example Mytek). |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"productId"
],
"properties": {
"days": {
"type": "integer",
"maximum": 730,
"minimum": 7,
"description": "History window in days (7..730, default 180)."
},
"productId": {
"type": "integer",
"maximum": 2147483647,
"description": "productId from search_products or any product list.",
"exclusiveMinimum": 0
},
"externalPrice": {
"type": "number",
"maximum": 1000000000,
"description": "Price in TND seen outside Primini Tunisie, to compare with the market.",
"exclusiveMinimum": 0
},
"externalStore": {
"type": "string",
"maxLength": 100,
"description": "Name of the store where externalPrice was seen (for example Mytek)."
}
}
}Returns a side-by-side comparison of 2 to 4 Primini Tunisie products of the same category: product summaries with best price in TND and spec rows by theme (the rows that differ plus the first ten shared ones). Inputs: productIds from search_products, get_similar_products or get_category_products.
| Argument | Type | Description |
|---|---|---|
| productIds* | array | 2 to 4 distinct productIds of one leaf category. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"productIds"
],
"properties": {
"productIds": {
"type": "array",
"items": {
"type": "integer",
"maximum": 2147483647,
"description": "productId from search_products or any product list.",
"exclusiveMinimum": 0
},
"maxItems": 4,
"minItems": 2,
"description": "2 to 4 distinct productIds of one leaf category."
}
}
}Returns up to 10 Primini Tunisie categories matching a name (leaves first), with slug, parent path and isLeaf. The slug of a leaf is the identifier accepted by get_category_products. Input: a category name in the site language.
| Argument | Type | Description |
|---|---|---|
| query* | string | Category name in the site language (e.g. "Smartphones"); case and accent insensitive. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"query"
],
"properties": {
"query": {
"type": "string",
"maxLength": 100,
"minLength": 2,
"description": "Category name in the site language (e.g. \"Smartphones\"); case and accent insensitive."
}
}
}Returns one page of products of a brand on Primini Tunisie (price in TND, price range, offers, rating, image, url), with the brand, its main categories and the price range. brandId from a brands facet; categoryId from find_category.
| Argument | Type | Description |
|---|---|---|
| page | integer | Page, from 1. |
| size | integer | Page size (default 12). |
| sort | string | Sort (default popularity). |
| brandId* | integer | brandId from a brands facet (search_products, get_category_products, get_deals). |
| maxPrice | number | Max price (TND). |
| minPrice | number | Min price (TND). |
| categoryId | integer | categoryId from find_category or this tool's categories, to keep one category. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"brandId"
],
"properties": {
"page": {
"type": "integer",
"maximum": 100,
"minimum": 1,
"description": "Page, from 1."
},
"size": {
"type": "integer",
"maximum": 50,
"minimum": 1,
"description": "Page size (default 12)."
},
"sort": {
"enum": [
"popularity",
"rating",
"price_asc",
"price_desc",
"created_desc"
],
"type": "string",
"description": "Sort (default popularity)."
},
"brandId": {
"type": "integer",
"maximum": 2147483647,
"description": "brandId from a brands facet (search_products, get_category_products, get_deals).",
"exclusiveMinimum": 0
},
"maxPrice": {
"type": "number",
"maximum": 1000000000,
"description": "Max price (TND).",
"exclusiveMinimum": 0
},
"minPrice": {
"type": "number",
"maximum": 1000000000,
"minimum": 0,
"description": "Min price (TND)."
},
"categoryId": {
"type": "integer",
"maximum": 2147483647,
"description": "categoryId from find_category or this tool's categories, to keep one category.",
"exclusiveMinimum": 0
}
}
}Returns one page of products of a Primini Tunisie category (price in TND, price range, offers, rating, image, url), with the top brands, the price range and the total. minPrice and maxPrice restrict the page to a budget; sort accepts rating, price_asc, price_desc, created_desc. slug from find_category; brandId from a brands facet.
| Argument | Type | Description |
|---|---|---|
| page | integer | Page, from 1. |
| size | integer | Page size (default 12). |
| slug* | string | Category slug from find_category. |
| sort | string | Sort (default popularity). |
| brandId | integer | brandId from a brands facet, to keep one brand. |
| maxPrice | number | Maximum price in TND (budget ceiling). |
| minPrice | number | Minimum price in TND (budget floor). |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"slug"
],
"properties": {
"page": {
"type": "integer",
"maximum": 100,
"minimum": 1,
"description": "Page, from 1."
},
"size": {
"type": "integer",
"maximum": 50,
"minimum": 1,
"description": "Page size (default 12)."
},
"slug": {
"type": "string",
"pattern": "^[a-z0-9-]+$",
"maxLength": 100,
"minLength": 1,
"description": "Category slug from find_category."
},
"sort": {
"enum": [
"popularity",
"rating",
"price_asc",
"price_desc",
"created_desc"
],
"type": "string",
"description": "Sort (default popularity)."
},
"brandId": {
"type": "integer",
"maximum": 2147483647,
"description": "brandId from a brands facet, to keep one brand.",
"exclusiveMinimum": 0
},
"maxPrice": {
"type": "number",
"maximum": 1000000000,
"description": "Maximum price in TND (budget ceiling).",
"exclusiveMinimum": 0
},
"minPrice": {
"type": "number",
"maximum": 1000000000,
"minimum": 0,
"description": "Minimum price in TND (budget floor)."
}
}
}Returns one page of products discounted on Primini Tunisie by at least the given percent versus their highest current price (price in TND, highPrice, discountPercent, image, url), with the categories and brands of the deals. categoryId from find_category; brandId from a brands facet.
| Argument | Type | Description |
|---|---|---|
| page | integer | Page, from 1. |
| size | integer | Page size (default 12). |
| brandId | integer | brandId from a brands facet, to restrict to one brand. |
| discount | number | Minimum discount percent versus the highest current price: 5, 10, 15, 30 (default 15). |
| maxPrice | number | Max price (TND). |
| minPrice | number | Min price (TND). |
| categoryId | integer | categoryId from find_category, to restrict to one category. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"page": {
"type": "integer",
"maximum": 100,
"minimum": 1,
"description": "Page, from 1."
},
"size": {
"type": "integer",
"maximum": 50,
"minimum": 1,
"description": "Page size (default 12)."
},
"brandId": {
"type": "integer",
"maximum": 2147483647,
"description": "brandId from a brands facet, to restrict to one brand.",
"exclusiveMinimum": 0
},
"discount": {
"enum": [
5,
10,
15,
30
],
"type": "number",
"description": "Minimum discount percent versus the highest current price: 5, 10, 15, 30 (default 15)."
},
"maxPrice": {
"type": "number",
"maximum": 1000000000,
"description": "Max price (TND).",
"exclusiveMinimum": 0
},
"minPrice": {
"type": "number",
"maximum": 1000000000,
"minimum": 0,
"description": "Min price (TND)."
},
"categoryId": {
"type": "integer",
"maximum": 2147483647,
"description": "categoryId from find_category, to restrict to one category.",
"exclusiveMinimum": 0
}
}
}Returns the best-price history of one Primini Tunisie product in TND: stats (min, max, avg, first, last, dataPoints, minDate, maxDate) and a {date, price} series (daily up to 90 days, weekly beyond). Inputs: productId; days 7 to 730 (default 180).
| Argument | Type | Description |
|---|---|---|
| days | integer | Window in days, 7 to 730 (default 180). |
| productId* | integer | productId from search_products or any product list. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"productId"
],
"properties": {
"days": {
"type": "integer",
"maximum": 730,
"minimum": 7,
"description": "Window in days, 7 to 730 (default 180)."
},
"productId": {
"type": "integer",
"maximum": 2147483647,
"description": "productId from search_products or any product list.",
"exclusiveMinimum": 0
}
}
}Returns one Primini Tunisie product sheet: identity, best price in TND with discount, plain-text summary, specs by theme (max 40 rows), editorial pros and cons, variants, the 5 cheapest offers, refurbished availability, coupons and url. Inputs: exactly one of productId or ean; includeSpecs false skips the specs.
| Argument | Type | Description |
|---|---|---|
| ean | string | EAN/GTIN barcode, 8 to 14 digits. |
| productId | integer | productId from search_products or any product list. |
| includeSpecs | boolean | Include specification groups (default true). |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"ean": {
"type": "string",
"pattern": "^\\d{8,14}$",
"maxLength": 14,
"minLength": 8,
"description": "EAN/GTIN barcode, 8 to 14 digits."
},
"productId": {
"type": "integer",
"maximum": 2147483647,
"description": "productId from search_products or any product list.",
"exclusiveMinimum": 0
},
"includeSpecs": {
"type": "boolean",
"description": "Include specification groups (default true)."
}
}
}Returns all store offers for one Primini Tunisie product sorted by totalPrice (price plus delivery) in TND, with store (e.g. Mytek), availability, delivery, marketplace flag and url, plus offerCount, minPrice and maxPrice. Inputs: productId from a previous result; condition, page and size are optional.
| Argument | Type | Description |
|---|---|---|
| page | integer | Page, from 1 (default 1). |
| size | integer | Per page (default 10, max 20). |
| condition | string | NEW (default) or USED (second-hand, refurbished). |
| productId* | integer | productId from search_products or any product list. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"productId"
],
"properties": {
"page": {
"type": "integer",
"maximum": 20,
"minimum": 1,
"description": "Page, from 1 (default 1)."
},
"size": {
"type": "integer",
"maximum": 20,
"minimum": 1,
"description": "Per page (default 10, max 20)."
},
"condition": {
"enum": [
"NEW",
"USED"
],
"type": "string",
"description": "NEW (default) or USED (second-hand, refurbished)."
},
"productId": {
"type": "integer",
"maximum": 2147483647,
"description": "productId from search_products or any product list.",
"exclusiveMinimum": 0
}
}
}Returns one page of coupon codes and store promotions listed on Primini Tunisie (code, title, description, type, store, endDate), site-wide or for one store. storeId from an offer or get_store; store is a name or slug.
| Argument | Type | Description |
|---|---|---|
| page | integer | Page, from 1. |
| size | integer | Coupons per page (default 20, max 50). |
| store | string | Store name or slug (e.g. "Mytek"), case and accent insensitive; ignored when storeId is given. |
| storeId | integer | storeId from an offer or get_store; preferred when known. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"page": {
"type": "integer",
"maximum": 100,
"minimum": 1,
"description": "Page, from 1."
},
"size": {
"type": "integer",
"maximum": 50,
"minimum": 1,
"description": "Coupons per page (default 20, max 50)."
},
"store": {
"type": "string",
"maxLength": 100,
"minLength": 1,
"description": "Store name or slug (e.g. \"Mytek\"), case and accent insensitive; ignored when storeId is given."
},
"storeId": {
"type": "integer",
"maximum": 2147483647,
"description": "storeId from an offer or get_store; preferred when known.",
"exclusiveMinimum": 0
}
}
}Returns products similar to one Primini Tunisie product (same category) as summaries with best price in TND, offerCount, rating and url. Inputs: productId from search_products or get_product.
| Argument | Type | Description |
|---|---|---|
| productId* | integer | productId from search_products or any product list. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"productId"
],
"properties": {
"productId": {
"type": "integer",
"maximum": 2147483647,
"description": "productId from search_products or any product list.",
"exclusiveMinimum": 0
}
}
}Returns the profile of a store listed on Primini Tunisie: website, type, city, payments, deliveries, shipping cost and threshold, return policy, logo and rating. storeId from an offer; slug or name from an offer or the user.
| Argument | Type | Description |
|---|---|---|
| slug | string | Store slug or name (e.g. "Mytek"); a name is normalised to its slug. |
| storeId | integer | storeId from an offer or get_promo_codes. Give storeId or slug, not both. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"slug": {
"type": "string",
"maxLength": 100,
"minLength": 1,
"description": "Store slug or name (e.g. \"Mytek\"); a name is normalised to its slug."
},
"storeId": {
"type": "integer",
"maximum": 2147483647,
"description": "storeId from an offer or get_promo_codes. Give storeId or slug, not both.",
"exclusiveMinimum": 0
}
}
}Returns the products a store highlights on Primini Tunisie (productId, name, price in TND, oldPrice when known, url, image). storeId from an offer; slug or name from an offer or the user.
| Argument | Type | Description |
|---|---|---|
| size | integer | Number of offers (default 12, max 30). |
| slug | string | Store slug or name (e.g. "Mytek"); a name is normalised to its slug. |
| storeId | integer | storeId from an offer or get_promo_codes. Give storeId or slug, not both. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"size": {
"type": "integer",
"maximum": 30,
"minimum": 1,
"description": "Number of offers (default 12, max 30)."
},
"slug": {
"type": "string",
"maxLength": 100,
"minLength": 1,
"description": "Store slug or name (e.g. \"Mytek\"); a name is normalised to its slug."
},
"storeId": {
"type": "integer",
"maximum": 2147483647,
"description": "storeId from an offer or get_promo_codes. Give storeId or slug, not both.",
"exclusiveMinimum": 0
}
}
}Returns a page of Primini Tunisie products for a free-text query (productId, name, brand, best price in TND, offerCount, rating, url) with brand and category facets and the price range. Covers the whole catalogue by keyword (e.g. "iPhone 15"); productId in the results is the identifier accepted by the product tools. Inputs: q from the user; brand = names from the brands facet; categoryId from the categories facet or find_category.
| Argument | Type | Description |
|---|---|---|
| q* | string | Free text, e.g. "iPhone 15". |
| page | integer | Page, from 1. |
| size | integer | Page size (default 12). |
| brand | string | Brand names (not ids), comma separated, from the brands facet. |
| maxPrice | number | Max price (TND). |
| minPrice | number | Min price (TND). |
| categoryId | integer | Numeric categoryId to restrict the search, taken from the `categories` facet or from find_category. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"q"
],
"properties": {
"q": {
"type": "string",
"maxLength": 200,
"minLength": 2,
"description": "Free text, e.g. \"iPhone 15\"."
},
"page": {
"type": "integer",
"maximum": 100,
"minimum": 1,
"description": "Page, from 1."
},
"size": {
"type": "integer",
"maximum": 50,
"minimum": 1,
"description": "Page size (default 12)."
},
"brand": {
"type": "string",
"maxLength": 100,
"minLength": 1,
"description": "Brand names (not ids), comma separated, from the brands facet."
},
"maxPrice": {
"type": "number",
"maximum": 1000000000,
"description": "Max price (TND).",
"exclusiveMinimum": 0
},
"minPrice": {
"type": "number",
"maximum": 1000000000,
"minimum": 0,
"description": "Min price (TND)."
},
"categoryId": {
"type": "integer",
"maximum": 2147483647,
"description": "Numeric categoryId to restrict the search, taken from the `categories` facet or from find_category.",
"exclusiveMinimum": 0
}
}
}We read every tool's name, description and inputs the way the model will, looking for instructions hidden from you. A clean result means no warning signs, not a guarantee. Scanned Nov 10, 2026.