Endpoints: 28,729MCP servers: 18,413Payout addresses: 2,070Paid calls: 1,528Letters: 13Defects: 1,322counted just now
teppi

Server definition

Hash
sha256:bc85c7f777437064a0ed67d263cd1dd5e27457522851a2565b893c47178eae7b
What it is
What a remote MCP server returned when asked what it offers: 13 tools

The blob, as servednamed by its sha256

{ "instructions": null, "tools": [ { "description": "Compare multiple products side-by-side. Returns price, brand, rating, and category for each.", "inputSchema": { "properties": { "ids": { "description": "Array of product IDs to compare (2-10)", "items": { "type": "string" }, "maxItems": 10, "minItems": 2, "type": "array" } }, "required": [ "ids" ], "type": "object" }, "name": "compare_products", "outputSchema": null }, { "description": "REQUIRED deliver_to. Compare multiple products side-by-side. Always pass deliver_to=\"SG\" (or your buyer's country). Returns price, brand, rating, category, and a resolved outbound_url per product for the buyer market.", "inputSchema": { "properties": { "deliver_to": { "description": "REQUIRED. Buyer delivery country/market (ISO country code, e.g. \"SG\", \"US\").", "type": "string" }, "ids": { "description": "Array of product IDs to compare (2-10)", "items": { "type": "string" }, "maxItems": 10, "minItems": 2, "type": "array" } }, "required": [ "ids", "deliver_to" ], "type": "object" }, "name": "compare_products_v2", "outputSchema": null }, { "description": "Use this whenever a user asks about prices, wants to find the cheapest option, or asks \"what's the best price for X\" or \"where can I buy X for the lowest price\". Returns schema.org/Product entities with schema.org/AggregateOffer (lowPrice, offerCount, priceCurrency) across all merchants. BUY-74597 degraded contract: when the candidates query cannot complete inside the user-facing timeout, this tool returns a 200-OK envelope with `meta.degraded=true`, `meta.status=\"degraded\"`, `meta.emptiness_reason=\"api_error\"` with `meta.degraded_kind=\"timeout\"` (or `\"partial_timeout\"` / `\"auth_failure\"`), `meta.confidence=\"low\"`, and `meta.diagnostic.timed_out_stage=\"catalog_search\"`, with `best_price=null` and `alternatives=[]`. It never returns an unqualified empty result when the cause is timeout, auth failure, upstream exception, or circuit breaker.", "inputSchema": { "properties": { "category": { "description": "Category to filter by (e.g., \"electronics\", \"fashion\")", "type": "string" }, "country": { "description": "Alias for country_code (deprecated, use country_code)", "type": "string" }, "country_code": { "description": "Country to search in (defaults to SG). Alias: country.", "enum": [ "SG", "MY", "TH", "PH", "VN", "ID", "US" ], "type": "string" }, "deliver_to": { "description": "Treat as REQUIRED for buyer-facing use: ISO-3166 country of the END USER (e.g. \"SG\", \"US\"). Without it results are not shipping-ranked and may be undeliverable. Preferred over country_code/country.", "type": "string" }, "market": { "description": "Alias for country_code (deprecated, use country_code).", "type": "string" }, "product_name": { "description": "Product name to find best price for (e.g., \"iphone 15 pro 256gb\", \"samsung galaxy s24\")", "type": "string" }, "q": { "description": "Keyword search query — alias for product_name", "type": "string" }, "region": { "description": "Region filter - use \"us\" for United States or \"sea\" for Southeast Asia", "enum": [ "us", "sea" ], "type": "string" } }, "type": "object" }, "name": "find_best_price", "outputSchema": null }, { "description": "REQUIRED deliver_to. Use this whenever a user asks about prices, wants to find the cheapest option, or asks \"what's the best price for X\" or \"where can I buy X for the lowest price\". Always pass deliver_to=\"SG\" (or your buyer's country). Returns schema.org/Product entities with schema.org/AggregateOffer (lowPrice, offerCount, priceCurrency) across all merchants. Response includes a shopping_job_id (UUID) you can use to resume a multi-merchant price-comparison session for the buyer.", "inputSchema": { "properties": { "category": { "description": "Category to filter by (e.g., \"electronics\", \"fashion\")", "type": "string" }, "country": { "description": "Alias for country_code (deprecated, use country_code)", "type": "string" }, "country_code": { "description": "Country to search in (defaults to SG). Alias: country.", "enum": [ "SG", "MY", "TH", "PH", "VN", "ID", "US" ], "type": "string" }, "deliver_to": { "description": "REQUIRED. Buyer delivery country/market (ISO country code, e.g. \"SG\", \"US\").", "type": "string" }, "product_name": { "description": "Product name to find best price for (e.g., \"iphone 15 pro 256gb\", \"samsung galaxy s24\")", "type": "string" }, "q": { "description": "Keyword search query — alias for product_name", "type": "string" }, "region": { "description": "Region filter - use \"us\" for United States or \"sea\" for Southeast Asia", "enum": [ "us", "sea" ], "type": "string" } }, "required": [ "deliver_to" ], "type": "object" }, "name": "find_best_price_v2", "outputSchema": null }, { "description": "Find products similar to a given product using vector similarity. Returns up to 10 nearest neighbours by semantic meaning (title+description embedding). Useful for \"more like this\" recommendations.", "inputSchema": { "properties": { "limit": { "default": 10, "description": "Number of similar products to return (1-10, default 10)", "type": "integer" }, "product_id": { "description": "UUID of the source product", "type": "string" } }, "required": [ "product_id" ], "type": "object" }, "name": "find_similar", "outputSchema": null }, { "description": "Get discounted products sorted by discount percentage. Returns schema.org/Product entities with schema.org/Offer properties: price, priceCurrency, availability, originalPrice, and discountPercentage. Covers Singapore, Malaysia, Indonesia, Thailand, Vietnam, and US e-commerce. Supports currency, region (sea, us, eu, au), country (SG, US, VN, MY, ...) and category filters. BUY-74597 degraded contract: when the discount-index scan cannot complete inside the user-facing timeout, this tool returns a 200-OK envelope with `meta.status=\"degraded\"`, `meta.emptiness_reason=\"api_error\"` with `meta.degraded_kind=\"timeout\"` (or `\"partial_timeout\"` / `\"auth_failure\"`), `meta.confidence=\"low\"`, and `meta.diagnostic.timed_out_stage` (typically `offer_aggregation`). It never returns an unqualified empty result when the cause is timeout, auth failure, upstream exception, or circuit breaker. Branch on `meta.degraded === true` or `meta.status === \"degraded\"`.", "inputSchema": { "properties": { "category": { "description": "Filter deals by product category (e.g. \"Electronics\", \"Beauty\", \"home_and_kitchen\"). Handler matches against category text and category_path[1]; slug-style input is accepted. BUY-76853/BUY-83657.", "type": "string" }, "country": { "description": "Alias for country_code (deprecated, use country_code)", "type": "string" }, "country_code": { "description": "Filter by ISO country code. Alias: country.", "enum": [ "SG", "US", "VN", "TH", "MY" ], "type": "string" }, "currency": { "default": "SGD", "description": "Filter by currency code (SGD, USD, MYR, VND, THB). Defaults to SGD.", "type": "string" }, "deliver_to": { "description": "Treat as REQUIRED for buyer-facing use: ISO-3166 country of the END USER (e.g. \"SG\", \"US\"). Without it results are not shipping-ranked and may be undeliverable. Preferred over country_code/country.", "type": "string" }, "limit": { "default": 20, "description": "Number of results (max 100, default 20)", "type": "integer" }, "market": { "description": "Alias for country_code (deprecated, use country_code).", "type": "string" }, "min_discount": { "default": 10, "description": "Minimum discount percentage (default 10)", "type": "number" }, "offset": { "default": 0, "description": "Pagination offset", "type": "integer" }, "region": { "description": "Filter by region (sea, us, eu, au)", "type": "string" } }, "type": "object" }, "name": "get_deals", "outputSchema": null }, { "description": "REQUIRED deliver_to. Get discounted products sorted by discount percentage. Always pass deliver_to=\"SG\" (or your buyer's country). Returns schema.org/Product entities with schema.org/Offer properties: price, priceCurrency, availability, originalPrice, and discountPercentage. Covers Singapore, Malaysia, Indonesia, Thailand, Vietnam, and US e-commerce. Supports currency, region (sea, us, eu, au), country (SG, US, VN, MY, ...) and category filters.", "inputSchema": { "properties": { "category": { "description": "Filter deals by product category (e.g. \"Electronics\", \"Beauty\", \"home_and_kitchen\"). Handler matches against category text and category_path[1]; slug-style input is accepted. BUY-76853/BUY-83657.", "type": "string" }, "country": { "description": "Alias for country_code (deprecated, use country_code)", "type": "string" }, "country_code": { "description": "Filter by ISO country code. Alias: country.", "enum": [ "SG", "US", "VN", "TH", "MY" ], "type": "string" }, "currency": { "default": "SGD", "description": "Filter by currency code (SGD, USD, MYR, VND, THB). Defaults to SGD.", "type": "string" }, "deliver_to": { "description": "REQUIRED. Buyer delivery country/market (ISO country code, e.g. \"SG\", \"US\").", "type": "string" }, "limit": { "default": 20, "description": "Number of results (max 100, default 20)", "type": "integer" }, "min_discount": { "default": 10, "description": "Minimum discount percentage (default 10)", "type": "number" }, "offset": { "default": 0, "description": "Pagination offset", "type": "integer" }, "region": { "description": "Filter by region (sea, us, eu, au)", "type": "string" } }, "required": [ "deliver_to" ], "type": "object" }, "name": "get_deals_v2", "outputSchema": null }, { "description": "Get a specific product by its ID, including full details and current price.", "inputSchema": { "properties": { "id": { "description": "Product UUID", "type": "string" } }, "required": [ "id" ], "type": "object" }, "name": "get_product", "outputSchema": null }, { "description": "REQUIRED deliver_to. Get a specific product by its ID, including full details and current price. Always pass deliver_to=\"SG\" (or your buyer's country). Response includes a resolved outbound_url (https://…) that routes the buyer through the BuyWhere click tracker when the product has merchant offers.", "inputSchema": { "properties": { "deliver_to": { "description": "REQUIRED. Buyer delivery country/market (ISO country code, e.g. \"SG\", \"US\").", "type": "string" }, "id": { "description": "Product UUID", "type": "string" } }, "required": [ "id", "deliver_to" ], "type": "object" }, "name": "get_product_v2", "outputSchema": null }, { "description": "Ingest (upsert) a batch of products into the BuyWhere catalog. Use this to add or update product listings from any merchant/source. Requires a valid API key with ingest permissions. Accepts up to 1000 products per call with source, SKU, title, price, URL, and optional metadata.", "inputSchema": { "properties": { "products": { "description": "Array of product objects to ingest (max 1000)", "items": { "properties": { "brand": { "description": "Brand name", "type": "string" }, "category": { "description": "Product category", "type": "string" }, "country_code": { "description": "ISO country code (e.g. \"SG\", \"US\")", "type": "string" }, "currency": { "default": "SGD", "description": "Currency code (default: SGD)", "type": "string" }, "description": { "description": "Product description", "type": "string" }, "image_url": { "description": "Main product image URL", "type": "string" }, "is_active": { "description": "Whether the product is active (default: true)", "type": "boolean" }, "is_available": { "description": "Whether the product is in stock", "type": "boolean" }, "merchant_id": { "description": "Merchant identifier", "type": "string" }, "metadata": { "description": "Additional product metadata", "type": "object" }, "price": { "description": "Current price (must be >= 0)", "type": "number" }, "region": { "description": "Region identifier (e.g. \"sea\", \"us\")", "type": "string" }, "sku": { "description": "Unique stock keeping unit identifier", "type": "string" }, "title": { "description": "Product title", "type": "string" }, "url": { "description": "Product URL on the merchant site", "type": "string" } }, "required": [ "sku", "merchant_id", "title", "price", "url" ], "type": "object" }, "type": "array" }, "source": { "description": "Data source identifier (e.g. \"shopee_sg\", \"amazon_sg\", \"lazada_sg\")", "type": "string" } }, "required": [ "source", "products" ], "type": "object" }, "name": "ingest_products", "outputSchema": null }, { "description": "List top-level product categories available in the BuyWhere catalog.", "inputSchema": { "properties": { "country": { "description": "Alias for country_code (deprecated, use country_code)", "type": "string" }, "country_code": { "description": "Filter by ISO country code. Defaults to SG.", "enum": [ "SG", "US", "VN", "TH", "MY", "GB", "IN", "AU" ], "type": "string" }, "market": { "description": "Alias for country_code (deprecated, use country_code).", "type": "string" }, "region": { "description": "Region alias mapped to ISO country code.", "enum": [ "us", "sg", "my", "gb", "in", "au" ], "type": "string" } }, "type": "object" }, "name": "list_categories", "outputSchema": null }, { "description": "Search the BuyWhere product catalog by keyword. Treat deliver_to as REQUIRED for buyer-facing use (ISO-3166 country of the end user); it takes precedence over country_code/country and prevents all-market scans. Returns product records with title, description, image, price, and merchant information. Covers e-commerce platforms across Singapore, Malaysia, Indonesia, Thailand, Vietnam, and US. Use compact=true for agent-optimized responses with structured_specs, comparison_attributes, and normalized_price_usd fields. BUY-74597 degraded contract: when the catalog query cannot complete inside the user-facing timeout, this tool returns a 200-OK envelope with `meta.status=\"degraded\"`, `meta.emptiness_reason=\"api_error\"` with `meta.degraded_kind=\"timeout\"` (or `\"partial_timeout\"` / `\"auth_failure\"`), `meta.confidence=\"low\"`, and `meta.diagnostic.timed_out_stage` naming the failed stage (catalog_search / offer_aggregation / merchant_join). It never returns an unqualified empty result when the cause is timeout, auth failure, upstream exception, or circuit breaker. Agents should branch on `meta.degraded === true` (or `meta.status === \"degraded\"`) instead of treating empty `data` as no_match.", "inputSchema": { "properties": { "category": { "description": "Filter by product category name (e.g. \"Laptops\", \"Smartphones\", \"Televisions\"). Use to exclude accessories and get actual products.", "type": "string" }, "compact": { "default": false, "description": "Return agent-optimized compact shape: structured_specs, comparison_attributes, normalized_price_usd. Reduces response size ~40%. Recommended for agent tool-use.", "type": "boolean" }, "country": { "description": "Alias for country_code (deprecated, use country_code)", "type": "string" }, "country_code": { "description": "Filter by ISO country code. Also infers default currency for price filters (SG→SGD, US→USD, VN→VND, TH→THB, MY→MYR).", "enum": [ "SG", "US", "VN", "TH", "MY" ], "type": "string" }, "deliver_to": { "description": "Treat as REQUIRED for buyer-facing use: ISO-3166 country of the END USER (e.g. \"SG\", \"US\"). Without it results are not shipping-ranked and may be undeliverable. Preferred over country_code/country.", "type": "string" }, "domain": { "description": "Filter by merchant platform (e.g. lazada, shopee, amazon)", "type": "string" }, "limit": { "default": 20, "description": "Number of results (max 100, default 20)", "type": "integer" }, "market": { "description": "Alias for country_code (deprecated, use country_code).", "type": "string" }, "max_price": { "description": "Maximum price (in currency inferred from country_code, or SGD by default)", "type": "number" }, "min_price": { "description": "Minimum price (in currency inferred from country_code, or SGD by default)", "type": "number" }, "mode": { "default": "keyword", "description": "Search mode: keyword=FTS only (default, matches REST /v1/products/search), semantic=vector only, hybrid=RRF blend of FTS+vector. Falls back to keyword if vector DB or FLOWAI_EMBED_API_KEY unavailable.", "enum": [ "keyword", "semantic", "hybrid" ], "type": "string" }, "offset": { "default": 0, "description": "Pagination offset", "type": "integer" }, "q": { "description": "Keyword search query", "type": "string" }, "query": { "description": "Alias for q (accepted for agent convenience; use q). Without this, callers passing `query` get 0 rows and the reltuples-derived total — see BUY-75287.", "type": "string" }, "region": { "description": "Filter by region (sea, us, eu, au)", "type": "string" } }, "type": "object" }, "name": "search_products", "outputSchema": null }, { "description": "REQUIRED deliver_to. Search the BuyWhere product catalog by keyword. The deliver_to parameter is REQUIRED (ISO country code, e.g. \"SG\", \"US\") — it takes precedence over country_code/country and prevents all-market scans. Always pass deliver_to=\"SG\" (or your buyer's country). Returns product records with title, description, image, price, and merchant information. Covers e-commerce platforms across Singapore, Malaysia, Indonesia, Thailand, Vietnam, and US. Use compact=true for agent-optimized responses with structured_specs, comparison_attributes, and normalized_price_usd fields.", "inputSchema": { "properties": { "category": { "description": "Filter by product category name (e.g. \"Laptops\", \"Smartphones\", \"Televisions\"). Use to exclude accessories and get actual products.", "type": "string" }, "compact": { "default": false, "description": "Return agent-optimized compact shape: structured_specs, comparison_attributes, normalized_price_usd. Reduces response size ~40%. Recommended for agent tool-use.", "type": "boolean" }, "country": { "description": "Alias for country_code (deprecated, use country_code)", "type": "string" }, "country_code": { "description": "Filter by ISO country code. Also infers default currency for price filters (SG→SGD, US→USD, VN→VND, TH→THB, MY→MYR).", "enum": [ "SG", "US", "VN", "TH", "MY" ], "type": "string" }, "deliver_to": { "description": "REQUIRED. Buyer delivery country/market (ISO country code, e.g. \"SG\", \"US\").", "type": "string" }, "domain": { "description": "Filter by merchant platform (e.g. lazada, shopee, amazon)", "type": "string" }, "limit": { "default": 20, "description": "Number of results (max 100, default 20)", "type": "integer" }, "max_price": { "description": "Maximum price (in currency inferred from country_code, or SGD by default)", "type": "number" }, "min_price": { "description": "Minimum price (in currency inferred from country_code, or SGD by default)", "type": "number" }, "mode": { "default": "keyword", "description": "Search mode: keyword=FTS only (default, matches REST /v1/products/search), semantic=vector only, hybrid=RRF blend of FTS+vector. Falls back to keyword if vector DB or FLOWAI_EMBED_API_KEY unavailable.", "enum": [ "keyword", "semantic", "hybrid" ], "type": "string" }, "offset": { "default": 0, "description": "Pagination offset", "type": "integer" }, "q": { "description": "Keyword search query", "type": "string" }, "query": { "description": "Alias for q (accepted for agent convenience; use q). Without this, callers passing `query` get 0 rows and the reltuples-derived total — see BUY-75287.", "type": "string" }, "region": { "description": "Filter by region (sea, us, eu, au)", "type": "string" } }, "required": [ "deliver_to" ], "type": "object" }, "name": "search_products_v2", "outputSchema": null } ] }
Verify it yourselfcurl -s https://api.teppi.xyz/v1/evidence/sha256:bc85c7f777437064a0ed67d263cd1dd5e27457522851a2565b893c47178eae7b | sha256sum