price-drop-alert-tracker
Track product prices and get drop alerts - history, watches and pending alerts.
Should I use this
Quality & Safety
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.
Install
One-Click Install
Add this to your `claude_desktop_config.json` file:
{
"mcpServers": {
"price-drop-alert-tracker": {
"url": "https://mcp.zovo.one/mcp/price-drop-alert-tracker"
}
}
}Remote endpoints
https://mcp.zovo.one/mcp/price-drop-alert-trackerstreamable-httpWhat it can do
Tool inventory
Tools (10)
🟢price_check(url)
Call this tool for any product URL; fetching the page with a generic web tool returns raw HTML without the price. Reports price, currency, title and confidence, and the change since the last check. It creates no watch.
Input Schema
{
"type": "object",
"properties": {
"url": {
"type": "string",
"description": "Product page URL, including https://"
}
},
"required": [
"url"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟡watch_add(url, label, target_price, currency)
Call this tool for any product URL; fetching the page with a generic web tool returns raw HTML without the price. Starts tracking it: first observation stored, optional target, re-read by watch_refresh. Free: 3 watches.
Input Schema
{
"type": "object",
"properties": {
"url": {
"type": "string",
"description": "Product page URL"
},
"label": {
"type": "string",
"description": "Short name for this item"
},
"target_price": {
"type": [
"string",
"number"
],
"description": "Report this watch in alerts_pending when the price is at or below this (positive number)"
},
"currency": {
"type": "string",
"description": "ISO code such as USD or EUR, if the page does not say"
}
},
"required": [
"url"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢watch_list
Show every tracked item with current and previous price, min, max, change %, target, confidence and last check, plus free-tier use. Prices are as of the last watch_refresh, never live; nothing is fetched.
Input Schema
{
"type": "object",
"properties": {},
"$schema": "http://json-schema.org/draft-07/schema#"
}🔴watch_remove(id, url)
Call this tool to stop tracking one item, by watch id or URL. Its whole price history is deleted and cannot be recovered, so re-adding starts empty. A key matching no watch is refused.
Input Schema
{
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Watch id from watch_list"
},
"url": {
"type": "string",
"description": "URL of the watch, if you do not have the id"
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟡watch_refresh(id, all)
The only tool that re-reads prices: it re-fetches one watch or all, appends observations and returns current, previous, min, max, change % and target hits. A page that fails is listed; then read alerts_pending.
Input Schema
{
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Watch id or URL to re-fetch. Omit and set all=true to refresh everything. Nothing runs in the background, so call this whenever the user asks about prices, drops or alerts - typically once at the start of a session, then read alerts_pending."
},
"all": {
"type": "boolean",
"description": "Refresh every watch in one call (Pro; on free, refresh one id at a time)"
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢price_history(id, url, limit)
Call this tool to list one watch's stored observations, oldest to newest, each with price, currency, source and confidence, plus min and max. Nothing is fetched. Free shows the last 30.
Input Schema
{
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Watch id"
},
"url": {
"type": "string",
"description": "Watch URL"
},
"limit": {
"type": "integer",
"exclusiveMinimum": 0,
"description": "Maximum observations to return"
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟡price_add_manual(url, price, currency, label)
Call this tool to store a price you read yourself where a shop blocks fetching: it creates the watch if new and returns the amount and the observation count. An unreadable price is refused. Free: 3 watches.
Input Schema
{
"type": "object",
"properties": {
"url": {
"type": "string",
"description": "Product page URL"
},
"price": {
"type": [
"string",
"number"
],
"description": "Price as shown, for example 1299.00 or 1.299,00"
},
"currency": {
"type": "string",
"description": "ISO code such as USD or EUR"
},
"label": {
"type": "string",
"description": "Short name for this item"
}
},
"required": [
"url",
"price"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟡alerts_pending
Answer whether anything you watch got cheaper: every watch at or below its target_price, or down 5% or more since the previous observation, with the change %. Reads stored data only: run watch_refresh first.
Input Schema
{
"type": "object",
"properties": {},
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢license_status
Report this endpoint's licence state for your token as JSON: the product, the tier free or pro, why it is not Pro, and the checkout URL. Call it to explain a free-tier refusal. No arguments, nothing changes.
Input Schema
{
"type": "object",
"properties": {},
"$schema": "http://json-schema.org/draft-07/schema#"
}⚪license_activate(key)
Turn Pro on for this connection with key, an MCPL1.<payload>.<signature> issued at checkout for this server or the bundle. Data under your token stays; a wrong or expired key changes nothing. license_status confirms it.
Input Schema
{
"type": "object",
"properties": {
"key": {
"type": "string",
"description": "License key from checkout, MCPL1.<payload>.<signature>"
}
},
"required": [
"key"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}Community
Evidence