io.github.pricewatcha/pricewatcha
Measured conclusion: Deep-tested. L2 outcome: tools_ok.
Track prices & price history on any online shop, with alerts and an API
| Author | io.github.pricewatcha |
|---|---|
| Access | remote |
| Publisher key required | No |
| Measured state | Deep-tested |
| L1 liveness | alive |
| L1 latency | 256 ms |
| Last measured | 2026-10-24 |
Add to your agent
Copy this into your MCP client config:
{
"mcpServers": {
"pricewatcha": {
"url": "https://mcp.pricewatcha.com",
"transport": "streamable-http"
}
}
}
Measured tools (15)
get_api_statusread-onlyCheck 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.
Hints: read-only yes · destructive no · idempotent yes · open-world no
track_productSubmit 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.
Parameters:
url(required) — string — Public product page URL from a supported shopwatch— boolean — If true (API key required), enroll the product for continuous scheduler updates.api_key— string — Optional API key (pwk_live_...). Required for watch/refresh.refresh— boolean — If true (API key required), force a re-scrape even if the URL is already in the catalog.
Hints: read-only no · destructive no · idempotent no · open-world yes
get_job_statusread-onlyPoll 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.
Parameters:
job_id(required) — string — Job ID from track_product
Hints: read-only yes · destructive no · idempotent yes · open-world no
get_productread-onlyGet 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.
Parameters:
product_id(required) — string — Public product ID
Hints: read-only yes · destructive no · idempotent yes · open-world no
get_price_historyread-onlyGet 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.
Parameters:
product_id(required) — string — Public product ID
Hints: read-only yes · destructive no · idempotent yes · open-world no
search_productsread-onlySearches 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.
Parameters:
query(required) — string — Search keywords (token AND). Supports minus-prefixed exclude terms: e.g. "iPhone 15 -cover -case"
Hints: read-only yes · destructive no · idempotent yes · open-world no
create_price_alertCreate 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.
Parameters:
api_key(required) — string — Pricewatcha API key (pwk_live_...)product_id(required) — string — Public product ID (prod_... or demo_...)name— string — Optional alert namewebhook_url— string — Optional HTTPS webhook URLnotify_email— boolean — Send email notifications (default true)notify_on_drop— boolean — Notify on any price drop. No threshold required.notify_on_rise— boolean — Notify on any price increase. No threshold required.max_threshold_price— number — Notify when the price rises to or above this value.min_threshold_price— number — Notify when the price drops to or below this value.
Hints: read-only no · destructive no · idempotent no · open-world yes
list_price_alertsread-onlyList 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.
Parameters:
api_key(required) — string — Pricewatcha API key (pwk_live_...)product_id— string — Optional public product ID filter
Hints: read-only yes · destructive no · idempotent yes · open-world no
get_price_alertread-onlyGet 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.
Parameters:
api_key(required) — string — Pricewatcha API key (pwk_live_...)alert_id(required) — integer — Alert ID from create_price_alert or list_price_alerts
Hints: read-only yes · destructive no · idempotent yes · open-world no
update_price_alertdestructiveUpdate 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.
Parameters:
api_key(required) — string — Pricewatcha API key (pwk_live_...)alert_id(required) — integer — Alert ID to updatename— stringis_active— booleanwebhook_urlnotify_email— booleannotify_on_drop— boolean — Notify on any price drop. No threshold required.notify_on_rise— boolean — Notify on any price increase. No threshold required.max_threshold_price— Max threshold, or null to clear.min_threshold_price— Min threshold, or null to clear.
Hints: read-only no · destructive yes · idempotent yes · open-world yes
delete_price_alertdestructiveDelete 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.
Parameters:
api_key(required) — string — Pricewatcha API key (pwk_live_...)alert_id(required) — integer — Alert ID to delete
Hints: read-only no · destructive yes · idempotent yes · open-world no
watch_productAdd 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.
Parameters:
api_key(required) — string — Pricewatcha API key (pwk_live_...)product_id(required) — string — Public product ID (prod_... or demo_...)
Hints: read-only no · destructive no · idempotent yes · open-world yes
unwatch_productdestructiveRemove 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.
Parameters:
api_key(required) — string — Pricewatcha API key (pwk_live_...)product_id(required) — string — Public product ID (prod_... or demo_...)
Hints: read-only no · destructive yes · idempotent yes · open-world no
list_watchlistread-onlyList 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.
Parameters:
api_key(required) — string — Pricewatcha API key (pwk_live_...)limit— integer — Max items (default 50)offset— integer — Items to skip (default 0)
Hints: read-only yes · destructive no · idempotent yes · open-world no
get_watch_statusread-onlyCheck 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.
Parameters:
api_key(required) — string — Pricewatcha API key (pwk_live_...)product_id(required) — string — Public product ID (prod_... or demo_...)
Hints: read-only yes · destructive no · idempotent yes · open-world no
Measured by MCPYP probing. Untested fields are omitted, never estimated. Listing is always free; MCPYP never proxies calls or stores user tokens.