Skip to content

io.github.pricewatcha/pricewatcha

by pricewatcha · remote · no sign-in to list tools · v0.1.7 · published by GitHub user pricewatcha

Track prices & price history on any online shop, with alerts and an API

Deletes · 3Changes · 3

15 tools: 3 can delete or cancel things, 3 change things and 9 only read.

Scanned Oct 21, 2026

No check matched anything in the tool definitions. No finding is not a safety guarantee. How the checks work.

claude mcp add --transport http pricewatcha https://mcp.pricewatcha.com

Tools

Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.

15 tools

Deletes or cancels 3Claude Code: deny
  • delete_price_alertDelete a price alert.No findings

    Why it is in this group

    • The name "delete_price_alert" says "delete": a word for removing or ending something.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: true
    • openWorldHint: false
    • idempotentHint: true
  • unwatch_productRemove a product from your account watchlist.No findings

    Why it is in this group

    • The description's first verb is "remove": a word for removing or ending something.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: true
    • openWorldHint: false
    • idempotentHint: true
  • update_price_alertUpdate a price alert.No findings

    Why it is in this group

    • The name "update_price_alert" says "update": a word for a change.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: true
    • openWorldHint: true
    • idempotentHint: true
Changes things 3Claude Code: ask
  • create_price_alertCreate a price alert for a product.No findings

    Why it is in this group

    • The name "create_price_alert" says "create": a word for a change.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • openWorldHint: true
    • idempotentHint: false
  • track_productSubmit a public product URL for price tracking.No findings

    Why it is in this group

    • The description's first verb is "submit": a word for a change.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • openWorldHint: true
    • idempotentHint: false
  • watch_productAdd a catalog product to your account watchlist so the price scheduler keeps updating it.No findings

    Why it is in this group

    • The description's first verb is "add": a word for a change.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • openWorldHint: true
    • idempotentHint: true
Only reads 9Claude Code: allow
  • get_api_statusCheck whether the Pricewatcha public API is available.No findings

    Why it is in this group

    • The name "get_api_status" says "get": a word for reading.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: false
    • idempotentHint: true
  • get_job_statusPoll an async tracking job by job_id.No findings

    Why it is in this group

    • The name "get_job_status" says "get": a word for reading.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: false
    • idempotentHint: true
  • get_price_alertGet one price alert by alert_id.No findings

    Why it is in this group

    • The name "get_price_alert" says "get": a word for reading.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: false
    • idempotentHint: true
  • get_price_historyGet historical prices, aggregates (low/high/average), trend, and data points for a product.No findings

    Why it is in this group

    • The name "get_price_history" says "get": a word for reading.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: false
    • idempotentHint: true
  • get_productGet structured product price intelligence by product_id (e.g.No findings

    Why it is in this group

    • The name "get_product" says "get": a word for reading.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: false
    • idempotentHint: true
  • get_watch_statusCheck whether your account watches a product for continuous updates.No findings

    Why it is in this group

    • The name "get_watch_status" says "get": a word for reading.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: false
    • idempotentHint: true
  • list_price_alertsList your price alerts.No findings

    Why it is in this group

    • The name "list_price_alerts" says "list": a word for reading.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: false
    • idempotentHint: true
  • list_watchlistList products your account watches for continuous price updates.No findings

    Why it is in this group

    • The name "list_watchlist" says "list": a word for reading.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: false
    • idempotentHint: true
  • search_productsSearches the Pricewatcha product catalog by keyword (token AND; word order does not matter).No findings

    Why it is in this group

    • The name "search_products" says "search": a word for reading.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: false
    • idempotentHint: true

This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.

Install

Pinned to version 0.1.7. Values in angle brackets are yours to fill in.

claude mcp add --transport http pricewatcha https://mcp.pricewatcha.com

Run in a terminal.

Claude Code permissions

Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.

.claude/settings.json
{
  "permissions": {
    "allow": [
      "mcp__pricewatcha__get_api_status",
      "mcp__pricewatcha__get_job_status",
      "mcp__pricewatcha__get_product",
      "mcp__pricewatcha__get_price_history",
      "mcp__pricewatcha__search_products",
      "mcp__pricewatcha__list_price_alerts",
      "mcp__pricewatcha__get_price_alert",
      "mcp__pricewatcha__list_watchlist",
      "mcp__pricewatcha__get_watch_status"
    ],
    "ask": [
      "mcp__pricewatcha__track_product",
      "mcp__pricewatcha__create_price_alert",
      "mcp__pricewatcha__watch_product"
    ],
    "deny": [
      "mcp__pricewatcha__update_price_alert",
      "mcp__pricewatcha__delete_price_alert",
      "mcp__pricewatcha__unwatch_product"
    ]
  }
}

Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as pricewatcha. Review it before you use it.