프로토타입 · 미리 보기: 공식 레지스트리의 모든 서버를 담고 있으며 30분마다 동기화해요. 리뷰와 계정 기능은 다음 단계에서 열려요.
PopNx MCPAI를 쓰는 사람을 위한 MCP 서버 · 쉬운 말로 설명해요

Price Drop Alert Tracker

제작자: theluckystrike버전 0.23.2i★ –i클라우드에서 실행
레지스트리 이름io.github.theluckystrike/price-drop-alert-tracker

설치

개요

제작자가 쓴 설명(영어 원문)

Track product prices and get drop alerts - history, watches and pending alerts.

PopNx MCP의 세 기둥

이 세 가지는 절대 하나의 점수로 합치지 않아요. 의견, 측정, 인기는 서로 다른 것이니까요.

할 수 있는 일

이 서버는 아직 쉬운 말로 된 요약을 쓰지 못했어요. 아래는 레지스트리에서 읽어 온 사실이에요.

  • 연결 방식: 클라우드에서 실행
  • 전송 방식: Streamable HTTP
  • 카테고리: 기타
  • 입력해야 할 값: Authorization

설치

쓰고 있는 AI 앱을 고른 다음 설정을 복사하세요.

설치하기 전에

비밀로 표시된 값은 내 계정의 열쇠예요. 절대 다른 사람과 공유하거나 채팅에 붙여 넣지 마세요.

필요한 것

어떤 앱을 쓰세요?

위에서 앱을 고르세요. 기억해 두었다가 다음부터는 버튼에 “…에 설치”라고 표시해요.

이 주소는 요청 header에 키가 필요한데, 커넥터 추가 메뉴에서는 넣을 수 없어요. 대신 Claude Code, Cursor, VS Code를 쓰세요.

터미널에서 이 명령어를 실행하세요

claude mcp add --transport http price-drop-alert-tracker https://mcp.zovo.one/mcp/price-drop-alert-tracker --header 'Authorization: your-value'

실행하기 전에 빈 값을 채워 주세요.

Cursor에서 열기

또는 설정을 직접 복사하기

프로젝트의 .cursor/mcp.json 또는 ~/.cursor/mcp.json에 붙여 넣으세요

{
  "mcpServers": {
    "price-drop-alert-tracker": {
      "url": "https://mcp.zovo.one/mcp/price-drop-alert-tracker",
      "headers": {
        "Authorization": "your-value"
      }
    }
  }
}

브라우저가 앱을 열지 물어본 다음, 앱이 설정을 보여 주고 확인을 요청해요. 키 값은 비워 두니 직접 입력하세요.

VS Code에서 열기

또는 설정을 직접 복사하기

프로젝트의 .vscode/mcp.json에 붙여 넣으세요

{
  "servers": {
    "price-drop-alert-tracker": {
      "type": "http",
      "url": "https://mcp.zovo.one/mcp/price-drop-alert-tracker",
      "headers": {
        "Authorization": "your-value"
      }
    }
  }
}

브라우저가 앱을 열지 물어본 다음, 앱이 설정을 보여 주고 확인을 요청해요. 키 값은 비워 두니 직접 입력하세요.

이 주소는 요청 header에 키가 필요한데, 커넥터 추가 메뉴에서는 넣을 수 없어요. 대신 Claude Code, Cursor, VS Code를 쓰세요.

선택한 앱은 이 기기의 쿠키에만 저장돼요. 계정은 필요 없어요.

직접 입력할 값

  • Authorization 비밀 필수 HTTP header
    Bearer

이 설정은 제작자의 레지스트리 정보로 만들었어요. README와 다르면 README를 따르세요.

할 수 있는 일

도구 이름과 설명은 서버가 2026년 11월 8일에 알려 준 그대로예요. 우리가 아니라 제작자가 쓴 글이고, 일반 텍스트로만 보여 드려요.

  • price_check

    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.

  • watch_add

    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.

  • 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.

  • watch_remove

    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.

  • watch_refresh

    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.

  • price_history

    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.

  • price_add_manual

    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.

  • 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.

  • 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.

  • license_activate

    Turn 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.

기본 점검i

누구나 볼 수 있는 정보를 점검했고, 코드는 읽지 않았어요. 해당하지 않는 항목은 개수에서 뺐어요. · 2026년 11월 9일 점검

  • ✓ 통과

    제작자와 저장소 일치

    레지스트리 이름이 GitHub 계정 theluckystrike 기준으로 확인되었고, 이 계정이 저장소를 소유하고 있어요

  • … 아직 점검 안 함

    계속 관리되고 있음

    아직 GitHub에서 이 저장소를 읽어 오지 않았어요

  • … 아직 점검 안 함

    라이선스 있음

    아직 GitHub에서 이 저장소를 읽어 오지 않았어요

  • ✓ 통과

    엔드포인트 응답

    502ms 만에 응답(HTTP 200)

  • – 해당 없음

    OAuth로 로그인

    로그인 필요 없음

  • ✓ 통과

    도구 설명에 숨겨진 지시 없음

    도구 설명 10개를 읽었고, AI에게 보내는 숨겨진 지시는 없었어요

기타 카테고리의 다른 서버와 비교i

  • 이 카테고리의 다른 서버 18696개 중 0%보다 스타가 많아요
  • 이 카테고리의 다른 서버 18696개 중 51%보다 최근에 레지스트리에 공개됐어요
  • 기본 점검 결과가 이 카테고리의 다른 서버 18696개 중 100%와 같거나 더 좋아요

