Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Beschreibung vom Entwickler (englisches Original)
Track product prices and get drop alerts - history, watches and pending alerts.
Diese drei werden nie zu einer Punktzahl zusammengefasst: Meinungen, Messungen und Beliebtheit sind verschiedene Dinge.
Für diesen Server haben wir noch keine Zusammenfassung in einfacher Sprache geschrieben. Unten stehen die Fakten, die wir aus der Registry gelesen haben.
Wähle die KI-App, die du nutzt, und kopiere die Einstellungen.
AuthorizationAls geheim markierte Werte sind Schlüssel zu deinem Konto. Gib sie nie weiter und füge sie nie in einen Chat ein.
Du brauchst
Welche App nutzt du?
Wähle oben deine App. Wir merken sie uns, damit der Button beim nächsten Mal „In … installieren“ anzeigt.
Diese Adresse braucht einen Schlüssel in einem Header der Anfrage, und das Menü zum Hinzufügen von Connectors kann ihn nicht setzen. Nutze stattdessen Claude Code, Cursor oder VS Code.
Führe das in deinem Terminal aus
claude mcp add --transport http price-drop-alert-tracker https://mcp.zovo.one/mcp/price-drop-alert-tracker --header 'Authorization: your-value'Trag die leeren Werte ein, bevor du ihn startest.
In .cursor/mcp.json in deinem Projekt oder in ~/.cursor/mcp.json einfügen
{
"mcpServers": {
"price-drop-alert-tracker": {
"url": "https://mcp.zovo.one/mcp/price-drop-alert-tracker",
"headers": {
"Authorization": "your-value"
}
}
}
}Dein Browser fragt, ob er die App öffnen darf, dann zeigt die App die Einstellungen und bittet dich um Bestätigung. Schlüsselwerte bleiben leer, damit du sie selbst einträgst.
In .vscode/mcp.json in deinem Projekt einfügen
{
"servers": {
"price-drop-alert-tracker": {
"type": "http",
"url": "https://mcp.zovo.one/mcp/price-drop-alert-tracker",
"headers": {
"Authorization": "your-value"
}
}
}
}Dein Browser fragt, ob er die App öffnen darf, dann zeigt die App die Einstellungen und bittet dich um Bestätigung. Schlüsselwerte bleiben leer, damit du sie selbst einträgst.
Diese Adresse braucht einen Schlüssel in einem Header der Anfrage, und das Menü zum Hinzufügen von Connectors kann ihn nicht setzen. Nutze stattdessen Claude Code, Cursor oder VS Code.
Deine Auswahl bleibt in einem Cookie auf diesem Gerät; kein Konto nötig.
Authorization geheim erforderlich HTTP headerDiese Einstellungen werden aus dem Registry-Eintrag des Entwicklers erzeugt. Wenn in der README etwas anderes steht, folge der README.
Tool-Namen und -Beschreibungen genau so, wie der Server sie am 8. Nov. 2026 gemeldet hat. Geschrieben hat sie der Entwickler, nicht wir; wir zeigen sie als reinen Text.
price_checkCall 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.
watch_addCall 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.
watch_listShow 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.
watch_removeCall 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.
watch_refreshThe 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.
price_historyCall 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.
price_add_manualCall 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.
alerts_pendingAnswer 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.
license_statusReport 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.
license_activateTurn Pro on for this connection with key, an MCPL1. . 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.
Wir prüfen Informationen, die jeder sehen kann; den Code haben wir nicht gelesen. Checks, die nicht zutreffen, werden nicht mitgezählt. · Geprüft am 9. Nov. 2026
Der Registry-Name wurde mit dem GitHub-Konto theluckystrike bestätigt, dem das Repo gehört
Dieses Repo haben wir noch nicht von GitHub gelesen
Dieses Repo haben wir noch nicht von GitHub gelesen
Antwort in 502 ms (HTTP 200)
Keine Anmeldung nötig
Wir haben 10 Tool-Beschreibungen gelesen und keine versteckten Anweisungen an die KI gefunden
Verglichen mit allen aktiven Servern dieser Kategorie in der Registry. Sterne zählen nur, wenn dem Herausgeber das Repo gehört.
Er hat 3 von 3 zutreffenden Basischecks bestanden. Den Code haben wir nicht gelesen. Bevor du einen Schlüssel oder Token hinzufügst, sieh nach, welche Zugriffe der Server verlangt, und nutze einen Schlüssel, der nur die Berechtigungen hat, die du brauchst.
Das musst du eintragen: Authorization
Er läuft in der Cloud des Entwicklers. Du verbindest dich übers Internet, ohne etwas zu installieren, aber was du sendest, läuft über die Server des Entwicklers.
Das GitHub-Repo wurde zuletzt – geändert, und die neueste Version (0.23.2) kam vor 43 Tagen in die Registry.
Apps, die MCP unterstützen, etwa Claude Desktop, Claude Code, Cursor und VS Code. Er verbindet sich per URL, also funktionieren auch Apps, die Remote-MCP-Server akzeptieren, zum Beispiel ChatGPT im Entwicklermodus.
In derselben Kategorie: Spec Driven Development, Remote Desktop Commander, CloudGPU MCP
Server derselben Kategorie von anderen Entwicklern, sortiert nach Sternen.
So liest du eine Karte:↓ Downloads pro Wochei★ GitHub-SterneiDrei Säulen: Bewertungen · Checks · NutzungiAktualisiert = neueste Version in der Registry veröffentlichti
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
Rent a per-minute GPU from your MCP client, run a job, download results, shut it down.
Unverändert aus dem Repo des Entwicklers übernommen. PopNx MCP hat den Inhalt weder geprüft noch empfiehlt es ihn. HTML, Bilder und Skripte wurden entfernt. Links führen von dieser Website weg.
Featured on [Awesome MCP Servers](https://mcpservers.org) - directory listing | live hosted endpoint, free tier, no signup.
Ask your assistant what something costs right now. Point it at any product page and it reads the price off the page, remembers it, and tells you next time whether the price moved, how far, and whether it reached the number you were waiting for. It works on ordinary shop pages by reading the structured data most stores already publish (JSON-LD, Open Graph, microdata) and falling back to the visible price when they do not. When a large retailer blocks automated requests it says so plainly and lets you record the price yourself so the history stays intact. Everything is stored in a JSON file on your own machine.
Built by theluckystrike.
In the [official MCP Registry](https://registry.modelcontextprotocol.io/v0.1/servers/io.github.theluckystrike%2Fprice-tracker-drop-alert-watch/versions/latest) (io.github.theluckystrike/price-tracker-drop-alert-watch).
Watch any product page for price drops from chat, no scraping service, no account, all local.
npm publish for @theluckystrike/mcp-price-tracker is pending. Until then, the .mcpb one-click bundle or a clone+build is the working path, both are verified below.
One-click (.mcpb): download price-tracker.mcpb from the latest release and double-click it in Claude Desktop: https://github.com/theluckystrike/mcp-servers/releases/latest
(claude_desktop_config.json):
{
"mcpServers": { "price-tracker": { "command": "npx", "args": ["-y", "@theluckystrike/mcp-price-tracker"] } } }
Claude Code:
claude mcp add price-tracker -- npx -y @theluckystrike/mcp-price-tracker
(.cursor/mcp.json):
{
"mcpServers": { "price-tracker": { "command": "npx", "args": ["-y", "@theluckystrike/mcp-price-tracker"] } } }
The npx form above starts working the moment the package is published. Until then, use the .mcpb bundle above, or build from source with exactly these three commands:
git clone https://github.com/theluckystrike/mcp-servers.git && cd mcp-servers
npm install npm run build -w packages/mcp-license -w servers/price-tracker
Then point your client's command at node with one arg: the absolute path to servers/price-tracker/dist/index.js.
To run in Pro mode set MCP_LICENSE_KEY in the same config block, or call license_activate once with your key.
| Tool | What it does |
|---|---|
price_check | Fetch a page now; returns price, currency, title, extraction confidence and the change against the last stored observation for that URL. No watch needed. |
watch_add | Start tracking a URL. Stores the first observation. Optional label, target_price, currency. |
watch_list | Every watch with current price, min, max, change, target, confidence and source. |
watch_remove | Stop tracking, by id or url. |
watch_refresh | Re-fetch one watch (id) or all of them (all: true); appends observations and returns current, previous, min, max, change % and target-hit flags. This is the only thing that checks prices. |
price_history | Stored observations for one watch, oldest first, optional limit. |
price_add_manual | Record a price you read yourself, for shops that block bots. Creates the watch if needed. |
alerts_pending | Watches whose latest price is at or below target, or which dropped 5% or more since the previous observation. Free. |
license_status | Free or Pro, and where to upgrade. |
license_activate | Activate a Pro key. Verified offline. |
Resource: prices://watches - JSON of every watch with its latest price.
Prompt: check_prices - refreshes every watch and summarises the drops and target hits in one command.
| You say | Tool |
|---|---|
| "What does this cost right now: \ ?" | price_check |
| "Watch that page and alert me if it goes under 40." | watch_add |
| "Show me everything I'm watching and whether anything dropped." | watch_refresh (all) then watch_list |
| "Stop tracking that laptop, I bought it elsewhere." | watch_remove |
| "Refresh my watches." | watch_refresh |
| "What's the price history on the bookshelf I'm watching?" | price_history |
| "I checked myself, it's 39.99 GBP in-store, log that." | price_add_manual |
| "Has anything I'm watching hit its target or dropped a lot?" | alerts_pending |
| "Am I on the free plan or Pro?" | license_status |
| "Here's my license key, activate it." | license_activate |
A real run against books.toscrape.com, from docs/USER_VALUE_R2.md, with WebFetch/WebSearch disallowed so the price-tracker's own tools had to answer:
You: What does this cost right now: https://books.toscrape.com/catalogue/...?
price_check { url: "https://books.toscrape.com/catalogue/..." } -> price 51.77, currency GBP, source regex-fallback, confidence low
Assistant: GBP 51.77. Confidence: low (regex-fallback) -- this page has no structured price data, so I read it from the visible text.
The confidence label is not decoration: books.toscrape.com carries no JSON-LD or microdata, so this is the one case in testing where the regex fallback was the only path to a number, and the model relayed the "low" label to the user unprompted rather than stating 51.77 as a fact.
There is no scheduler and no daemon. A watch is a stored history, not a subscription: prices are re-read only when watch_refresh runs, and alerts_pending reports on what is already stored. The working pattern is to say "refresh my watches" at the start of a session (or run the check_prices prompt), then ask what dropped.
| Free | Pro ($19 one-time) | |
|---|---|---|
price_check | Unlimited | Unlimited |
alerts_pending | Yes, unlimited | Yes, unlimited |
| Watches | 3 | Unlimited |
| History per watch | Last 30 observations | Full history |
watch_refresh one item | Yes | Yes |
watch_refresh all at once | No | Yes |
price_add_manual | Yes | Yes |
| Redirect check and extraction confidence | Yes | Yes |
Get Pro - $19 for this server, $39 for every server, lifetime.
In order: JSON-LD Product/Offer (price, priceCurrency, lowPrice), microdata itemprop="price", Open Graph og:price:amount / product:price:amount, meta itemprop, data-price attributes, common price class and id hints (including Amazon's a-offscreen), and finally a regex over the visible text of the first 200 KB. European and US separators are both understood, so 1.299,00 EUR and 1,299.00 USD both become 1299.00.
Prices are stored as decimal strings in the major unit with a . decimal separator and no grouping, for example "1299.00". Timestamps are ISO 8601 UTC.
Every reading carries a confidence: high for JSON-LD, microdata, meta itemprop and Open Graph; medium for data-price attributes and price class or id hints; low for the regex fallback. A low reading on a page with no product title is reported but never stored.
Where a page describes several products in JSON-LD (recommendations, "customers also bought"), the offers of one product are never pooled with another's: the product whose name matches the page title wins, otherwise the first product carrying offers. Crossed-out and previous prices ( , , , and classes such as old-price, was, compare-at-price, list-price, rrp) are skipped, so a struck 199 next to a live 99 reports 99. An ISO code written next to the number ("$10 USD") wins over the currency guessed from the domain, and twitter:data1 - free text such as "Free shipping over $50" - is not read as a price.
Pages are fetched with a desktop browser User-Agent, a 12 second timeout, redirects followed, and a 2 MB body cap. After the fetch the final URL is compared with the one you asked for: if the shop redirected off the product path - a different path depth, a category or home page, or a generic title such as "Products", "Home", the shop name alone, or "not found" - you get the shop redirected to , which is not a product page instead of the cheapest item on the listing it landed on. A redirect that only inserts a canonical slug in front of the same product id or path (Newegg, Amazon /dp/, Zalando-style URLs) is accepted, not refused.
Watches and their price history live in one JSON file: ${XDG_DATA_HOME:-~/.local/share}/mcp-servers/price-tracker/watches.json. Every mutation (watch_add, watch_remove, watch_refresh, price_add_manual) happens under an advisory lock file, .../price-tracker/.lock, held across the load-mutate-save cycle so two refreshes running at once cannot interleave. price_check and read-only tools do not need the lock. Saves write to a temporary file and rename it into place, so an interrupted write cannot leave a half-written file. To back up your watch history, copy watches.json.
Only a missing file counts as "no watches yet". If watches.json exists but cannot be read or parsed, the server never treats it as empty: the unreadable bytes are moved to watches.json.corrupt- , the fault is written to stderr, and every tool answers with an error naming that file until the server is restarted. A damaged database can therefore never be silently overwritten by the next price you record.
price_add_manual is the working answer for a blocked shop.watch_refresh. This is not a missing feature; a local stdio server has no business running a daemon on your machine.price_check and alerts_pending are unlimited on free.low-confidence regex reading is still reported, but never silently treated as certain, pass it on to the user as an estimate, not a fact..mcpb bundle or the clone-and-build path above until it lands.servers/price-tracker/dist/index.js after npm run build. Point your client's command at node with that absolute path as the only argument.node -v.price_add_manual if the shop keeps redirecting.Nur der Anfang wird gezeigt; den Rest findest du im Repo