Endpoints: 28,729MCP servers: 18,413Payout addresses: 2,071Paid calls: 1,547Letters: 14Defects: 1,324counted 3 min ago
teppi

Server definition

Hash
sha256:16cd13015f3a692ed3ff876b1b33ecdcb45671c45f2ca65859f4eff7e3536e8c
What it is
What a remote MCP server returned when asked what it offers: 15 tools

The blob, as servednamed by its sha256

{ "instructions": "Pricewatcha turns public product URLs into structured price intelligence.\n\nWorkflow:\n1. Use get_api_status to verify the API is reachable.\n2. track_product submits a URL and waits briefly (~25s). Fast shops return status \"completed\" with product.\n3. If track_product returns status \"running\", poll get_job_status with the job_id until completed or failed.\n4. get_product / get_price_history / search_products read product-level catalog data.\n5. For continuous price updates (API key): watch_product / list_watchlist, or pass watch=true on track_product. Creating a price alert also watches the product.\n6. Price alerts: create_price_alert / list_price_alerts / get_price_alert / update_price_alert / delete_price_alert. These require a Pricewatcha API key (pwk_live_...). You can notify on any drop or rise without a numeric threshold (notify_on_drop / notify_on_rise), and optionally add min/max thresholds.\n\nRate limits (important):\n- Prefer one track at a time; avoid bursting many track_product calls. Limits are per client (~2 concurrent tracks, ~10/min, ~40/hour, ~80/day).\n- When polling get_job_status, use exponential backoff (start ~3–5s, then increase; do not poll every 1–2s). Job polls are limited (~40/min).\n- On error.code \"rate_limited\" or http_status 429: wait retry_after_seconds (or several seconds) before retrying; do not immediately retry in a tight loop.\n- Spread tracks over time rather than submitting many URLs back-to-back.\n\nProduct IDs: demo_* (samples), prod_* (all catalog products). Demo: demo_iphone_15_pro, demo_galaxy_s24.\nCatalog reads need no API key. Alert and watchlist tools require api_key. Prices are informational; merchant sites are authoritative.\n\nTool errors use structured objects: error.code, error.message, error.http_status, error.retry_recommended, error.retry_after_seconds.", "tools": [ { "description": "Create a price alert for a product. Use notify_on_drop / notify_on_rise for any price change without a numeric threshold, and/or min_threshold_price / max_threshold_price for target prices. At least one of those four settings is required. Requires a Pricewatcha API key (pwk_live_...) from https://pricewatcha.com/profile#api-keys. On failure, returns a structured error object with fields error.code, error.message, error.http_status, error.retry_recommended, and error.retry_after_seconds.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "api_key": { "description": "Pricewatcha API key (pwk_live_...)", "minLength": 1, "type": "string" }, "max_threshold_price": { "description": "Notify when the price rises to or above this value.", "exclusiveMinimum": 0, "type": "number" }, "min_threshold_price": { "description": "Notify when the price drops to or below this value.", "exclusiveMinimum": 0, "type": "number" }, "name": { "description": "Optional alert name", "maxLength": 128, "type": "string" }, "notify_email": { "description": "Send email notifications (default true)", "type": "boolean" }, "notify_on_drop": { "description": "Notify on any price drop. No threshold required.", "type": "boolean" }, "notify_on_rise": { "description": "Notify on any price increase. No threshold required.", "type": "boolean" }, "product_id": { "description": "Public product ID (prod_... or demo_...)", "minLength": 1, "type": "string" }, "webhook_url": { "description": "Optional HTTPS webhook URL", "format": "uri", "type": "string" } }, "required": [ "api_key", "product_id" ], "type": "object" }, "name": "create_price_alert", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": true, "properties": { "alert_id": { "type": "integer" }, "created_at": { "type": "string" }, "currency": { "type": "string" }, "is_active": { "type": "boolean" }, "last_triggered_at": { "type": [ "string", "null" ] }, "max_threshold_price": { "type": [ "number", "null" ] }, "min_threshold_price": { "type": [ "number", "null" ] }, "name": { "type": [ "string", "null" ] }, "notify_email": { "type": "boolean" }, "notify_on_drop": { "type": "boolean" }, "notify_on_rise": { "type": "boolean" }, "product_id": { "type": "string" }, "updated_at": { "type": "string" }, "webhook_url": { "type": [ "string", "null" ] } }, "required": [ "alert_id", "product_id", "notify_on_drop", "notify_on_rise", "currency", "notify_email", "is_active", "created_at", "updated_at" ], "type": "object" } }, { "description": "Delete a price alert. Requires a Pricewatcha API key (pwk_live_...) from https://pricewatcha.com/profile#api-keys. On failure, returns a structured error object with fields error.code, error.message, error.http_status, error.retry_recommended, and error.retry_after_seconds.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "alert_id": { "description": "Alert ID to delete", "exclusiveMinimum": 0, "type": "integer" }, "api_key": { "description": "Pricewatcha API key (pwk_live_...)", "minLength": 1, "type": "string" } }, "required": [ "api_key", "alert_id" ], "type": "object" }, "name": "delete_price_alert", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": true, "properties": { "alert_id": { "type": "integer" }, "deleted": { "const": true, "type": "boolean" } }, "required": [ "deleted", "alert_id" ], "type": "object" } }, { "description": "Check whether the Pricewatcha public API is available. Returns health and discovery metadata. On failure, returns a structured error object with fields error.code, error.message, error.http_status, error.retry_recommended, and error.retry_after_seconds.", "inputSchema": { "properties": {}, "type": "object" }, "name": "get_api_status", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": true, "properties": { "api": { "additionalProperties": true, "properties": { "agent_ready": { "type": "boolean" }, "description": { "type": "string" }, "name": { "type": "string" }, "status": { "type": "string" }, "version": { "type": "string" } }, "required": [ "name", "version", "status" ], "type": "object" }, "base_url": { "type": "string" }, "health": { "additionalProperties": true, "properties": { "service": { "type": "string" }, "status": { "type": "string" }, "version": { "type": "string" } }, "required": [ "status", "service", "version" ], "type": "object" } }, "required": [ "base_url", "health", "api" ], "type": "object" } }, { "description": "Poll an async tracking job by job_id. Returns status (queued, running, completed, or failed). On completion, product is populated; on scrape failure, error is populated (HTTP 200 job lookup — not a transport error). On failure, returns a structured error object with fields error.code, error.message, error.http_status, error.retry_recommended, and error.retry_after_seconds.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "job_id": { "description": "Job ID from track_product", "minLength": 1, "type": "string" } }, "required": [ "job_id" ], "type": "object" }, "name": "get_job_status", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": true, "properties": { "error": { "anyOf": [ { "additionalProperties": true, "properties": { "code": { "type": "string" }, "http_status": { "type": [ "number", "null" ] }, "message": { "type": "string" }, "retry_after_seconds": { "type": [ "number", "null" ] }, "retry_recommended": { "type": "boolean" } }, "required": [ "code", "message", "retry_recommended" ], "type": "object" }, { "type": "null" } ] }, "hint": { "type": "string" }, "job_id": { "type": "string" }, "product": { "anyOf": [ { "additionalProperties": true, "properties": { "currency": { "type": "string" }, "current_price": { "type": [ "number", "null" ] }, "last_checked_at": { "type": [ "string", "null" ] }, "name": { "type": "string" }, "product_id": { "type": "string" }, "product_url": { "type": "string" }, "shop": { "type": "string" }, "status": { "type": "string" } }, "required": [ "product_id", "name", "shop", "currency" ], "type": "object" }, { "type": "null" } ] }, "status": { "enum": [ "queued", "running", "completed", "failed" ], "type": "string" } }, "required": [ "job_id", "status" ], "type": "object" } }, { "description": "Get one price alert by alert_id. Requires a Pricewatcha API key (pwk_live_...) from https://pricewatcha.com/profile#api-keys. On failure, returns a structured error object with fields error.code, error.message, error.http_status, error.retry_recommended, and error.retry_after_seconds.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "alert_id": { "description": "Alert ID from create_price_alert or list_price_alerts", "exclusiveMinimum": 0, "type": "integer" }, "api_key": { "description": "Pricewatcha API key (pwk_live_...)", "minLength": 1, "type": "string" } }, "required": [ "api_key", "alert_id" ], "type": "object" }, "name": "get_price_alert", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": true, "properties": { "alert_id": { "type": "integer" }, "created_at": { "type": "string" }, "currency": { "type": "string" }, "is_active": { "type": "boolean" }, "last_triggered_at": { "type": [ "string", "null" ] }, "max_threshold_price": { "type": [ "number", "null" ] }, "min_threshold_price": { "type": [ "number", "null" ] }, "name": { "type": [ "string", "null" ] }, "notify_email": { "type": "boolean" }, "notify_on_drop": { "type": "boolean" }, "notify_on_rise": { "type": "boolean" }, "product_id": { "type": "string" }, "updated_at": { "type": "string" }, "webhook_url": { "type": [ "string", "null" ] } }, "required": [ "alert_id", "product_id", "notify_on_drop", "notify_on_rise", "currency", "notify_email", "is_active", "created_at", "updated_at" ], "type": "object" } }, { "description": "Get historical prices, aggregates (low/high/average), trend, and data points for a product. On failure, returns a structured error object with fields error.code, error.message, error.http_status, error.retry_recommended, and error.retry_after_seconds.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "product_id": { "description": "Public product ID", "minLength": 1, "type": "string" } }, "required": [ "product_id" ], "type": "object" }, "name": "get_price_history", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": true, "properties": { "average_price": { "type": [ "number", "null" ] }, "currency": { "type": "string" }, "current_price": { "type": [ "number", "null" ] }, "data_points": { "items": { "additionalProperties": false, "properties": { "date": { "type": "string" }, "price": { "type": "number" } }, "required": [ "date", "price" ], "type": "object" }, "type": "array" }, "historical_high": { "type": [ "number", "null" ] }, "historical_low": { "type": [ "number", "null" ] }, "preview": { "type": "boolean" }, "product_id": { "type": "string" }, "trend": { "enum": [ "upward", "downward", "stable", "unknown" ], "type": "string" } }, "required": [ "product_id", "currency", "data_points" ], "type": "object" } }, { "description": "Get structured product price intelligence by product_id (e.g. demo_iphone_15_pro or prod_xxx from a completed job). On failure, returns a structured error object with fields error.code, error.message, error.http_status, error.retry_recommended, and error.retry_after_seconds.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "product_id": { "description": "Public product ID", "minLength": 1, "type": "string" } }, "required": [ "product_id" ], "type": "object" }, "name": "get_product", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": true, "properties": { "currency": { "type": "string" }, "current_price": { "type": [ "number", "null" ] }, "last_checked_at": { "type": [ "string", "null" ] }, "name": { "type": "string" }, "preview": { "type": "boolean" }, "product_id": { "type": "string" }, "product_url": { "type": "string" }, "shop": { "type": "string" }, "status": { "type": "string" } }, "required": [ "product_id", "name", "shop", "currency" ], "type": "object" } }, { "description": "Check whether your account watches a product for continuous updates. Requires a Pricewatcha API key (pwk_live_...) from https://pricewatcha.com/profile#api-keys. On failure, returns a structured error object with fields error.code, error.message, error.http_status, error.retry_recommended, and error.retry_after_seconds.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "api_key": { "description": "Pricewatcha API key (pwk_live_...)", "minLength": 1, "type": "string" }, "product_id": { "description": "Public product ID (prod_... or demo_...)", "minLength": 1, "type": "string" } }, "required": [ "api_key", "product_id" ], "type": "object" }, "name": "get_watch_status", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": true, "properties": { "product_id": { "type": "string" }, "watched_at": { "type": [ "string", "null" ] }, "watching": { "type": "boolean" } }, "required": [ "product_id", "watching" ], "type": "object" } }, { "description": "List your price alerts. Optionally filter by product_id. Requires a Pricewatcha API key (pwk_live_...) from https://pricewatcha.com/profile#api-keys. On failure, returns a structured error object with fields error.code, error.message, error.http_status, error.retry_recommended, and error.retry_after_seconds.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "api_key": { "description": "Pricewatcha API key (pwk_live_...)", "minLength": 1, "type": "string" }, "product_id": { "description": "Optional public product ID filter", "minLength": 1, "type": "string" } }, "required": [ "api_key" ], "type": "object" }, "name": "list_price_alerts", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": true, "properties": { "alerts": { "items": { "additionalProperties": true, "properties": { "alert_id": { "type": "integer" }, "created_at": { "type": "string" }, "currency": { "type": "string" }, "is_active": { "type": "boolean" }, "last_triggered_at": { "type": [ "string", "null" ] }, "max_threshold_price": { "type": [ "number", "null" ] }, "min_threshold_price": { "type": [ "number", "null" ] }, "name": { "type": [ "string", "null" ] }, "notify_email": { "type": "boolean" }, "notify_on_drop": { "type": "boolean" }, "notify_on_rise": { "type": "boolean" }, "product_id": { "type": "string" }, "updated_at": { "type": "string" }, "webhook_url": { "type": [ "string", "null" ] } }, "required": [ "alert_id", "product_id", "notify_on_drop", "notify_on_rise", "currency", "notify_email", "is_active", "created_at", "updated_at" ], "type": "object" }, "type": "array" }, "count": { "type": "integer" } }, "required": [ "count", "alerts" ], "type": "object" } }, { "description": "List products your account watches for continuous price updates. Requires a Pricewatcha API key (pwk_live_...) from https://pricewatcha.com/profile#api-keys. On failure, returns a structured error object with fields error.code, error.message, error.http_status, error.retry_recommended, and error.retry_after_seconds.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "api_key": { "description": "Pricewatcha API key (pwk_live_...)", "minLength": 1, "type": "string" }, "limit": { "description": "Max items (default 50)", "maximum": 200, "minimum": 1, "type": "integer" }, "offset": { "description": "Items to skip (default 0)", "minimum": 0, "type": "integer" } }, "required": [ "api_key" ], "type": "object" }, "name": "list_watchlist", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": true, "properties": { "items": { "items": { "additionalProperties": true, "properties": { "product": { "additionalProperties": true, "properties": { "currency": { "type": "string" }, "current_price": { "type": [ "number", "null" ] }, "last_checked_at": { "type": [ "string", "null" ] }, "name": { "type": "string" }, "preview": { "type": "boolean" }, "product_id": { "type": "string" }, "product_url": { "type": "string" }, "shop": { "type": "string" }, "status": { "type": "string" } }, "required": [ "product_id", "name", "shop", "currency" ], "type": "object" }, "product_id": { "type": "string" }, "watched_at": { "type": "string" } }, "required": [ "product_id", "watched_at", "product" ], "type": "object" }, "type": "array" }, "total": { "type": "integer" } }, "required": [ "items", "total" ], "type": "object" } }, { "description": "Searches the Pricewatcha product catalog by keyword (token AND; word order does not matter). Supports minus-prefixed exclude terms: e.g. \"iPhone 15 -cover -case\" returns devices only. Returns product-level data only — not user accounts or alert settings. On failure, returns a structured error object with fields error.code, error.message, error.http_status, error.retry_recommended, and error.retry_after_seconds.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "query": { "description": "Search keywords (token AND). Supports minus-prefixed exclude terms: e.g. \"iPhone 15 -cover -case\"", "maxLength": 200, "minLength": 1, "type": "string" } }, "required": [ "query" ], "type": "object" }, "name": "search_products", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": true, "properties": { "count": { "type": "integer" }, "query": { "type": "string" }, "results": { "items": { "additionalProperties": true, "properties": { "currency": { "type": "string" }, "current_price": { "type": [ "number", "null" ] }, "name": { "type": "string" }, "preview": { "type": "boolean" }, "product_id": { "type": "string" }, "product_url": { "type": [ "string", "null" ] }, "shop": { "type": "string" }, "status": { "type": "string" } }, "required": [ "product_id", "name", "shop" ], "type": "object" }, "type": "array" } }, "required": [ "query", "count", "results" ], "type": "object" } }, { "description": "Submit a public product URL for price tracking. Waits up to ~25s server-side; fast shops return status \"completed\" with product in one call. Slow jobs return status \"running\" with job_id — poll get_job_status. On failure, returns a structured error object with fields error.code, error.message, error.http_status, error.retry_recommended, and error.retry_after_seconds.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "api_key": { "description": "Optional API key (pwk_live_...). Required for watch/refresh.", "minLength": 1, "type": "string" }, "refresh": { "description": "If true (API key required), force a re-scrape even if the URL is already in the catalog.", "type": "boolean" }, "url": { "description": "Public product page URL from a supported shop", "format": "uri", "type": "string" }, "watch": { "description": "If true (API key required), enroll the product for continuous scheduler updates.", "type": "boolean" } }, "required": [ "url" ], "type": "object" }, "name": "track_product", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": true, "properties": { "error": { "anyOf": [ { "additionalProperties": true, "properties": { "code": { "type": "string" }, "http_status": { "type": [ "number", "null" ] }, "message": { "type": "string" }, "retry_after_seconds": { "type": [ "number", "null" ] }, "retry_recommended": { "type": "boolean" } }, "required": [ "code", "message", "retry_recommended" ], "type": "object" }, { "type": "null" } ] }, "hint": { "type": "string" }, "job_id": { "type": "string" }, "product": { "anyOf": [ { "additionalProperties": true, "properties": { "currency": { "type": "string" }, "current_price": { "type": [ "number", "null" ] }, "last_checked_at": { "type": [ "string", "null" ] }, "name": { "type": "string" }, "product_id": { "type": "string" }, "product_url": { "type": "string" }, "shop": { "type": "string" }, "status": { "type": "string" } }, "required": [ "product_id", "name", "shop", "currency" ], "type": "object" }, { "type": "null" } ] }, "status": { "enum": [ "queued", "running", "completed", "failed" ], "type": "string" } }, "required": [ "job_id", "status" ], "type": "object" } }, { "description": "Remove a product from your account watchlist. Fails while an active price alert exists for the product. Requires a Pricewatcha API key (pwk_live_...) from https://pricewatcha.com/profile#api-keys. On failure, returns a structured error object with fields error.code, error.message, error.http_status, error.retry_recommended, and error.retry_after_seconds.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "api_key": { "description": "Pricewatcha API key (pwk_live_...)", "minLength": 1, "type": "string" }, "product_id": { "description": "Public product ID (prod_... or demo_...)", "minLength": 1, "type": "string" } }, "required": [ "api_key", "product_id" ], "type": "object" }, "name": "unwatch_product", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": true, "properties": { "product_id": { "type": "string" }, "watched_at": { "type": [ "string", "null" ] }, "watching": { "type": "boolean" } }, "required": [ "product_id", "watching" ], "type": "object" } }, { "description": "Update a price alert. You can switch to threshold-free notify_on_drop / notify_on_rise, change thresholds, or toggle is_active. At least one setting must remain. Requires a Pricewatcha API key (pwk_live_...) from https://pricewatcha.com/profile#api-keys. On failure, returns a structured error object with fields error.code, error.message, error.http_status, error.retry_recommended, and error.retry_after_seconds.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "alert_id": { "description": "Alert ID to update", "exclusiveMinimum": 0, "type": "integer" }, "api_key": { "description": "Pricewatcha API key (pwk_live_...)", "minLength": 1, "type": "string" }, "is_active": { "type": "boolean" }, "max_threshold_price": { "anyOf": [ { "exclusiveMinimum": 0, "type": "number" }, { "type": "null" } ], "description": "Max threshold, or null to clear." }, "min_threshold_price": { "anyOf": [ { "exclusiveMinimum": 0, "type": "number" }, { "type": "null" } ], "description": "Min threshold, or null to clear." }, "name": { "maxLength": 128, "type": "string" }, "notify_email": { "type": "boolean" }, "notify_on_drop": { "description": "Notify on any price drop. No threshold required.", "type": "boolean" }, "notify_on_rise": { "description": "Notify on any price increase. No threshold required.", "type": "boolean" }, "webhook_url": { "anyOf": [ { "format": "uri", "type": "string" }, { "type": "null" } ] } }, "required": [ "api_key", "alert_id" ], "type": "object" }, "name": "update_price_alert", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": true, "properties": { "alert_id": { "type": "integer" }, "created_at": { "type": "string" }, "currency": { "type": "string" }, "is_active": { "type": "boolean" }, "last_triggered_at": { "type": [ "string", "null" ] }, "max_threshold_price": { "type": [ "number", "null" ] }, "min_threshold_price": { "type": [ "number", "null" ] }, "name": { "type": [ "string", "null" ] }, "notify_email": { "type": "boolean" }, "notify_on_drop": { "type": "boolean" }, "notify_on_rise": { "type": "boolean" }, "product_id": { "type": "string" }, "updated_at": { "type": "string" }, "webhook_url": { "type": [ "string", "null" ] } }, "required": [ "alert_id", "product_id", "notify_on_drop", "notify_on_rise", "currency", "notify_email", "is_active", "created_at", "updated_at" ], "type": "object" } }, { "description": "Add a catalog product to your account watchlist so the price scheduler keeps updating it. Requires a Pricewatcha API key (pwk_live_...) from https://pricewatcha.com/profile#api-keys. On failure, returns a structured error object with fields error.code, error.message, error.http_status, error.retry_recommended, and error.retry_after_seconds.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "api_key": { "description": "Pricewatcha API key (pwk_live_...)", "minLength": 1, "type": "string" }, "product_id": { "description": "Public product ID (prod_... or demo_...)", "minLength": 1, "type": "string" } }, "required": [ "api_key", "product_id" ], "type": "object" }, "name": "watch_product", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": true, "properties": { "product_id": { "type": "string" }, "watched_at": { "type": [ "string", "null" ] }, "watching": { "type": "boolean" } }, "required": [ "product_id", "watching" ], "type": "object" } } ] }
Verify it yourselfcurl -s https://api.teppi.xyz/v1/evidence/sha256:16cd13015f3a692ed3ff876b1b33ecdcb45671c45f2ca65859f4eff7e3536e8c | sha256sum