레지스트리에서 이 카테고리의 활성 서버 전체와 비교했어요. 스타는 게시자가 저장소를 소유한 경우에만 세요.

자주 묻는 질문

Price Drop Alert Tracker, 안전한가요?

해당하는 기본 점검 3개 중 3개를 통과했어요. 코드는 읽지 않았어요. 키나 토큰을 넣기 전에 서버가 어떤 권한을 요구하는지 확인하고, 꼭 필요한 권한만 있는 키를 쓰세요.

어떤 키나 코드가 필요한가요?

입력해야 할 값: Authorization

내 컴퓨터에서 실행되나요, 클라우드에서 실행되나요?

제작자의 클라우드에서 실행돼요. 설치 없이 인터넷으로 연결하지만, 보내는 내용은 제작자의 서버를 거쳐요.

아직 관리되고 있나요?

GitHub 저장소는 마지막으로 – 변경됐고, 최신 버전(0.23.2)은 44일 전 레지스트리에 올라왔어요.

어떤 앱에서 쓸 수 있나요?

Claude Desktop, Claude Code, Cursor, VS Code처럼 MCP를 지원하는 앱에서 쓸 수 있어요. URL로 연결되기 때문에, 원격 MCP 서버를 지원하는 앱(예: 개발자 모드의 ChatGPT)에서도 쓸 수 있어요.

대신 쓸 수 있는 건 뭐가 있나요?

같은 카테고리에는: Spec Driven Development, Remote Desktop Commander, Tethered Trust

대안

같은 카테고리에서 다른 제작자가 만든 서버예요. 스타 순으로 정렬했어요.

카드 보는 법:↓ 주간 다운로드i★ GitHub 스타i세 기둥: 리뷰 · 점검 · 사용 정도i업데이트 = 최신 버전을 레지스트리에 공개한 날i

Spec Driven Development

MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.

제작자: formulahendry초기↓ 66/주★ 44014개월 전 업데이트

내 컴퓨터에서 실행

Remote Desktop Commander

Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.

제작자: desktop-commander성장 중★ 2114일 전 업데이트

클라우드에서 실행✓ desktopcommander.app

Tethered Trust

Fit, compatibility and recall checks for AI agents before they buy: verdicts, evidence, receipts.

제작자: tetheredtrust.com초기오늘 업데이트

클라우드에서 실행✓ tetheredtrust.com

제작자의 README

README 열기

제작자의 저장소에서 쓰인 그대로 가져왔어요. PopNx MCP가 검토하거나 보증한 내용이 아니에요. HTML, 이미지, 스크립트는 제거했어요. 링크를 누르면 이 사이트를 벗어나요.

mcp-price-tracker

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.

60-second install

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.

Tools

ToolWhat it does
price_checkFetch a page now; returns price, currency, title, extraction confidence and the change against the last stored observation for that URL. No watch needed.
watch_addStart tracking a URL. Stores the first observation. Optional label, target_price, currency.
watch_listEvery watch with current price, min, max, change, target, confidence and source.
watch_removeStop tracking, by id or url.
watch_refreshRe-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_historyStored observations for one watch, oldest first, optional limit.
price_add_manualRecord a price you read yourself, for shops that block bots. Creates the watch if needed.
alerts_pendingWatches whose latest price is at or below target, or which dropped 5% or more since the previous observation. Free.
license_statusFree or Pro, and where to upgrade.
license_activateActivate 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.

What you can say

You sayTool
"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

Worked example

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.

Alerts: nothing runs in the background

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 vs Pro

FreePro ($19 one-time)
price_checkUnlimitedUnlimited
alerts_pendingYes, unlimitedYes, unlimited
Watches3Unlimited
History per watchLast 30 observationsFull history
watch_refresh one itemYesYes
watch_refresh all at onceNoYes
price_add_manualYesYes
Redirect check and extraction confidenceYesYes

Get Pro - $19 for this server, $39 for every server, lifetime.

How prices are read

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.

How it stores data

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.

Limits and honest caveats

  • Real-world extraction success is roughly 5 of 12 on a mixed sample of major retailers: five sites returned an outright bot-wall 403 (H&M, Allegro, MediaMarkt, Home Depot, Etsy), one timed out (Best Buy), and the rest split between correct prices and one intentionally refused reading (a redirect off the product page). This is a property of the open web, not a bug the server can fix, there is no headless browser or CAPTCHA solver here, by design (no native deps, no paid API). price_add_manual is the working answer for a blocked shop.
  • There is no background job. Nothing checks prices unless you (or your client, via a scheduled script you run yourself) call watch_refresh. This is not a missing feature; a local stdio server has no business running a daemon on your machine.
  • Free tier caps watches at 3 and history at the last 30 observations per watch; price_check and alerts_pending are unlimited on free.
  • A 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.

Troubleshooting

  • `npx` hangs or fails to find the package: npm publish for this package is pending. Use the .mcpb bundle or the clone-and-build path above until it lands.
  • Using the `.mcpb` bundle: it installs into Claude Desktop directly; there is no separate config step.
  • Using the clone path: the server binary is 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 version: requires Node >= 18. Check with node -v.
  • A watch always errors "not a product page": the shop redirected you off the URL you gave it (a category page, home page, or a generic title). Fetch the exact product URL again from the shop and re-add the watch, or use price_add_manual if the shop keeps redirecting.
  • A shop returns 403 every time: it is blocking automated requests. This is expected for a subset of large retailers (see Limits above); use `price_add_manual

앞부분만 보여 드려요. 나머지는 저장소에서 읽어 보세요

PopNx에게 묻기